后续改内容或结算顺序时有冻结依据,不必再翻原始稿才能对齐。 Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
# RULES
|
||
|
||
Game grammar for the simulation. Aligned with *Core Game Rules · v0.1* and the CLI combat slice.
|
||
|
||
## Entities and zones
|
||
|
||
Long-lived combat entities share one battlefield (`Board`, capacity 10 including system fields).
|
||
|
||
Zones: deck, hand, board, graveyard. Card type 场域 is `FieldCard`.
|
||
|
||
**CardInstance** keeps current `Cost` / stats / `HolderId` across zone moves. `CardDefinition` is the template only.
|
||
|
||
## Faction & Holder
|
||
|
||
A player’s held cards from all factions merge into one shared deck/hand/graveyard for combat. `HolderId` records which faction owns the instance (for upgrades). Who may draw/play is not limited by Holder.
|
||
|
||
## In-run progression (CLI full run)
|
||
|
||
`RunProgress` owns the persistent card list between fights. Combat mutations do not write back; only reward adds and explicit simple upgrades (`ReduceCost` / `+Attack` / `+Health`) change owned copies. `RunStats` and pack unlock evaluation are live for the current run and reset when the run ends.
|
||
|
||
## Economy
|
||
|
||
No automatic mana ramp. Energy persists and increases when effects/fields **GenerateEnergy** (supply).
|
||
|
||
**Guaranteed system field** (`card.system.base_field`): 0C, TurnStart supply 1, countdown 3. Placed on board at match start; not part of the 8+8 held cards; not in the draw pile.
|
||
|
||
## Attack & Activate
|
||
|
||
Independent once-per-turn resources (`AttacksRemaining`, `ActivatesRemaining`).
|
||
|
||
- Enter on your turn: attack count 0, activate count 1 (if any).
|
||
- Enter via opponent-turn-end summon: next BeginTurn grants attack count.
|
||
- Attack requires effective attack > 0.
|
||
- Activate does not consume attack and may be used the turn a creature enters.
|
||
|
||
## Damage / Heal
|
||
|
||
Events record Requested and Applied amounts. Applied may be 0.
|
||
|
||
## Countdown
|
||
|
||
At end of controller’s turn, countdown > 0 decreases by 1; at 0 the entity is destroyed (including system field).
|
||
|
||
## Triggers (v1)
|
||
|
||
`TurnStart`, `OnDestroyed`, `OnEnterBoard` (listeners when a **creature** enters), `OpponentTurnEnd`, `OnSupply`.
|
||
|
||
## Core actions
|
||
|
||
Unchanged 11-action dictionary in `docs/DESIGN.md`.
|
||
|
||
## Randomness
|
||
|
||
Only `GameRng`. Same seed + action log must replay.
|