Design notes
Battle
Battle HUD

- Purpose: what the player needs while fighting, and nothing in the drawing zones.
- In / out: a battle pushed over the location (
SceneFlow.StartBattle), or Practice battle from the Title. Out to Results. - Shows:
- Player (top-left): name, health and shield bars.
- Enemy (top-centre): name, health bar, attack wind-up bar and "attacks in 2.4 s"; later its status (staggered, shielded) as icons.
- Last cast (under the player panel): spell, quality word and score, and the damage sum. The full breakdown moves to Practice.
- Spells and Pause (top-right), 44 pt each; Flee under the player panel when the encounter allows it (
AllowFlee). - Breath ring in the upper middle (
StrokeView, 58% of the way up the screen), combat numbers by the enemy, the hint "Draw a spell with both thumbs at once" until the first cast.
- Actions: draw; Spells opens the spell panel (pauses; tap a spell to learn it, as today); Pause; Flee.
- States: learning (from the spell panel): the panel from the field cast replaces the last-cast chip. Practice battle: Flee is "Title".
- Variants the walkthroughs need: a plated or shielded enemy shows its shield as a second bar that empties on a stagger (the Sallow Wyrm, Act 1); a wagon health bar under the enemy panel (the Long Road defence, Act 2); a storm timer in place of the enemy's wind-up (the glass storm, Act 2); a fight timer (the colossus's Pull, Act 3); the Pane gauge, a bar from Still to Shattered across the top of the stage, and an ally bar for the chorus when the player fights beside it (Act 4). Each sits in the upper middle band, never in the drawing zones.
- Data: reads
BattleState, the encounter request and the cast results. Tune and the debug panel are development builds only.
Battle results: victory

- Purpose: close the fight and show what it earned.
- In / out: the enemy is defeated; Continue ends the battle and returns to the location (
SceneFlow.EndBattle). - Shows: "Victory", the enemy and a line of stats (casts, fizzles, time, best cast); reward tiles (XP with level progress, then materials and items); a level bar. Battles never pay copper (Items and Economy); a human who yields may leave a valuable.
- States: level up: a banner over the XP tile. Rewards count up one after another; a tap shows them all; Reduced motion shows them at once. No rewards (a sparring match): the stats and Continue only.
- Data: reads the encounter's XP and drops; writes them to the profile and inventory (
Encountersadds XP today).
Battle results: defeat

- Purpose: let the player try again, and give them a way to do better.
- In / out: the player's health reaches zero. Try again restarts the battle; the second button returns to the location.
- Shows: "Defeated", a line about the enemy, stats, and a tip for this enemy.
- Actions: Try again; Back to Sallowbank (the location, or what defeat leads to: open question 9).
- States: can't lose (
CanLosefalse, story fights): only Try again. Fled: no panel; the player is back in the location with a "You got away" toast. - Data: reads the encounter request and the enemy's tips.