Add run loop design doc
This commit is contained in:
parent
886b744db8
commit
22d7b1a54e
1 changed files with 49 additions and 0 deletions
49
docs/plans/2026-02-24-run-loop-design.md
Normal file
49
docs/plans/2026-02-24-run-loop-design.md
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
# run loop design
|
||||||
|
|
||||||
|
fight -> reward -> fight -> die -> restart
|
||||||
|
|
||||||
|
## run state
|
||||||
|
|
||||||
|
new layer above combat state:
|
||||||
|
- character ("ironclad")
|
||||||
|
- hp, maxHp
|
||||||
|
- deck (master deck, starts as starter, grows with reward picks)
|
||||||
|
- cardRewardsDeck (character's common + uncommon cards, shuffled)
|
||||||
|
- combatCount (tracking)
|
||||||
|
|
||||||
|
## after victory
|
||||||
|
|
||||||
|
- combat phase transitions to "rewards"
|
||||||
|
- reveal top 3 from cardRewardsDeck
|
||||||
|
- player picks 1 (added to master deck) or skips (all 3 shuffled back in)
|
||||||
|
- new combat starts: fresh enemy, player keeps HP and deck
|
||||||
|
|
||||||
|
## after defeat
|
||||||
|
|
||||||
|
- show defeat overlay with "try again" prompt
|
||||||
|
- clicking it starts a completely fresh run (starter deck, full hp, reshuffled rewards deck)
|
||||||
|
|
||||||
|
## reward ui
|
||||||
|
|
||||||
|
- 3 cards shown where the hand normally renders
|
||||||
|
- each card clickable to pick it
|
||||||
|
- "skip" button to pass on all 3
|
||||||
|
- uses existing card image rendering
|
||||||
|
|
||||||
|
## data flow
|
||||||
|
|
||||||
|
- createRunState(character) builds run state, including rewards deck from
|
||||||
|
cards.json (character's common + uncommon cards, shuffled)
|
||||||
|
- createCombatState accepts run state (deck, hp) instead of always using
|
||||||
|
starter deck and max hp
|
||||||
|
- on combat end, hp and deck flow back up to run state
|
||||||
|
- on reward pick, card moves from rewards deck to master deck
|
||||||
|
- on skip, revealed cards shuffle back into rewards deck
|
||||||
|
|
||||||
|
## board game rules followed
|
||||||
|
|
||||||
|
- card rewards deck is a pre-shuffled deck you draw through (not random generation)
|
||||||
|
- reveal 3, pick 1 or skip
|
||||||
|
- skipped cards shuffle back in immediately (full act-transition shuffle deferred)
|
||||||
|
- rare rewards are separate and not included yet (tied to map node types)
|
||||||
|
- source: docs/rules-canon.md, docs/reference.txt
|
||||||
Loading…
Reference in a new issue