Pular para o conteúdo principal

Code frameworks

Receita: uma função auxiliar

Compartilhe um cálculo pequeno dentro de um arquivo de regras.

Objetivo

Use uma função com limite em vez de repetir math.min.

A mudança

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. Linhas 1-3 Um auxiliar não tem export.
  2. Linha 9 Chame-o pelo nome no mesmo arquivo.

Um arquivo que exporta mais de uma função é recusado, a menos que cada exportação esteja declarada para esse arquivo como id de ação ou id de função de ledger.

functions but only the action heal uses it

Uma função auxiliar só pode calcular. Ela não pode chamar ledger.set nem ledger.add, e uma função auxiliar que escreve é recusada:

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

Devolva o valor da função auxiliar e escreva-o na ação. A página Escrevendo regras mostra duas ações que compartilham uma função auxiliar.

Teste

Um auxiliar não adiciona cenário. Os cenários da ação que o usa o provam.

Próximos passos