Add mod documentation in seven languages

This commit is contained in:
cthangover committed 2026-10-29 09:25:46 +01:00
1 parent e25421f925
commit e7c3d4d462
18 files changed
+456 -8

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
# Battle Formulas — боевые навыки в виде данных
Battle Formulas позволяет записать боевое действие целиком в данных: сколько оно ранит или лечит — это **формула** от характеристик действующего и цели; действие может тратить ману, игнорировать щит или оглушать. Код не нужен, и один и тот же навык работает в обеих боевых системах — FF Battle и Card Battle. Таковы Power strike, Fireball, Heal и Guard break из Classic RPG Rules.
Кроме того, мод вычисляет боевые числа врагов из их характеристик и рисует запасы вроде маны полосками на боевых картах.
Формулы написаны на языке формул Stats Engine; боевые экраны принадлежат боевым системам. Этот мод — связующее звено между ними.
## Навык шаг за шагом
Power strike из Classic RPG Rules:
```json
{ "Id": "classic/power_strike", "Type": "ToEnemy",
"Values": [ "RequiredPoint=1", "Formula=a.atk * 1.5 + rand(0, a.str / 2)" ] }
```
В меню боя FF на карте видно формулу, а подсказкой служит описание навыка:
![Меню действий героя с выбранным Power strike; на карте — Target enemy, 1 AP и Formula a.atk * 1.5 + rand(0, a.str / 2), а также описание «Полный замах: полторы атаки и ещё немного от силы».](assets/formula-menu.jpg)
У воина из RPG Plus атака 12 и сила 9, поэтому удар наносит 12 × 1.5 = 18 плюс случайное от 0 до 4.5. В записанном здесь бою выпало 22:
![Журнал боя: Hero: Power strike → Wolf; Wolf's shield absorbed 2 · left 0; Power strike: Hero → Wolf · -20 HP; затем Defence волка, +4 DEF (всего 4).](assets/formula-log.jpg)
Щит волка (2) принял на себя первую часть — Power strike не игнорирует щиты, — и волк потерял 20 здоровья: с 31 до 11.
Та же карта в Card Battle:
![Карта действия Power strike в Card Battle: Target enemy, 1 AP, Formula a.atk * 1.5 + rand(0, a.str / 2), RequiredPoint 1.](assets/formula-card.jpg)
## Враги берут числа из своих характеристик
Здоровье волка 31, атака 7 и щит 2 нигде не записаны числами. RPG Plus даёт волку характеристики патчем:
```json
{ "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:
```json
"Values": [ "RequiredPoint=1", "Cost=mp:4", "Pierce=1", "Formula=a.mag * 2 + rand(1, 6)" ]
```
## Если что-то пошло не так
1. **Навык делает 0.** Какое-то имя в формуле — не характеристика игры (неизвестные имена считаются за 0), либо результат вышел отрицательным.
2. **Навык отклонён.** Персонажу не хватило очков действий либо характеристики-запаса, указанной в `Cost=`.
3. **У врага числа из файла, а не из характеристик.** У него нет `Stats`, `Archetype` или `Traits`.