Frameworki kodowe
Przepis: statystyka pochodna
Oblicz wartość z innych wartości za pomocą funkcji ledgera.
Cel
Pokaż Ward równy połowie maksymalnego HP, zaokrąglonej w dół.
Zmiana
Zadeklaruj funkcję w schemacie.
schemas/keeper.json
"ledgerFunctions": [
{
"id": "ward",
"name": "Ward",
"field": "ward",
"source": "rules/ward.ts"
}
]- Wiersze 19-22 field to zapisana wartość, którą wypełnia Ward.
rules/ward.ts
export function ward(currentValue: number, self: ElementRef): number {
const max_hp: number = element.var(self, "max_hp") as number;
return math.floor(max_hp / 2);
}- Wiersz 1 currentValue to dotychczasowa wartość. Większość wartości pochodnych ją pomija.
- Wiersz 2 Odczytaj to, czego potrzebujesz, za pomocą element.var.
- Wiersz 3 Zwróć wyliczoną liczbę.
Konstruktor nadal zwraca to pole, z wartością początkową 0.
rules/keeper.ts
export function construct(
name: string,
max_hp: number,
): { name: string; max_hp: number; hp: number; ward: number } {
return { name: name, max_hp: max_hp, hp: max_hp, ward: 0 };
}- Wiersze 4-5 ward jest zwracane jako 0. Funkcja ledgera wylicza je zaraz potem.
Przetestuj to
scenarios/new-keeper.json
"ledger": [{ "function": "ward", "currentValue": 0, "expected": 5 }]- Wiersz 6 Sprawdza funkcję: zaczyna od 0 i musi zwrócić 5.
Dodaj też ward do expectedValues w każdym scenariuszu dla Keepera.

