- Expand content to 18 zones, 72 bosses, 95 quests, 32 adventurer tiers
- Add prestige shop with 24 runestone upgrades across 5 categories
- Add PrestigeUpgrade type, data files, API routes, and frontend panel
- Fix offline earnings to include equipment and runestone multipliers
- Add offline essence calculation alongside offline gold
- Update OfflineModal to display both gold and essence earned
- Add IDEAS.md for tracking planned features
- Add user-configurable number format (suffix/scientific/engineering)
- Suffix: K/M/B/T through Dc (1e33), then letter-based a/b/c... indefinitely
- Scientific: 1.23e15 style via toExponential
- Engineering: exponent always a multiple of 3 (1.23E15)
- Stored in ProfileSettings, fetched from profile API on load
- Picker UI in EditProfileModal with live examples
- Cap all resource accumulation at 1e300 (RESOURCE_CAP constant)
- Per-resource FULL badge with tooltip in ResourceBar
- Amber notice strip when any resource is at cap
- handleClick also respects the cap
- Make EditProfileModal scrollable with viewport margin
- Flex column layout with sticky header, scrollable form body
- Bio textarea preserved as resizable with min-height
- Fix ReferenceError: formatNumber not defined in BossPanel/AchievementPanel
- Pass formatNumber as prop to BossCard and AchievementCard
- Pass formatNumber as parameter to conditionDescription
Zones now unlock in strict linear order. Each zone requires both the
final boss AND the final quest of the previous zone to be completed:
Verdant Vale → Shattered Ruins (forest_giant + ancient_ruins)
Shattered Ruins → Frozen Peaks (elder_dragon + dragon_lair)
Frozen Peaks → Shadow Marshes (void_titan + storm_citadel)
Shadow Marshes → Volcanic Depths (mud_kraken + plague_ruins)
Volcanic Depths → Astral Void (phoenix_lord + the_forge)
- Zone type gains `unlockQuestId` field alongside `unlockBossId`
- boss.ts checks both conditions before unlocking zone on boss defeat
- tick.ts checks both conditions and unlocks zones + first boss on
quest completion if the boss condition is already met
- GameContext optimistic update also respects dual-condition logic
- BossPanel zone-gate hints now show both "⚔️ Defeat: X & 📜 Complete: Y"
- game.ts backfill syncs unlockQuestId and re-verifies zone status
using both conditions, reverting incorrectly-unlocked saves
- Equipment system: 12 items across weapon/armour/trinket slots with
common/rare/epic/legendary rarities; starter commons auto-equipped,
higher tiers drop from boss victories
- Achievement system: 15 milestones with typed conditions; checked
each tick and crystal rewards applied automatically
- Achievement toast: slide-in notification, auto-dismisses after 4s
- Floating click text: +X gold floats on each manual click
- Expanded quests (9 total) and upgrades (12 total)
- Upgrade panel now shows locked upgrades so players can see their
progression path
- formatNumber utility (K/M/B/T) used consistently across all panels
- Backfill logic for existing saves to add new content gracefully
- types package now emits .d.ts declarations
Sets up the full monorepo with pnpm workspaces. Includes shared types
package, Hono API with Discord OAuth/JWT auth, Prisma v6 + MongoDB
Atlas, and React + Vite frontend with game loop, five tabs, and
Discord-linked save/load.