5.0 KiB
P9.2 Authoritative Automatic Battle Contract
Revision:
p9.2-contract-r1Baseline: P9.1 sourcecca5eae6247f37dc4ee51770819adb6ddfc51cc5Scope: one deterministic post-first-session encounter
1. Experience Contract
- Fantasy: command a small Guild line through a dangerous breach without manually firing skills.
- Primary action: commit the expedition and watch the selected professions physically advance and execute their jobs.
- Immediate result: within one second the party and enemy lines move; first contact visibly stops the melee line and starts authoritative attacks.
- Automation: movement, targeting, attacks, healing and cooldowns resolve automatically from fixed-tick state.
- Bottleneck: current member HP, enemy HP, contact pressure and remaining time are visible at all times.
- Recurring decision: continue for the victory or retreat after tick 50 to avoid a worse result. Retreat value changes with the visible battle state.
- Mastery: learn when each profession stabilizes, accelerates or fails the line and recognize a recoverable versus collapsing position.
- Continuation: the result names the cause and the exact future system that P9.3 will add; it does not pretend persistence already exists.
2. Fixed Encounter Fixture
The first implementation uses one source-bound fixture named
BREACH_WATCH_01. It is deterministic and intentionally narrow.
Player line
The encounter imports the current P9.1 field_order, stable member IDs, levels
and end-of-session HP. If a test starts the encounter directly, its fixture must
provide the same fields explicitly.
| Profession | Max HP | Automatic action |
|---|---|---|
| Hearthguard | 130 | Contact guard strike; lowers the next incoming melee hit. |
| Wayrunner | 100 | Fast contact strike; gains a flank hit when not first. |
| Farstring | 85 | Ranged shot from behind the contact line. |
| Kindhand | 90 | Heals the lowest-ratio living ally below 80%; otherwise makes a weak ranged hit. |
Enemy line
| Enemy | Max HP | Automatic action |
|---|---|---|
| Rift Bulwark | 180 | Advances to contact and attacks the first living Guild member. |
| Rift Spitter | 110 | Remains behind the Bulwark and attacks the lowest-HP-ratio living member. |
Numbers are fixture authority for P9.2 only. They are not the final campaign economy or content values.
3. Simulation Rules
- Fixed tick:
100 ms. - Encounter timeout: tick
900(90 s). - Positions are integer logical units on one horizontal axis.
- Guild starts left and advances right; enemies start right and advance left.
- Melee units stop when the distance to the opposing first living unit is at or below their contact range.
- Ranged units never move ahead of the current Guild contact member.
- One actor may resolve at most one action per tick.
- Dead actors act zero more times and are excluded from targets immediately after the resolving event batch.
- Victory: all enemies reach zero HP.
- Defeat: all deployed Guild members reach zero HP.
- Timeout: neither victory nor defeat at tick 900.
Each accepted tick emits an ordered event list. The outcome snapshot stores an event hash and state hash. Rendering and audio consume events but never mutate simulation authority.
4. Controls
| Control | Rule |
|---|---|
| Pause | Freezes accepted simulation ticks; UI/inspect remains responsive. |
| 1x / 2x | Changes how many fixed ticks are requested per wall-time interval; never changes event order or result. |
| Inspect | Opens recent authoritative events and current actor facts; state mutation is forbidden. |
| Retreat | Disabled before tick 50. First accepted command records one retreat-start tick. Duplicate commands return the original receipt. |
Retreat resolves at accepted_tick + 20. Actors may continue to resolve events
during withdrawal. If victory or defeat locks first, that outcome wins. A
completed retreat grants no Coin and applies no permanent casualty in P9.2.
5. Result Grammar
Every terminal page displays, in this order:
- Outcome: victory, defeat, timeout or retreat.
- Cause: the decisive event or unmet objective.
- Survivors: stable member IDs and current HP.
- Cost/reward: P9.2 victory uses one fixture receipt; other results grant zero.
- Next: Home/Restart, plus an explicit note that persistent casualty/recovery remains a later system.
No result may say a fallen member was permanently removed or restored.
6. Step Ownership
| Step | Owned paths |
|---|---|
| Contract | this file, Goal, plan, checkpoint, ledger |
| Domain | runtime/domain/p9_2/, runtime/tests/p9_2/authoritative_battle_domain_test.gd |
| Runtime UI | runtime/main.gd, P9.2 presentation adapters and focused UI test |
| Result/handoff | P9.2 result UI and result test only |
| Integrated gate | P9.2 runners/evidence docs and H5 delivery record |
7. Legal Terminal
Aetherbound Guild P9.2 authoritative battle candidate ready
or:
Aetherbound Guild P9.2 redesign required: <earliest failed product boundary>