Add mod documentation in seven languages
This commit is contained in:
1 parent
e25421f925
commit
e7c3d4d462
18 files changed
+456
-8
No files matched your search
+64
@@ -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 на карте видно формулу, а подсказкой служит описание навыка:
|
||||
|
||||

|
||||
|
||||
У воина из 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 даёт волку характеристики патчем:
|
||||
|
||||
```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`.
|
||||
Reference in new issue
Block a user