Commit Graph

13 Commits

Author SHA1 Message Date
Brian Fertig 307704b90d feat: implement Deck Builder and Collection tutorial phases
- Added DECK_BUILDER_INTRO (7) and COLLECTION_INTRO (8) stages to TutorialManager.STAGES
- Implemented 3-phase Deck Builder tutorial in DeckBuilderScene with dimming overlays, pulsing arrows, and step-by-step guidance for deck management
- Added full-screen tutorial flow in MainMenuScene for both Deck Builder intro (with interactive button override) and Collection intro (highlighting save/restore buttons)
- Integrated tutorial progression logic to advance users through remaining stages after Fusion Intro
2026-03-31 23:24:13 -06:00
Brian Fertig 0ea053dc44 feat: add tutorial stages for Store intro (5) and Fusion intro (6)
- Extended TutorialManager to support new stages 5–6 and added hasFusibleCards() helper
- Integrated Store tutorial in MainMenuScene (triggered when gold > 400, redirects to Store)
- Added full interactive tutorial overlay in StoreScene highlighting imperial pack purchase flow
- Implemented Fusion Scene’s two-phase tutorial: phase 1 highlights fusible stacks with pulsing borders/arrows; phase 2 exposes forge video, preview, and Fuse button with instructions
- Updated BattleResultScene to redirect to Main Menu if gold > 400 and store tutorial incomplete, allowing Store scene to show its own tutorial next
- Completed stage 6 when player clicks Fuse button in FusionScene
2026-03-31 23:01:32 -06:00
Brian Fertig 2cfba2a893 refactor: rename "rupture" to "wound" and "sanctify" to "cleanse"
- Renamed skill name from rupture → wound throughout data/skills.json and data/cards.json (120+ occurrences)
- Updated all related logic in CombatEngine.js and SkillProcessor.js:
  * Phase renamed _rupturePhase → _woundPhase, event types updated
  * Tracker renamed ruptureTracker → woundTracker
  * Card property ruptureStacks → woundStacks
- Renamed skill name from sanctify → cleanse, changed trigger to postBattle and removed all-target support (now always cleanses all allies)
- Updated visual assets: badge text, sound keys (sfx_rupture → sfx_wound, sfx_sanctify → sfx_cleanse), status messages
- Adjusted strike skill values in cards.json (5→8, 7→14, 10→20, 15→30)
2026-03-28 09:41:49 -06:00
Brian Fertig 5a67484240 feat: implement comprehensive battle and campaign tutorial system
Adds a multi-stage tutorial system to guide new players through the core game mechanics:

- **Save System**: Bumps save version to 3 and adds `tutorialProgress` tracking with migration logic for existing saves.
- **MainMenuScene**: Introduces Stage 1 (Campaign Intro) overlay directing users to start the campaign.
- **CampaignSelectScene**: Adds Stage 2 overlay highlighting the "Raider Uprising" campaign selection.
- **CampaignScene**: Adds Stage 3 overlay explaining mission selection within a campaign.
- **BattleScene**: Implements Stages 4 & 5:
  - **Battle Intro**: Step-by-step walkthrough of Commander cards, explaining ATK, ARM, HP, DLY, and Skills.
  - **Battlefield Guide**: Visual explanation of the 4-lane system, card combat mechanics, unblocked attacks, and the "Next Turn" flow.

All tutorial overlays include interactive "Continue" or direct-action buttons, animated indicators, and depth management to prevent interaction with the underlying game state until the tutorial step is complete.
2026-03-25 22:06:04 -06:00
Brian Fertig 8b6ccba887 bump mission rewards and add first-clear card logic
- Increased gold rewards for several Imperial missions to improve progression pacing.
- Reformatted `missions.json` for consistency (multi-line arrays).
- Set default starting gold to 300 in `SaveManager`.
- Implemented first-clear-only card rewards in `BattleScene`; subsequent wins grant gold but no duplicate cards.
- Added consolation gold (50% of mission reward) on defeat.
- Fixed `CollectionScene` input priority and improved terminal typing speed and line wrapping.
2026-03-22 12:51:43 -06:00
Brian Fertig 77bbef1e5b Campaign 4 2026-03-21 15:07:09 -06:00
Brian Fertig 87e6b8f28b refactor(combat): restructure pre-battle phases and implement Xeno mechanics
Reorganize the combat turn sequence to handle Venom, Carapace, and Molt effects within the `_preBattlePhase`. This ensures damage and stat changes occur before buffs and attacks, allowing for accurate pre-attack animations and logic.

Key changes:
- **CombatEngine.js**:
  - Extracted `_moltPhase` and `_tryCarapace` to handle armor gain and HP conversion separately from the main attack loop.
  - Moved Venom and Molt execution to `_preBattlePhase` to run before `_commanderSkillPhase` and `_attackPhase`.
  - Updated pre-attack logic to capture `carapaceGain` for animation purposes without emitting duplicate events.
  - Added `moltRestore` logic to regenerate a fresh shell for attackers before they strike.
- **SkillProcessor.js**:
  - Adjusted `venom` skill logic to update stacks only if the target is below the new value, preventing redundant updates.
- **BattleScene.js**:
  - Updated event filtering and animation pipelines to handle `venomTick`, `carapace`, and `molt` events during the pre-battle sequence.
  - Added visual effects (sprites 27-31) and tween animations for Venom application, Carapace hardening, and Molt shedding/restoration.
  - Implemented `_restoreMoltForDisplay` and `_reapplyMolt` to ensure the UI renders pre-combat states correctly before animating changes.
- **CardManager.js**:
  - Added `baseArmor` tracking to support Carapace cap calculations.
- **Data**:
  - Updated `missions.json` to refine Xeno enemy lineups for missions 014 through 020.
  - Updated Xeno card assets and UI images.
2026-03-20 21:52:34 -06:00
Brian Fertig 0f1db0884c Campaign 3 2026-03-17 14:22:15 -06:00
Brian Fertig 217bf1148e ```
Refactor pack system to faction-specific packs with slot-based drops

- Split standard pack into 5 faction-specific packs (imperial, raider, bloodthirsty, xeno, righteous)
- Each pack has 3 guaranteed common slots + 1 special slot with tiered rarity distribution
- Packs unlock by completing their respective campaign missions
- Updated StoreScene to display faction colors, unlock status, and support pack opening animations

Fix bloodpact skill trigger timing and mechanics

- Changed bloodpact from preBattle to preAttack trigger (now fires per attack instead of once per turn)
- Reduced HP cost to 50% of value (was 100%), maintaining same ATK gain
- Moved bloodpact processing from _collectPreBattleFires to _buildPendingAttacks
- Added death check for self-killed cards during preAttack phase

Update drain skill description and trigger

- Changed drain from preBattle to preAttack trigger
- Updated description to clarify it targets the opposing card and its neighbors

Add fusion activation video and enhanced reveal effects

- Added forge2.mp4 for fusion animation (swaps with idle forge during activation)
- Implemented 3-phase energy vortex effect: particle streams, lightning bolts, convergence flash
- Faction-colored effects based on selected stack's faction

Update attack spritesheet and card data

- Updated attacks.png/psd with new bloodpact visual (frame 24)
- Changed all bloodpact skill triggers in cards.json from preBattle to preAttack
```
2026-03-15 18:28:33 -06:00
Brian Fertig 313d2548d9 feat: implement card leveling system and campaign progression
Adds a 5-level scaling system to all cards with progressively increasing stats and skill values. Introduces a campaign structure with unlock conditions, level requirements, and completion rewards that grant new cards and player level-ups.

Key changes:
- Refactored `data/cards.json` to use a `levels` array for stat progression
- Added `data/campaigns.json` defining 5 faction campaigns with mission lists and rewards
- Updated `CardManager.createInstance()` to accept a level parameter and resolve stats accordingly
- Implemented save migration (v1→v2) to track player level and unlocked campaigns
- Added `CampaignSelectScene` for browsing unlocked campaigns by faction/level
- Added `SkirmishSetupScene` allowing players to choose card levels for skirmishes
- Enhanced combat engine to pass level data to both player and AI decks
- Implemented visual animations for new skills: `enfeeble` (ATK reduction) and `jam` (skill suppression) with floating text feedback
- Updated UI components (Collection, Deck Builder, Store, Fusion) to display Level 1 stats by default
2026-03-14 13:00:16 -06:00
Brian Fertig 850a32c33f feat: Add sound effects for battle actions and menu interactions
Integrate audio feedback across the game by adding new SFX assets and loading them in `BootScene`. Key changes include:
- Added 12 new sound effect files (attacks, abilities, UI) and a main menu music track.
- Implemented SFX playback in `BattleScene` for actions like attacks, counters, mortar/strike/siege/pierce fires, buffs (rally), shields (protect), damage, destructions, and legendary card plays.
- Stopped main menu music during battles to avoid audio overlap and resumed it upon returning to `MainMenuScene`.
- Added hover and select sounds for UI buttons in `MainMenuScene`.
- Fixed deck composition in `DeckManager` by removing one 'imp_trooper_1' from the starter deck.
2026-03-14 08:47:26 -06:00
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 1a28234859 initial commit 2026-03-12 16:36:32 -06:00