Code frameworks
Receta: una función auxiliar
Comparte un cálculo pequeño dentro de un archivo de reglas.
Objetivo
Usa una sola función con tope en lugar de repetir math.min.
El cambio
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));
}
}- Líneas 1-3 Una función auxiliar no tiene export.
- Línea 9 Llámala por su nombre desde el mismo archivo.
Se rechaza un archivo que exporta más de una función, salvo que cada exportación esté declarada para ese archivo como id de acción o id de función de ledger.
functions but only the action heal uses itUna función auxiliar solo puede calcular. No puede llamar a ledger.set ni a ledger.add, y una función auxiliar que escribe se rechaza:
effectful action helpers are not supported until call-target provenance is enforcedDevuelve el valor desde la función auxiliar y escríbelo en la acción. La página Escribir reglas muestra dos acciones que comparten una función auxiliar.
Pruébalo
Una función auxiliar no añade escenarios. Los escenarios de la acción que la usa la prueban.

