5.3 KiB
Battle Formulas — боевые навыки в виде данных
Battle Formulas позволяет записать боевое действие целиком в данных: сколько оно ранит или лечит — это формула от характеристик действующего и цели; действие может тратить ману, игнорировать щит или оглушать. Код не нужен, и один и тот же навык работает в обеих боевых системах — FF Battle и Card Battle. Таковы Power strike, Fireball, Heal и Guard break из Classic RPG Rules.
Кроме того, мод вычисляет боевые числа врагов из их характеристик и рисует запасы вроде маны полосками на боевых картах.
Формулы написаны на языке формул Stats Engine; боевые экраны принадлежат боевым системам. Этот мод — связующее звено между ними.
Навык шаг за шагом
Power strike из Classic RPG Rules:
{ "Id": "classic/power_strike", "Type": "ToEnemy",
"Values": [ "RequiredPoint=1", "Formula=a.atk * 1.5 + rand(0, a.str / 2)" ] }
В меню боя FF на карте видно формулу, а подсказкой служит описание навыка:
У воина из RPG Plus атака 12 и сила 9, поэтому удар наносит 12 × 1.5 = 18 плюс случайное от 0 до 4.5. В записанном здесь бою выпало 22:
Щит волка (2) принял на себя первую часть — Power strike не игнорирует щиты, — и волк потерял 20 здоровья: с 31 до 11.
Та же карта в Card Battle:
Враги берут числа из своих характеристик
Здоровье волка 31, атака 7 и щит 2 нигде не записаны числами. RPG Plus даёт волку характеристики патчем:
{ "Id": "rpg_wolf", "Stats": { "str": 5, "vit": 5, "agi": 7 } }
Когда начинается бой, мод считает лист волка по правилам Classic RPG Rules для его 2-го уровня: здоровье 12 + vit * 3 + level * 2 = 31, атака str + level = 7, защита floor(vit / 2) = 2. Враг без данных о характеристиках оставляет числа из своего файла персонажа.
Значения действия-формулы
Сущность действия (вид action, см. Characters Engine) со значением Formula=:
Formula=— величина; никогда не меньше 0.a.— действующий,b.— цель: любые их характеристики, а такжеhp,hp_max,attack,defence,point. Функции вродеrand(lo, hi),floor,min,maxприходят из Stats Engine.Effect=damage(по умолчанию) илиEffect=heal.Cost=mp:4— тратит 4 из характеристики-запаса; если члену отряда её не хватает, действие отклоняется и ничего не тратится. Враги не платят ничего.RequiredPoint=1— очки действий, как в любой боевой системе.Pierce=1— игнорирует щит цели.State=effect/physics/stunвместе сStateTurns=1иStateChance=35— с шансом 35% вешает на цель статусный эффект на столько ходов.Type—ToEnemy,ToSelfилиToAlias(союзник), как у любого действия.
Например, Fireball из Classic RPG Rules:
"Values": [ "RequiredPoint=1", "Cost=mp:4", "Pierce=1", "Formula=a.mag * 2 + rand(1, 6)" ]
Если что-то пошло не так
- Навык делает 0. Какое-то имя в формуле — не характеристика игры (неизвестные имена считаются за 0), либо результат вышел отрицательным.
- Навык отклонён. Персонажу не хватило очков действий либо характеристики-запаса, указанной в
Cost=. - У врага числа из файла, а не из характеристик. У него нет
Stats,ArchetypeилиTraits.


