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));
}
}- Righe 1-3 Una funzione di supporto non ha export.
- 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 itUna 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 enforcedRestituisci 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.

