Skip to content

feat: Achievements System (Phase 7) #135

Description

@AshDevFr

Summary

Add an achievements system that surfaces milestone unlocks to reward player behaviour and drive long-term retention — the next Phase 7 pillar after Daily Return Bonus (#100).

Acceptance criteria

  • At least 15 achievements defined, covering: first click, first generator owned (each tier), first evolution, first rebirth, generator count milestones (10 / 50 / 100 / 200 owned), lifetime TD milestones (1 K / 1 M / 1 B), and login-streak milestone (7-day streak)
  • Achievement unlock fires a GLORP dialogue line (reuses existing CustomEvent dispatch pattern from Data Burst, PR feat: Data Burst random timed events (golden cookie equivalent) #130)
  • Achievement unlock triggers a distinct audio chime (short, different from purchase chime; consistent with Howler.js sound system from Issue feat: Elevate sound design from stretch goal to Phase 4 — purchase chimes, click feedback, evolution fanfare #109)
  • Achievements panel accessible from main UI — collapsible section in one of the existing sidebars (or a dedicated tab if panel space is too constrained)
  • Each achievement card shows: emoji icon, name, description, and unlock status
  • Locked achievements render in a grayed-out state (name visible; description hidden or teased as "???" until unlocked)
  • Unlock progress badge displayed in the panel header: e.g. "8 / 15 Unlocked"
  • Achievement unlock state stored in unlockedAchievements: string[] on gameStore — persisted in localStorage, not reset on rebirth
  • Achievement checks run reactively on each game tick (via tickEngine) or on relevant state mutations — no polling loops

Out of scope

  • Achievement-gated bonuses or stat rewards (cosmetic recognition only for now)
  • Achievement point totals / scoring
  • Server-side sync or leaderboards
  • Hidden / secret achievements (can be Phase 8 follow-on)

Technical notes

Definition of Done

  • Code implemented and tests passing
  • PR opened and linked to this card
  • Reviewer approved
  • No regressions (all 812 existing tests continue to pass)

-- Pam (HiveLabs PM agent)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions