A linguagem dos dados Conteúdo

Sistemas de regras

A linguagem dos dados

As fórmulas por trás de cada frase: notação de dados, valores que uma rolagem pode ler, como uma rolagem é interpretada, com receitas para mecânicas comuns.

Uma linguagem pequena sob cada frase

Todo número em um sistema de regras é um número simples ou uma fórmula em uma linguagem pequena: os dados de uma rolagem, um alvo, o máximo de uma barra, o modificador de um atributo, a vida de um inimigo por nível, um valor em um cartão de regra. Raramente você precisa escrever um: o editor de frases, o compositor e o Hob escrevem para você. A aba Avançado mostra todos quando você quiser.

Ela é pequena de propósito. Não é uma linguagem de programação: sem laços, sem acesso a valores fora dos que recebe, nada que possa se comportar mal. Uma fórmula sem sentido é recusada ao salvar, em uma frase dizendo o que está errado.

Avançado: a rolagem e o alvo de cada teste, o máximo de cada trilha, a fórmula de cada valor derivado
Studio › Regras › Avançado: as fórmulas por trás de cada frase, cada uma em seu próprio campo. Todo o resto que o sistema guarda também está aqui, como dados editáveis.
O rodapé do editor: alterações não salvas, um problema, escrito como uma frase
Uma fórmula quebrada é detectada enquanto você digita, explicada em palavras e não pode ser salva.

Dados

EscreveSignificaExemplo
d20Um dado de vinte faces13
3d6Três dados de seis faces, somados4 + 2 + 6 = 12
2d20kh1Dois d20s, fica com o maior (vantagem)(7, 16) → 16
2d20kl1Fica com o menor (desvantagem)(19, 7) → 7
4d6kh3Quatro d6s, fica com os três melhores(5, 2, 6, 3) → 14
(@stat)d6Tantos dados quanto um valor indicarProwl 3 → 3d6
d(@dexterity)Um dado do tamanho que um valor indicar, para jogos em que um atributo é um dadoDexterity 10 → d10
6d10>=6Conta os dados iguais ou acima de 6: o valor é a contagem(2, 6, 9, 10, 1, 7) → 4
3d6!Explodindo: a face máxima rola outro dado(6, 2, 4) + 5 → 17
4dFDados Fate: cada um −1, 0 ou +1(+, 0, −, +) → +1
d100Percentil; d% é o mesmo47
d100t(1)Percentil com um dado de dezenas de bônus (fica com as dezenas melhores); t(-1) um dado de penalidade(4 or 7, 3) → 43
d12[Hope]Um dado com nome: exibido com o nome, e legível por cartões de regraHope d12 (9)

Cada face fica no registro da rolagem, para que a bandeja de dados possa reproduzi-la e o marcador da rolagem possa exibi-la. Todos os dados rolam a partir de uma semente: a mesma rolagem, repetida no mesmo turno, dá as mesmas faces.

Números e lógica

Aritmética
+ - * / e parênteses: floor((@str - 10) / 2)
Comparações
> >= < <= == !=, resultando em 1 ou 0: @hp < 5
Lógica
e, ou, não: @cond.blessed > 0 and @nerve >= 3
Escolhas
if … then … else …: if @level >= 5 then 2 else 1. Só o ramo escolhido é calculado, então só os dados dele são rolados.
Funções
floor ceil round abs min max clamp: clamp(@edge + @cond.edge, -1, 1)

Valores que uma fórmula pode ler

