Frameworks de code
Recette : une fonction d'aide
Partagez un petit calcul dans un seul fichier de règles.
Objectif
Utilisez une seule fonction de plafonnement au lieu de répéter math.min.
Le changement
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));
}
}- Lignes 1-3 Une fonction d'aide n'a pas d'export.
- Ligne 9 Appelez-la par son nom depuis le même fichier.
Un fichier qui exporte plus d'une fonction est refusé, sauf si chaque export est déclaré pour ce fichier comme id d'action ou id de fonction de registre.
functions but only the action heal uses itUne fonction d'aide ne peut que calculer. Elle ne peut pas appeler ledger.set ni ledger.add, et une fonction d'aide qui écrit est refusée :
effectful action helpers are not supported until call-target provenance is enforcedRenvoyez la valeur depuis la fonction d'aide et écrivez-la dans l'action. La page Écrire des règles montre deux actions qui partagent une fonction d'aide.
Testez-le
Une fonction d'aide n'ajoute aucun scénario. Les scénarios de l'action qui l'utilise la prouvent.

