Commit Graph

16 Commits

Author SHA1 Message Date
Brian Fertig e9c5a8afd1 Balatro All remaining Icons 2026-07-11 13:07:56 -06:00
Brian Fertig 4fe8d0861d refactor: lazy-load per-game assets and enhance Balatro visuals
Introduce lazy loading for game-specific artwork to reduce startup time.
Game assets are now defined in src/data/assetManifest.js and loaded on
first entry via src/services/assetLoader.js, replacing the previous
approach of loading all game art in PreloadScene.

Balatro improvements:
- Add bump/shake animation to chips and mult counters on score changes
- Animate round score flying into the left-bar readout with explosion
- Fix tween cleanup during view swaps to prevent crashes
- Add planetSheet artwork path to balatro-artwork.json
2026-07-11 08:40:23 -06:00
Brian Fertig 271cbfe3da feat(balatro): add CRT post-processing, rounded art rendering, and UI improvements
- Introduce BalatroCrtPipeline for subtle CRT effects (scanlines, grain, glitch bursts)
- Attach CRT pipeline to main camera with event-driven pulse on boss rounds and game over
- Add frameIsBlank check to detect blank/unpainted texture frames and fall back to procedural cards
- Implement roundedArtKey and addRoundedArt for rendering art with rounded corners
- Update joker, tarot, planet, spectral, deck, shop, and voucher rendering to use rounded art
- Increase font sizes across UI elements for better readability
- Add border strokes to joker cards with custom art
- Trigger CRT pulse on high multipliers (x2+) and score announcements
- Reference art image paths in balatro-artwork.json
2026-07-10 20:50:06 -06:00
Brian Fertig 160f6010b1 feat: add Balatro — poker roguelike game
Implement a complete Balatro clone with:
- Pure logic engine (BalatroLogic.js): seeded RNG, ante/blind state machine,
  shop, consumables, boss-blind hooks, save/load, endless mode
- Scoring pipeline (BalatroScoring.js): full poker evaluator (including secret
  hands, wilds, stones, smeared/fourFingers/shortcut passives) and chips×mult
  trace for deterministic scoring animation
- 114 Joker definitions with rich effect hooks (onScored, onHeld, independent,
  cardRetriggers, scaling state, copy via Blueprint/Brainstorm)
- 22 Tarots, 12 Planets, 15 Spectrals, 8 decks, 16 vouchers, 10 booster pack
  types, 20 boss blinds + 3 finishers
- Phaser scene with procedural card/Joker rendering, art-frame drop-in support,
  melty swirl background shader, and trace-based replay animation
- Headless verification suite (tools/verifyBalatro.js) with evaluator table
  tests, scoring goldens, 200-bot smoke test, determinism & mid-run serialize
  round-trip checks, and endless scaling tests
- Tutorial text and sprite-sheet layout documentation
2026-07-09 22:43:36 -06:00
Brian Fertig 61b86d909a Updated Card Images 2026-07-08 23:23:48 -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 a1503d19fe feat: enhance SWDBG animations and Dungeon Boss mid-walk casting
- SWDBG: add animated buy sequence with funding arcs, center-screen reveal,
  and face-down stow to discard/deck
- SWDBG: introduce stable row slot tracking so bought/lost cards don't shift
  neighbors; add ghost cards for pending animations
- SWDBG: add end-of-turn discard animations preserving old-hand positions;
  emit endTurnDiscard events from logic
- SWDBG: add deep-dive Buy/Attack buttons for actionable cards; refactor
  dealCardAnimated with startAs/flipTo/keepAlive support
- SWDBG: add drawArcArrow/drawArcArrows for converging attack visuals on
  bounty kills and base attacks
- Dungeon Boss: add mid-walk advRoom casting window after room events,
  letting players react to damage/kills during hero crawl
- Dungeon Boss: track walking hero in publicView and entranceHeroesOf so
  spells and AI heuristics can target mid-crawl heroes
- Dungeon Boss: replace pre-bait token snapshot with overlay system —
  pending bait heroes stay in town with fly-in tokens; pending draw cards
  show card backs until animations land
- Dungeon Boss: keep heroes in battle zone after roomHit/pass instead of
  returning them immediately
- Update images, registry (defaultPlayfield), and verifier (advRoomCasts)
2026-07-05 18:20:06 -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 e6d0b2ee5d feat: add Azul board game with tutorial videos and modal fix
- Implement Azul (tile-drafting game) with full game logic, AI (5 skill levels),
  spritesheet rendering, and animated wall-tiling/scoring
- Add Inês-flavored tutorial text and 96×96 tile spritesheet
- Register Azul in gamesRegistry, main.js, GameRoomScene, OpponentSelectScene,
  and PreloadScene
- Add tutorial videos for Blokus and Chinese Checkers
- Update Blokus and Chinese Checkers registry entries with hasTutorial: true
- Add Klaxon (mecha) tutorial for Blokus and Kage (samurai) tutorial for
  Chinese Checkers
- Fix TutorialModal close-button click fallthrough with transient shield overlay
2026-06-29 20:49:48 -06:00
Brian Fertig 52c78ae86a Major Port 2026-06-28 19:27:29 -06:00