O rpgdesk.js cria o objeto global RPGDesk. Quase tudo devolve uma promessa (Promise): use await ou
.then(). As chamadas feitas antes de conectar esperam a conexão. Para aprender com exemplos, veja
JavaScript na ficha e Rolagens, chat e cartão.
o valor: texto, número, true/false, um objeto (grupo) ou undefined. doc.get('') dá o documento inteiro
doc.set(caminho, valor)
grava. Um objeto grava campo a campo; null apaga. Devolve uma promessa
doc.update({ caminho: valor, … })
grava vários campos num lote
doc.batch(() => { … })
o que for gravado dentro da função vai num lote só, aplicado inteiro ou recusado inteiro
doc.watch(caminho, fn, { now })
avisa a cada mudança no caminho ou dentro dele: fn(valor, { local }). Devolve a função que para
doc.compute(alvo, [fontes], fn)
campo calculado: grava fn(...valores das fontes) no alvo quando uma fonte muda neste navegador, se a pessoa pode escrever no alvo. undefined não grava. Devolve a função que para
doc.canWrite(caminho)
se a pessoa pode escrever ali
doc.list(caminho)
a lista no caminho (veja abaixo)
doc.restrict(caminho, 'gm' | 'owner' | null)
só mestres: a parte passa a ser só dos mestres, só do dono e dos mestres, ou de todos de novo
doc.on('rejected', fn)
avisa quando uma gravação é recusada: fn(mensagem). Devolve a função que para
Os caminhos são textos ('pv.atual') ou listas (['npcs', '#' + id, 'pv']); #id aponta um item
de lista.
rola na mesa (com os dados 3D, no chat de todos). Devolve { expression, total, items, successes }
RPGDesk.chat.send(texto, { kind, name })
manda ao chat. kind: 'chat', 'action', 'laugh', 'narrator' ou 'npc' (com name)
RPGDesk.chat.local(texto)
uma linha no chat só de quem está vendo
Os items de uma rolagem: { kind: 'dice', sign, faces, results }, { kind: 'fudge', sign, results }
ou { kind: 'value', sign, value }. successes só existe nas rolagens com >.