Przejdź do głównej treści

Frameworki kodowe

Przepis: funkcja pomocnicza

Współdziel małe obliczenie w jednym pliku reguł.

Cel

Użyj jednej funkcji z limitem zamiast powtarzać math.min.

Zmiana

rules/heal.ts
function capped(value: number, limit: number): number {
  return math.min(value, limit);
}

export function heal(self: ElementRef, amount: number): void {
  const hp: number = element.var(self, "hp") as number;
  const max_hp: number = element.var(self, "max_hp") as number;
  if (hp < max_hp) {
    ledger.set(self, "hp", capped(hp + amount, max_hp));
  }
}
  1. Wiersze 1-3 Funkcja pomocnicza nie ma export.
  2. Wiersz 9 Wywołaj ją po nazwie z tego samego pliku.

Plik eksportujący więcej niż jedną funkcję jest odrzucany, chyba że każdy eksport jest zadeklarowany dla tego pliku jako identyfikator akcji lub funkcji ledgera.

functions but only the action heal uses it

Funkcja pomocnicza może tylko obliczać. Nie może wywoływać ledger.set ani ledger.add, a funkcja pomocnicza, która zapisuje, jest odrzucana:

effectful action helpers are not supported until call-target provenance is enforced

Zwróć wartość z funkcji pomocniczej i zapisz ją w akcji. Strona Pisanie reguł pokazuje dwie akcje współdzielące jedną funkcję pomocniczą.

Przetestuj to

Funkcja pomocnicza nie dodaje scenariusza. Dowodzą jej scenariusze akcji, która jej używa.

Dalej