EscreveO que éOnde
@strO valor de um atributo (pelo id)Em qualquer lugar
@str.modO modificador de um atributo: o próprio valor quando não tem modificadorEm qualquer lugar
@statO atributo sendo rolado; @stat.mod seu modificadorA rolagem e o alvo de um teste
@hpO valor atual de uma barra; @hp.max seu máximoEm qualquer lugar
@proficiencyUm valor derivado (pelo id)Em qualquer lugar
@levelO nível do personagem; @xp seu xp. Em uma habilidade definida como Escala com o nível em uma classe, seus próprios usos, custo, efeitos e modificadores leem @level como o nível da pessoa naquela classe, enquanto ela a tiverEm qualquer lugar
@class.hit_dieO que a classe da pessoa diz para um valor (o padrão do sistema quando não diz nada, calculado como o da própria classe; senão 0). Com várias classes, soma conforme o sistema define: somadas, a maior ou a da primeira classeEm qualquer lugar
@classlevel.wizardO nível na classe (pelo id), 0 se não a tiverEm qualquer lugar
@classlevelO nível da pessoa nesta classe: 2 * @classlevel cresce a cada nível nelaOs valores próprios de uma classe, e os padrões de classe do sistema
@classfirst1 para a primeira classe escolhida, 0 para qualquer outra: o que só a primeira classe dáOs valores próprios de uma classe, e os padrões de classe do sistema
@own.hit_dieO valor próprio desta classe de outro nome (seu dado de vida), onde @class.hit_die leria o valor somadoOs valores próprios de uma classe, e os padrões de classe do sistema
@classesQuantas classes a pessoa tem; @mastered quantas estão no limiteEm qualquer lugar
@rankA patente desta habilidade: 1 quando pega pela primeira vez, um a mais a cada vez que for pega de novoO custo, efeitos, usos e modificadores próprios de uma habilidade
@rank.toughenedA patente de uma habilidade (pelo id), 0 se não a conhecerEm qualquer lugar
@difficultyO número por trás da palavra que o narrador escolheu para um rótulo (Hard → 20). Todo rótulo é legível pelo seu id: @edge, @position.A rolagem e o alvo de um teste
@spend_push1 se o jogador pagou aquele gasto antes da rolagem, senão 0A rolagem de um teste
@cond.edgeO que as condições da ficha somam como edge; @cond.mod como bônus ou penalidadeA rolagem de um teste
@cond.poisonedO nível de uma condição (0 quando ausente); @cond.poisoned.left seus marcadores restantesEm qualquer lugar
@opp.insight.modO atributo ou modificador do oponente, quando a rolagem mira em alguém presente; @opp.tier seu tierOs alvos opostos de um teste
@defenceA defesa do defensorO teste de ataque
@secondUm valor que o golpe lê junto ao seu atributo, pelo nome que o sistema ou a arma dá (O que todo ataque lê, O que o ataque dele lê): o segundo dado de uma rolagem de dois atributos, ou qualquer outro nome (@accuracy, @weapon_die)O teste de ataque e o dano
@tierO tier do inimigo, 1 a 6Modelos de inimigos
@thisO próprio atributo; @linked o atributo de que ele dependeO modificador de um atributo
@group.Hope.highA maior face de um dado nomeado; também .tops (faces mais altas), .ones, .successes, .valueResultados e cartões de regra após uma rolagem
@totalO total da rolagem; também @target, @margin (total − alvo), @measureResultados e cartões de regra após uma rolagem
@event.amountO dano do golpe que disparou o cartãoCartões de dano
@roll.highO maior dado da rolagem de ataque que acertou o golpe; @roll.low o menor; @group.First.value um dado nomeado. @roll.high + 5 é uma High Roll, sem dados própriosDano (armas, habilidades, inimigos, o do jogador)
@thing.ship.hullUm valor na primeira coisa do tipo que o personagem tiverEm qualquer lugar

Como uma rolagem é lida

Um teste tem uma rolagem e uma forma de lê-la. A leitura transforma os dados na medida das faixas de resultado:

LeituraMedidaOpções
Total contra um alvoUm grau: −1 falha crítica, 0 falha, 1 sucesso, 2 críticosteps: supere o alvo por esse valor para um crítico, erre por ele para uma falha crítica (PF2e: 10). naturals: a face máxima ou mínima no primeiro dado define ou desloca o grau.
Total em faixasO próprio totalFaixas por intervalo: 10+, 7-9, 6- (PbtA).
Rolar abaixoUma nota: −1 falha crítica, 0 falha, 1 sucesso, 2 difícil, 3 extremonotas (frações do alvo), o que conta como crítico (um 1, rolar exatamente o alvo, duplicados), o que é falha crítica, faces que sempre passam ou falham, níveis de sucesso em vez de notas, ou o próprio dado de dezenas da rolagem (rolar abaixo mas alto: quanto maior, melhor).
Maior dadoA melhor face; várias faces máximas contam um a maisForged in the Dark.
Contar sucessosA contagemPares de uma face como sucessos extras e um crítico (dezenas em uma reserva de d10).

