Commit Graph

56 Commits

Author SHA1 Message Date
Brian Fertig d865634a2f refactor(data): rebalance card stats and update starter deck composition
- Significantly increase HP values across all Imperial and Raider cards to extend combat duration and emphasize defense mechanics.
- Adjust armor values on select units (e.g., Raider Berserker, Marauder) to better match their roles.
- Reformat `cards.json` skills into expanded multi-line objects for improved readability and maintainability.
- Update the default starter deck in `DeckManager` to a more focused composition: 4x Trooper, 3x Gunner, 3x Guardian.
- Reduce starting gold in `SaveManager` from 1500 to 400 to better align with the new economic balance.
2026-03-12 20:49:15 -06:00
Brian Fertig 5e0d17b2c4 feat(ui): add card art assets and dynamic image rendering
- Add PNG artwork assets for Imperial and Raider faction cards (commanders and units).
- Update `BootScene` to dynamically load card images based on `artKey` entries in `cards.json`.
- Refactor `CardObject` to render the loaded image over a faction-colored backing, falling back gracefully if the texture is missing.
- Replace the previous solid background rectangle with a transparent red overlay (`.bg`) for the attack flash animation, ensuring art remains visible during impacts.
2026-03-12 20:21:26 -06:00
Brian Fertig fc20545364 refactor(ui): unify card rendering with CardObject and remove HealthBar dependency
- Completely rewrite `CardObject` to use a structured layout: top banner (ATK/ARM), 16:9 image area, content section (name/skills), and bottom banner (HP/DLY).
- Remove the `HealthBar` class dependency; HP is now displayed as text within the card's bottom banner.
- Update `BattleScene` to use `CardObject` for Commander displays, ensuring visual consistency with lane cards and simplifying state updates via `.refresh()`.
- Refactor the card picker UI to instantiate actual `CardObjects` instead of manual rectangles/text, adding hover scale effects for better interactivity.
2026-03-12 18:02:47 -06:00
Brian Fertig e1656838fc refactor(combat): granular attack processing with live state updates
- Split `commitPlayerDeploy` into `beginCommit`, `processNextAttack`, and `finalizeCommit` to enable per-attack animation control.
- Introduce `_pendingAttacks` queue in CombatEngine to sequence attacks one by one, allowing the UI to react to intermediate damage (e.g., counter-kills).
- Refactor BattleScene commander rendering into persistent Containers (`commanderObjects`) that support live `refresh()` for HP/stats updates during combat.
- Update `_animateAttack` to handle commander targets and skip scale-back animations for dead cards, deferring cleanup to `_refreshCardAfterAttack`.
- Implement recursive attack loop in `_processNextAttackStep` that drives the battle forward, updating visuals immediately after each hit before proceeding.
2026-03-12 17:45:18 -06:00
Brian Fertig b9ee2b5aea refactor(combat): split turn into begin/commit phases with animated card picker
- Split CombatEngine.stepTurn() into beginTurn() (draw + AI deploy) and commitPlayerDeploy() (player choice + combat resolution).
- Add a card picker UI in BattleScene for player deployment, with pass option.
- Implement phased animations: deploy scale-in, sequential attack sequences with enlarged cards, particle bursts, shake/flash on defender, and floating damage numbers.
- Update CardObject to scale fonts/layout with card size and show ATK/HP/ARM/DLY stats plus skills text.
- Adjust battlefield layout constants (lane positions/commander column) and UI button placements for the new flow.
2026-03-12 17:11:17 -06:00
Brian Fertig 1a28234859 initial commit 2026-03-12 16:36:32 -06:00