Commit Graph

14 Commits

Author SHA1 Message Date
funman300 b720588687 feat(engine): MoveRejectedEvent + PausePlugin (Esc)
- New MoveRejectedEvent fires from end_drag when the cursor is over
  a real pile but the placement is illegal. AudioPlugin plays
  card_invalid.wav on it.
- New PausePlugin + PausedResource: Esc toggles a full-window
  overlay and the flag. tick_elapsed_time and advance_time_attack
  skip work while paused. Help cheat sheet updated.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 22:56:35 -07:00
funman300 adacdf533c feat(engine,assetgen): synthesized SFX + kira AudioPlugin
- New solitaire_assetgen crate with gen_sfx binary: synthesizes
  five 44.1kHz mono 16-bit PCM WAVs (flip/place/deal/invalid/fanfare)
  from an LCG noise source + sine/square synths. Output committed
  under assets/audio/.
- AudioPlugin (engine): embeds the WAVs via include_bytes!, decodes
  once with kira::StaticSoundData, plays on Draw / Move / NewGame /
  GameWon events. card_invalid is loaded but unused — wiring it
  needs a MoveRejectedEvent.
- AudioManager kept on the main thread (NonSend) since cpal is !Send
  on some platforms; degrades gracefully if no audio device present.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 22:48:58 -07:00
funman300 7dfbff45d1 feat(engine): add HelpPlugin (H/?) and Challenge cleared toast
- HelpPlugin: full-window cheat sheet listing every keybinding,
  toggled with H or ?. Three unit tests cover open/close/slash.
- AnimationPlugin: ChallengeAdvancedEvent now surfaces as a
  3-second "Challenge N cleared!" toast.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 22:39:08 -07:00
funman300 193410200e feat(engine,core): add Time Attack mode + unlocks panel
- Core: GameMode::TimeAttack variant (no scoring/undo changes — session marker only)
- Engine: TimeAttackPlugin with TimeAttackResource, TimeAttackEndedEvent,
  T hotkey (gated to level >= 5), auto-deal on win, summary toast
- Engine: Stats overlay (S) gains an Unlocks subsection (card backs /
  backgrounds, sorted/deduped) and a live Time Attack panel while active

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 17:27:53 -07:00
funman300 294f6fe9d4 docs: mark Phase 6 part 4b (Challenge mode + level-5 gate) complete
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 17:18:50 -07:00
funman300 09d62f4255 docs: mark Phase 6 part 4a (elapsed time + Zen mode) complete
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 14:16:04 -07:00
funman300 0fdfbced6d docs: mark Phase 6 part 3 (completion toasts + progression panel) complete
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 19:28:26 -07:00
funman300 0609d4eef3 docs: mark Phase 6 part 2b (weekly goals) complete in session handoff
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 19:25:31 -07:00
funman300 578938a9b2 docs: mark Phase 6 part 2a (daily challenge + level-up toast) complete
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 19:18:04 -07:00
funman300 0cb8b32ec4 docs: mark Phase 6 part 1 (XP/levels) complete in session handoff
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 19:11:32 -07:00
funman300 5512a141b6 docs: mark Phase 5 complete in session handoff
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 12:54:40 -07:00
funman300 b9957909b1 docs: mark Phase 3 and Phase 4 complete in session handoff
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 12:44:18 -07:00
Solitaire Quest a8a323c6c3 chore(deps): replace bevy_egui+bevy_kira_audio with bevy_ui+kira, drop AssetServer 2026-04-23 21:02:46 -07:00
Solitaire Quest 3831fe691c docs: add session handoff document for Phase 3 continuation 2026-04-23 16:01:05 -07:00