Frameworki kodowe
Tabele podręcznika
Trzymaj stałe dane zasad w tabeli i czytaj je w regułach albo użyj ich jako wyborów danych wejściowych.
Czym jest tabela
Tabela podręcznika to stałe dane, które czytają Twoje reguły, na przykład premia dla każdego powołania. To nie jest stan gry i gracze nigdy jej nie zmieniają. Zmiana wiersza tworzy nową wersję Twojej gry, jak każda inna zmiana źródła.
Zadeklaruj tabelę
Tabela to plik JSON w tables/. Wymień go w manifeście.
"tables": ["tables/callings.json"]- Wiersz 10 Ścieżki plików tabel.
{
"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 }
]
}- Wiersze 4-7 Kolumny. Każda ma klucz, etykietę i typ: string, number lub boolean.
- Wiersze 8-11 Wiersze. Każdy wiersz podaje wartość dla każdej kolumny i nic więcej.
Framework wymienia id tabel, które czyta.
"tables": ["callings"]- Wiersz 22 Framework może czytać tabelę callings.
| Limit | Wartość |
|---|---|
| Kolumny na tabelę | 64 |
| Wiersze na tabelę | 1000 |
| Tabele na framework | 64 |
| Tabele na grę | 128 |
Czytaj tabelę w regule
table.find przyjmuje id tabeli, kolumny do dopasowania wraz z szukanymi wartościami oraz kolumny do zwrócenia z wartością domyślną dla każdej. Zwraca kolumny, które nazwiesz, z pierwszego wiersza, w którym wszystkie kolumny dopasowania równają się Twoim wartościom. Gdy żaden wiersz nie pasuje, zwraca Twoje wartości domyślne.
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,
};
}- Wiersz 6 Znajdź premię dla powołania. Wartość domyślna to 0.
- Wiersz 7 Odczytaj kolumnę wyniku. Jej typ pochodzi z tabeli, więc rzutowanie nie jest potrzebne.
- Wiersz 13 Użyj premii w wartości początkowej.
Id tabeli to tekst zapisany w kodzie, a framework musi wymieniać tę tabelę. Każda kolumna, którą nazwiesz, musi istnieć, a wracają tylko kolumny, które nazwiesz. Konstruktor czyta tabelę w ten sam sposób. Wartości do dopasowania muszą być zmienną, polem lub literałem, a nie wartością obliczaną.
Te błędy zostaną wychwycone przy sprawdzaniu projektu:
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 literalUżyj tabeli jako wyborów
Dane wejściowe tekstowe mogą brać wybory z jednej kolumny tabeli. Wyborami są różne wartości kolumny, w kolejności wierszy.
"calling": {
"label": "Calling",
"optionsFrom": { "table": "callings", "column": "calling" },
"defaultValue": "Guard"
}- Wiersz 11 Kreator oferuje wartości kolumny calling.
- Wiersz 12 Wartość domyślna musi być jednym z wyborów.
is not one of this Framework's tablesDane wejściowe akcji typu tekst mogą zrobić to samo przez wpis optionsFrom w deklaracji akcji. Źródło musi oferować co najmniej 2 wybory.

