Фреймворки на коде
Рецепт: вспомогательная функция
Используйте небольшое вычисление в одном файле правил.
Цель
Использовать одну функцию с ограничением вместо повторения math.min.
Что менять
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-3 У вспомогательной функции нет export.
- Строка 9 Вызывайте её по имени из того же файла.
Файл, экспортирующий больше одной функции, отклоняется, если каждый экспорт не объявлен для этого файла как идентификатор действия или функции журнала.
functions but only the action heal uses itВспомогательная функция может только вычислять. Она не может вызывать ledger.set или ledger.add, а вспомогательная функция, которая пишет, отклоняется:
effectful action helpers are not supported until call-target provenance is enforcedВерните значение из вспомогательной функции и запишите его в действии. Страница «Написание правил» показывает два действия с одной общей вспомогательной функцией.
Проверьте
Вспомогательная функция не добавляет сценарий. Её проверяют сценарии действия, которое её использует.

