generated from nhcarrigan/template
34d07bec95
## Summary Comprehensive balance pass addressing 20 tickets (#103–#122) plus one audit-discovered fix (#123), ensuring no player soft-locks and aligning all content counts with achievements and progression milestones. ### Changes - **Equipment** (#103–#111): Differentiated all stat pairs so every piece has a unique bonus combination; added missing stats to `eternal_flame` and increased `eternal_prism` multiplier to justify cost tier - **Recipes** (#112–#115): Added 4 cross-zone crafting recipes requiring materials from multiple zones to incentivise exploration breadth - **Achievements** (#116–#118): Aligned `fully_equipped` (40→65), `quest_eternal` (72→95), and `boss_eternal` (60→72) thresholds with actual content counts; updated `devourer_slayer` description - **Quest CP scaling** (#120–#122): Verified and corrected combat power requirements across all zones to follow consistent 4×/4× progression pattern - **Zone file ordering** (#123): Swapped Frozen Peaks and Shadow Marshes quest sections so file order matches the actual unlock chain (no gameplay change) ### Tickets Closed Closes #103 Closes #104 Closes #105 Closes #106 Closes #107 Closes #108 Closes #109 Closes #110 Closes #111 Closes #112 Closes #113 Closes #114 Closes #115 Closes #116 Closes #117 Closes #118 Closes #120 Closes #121 Closes #122 Closes #123 ✨ This PR was created with help from Hikari~ 🌸 Reviewed-on: #124 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
367 lines
11 KiB
TypeScript
367 lines
11 KiB
TypeScript
/**
|
|
* @file Game data definitions.
|
|
* @copyright nhcarrigan
|
|
* @license Naomi's Public License
|
|
* @author Naomi Carrigan
|
|
*/
|
|
/* eslint-disable max-lines -- Data file */
|
|
import type { Achievement } from "@elysium/types";
|
|
|
|
export const defaultAchievements: Array<Achievement> = [
|
|
// Click milestones
|
|
{
|
|
condition: { amount: 1, type: "totalClicks" },
|
|
description: "Click the Guild Hall for the first time.",
|
|
icon: "👆",
|
|
id: "first_click",
|
|
name: "First Strike",
|
|
reward: { crystals: 5 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 100, type: "totalClicks" },
|
|
description: "Click the Guild Hall 100 times.",
|
|
icon: "🖱️",
|
|
id: "click_enthusiast",
|
|
name: "Click Enthusiast",
|
|
reward: { crystals: 25 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 1000, type: "totalClicks" },
|
|
description: "Click the Guild Hall 1,000 times.",
|
|
icon: "⚡",
|
|
id: "click_master",
|
|
name: "Click Master",
|
|
reward: { crystals: 100 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 10_000, type: "totalClicks" },
|
|
description: "Click the Guild Hall 10,000 times.",
|
|
icon: "🌩️",
|
|
id: "click_legend",
|
|
name: "Click Legend",
|
|
reward: { crystals: 300 },
|
|
unlockedAt: null,
|
|
},
|
|
// Gold milestones
|
|
{
|
|
condition: { amount: 100, type: "totalGoldEarned" },
|
|
description: "Earn your first 100 gold.",
|
|
icon: "🪙",
|
|
id: "first_gold",
|
|
name: "First Gold",
|
|
reward: { crystals: 5 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 10_000, type: "totalGoldEarned" },
|
|
description: "Earn 10,000 gold in total.",
|
|
icon: "💰",
|
|
id: "wealthy",
|
|
name: "Wealthy",
|
|
reward: { crystals: 25 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 1_000_000, type: "totalGoldEarned" },
|
|
description: "Earn 1,000,000 gold in total.",
|
|
icon: "👑",
|
|
id: "rich",
|
|
name: "Rich",
|
|
reward: { crystals: 100 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 1_000_000_000, type: "totalGoldEarned" },
|
|
description: "Earn 1,000,000,000 gold in total.",
|
|
icon: "🏦",
|
|
id: "billionaire",
|
|
name: "Billionaire",
|
|
reward: { crystals: 500 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 1_000_000_000_000, type: "totalGoldEarned" },
|
|
description: "Earn 1,000,000,000,000 gold in total.",
|
|
icon: "💎",
|
|
id: "trillionaire",
|
|
name: "Trillionaire",
|
|
reward: { crystals: 2000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Quest milestones
|
|
{
|
|
condition: { amount: 1, type: "questsCompleted" },
|
|
description: "Complete your first quest.",
|
|
icon: "📜",
|
|
id: "first_quest",
|
|
name: "Adventurous Spirit",
|
|
reward: { crystals: 10 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 5, type: "questsCompleted" },
|
|
description: "Complete 5 quests.",
|
|
icon: "📚",
|
|
id: "quest_veteran",
|
|
name: "Quest Veteran",
|
|
reward: { crystals: 50 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 15, type: "questsCompleted" },
|
|
description: "Complete 15 quests.",
|
|
icon: "🗺️",
|
|
id: "quest_master",
|
|
name: "Quest Master",
|
|
reward: { crystals: 200 },
|
|
unlockedAt: null,
|
|
},
|
|
// Boss milestones
|
|
{
|
|
condition: { amount: 1, type: "bossesDefeated" },
|
|
description: "Defeat your first boss.",
|
|
icon: "⚔️",
|
|
id: "boss_slayer",
|
|
name: "Boss Slayer",
|
|
reward: { crystals: 25 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 5, type: "bossesDefeated" },
|
|
description: "Defeat 5 bosses.",
|
|
icon: "🗡️",
|
|
id: "boss_veteran",
|
|
name: "Boss Veteran",
|
|
reward: { crystals: 150 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 10, type: "bossesDefeated" },
|
|
description: "Defeat 10 bosses.",
|
|
icon: "🏆",
|
|
id: "legendary_hunter",
|
|
name: "Legendary Hunter",
|
|
reward: { crystals: 500 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 18, type: "bossesDefeated" },
|
|
description: "Defeat all 18 bosses across the first six zones.",
|
|
icon: "🌟",
|
|
id: "devourer_slayer",
|
|
name: "World Saver",
|
|
reward: { crystals: 2000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Adventurer milestones
|
|
{
|
|
condition: { amount: 50, type: "adventurerTotal" },
|
|
description: "Recruit a total of 50 adventurers.",
|
|
icon: "🏰",
|
|
id: "guild_master",
|
|
name: "Guild Master",
|
|
reward: { crystals: 50 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 500, type: "adventurerTotal" },
|
|
description: "Recruit a total of 500 adventurers.",
|
|
icon: "🛡️",
|
|
id: "army_commander",
|
|
name: "Army Commander",
|
|
reward: { crystals: 200 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 5000, type: "adventurerTotal" },
|
|
description: "Recruit a total of 5,000 adventurers.",
|
|
icon: "⚜️",
|
|
id: "army_legend",
|
|
name: "Legendary Commander",
|
|
reward: { crystals: 750 },
|
|
unlockedAt: null,
|
|
},
|
|
// Prestige milestones
|
|
{
|
|
condition: { amount: 1, type: "prestigeCount" },
|
|
description: "Prestige for the first time.",
|
|
icon: "⭐",
|
|
id: "first_prestige",
|
|
name: "Born Again",
|
|
reward: { crystals: 100 },
|
|
unlockedAt: null,
|
|
},
|
|
// Collection milestones
|
|
{
|
|
condition: { amount: 4, type: "equipmentOwned" },
|
|
description: "Acquire your first piece of boss-dropped equipment.",
|
|
icon: "🎒",
|
|
id: "collector",
|
|
name: "Collector",
|
|
reward: { crystals: 10 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 12, type: "equipmentOwned" },
|
|
description: "Own 12 pieces of equipment.",
|
|
icon: "🗃️",
|
|
id: "arsenal",
|
|
name: "Arsenal",
|
|
reward: { crystals: 200 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 25, type: "equipmentOwned" },
|
|
description: "Own 25 pieces of equipment.",
|
|
icon: "⚔️",
|
|
id: "well_armed",
|
|
name: "Well Armed",
|
|
reward: { crystals: 1000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 65, type: "equipmentOwned" },
|
|
description: "Own all 65 pieces of equipment.",
|
|
icon: "🛡️",
|
|
id: "fully_equipped",
|
|
name: "Fully Equipped",
|
|
reward: { crystals: 10_000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Higher click milestones
|
|
{
|
|
condition: { amount: 100_000, type: "totalClicks" },
|
|
description: "Click the Guild Hall 100,000 times.",
|
|
icon: "💥",
|
|
id: "click_obsessed",
|
|
name: "Click Obsessed",
|
|
reward: { crystals: 1000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 1_000_000, type: "totalClicks" },
|
|
description: "Click the Guild Hall 1,000,000 times.",
|
|
icon: "☄️",
|
|
id: "click_deity",
|
|
name: "Click Deity",
|
|
reward: { crystals: 5000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Endgame gold milestones
|
|
{
|
|
condition: { amount: 1e15, type: "totalGoldEarned" },
|
|
description: "Earn 1 quadrillion gold in total.",
|
|
icon: "✨",
|
|
id: "quadrillionaire",
|
|
name: "Quadrillionaire",
|
|
reward: { crystals: 10_000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 1e18, type: "totalGoldEarned" },
|
|
description: "Earn 1 quintillion gold in total.",
|
|
icon: "🌀",
|
|
id: "void_hoarder",
|
|
name: "Void Hoarder",
|
|
reward: { crystals: 50_000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Higher quest milestones
|
|
{
|
|
condition: { amount: 30, type: "questsCompleted" },
|
|
description: "Complete 30 quests.",
|
|
icon: "🏅",
|
|
id: "quest_champion",
|
|
name: "Quest Champion",
|
|
reward: { crystals: 1000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 50, type: "questsCompleted" },
|
|
description: "Complete 50 quests.",
|
|
icon: "🎖️",
|
|
id: "quest_grandmaster",
|
|
name: "Quest Grandmaster",
|
|
reward: { crystals: 5000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 95, type: "questsCompleted" },
|
|
description: "Complete all 95 quests across the known multiverse.",
|
|
icon: "🌌",
|
|
id: "quest_eternal",
|
|
name: "Quest Eternal",
|
|
reward: { crystals: 25_000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Higher boss milestones
|
|
{
|
|
condition: { amount: 20, type: "bossesDefeated" },
|
|
description: "Defeat 20 bosses.",
|
|
icon: "🦁",
|
|
id: "boss_champion",
|
|
name: "Champion of the Realm",
|
|
reward: { crystals: 1000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 30, type: "bossesDefeated" },
|
|
description: "Defeat 30 bosses.",
|
|
icon: "🔱",
|
|
id: "boss_grandmaster",
|
|
name: "Grandmaster Hunter",
|
|
reward: { crystals: 5000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 72, type: "bossesDefeated" },
|
|
description: "Defeat all 72 bosses across every plane of existence.",
|
|
icon: "💀",
|
|
id: "boss_eternal",
|
|
name: "Eternal Vanquisher",
|
|
reward: { crystals: 50_000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Higher adventurer milestones
|
|
{
|
|
condition: { amount: 50_000, type: "adventurerTotal" },
|
|
description: "Recruit a total of 50,000 adventurers.",
|
|
icon: "⚡",
|
|
id: "army_titan",
|
|
name: "Titan Commander",
|
|
reward: { crystals: 5000 },
|
|
unlockedAt: null,
|
|
},
|
|
// Higher prestige milestones
|
|
{
|
|
condition: { amount: 5, type: "prestigeCount" },
|
|
description: "Prestige 5 times.",
|
|
icon: "🌟",
|
|
id: "prestige_veteran",
|
|
name: "Veteran of Ages",
|
|
reward: { crystals: 1000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 10, type: "prestigeCount" },
|
|
description: "Prestige 10 times.",
|
|
icon: "💫",
|
|
id: "prestige_master",
|
|
name: "Master of Cycles",
|
|
reward: { crystals: 5000 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
condition: { amount: 25, type: "prestigeCount" },
|
|
description: "Prestige 25 times.",
|
|
icon: "🌠",
|
|
id: "prestige_legend",
|
|
name: "Legend of Eternity",
|
|
reward: { crystals: 25_000 },
|
|
unlockedAt: null,
|
|
},
|
|
];
|