Skip to content

Add Hanabi game#81

Merged
ICubE01 merged 5 commits into
mainfrom
feature/hanabi/impl-1
Jul 14, 2026
Merged

Add Hanabi game#81
ICubE01 merged 5 commits into
mainfrom
feature/hanabi/impl-1

Conversation

@ICubE01

@ICubE01 ICubE01 commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds Hanabi, a new cooperative card game, as a second game alongside Tichu.
  • Players can now create a Hanabi room and play a full game: give hints, play cards to build fireworks, and discard to regain clue tokens.
  • Supports rule variants (rainbow color mode) and bonus effects (free hint / recover-a-card when a firework is completed).

Backend

Features

  • games/common/domain — register Hanabi in GameName, GameBuilder, and GameRuleWrapper so it plugs into the generic game layer.
  • games/hanabi/Hanabi — core thread-safe game state: deck, hands, fireworks, clue/fuse tokens, turn flow, scoring, and end conditions.
  • games/hanabi/cards — card hierarchy (HanabiCard, HanabiColor, HanabiDeck, HeldCard, Firework) and clue model (Clue, ColorClue, ValueClue).
  • games/hanabi/HanabiRule + RainbowMode — configurable rule variants.
  • BonusEffect / PendingBonus — free-hint and recover-to-deck/play bonuses triggered on completing a firework.
  • HanabiService + HanabiEventHandler — orchestrate game events and broadcasts.
  • controllers/ — STOMP handlers: Start, SetRule, Play, Discard, Hint, ResolveBonus, Get (+ HanabiExceptionHandler).
  • dtos/, events/, mappers/HanabiMapper — message contracts and domain↔DTO mapping.
  • exceptions/NotYourTurn, InvalidAction, InvalidHint, NoClueTokens, MaxClueTokens.

Chore

  • .claude/docs/hanabi-rules.md — reference rules used for the implementation.

Tests

  • HanabiTest, cards/FireworkTest, cards/HanabiDeckTest, cards/HeldCardTest.

@ICubE01
ICubE01 merged commit e037774 into main Jul 14, 2026
2 checks passed
@ICubE01
ICubE01 deleted the feature/hanabi/impl-1 branch July 14, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant