Commit Graph

14 Commits

Author SHA1 Message Date
Brian Fertig 63bca959c3 feat(swdbg): overhaul card data from physical set transcription
Regenerate all galaxy cards from the owner's physical card CSV
(assets/info/sw-force-cards.csv) with verified stats, abilities, and
bounty rewards. Cross-check is enforced by tools/verifySWDBG.js.

New mechanics:
- oppChoice: opponent picks between discard / giveForce / attackBoost
  (Duros Spy, B-Wing)
- dealDamage: exile-self effect targeting base OR enemy capital (Y-Wing)
- buyGalaxyDiscard: exile a unit to purchase from the discard pile
  (Jawa Scavenger)
- topdeckNextPurchase: next buy goes on deck top (Twi'lek Smuggler)
- takeRowTemp: borrow a row card, exile it at turn end (Grand Moff Tarkin)
- lookTopSwap: peek deck top, swap with a row card while Force is yours
  (Moff Jerjerrod)
- lookOppHand: reveal opponent's hand, optionally topdeck a card
  (Jyn Erso)
- purchaseToHand: onPurchase adds card to hand instead of discard
  (Fang Fighter)

New ability gates: requiresOppCapital, requiresTraitInPlay,
requiresOtherHero, requiresForce (on multi effects).

New constant ops: typeBoost (Admiral Piett), selfBoostPerBaseLost
(Baze Malbus). New timing: onPurchase.

Updated 55+ cards with corrected costs, attacks, HP, counts, traits,
and abilities. Added 11 new frames to the art sheet (55–65); 4 frames
orphaned but preserved.

Adds ~20 scripted rule spot-checks covering all new mechanics.
2026-07-08 22:07:48 -06:00
Brian Fertig b91879e51e refactor: rebalance card abilities and stats across factions
- Outer Rim Pilot: change from card exile to resource gain on self-exile
- TIE Fighter: reduce cost from 2 to 1
- Scout Trooper: add 2 attack, reduce target from 3 to 2
- Imperial Carrier: increase resources from 1 to 3
- Star Destroyer: increase attack from 3 to 4
- Duros Spy: change trait from Spy to Trooper
- Luke Skywalker: increase reward, change ability from onPlay to action, clarify target
- Hammerhead Corvette: reduce cost to 4, remove attack, add resources, clarify target options
- Mon Calamari Cruiser: reduce cost from 8 to 6, reduce hp from 8 to 6
- Kel Dor Mystic: add self-exile cost to ability
- IG-88: increase attack to 5, change from rowBonus to exileCards on bounty
2026-07-07 22:13:45 -06:00
Brian Fertig afd1681245 feat(swdbg): rework TIE Fighter, Vader, Cassian, Luke; add capital gate & force SFX
- Add `requiresCapital` ability gate to card definitions
- Rework TIE Fighter: constant boost → action that draws a card if you control a capital ship
- Rework Darth Vader: constant +4 attack while Force is with you (removed damage ability)
- Rework Cassian Andor: onBounty trigger forces opponent discard on galaxy row kills
- Rework Luke Skywalker: onPlay destroy enemy capital ship if Force is with you
- Centralize ability requirement checks via `abilityGatePasses()` helper
- Apply gate checks to onBounty, onPlay, and onReveal triggers
- Add Force track shift SFX (light/dark variations) with randomized playback
- Update verification tests for new card behaviors
2026-07-07 21:15:58 -06:00
Brian Fertig 137acc3500 feat: add default playfields for board games and new combat theme
- Add new "Future Combat" playfield image and configuration
- Assign default playfields to multiple games:
  - Stratego and Risk → combat
  - Checkers, Othello, Monopoly, Azul → cherry
  - Chess, Go, Backgammon → dark
  - Labyrinth → fantasy
2026-07-05 19:21:50 -06:00
Brian Fertig ee60d7fa1c feat(swdbg): add card dealing animations and opponent hand visualization
- Animate card draws, plays, and row refills with smooth flight transitions
  and mid-flight reveal flips during initial deal
- Introduce slot helper methods for consistent card positioning across
  renderers and animations
- Show opponent hand as face-down fan with visible draw/discard pile counts
- Track pending card UIDs to prevent rendering cards mid-animation
- Support game-specific default playfields via gamesRegistry
- Add guardFreshButton to prevent accidental clicks from pointer event bubbling
- Add Starscape and Fantasy playfields; set Starscape as default for Star Wars
2026-07-05 14:44:03 -06:00
Brian Fertig 0e93c6ed56 More adjustments 2026-07-04 17:48:34 -06:00
Brian Fertig 29cf5972b6 Dungeon Boss item positioning 2026-07-04 12:34:37 -06:00
Brian Fertig 57f9941dc4 feat: add card and base artwork spritesheets
- Add swdbg-cards-art.png and swdbg-bases-art.png spritesheets
- Add corresponding PSD source files
- Update swdbg-artwork.json to reference new art assets
- Adjust card sheet frame height from 230 to 155
2026-07-04 11:49:20 -06:00
Brian Fertig 6a49f5e2ae feat(dungeonboss,swdbg): add hover-to-zoom card previews and update art assets
- Add hover-to-zoom preview popup for cards in both DungeonBoss and SWDBG games
  (500ms delay, follows pointer, hides behind opponent videos)
- Add new artwork sprite sheets and update frame dimensions in JSON/config:
  dungeonboss-rooms 300×200, spells 300×160, heroes 300×225, bosses 300×275
  swdbg-cards-art 300×155 art window
- Introduce canonical CARD_ASPECT ratios and fitCardBox() for consistent card shapes
- Switch DungeonBoss opponent panels from dark to parchment theme
- Switch SWDBG card face from light to dark navy theme with updated accent colors
- Add setVideoVisible() to Portrait to pause videos during hover popups
- Update sprites.md documentation with new frame sizes and status
2026-07-03 18:21:44 -06:00
Brian Fertig ab6b2ce9fc feat: add Dungeon Boss and Star Wars Deckbuilder card games
Implement two complete card games with full rule engines, AI opponents
(5 skill levels), procedural rendering, and drop-in art support.

Dungeon Boss: Boss Monster-style dungeon building game for 2-4 players.
Players build dungeons of rooms and spells to lure and defeat heroes,
harvesting souls to win. Includes 8 bosses, 31 room cards, 16 spells,
and 41 heroes with class-based baiting mechanics.

Star Wars Deckbuilder: 2-player deckbuilding game. Players build decks
from faction and neutral cards, purchase from the galaxy row, bounty hunt
enemy units, and attack bases. First to destroy 3 enemy bases wins.
Includes 90-card galaxy deck, 10 bases with abilities, and the Force
mechanic.

Both games include:
- Pure logic engines (rules-verified by headless test suites)
- Synchronous heuristic AI with skill-based decision quality
- Phaser scenes with vector-rendered procedural art
- Drop-in sprite sheet support via JSON mappings
- Tutorial documentation and art specifications
- Registration in the game registry and scene loader
2026-07-03 07:32:41 -06:00
Brian Fertig 376f878a70 feat: add Jumble word puzzle game with 58 curated levels
Unscramble 4 base words, then collect circled letters to solve a riddle
bonus answer. Includes a seeded puzzle generator (tools/genJumble.js),
a verifier (tools/verifyJumble.js), and 58 procedurally generated levels
with progressive difficulty.

Also:
- Fix Pai Gow Poker seat rendering to only draw active seats
- Reduce Pai Gow max players from 6→5, max opponents from 5→4
- Add track 19 ("Down the Line" by Journey) to music
- Add Michael opponent voice lines (terry, victor)
- Update game-icons sprite sheet
2026-06-30 19:42:57 -06:00
Brian Fertig fb5a356268 fix: remove leading slashes from asset paths in config and markdown
Convert absolute root-relative paths to relative paths across all game
asset JSON configs (playfields, slots, shift, spireclimb) and tutorial
markdown files to fix path resolution.
2026-06-28 21:00:15 -06:00
Brian Fertig c3e745da5e fix: normalize opponent ID case and update battleship drag behavior
- Change Maurice's opponent ID from "Maurice" to "maurice" for consistency
- Replace Phaser disableInteractive/setDraggable with removeInteractive for fleet locking
- Update development server port from 8000 to 3000 in start_web.sh
2026-06-28 20:23:13 -06:00
Brian Fertig 52c78ae86a Major Port 2026-06-28 19:27:29 -06:00