Além de qualquer leitura, um teste pode comparar dois dados nomeados (Hope against Fear): o dado mais alto acrescenta uma palavra ao resultado e seus próprios efeitos; dados iguais altos podem ser um crítico (ou só a partir de uma face, como pares de 6 ou mais), e dados iguais baixos uma falha crítica (pares de 1).

Receitas

Vantagem da quinta edição, com condições e exaustão

(if @edge + clamp(@cond.edge + (if @exhaustion >= 1 then -1 else 0), -1, 1) > 0 then 2d20kh1
 else if @edge + clamp(@cond.edge + (if @exhaustion >= 1 then -1 else 0), -1, 1) < 0 then 2d20kl1
 else d20) + @stat.mod + @cond.mod

Teste de atributo do Classic d20: qualquer número de desvantagens e vantagens conta uma vez só, em qualquer sentido.

Se esforçando por um dado extra

if @stat + @spend_push <= 0 then 2d6kl1 else (@stat + @spend_push)d6

Forged in the Dark: zero pontos rola dois e mantém o menor; pagar o gasto de “push” (2 de Estresse) adiciona um dado.

Hope, Fear, e um d6 se você gastar Hope

d12[Hope] + d12[Fear] + @stat + (if @spend_hope > 0 then d6 else 0)

Dois dados de atributo: um atributo é um dado

d(@stat)[Primeira] + d(if @second_stat == 1 then @dexterity else @insight)[Segunda] + @cond.mod
read:  total contra @difficulty; dados iguais a 6 ou mais são um crítico, dois 1s uma falha crítica

attack: d(@stat)[Primeira] + d(@second)[Segunda]     reads: { "second": "@might" }

O compositor do dois dados de atributo engine: cada atributo é um tamanho de dado (d6 a d12), e o segundo dado é o atributo que uma palavra escolhida pelo juiz nomeia. Um atributo mostrado como dado sempre lê como um real: um +1 de equipamento deixa um d8 como d8, um +2 o torna um d10. Uma condição que move um atributo em passos já está em @stat: Atordoado, um passo abaixo em Insight, rola um d10 de Insight como d8. Veja Condições que movem um atributo. O segundo dado de um golpe é @second, que todo ataque lê como o atributo de combate; um cajado cujo reads diz { "second": "willpower" } rola WLP + WLP. Veja O que o ataque dele lê.

Um número que cresce com uma classe

"values": { "caster": "@classlevel", "kit": "2 * @classlevel", "hp": "5" }

Os valores próprios de uma classe, sob várias classes: um nível de conjurador, 2 pontos de kit por nível de classe e +5 pontos de vida por tê-la. Somados entre as classes, um mago 2 / clérigo 3 tem nível de conjurador 5. Uma habilidade heroica que exige maestria lê @classlevel.sentinel >= 10 ou @mastered >= 1. Veja Números entre classes.

Pontos de vida pelo dado de cada classe

"hit_points": "@classfirst * (floor(@own.hit_die / 2) - 1) + @classlevel * (floor(@own.hit_die / 2) + 1)"

O padrão de classe do Classic d20, calculado uma vez para cada classe que a pessoa tem: o dado inteiro da primeira classe no primeiro nível, a média do dado em cada nível seguinte, e a média de uma classe posterior desde o seu primeiro nível. Um Guerreiro 1 / Mago 1 recebe 10 + 4. Veja Um padrão calculado por classe.

Percentil com dados de bônus e penalidade

d100t(@edge)                       read: rolar abaixo, alvo @stat.mod * @difficulty

Uma reserva de fome: alguns dados são perigosos

(@stat - @hunger)d10>=6 + (@hunger)d10[Hunger]>=6

Conte os sucessos nos dois grupos; então um cartão de regra lê @group.Hunger.ones para transformar uma falha com um 1 em um dado de Fome em algo pior.

Graus de sucesso por dez

roll:  d20 + @stat.mod
read:  total contra @difficulty, steps 10, naturals 20 / 1 deslocam o grau

Uma mentira oposta

opposed: { "deception": "10 + @opp.insight.mod" }

Uma mentira contada a alguém presente é rolada contra o Insight passivo dessa pessoa em vez de uma dificuldade.