Code frameworks
Tabelas do livro de regras
Guarde dados fixos de regras em uma tabela e leia-os nas suas regras ou use-os como as escolhas de uma entrada.
O que é uma tabela
Uma tabela do livro de regras é um dado fixo que suas regras leem, como um bônus para cada Calling. Ela não é estado de jogo, e os jogadores nunca a mudam. Mudar uma linha cria uma nova versão do seu jogo, como qualquer outra edição do código-fonte.
Declare uma tabela
Uma tabela é um arquivo JSON em tables/. Liste-a no manifesto.
"tables": ["tables/callings.json"]- Linha 10 Os caminhos dos arquivos de tabela.
{
"id": "callings",
"name": "Callings",
"columns": [
{ "key": "calling", "label": "Calling", "type": "string" },
{ "key": "bonus", "label": "Watch bonus", "type": "number" }
],
"rows": [
{ "calling": "Guard", "bonus": 30 },
{ "calling": "Scout", "bonus": 10 }
]
}- Linhas 4-7 As colunas. Cada uma tem uma chave, um rótulo e um tipo: string, number ou boolean.
- Linhas 8-11 As linhas. Cada linha dá um valor para cada coluna, e nada mais.
Um Framework lista os ids das tabelas que ele lê.
"tables": ["callings"]- Linha 22 O Framework pode ler a tabela callings.
| Limite | Valor |
|---|---|
| Colunas por tabela | 64 |
| Linhas por tabela | 1000 |
| Tabelas por Framework | 64 |
| Tabelas por Jogo | 128 |
Leia uma tabela em uma regra
table.find recebe o id da tabela, as colunas a comparar com os valores a procurar, e as colunas a devolver com um padrão para cada uma. Ele devolve as colunas que você nomeia, da primeira linha cujas colunas de comparação são todas iguais aos seus valores. Quando nenhuma linha combina, ele devolve seus padrões.
export function construct(
name: string,
max_hp: number,
calling: string,
): { name: string; max_hp: number; hp: number; calling: string; watch: number } {
const row = table.find("callings", { calling: calling }, { bonus: 0 });
const bonus: number = row.bonus;
return {
name: name,
max_hp: max_hp,
hp: max_hp,
calling: calling,
watch: 20 + bonus,
};
}- Linha 6 Procure o bônus do Calling. O padrão é 0.
- Linha 7 Leia uma coluna do resultado. O tipo vem da tabela, então não precisa de conversão.
- Linha 13 Use o bônus em um valor inicial.
O id da tabela é uma string escrita no código, e o Framework deve listar a tabela. Toda coluna que você nomeia deve existir, e só as colunas que você nomeia voltam. Um construtor lê uma tabela assim. Os valores a comparar devem ser uma variável, um campo ou um literal, não um valor calculado.
Estes erros são pegos quando você verifica o projeto:
const row = table.find("callings", { calling: calling }, { boost: 0 });has no column 'boost'which manifest.tables does not declare const row = table.find("callings", { calling: calling + "!" }, { bonus: 0 });table.find match values must be a variable, a field or a literalUse uma tabela para escolhas
Uma entrada de texto pode tirar suas escolhas de uma coluna de uma tabela. As escolhas são os valores distintos da coluna, na ordem das linhas.
"calling": {
"label": "Calling",
"optionsFrom": { "table": "callings", "column": "calling" },
"defaultValue": "Guard"
}- Linha 11 O assistente oferece os valores da coluna calling.
- Linha 12 O padrão deve ser uma das escolhas.
is not one of this Framework's tablesUma entrada de ação do tipo texto pode fazer o mesmo com um item optionsFrom na declaração da ação. Uma fonte deve oferecer pelo menos 2 escolhas.

