feat: add missing achievement milestones and fix reward types (#188, #189, #190)

- Add quest_hero milestone at 75 quests (closes gap between 50 and 122)
- Add boss_legend milestone at 50 bosses (closes gap between 30 and 72)
- Replace crystal rewards on P50/P100/P150/P200 prestige achievements
  with runestones (100/500/2000/10000) — crystals become worthless by
  the time these are earned, runestones remain meaningful throughout
This commit is contained in:
2026-03-31 18:00:16 -07:00
committed by Naomi Carrigan
parent ac42da4c3b
commit 218a150540
+22 -4
View File
@@ -315,6 +315,15 @@ export const defaultAchievements: Array<Achievement> = [
reward: { crystals: 5000 },
unlockedAt: null,
},
{
condition: { amount: 75, type: "questsCompleted" },
description: "Complete 75 quests.",
icon: "🌠",
id: "quest_hero",
name: "Quest Hero",
reward: { crystals: 10_000 },
unlockedAt: null,
},
{
condition: { amount: 122, type: "questsCompleted" },
description: "Complete all 122 quests across the known multiverse.",
@@ -343,6 +352,15 @@ export const defaultAchievements: Array<Achievement> = [
reward: { crystals: 5000 },
unlockedAt: null,
},
{
condition: { amount: 50, type: "bossesDefeated" },
description: "Defeat 50 bosses.",
icon: "⚡",
id: "boss_legend",
name: "Legendary Vanquisher",
reward: { crystals: 15_000 },
unlockedAt: null,
},
{
condition: { amount: 72, type: "bossesDefeated" },
description: "Defeat all 72 bosses across every plane of existence.",
@@ -396,7 +414,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "✨",
id: "prestige_transcendent",
name: "Transcendent",
reward: { crystals: 10_000 },
reward: { runestones: 100 },
unlockedAt: null,
},
{
@@ -405,7 +423,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "💎",
id: "prestige_eternal",
name: "Eternal Looper",
reward: { crystals: 25_000 },
reward: { runestones: 500 },
unlockedAt: null,
},
{
@@ -414,7 +432,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "🌟",
id: "prestige_immortal",
name: "Immortal Cycler",
reward: { crystals: 50_000 },
reward: { runestones: 2000 },
unlockedAt: null,
},
{
@@ -423,7 +441,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "👑",
id: "prestige_absolute",
name: "Absolute Champion",
reward: { crystals: 100_000 },
reward: { runestones: 10_000 },
unlockedAt: null,
},
];