Salta al contenuto principale

Framework in codice

Ricetta: una funzione di supporto

Condividi un piccolo calcolo dentro un file di regole.

Obiettivo

Usa una sola funzione con limite invece di ripetere math.min.

La modifica

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. Righe 1-3 Una funzione di supporto non ha export.
  2. Riga 9 Chiamala per nome dallo stesso file.

Un file che esporta più di una funzione viene rifiutato, a meno che ogni export sia dichiarato per quel file come id di azione o id di funzione di registro.

functions but only the action heal uses it

Una funzione di supporto può solo calcolare. Non può chiamare ledger.set né ledger.add, e una funzione di supporto che scrive viene rifiutata:

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

Restituisci il valore dalla funzione di supporto e scrivilo nell'azione. La pagina Scrivere le regole mostra due azioni che condividono una funzione di supporto.

Provalo

Una funzione di supporto non aggiunge scenari. Li dimostrano gli scenari dell'azione che la usa.

Avanti