Skip to content

feat: Compress Viva Las Vegas theme to a 0–70 scale - #78

Merged
Remi Dyon (raemone) merged 1 commit into
microsoft:mainfrom
Dewain27:feature/viva-las-vegas-70-scale
Oct 25, 2026
Merged

Remi Dyon (raemone) merged 1 commit into
microsoft:mainfrom
Dewain27:feature/viva-las-vegas-70-scale

Conversation

@Dewain27

Copy link
Copy Markdown
Contributor

Stacked on #77. This branch is built on top of the Viva Las Vegas theme PR. Until #77 merges, this diff also shows #77's commit. Review only the second commit: feat: compress Viva Las Vegas to a 0-70 scale with its own milestones.

Summary

Elvis now arrives at 70 responses instead of 130, so a typical bootcamp session can reach the full rags-to-riches arc.

Stage Before After
Broke alley cat 0 0
Penny slots 10 10
Blackjack 25 20
Roulette 50 30
777 Jackpot 75 40
High roller 100 55
Elvis (apex) 130 70

Per-theme milestones

Milestone celebrations used one shared ladder for every theme (10/25/50/75/100/…). Shrinking only the stage numbers would make the cat change between celebrations, so the stage-themed messages wouldn't line up. Instead:

  • THEME_CONTENT entries can now carry a milestones array, read through a new getMilestones(). getNextMilestone, getPrevMilestone, checkMilestone and getCatStateParam all use it.
  • Vegas uses 10 / 20 / 30 / 40 / 55 / 70, then 100 / 150 / 200 / 300 / 500. Every cat change gets its own jackpot, fireworks and message, and Elvis at 70 is a full milestone ("SEVENTY! The King has entered the building! 🎤👑"). In feat: Add Viva Las Vegas cat counter theme #77, the apex at 130 had no celebration.
  • Classic, Feed the Cat and Feed the Cat (German) don't set milestones, so they keep the shared ladder unchanged.

The stage images are renamed to their new counts (cat-stage-vegas-20.png and so on). The image content is unchanged.

Testing

  • tests/vegas-cat-theme.spec.mjs covers:
    • stage boundaries at 9/10/19/20/…/69/70/400
    • every Vegas stage firing a milestone, and 25/50/75 no longer firing for Vegas
    • the King message at 70
    • other themes still firing at 25 and not at 20 or 70
  • 27/27 Playwright tests pass.
  • In the browser: 69 shows the high roller with "69 / 70 to next milestone". 70 shows Elvis, the King milestone and "🎤 The King of Vegas! (70)".

🤖 Generated with Claude Code

Elvis now arrives at 70 responses instead of 130 so the full rags-to-riches
arc is reachable in a typical session.

- Stages move to 0/10/20/30/40/55/70 (images renamed to match).
- Themes can now supply their own milestone ladder (THEME_CONTENT
  `milestones`, read via getMilestones()). Vegas uses
  10/20/30/40/55/70/100/150/200/300/500 so every cat change gets its own
  jackpot celebration and message, and Elvis at 70 is a full milestone.
- Classic, Feed the Cat and German keep the shared 10/25/50/75/... ladder.
- Vegas milestone messages rewritten for the new counts.

Tests: Vegas spec covers the new boundaries, that every Vegas stage is a
milestone, that 25/50/75 no longer are for Vegas, and that other themes
keep the shared ladder. 27/27 Playwright tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Dewain27

Copy link
Copy Markdown
Contributor Author

Remi Dyon (@raemone) this one is stacked on #77. Could you please approve it after #77 is merged? Once it merges, please verify that it pushes to prod.

@raemone
Remi Dyon (raemone) merged commit ac204b0 into microsoft:main Oct 25, 2026
1 check passed
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.

2 participants