O que significa @forca?
Uma variável é um nome que representa um valor da ficha. @forca lê Força; @forca + 2 pega esse valor e soma 2. Se Força for 3, o resultado será 5. O símbolo @ avisa ao editor que você está usando uma variável.
Escolha os nomes sugeridos pelo editor. Os nomes deste guia são exemplos e podem mudar no seu modelo. Para nomes com espaços, a escrita pode ser @{Força Bruta}. Modificadores e máximos podem ter nomes próprios, como @forca_mod e @vida_max.
Um nome de variável que não existe é lido como 0. Se o resultado parecer errado, confira o nome e o valor mostrado no teste. Use ponto em números decimais, como 1.5. Para multiplicar, use *, como @forca * 2. Textos ficam entre aspas.
@nivel + 2
floor((@forca - 10) / 2)
clamp(@vida + 5, 0, @vida_max)
@{Força Bruta} * 2
Como escrever uma pergunta que tem resposta Sim ou Não
Uma condição é uma pergunta. @vida > 0 pergunta se Vida é maior que zero. @forca >= 3 pergunta se Força é 3 ou mais. > significa maior; >= significa maior ou igual; < e <= fazem as comparações inversas.
== pergunta se dois valores são iguais, e != se são diferentes. and significa “e”: as duas condições precisam ser atendidas. or significa “ou”: basta uma. not inverte a resposta. Use parênteses para deixar claro o que deve ser comparado junto.
O passo Se escolhe um caminho inteiro. Dentro de uma fórmula, if(condição, valor se sim, valor se não) ou condição ? sim : não escolhe apenas um valor. Textos são comparados exatamente: Luta e luta são diferentes. Consulte esses formatos quando sua regra precisar deles.
@forca >= 3 and @vida > 0
$event.attribute == "agilidade"
if(@nivel >= 5, 2, 1)
@vida <= 0 ? "Caído" : "De pé"
$event, $sheet e a saída de outro passo
Estes formatos são para regras mais avançadas. $event lê informações da ação que iniciou a regra. $sheet lê informações da ficha. $("Nome do passo") lê o resultado que um passo anterior entregou.
Em uma regra de rolagem, $event pode oferecer formula, total, dice, skillName e attribute. Eles significam fórmula, total, dados, nome da perícia e atributo. Os campos variam por evento. Antes de rolar, total e dice ainda não existem.
$sheet contém listas de atributos, perícias, valores como Vida e Mana, campos, cartas e variáveis, além de memory, a memória da ficha. Uma lista é uma coleção de itens; [0] acessa o primeiro. null significa “sem valor”: por exemplo, um campo que não existe ou um caminho que não foi executado.
Para usar $("Nome do passo"), copie exatamente o Nome do passo e mantenha esse nome único no desenho. O passo precisa ter sido executado antes, no mesmo caminho. Perguntar entrega a resposta diretamente; não acrescente .answer. Escolher entrega os dados do item escolhido, que podem incluir name, total e targets.
Quando um valor pode faltar, coalesce(valor, padrão) usa o padrão apenas se o valor for null. Ele não troca 0, false ou texto vazio. Você pode consultar estes exemplos quando precisar ligar o resultado de um passo ao próximo.
$("Rolar dados").total
$("Perguntar")
$("Escolher").targets.misc
$sheet.skills[0].name
coalesce($sheet.memory.usos, 0)
Como colocar um valor dentro de um texto ou de uma rolagem
Em um campo de número ou condição, escreva a fórmula diretamente. Em um campo de texto ou dados no modo Expressão, coloque apenas a parte calculada entre {{ e }}. Por exemplo: Total: {{ @forca + 2 }} mostra Total: 5 se Força for 3.
Para rolar 1d20, use o passo Rolar dados. A fórmula de expressão sozinha não faz uma rolagem. Na fórmula de dados você pode usar variáveis da ficha; o guia de rolagens explica opções como ficar com o maior dado e dados explosivos.
Texto em modo expressão:
Total: {{ $("Rolar dados").total }}
Dados em modo expressão:
1d20 + {{ @forca_mod }}
Condição em modo expressão:
@vida > 0
Fórmulas prontas para situações frequentes
Uma função é uma operação pronta que você usa numa fórmula. max(@dano - 2, 0) desconta 2 do dano, mas nunca deixa o resultado abaixo de 0. clamp(@vida + 5, 0, @vida_max) soma 5 à Vida e mantém o resultado entre 0 e o máximo.
min escolhe o menor valor; max, o maior. floor arredonda para baixo; ceil, para cima; round, para o mais próximo, com empate afastando de zero; trunc/fix remove a parte decimal em direção a zero.
Para listas, sum soma, avg calcula a média e len conta itens. first e last pegam o primeiro e o último. contains verifica se algo está presente. join junta itens em um texto. Para textos, upper, lower e trim mudam maiúsculas, minúsculas e espaços nas pontas. number tenta ler um valor como número.
Referência adicional, para quando precisar: abs, sign, sqrt, cbrt, pow, exp, log, log10, log2, mod, sin, cos, tan, asin, acos, atan e atan2, além de pi, e e tau. O guia de expressões dentro do editor ajuda a consultar as funções.
max(@dano - 2, 0)
ceil(@nivel / 4)
round(2.5)
contains(["forca", "agilidade"], $event.attribute)
join($event.dice, " + ")