Add first support tactic
This commit is contained in:
@@ -216,7 +216,7 @@ Classes provide movement, min/max attack range, skill access, growth grades, cla
|
||||
|
||||
## Skills
|
||||
|
||||
Skills define MP tactics. A class, officer, or scenario deployment can add skill ids to the runtime unit. `range` is `[min, max]` in Manhattan distance and can use `0` as the minimum for self-targeting support skills. Enemy AI can use `damage` and `heal` skills when it has enough MP.
|
||||
Skills define MP tactics. A class, officer, or scenario deployment can add skill ids to the runtime unit. `range` is `[min, max]` in Manhattan distance and can use `0` as the minimum for self-targeting support skills. Skill `kind` can be `damage`, `heal`, or `support`. Enemy AI can use `damage` and `heal` skills when it has enough MP.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -232,7 +232,9 @@ Skills define MP tactics. A class, officer, or scenario deployment can add skill
|
||||
}
|
||||
```
|
||||
|
||||
The current single-target tactic set includes `spark`, `fire_tactic`, `blaze`, `mend`, and `great_mend`. Hero and strategist classes get low-cost Spark alongside Fire/Mend, promoted command/advisor classes add Great Mend, and late scenario deployments can add stronger pressure skills such as Blaze without changing their base class.
|
||||
Support skills use an `effects` array. The first supported effect is `stat_bonus`, with `stat` in `atk`, `def`, `int`, or `agi`, a non-zero `amount`, and positive `duration_turns`. These effects are battle-only and expire when the target's team begins enough future phases.
|
||||
|
||||
The current single-target tactic set includes `spark`, `fire_tactic`, `blaze`, `mend`, `great_mend`, and `guard_order`. Hero and strategist classes get low-cost Spark alongside Fire/Mend and Guard Order, promoted command/advisor classes add Great Mend, and late scenario deployments can add stronger pressure skills such as Blaze without changing their base class.
|
||||
|
||||
## Terrain
|
||||
|
||||
@@ -461,7 +463,7 @@ Event-spawned units use the same compact deployment shape as scenario starting u
|
||||
|
||||
## Current Implementation
|
||||
|
||||
`scripts/core/data_catalog.gd` reads definition files once and `BattleState._apply_battle_data()` accepts either legacy `units` or catalog-backed `deployments`. Runtime units now carry `min_range`, `range`, `skills`, `exp`, `growth`, and `growth_bonus` so the battle resolver can handle counterattacks, MP tactics, EXP, level-ups, and enemy tactic AI without changing scenario files.
|
||||
`scripts/core/data_catalog.gd` reads definition files once and `BattleState._apply_battle_data()` accepts either legacy `units` or catalog-backed `deployments`. Runtime units now carry `min_range`, `range`, `skills`, `exp`, `growth`, `growth_bonus`, and battle-only `status_effects` so the battle resolver can handle counterattacks, MP tactics, support effects, EXP, level-ups, and enemy tactic AI without changing scenario files.
|
||||
|
||||
`scripts/core/campaign_state.gd` writes `user://campaign_save.json` with `save_version`, completed scenarios, gold, inventory counts, joined officers, pending post-battle choice scenario id, applied post-battle choice ids, campaign flags, and player roster progression. Roster snapshots include level, EXP, stats, class id/name, class-derived movement/range/growth fields, skills, and equipment. Rewards, joined/left officers, and post-battle choices are guarded by completed scenario id so restarting a finished battle does not duplicate gold, items, membership changes, or branch decisions. On load, completed-scenario officer join/leave transitions are reconciled without replaying gold or item rewards, which lets new officer rewards added to older completed scenarios become available to existing saves.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user