generated from nhcarrigan/template
e9e0df31fd
- 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
140 lines
3.6 KiB
TypeScript
140 lines
3.6 KiB
TypeScript
import type { Achievement } from "@elysium/types";
|
|
|
|
export const DEFAULT_ACHIEVEMENTS: Achievement[] = [
|
|
{
|
|
id: "first_click",
|
|
name: "First Strike",
|
|
description: "Click the Guild Hall for the first time.",
|
|
icon: "👆",
|
|
condition: { type: "totalClicks", amount: 1 },
|
|
reward: { crystals: 5 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "click_enthusiast",
|
|
name: "Click Enthusiast",
|
|
description: "Click the Guild Hall 100 times.",
|
|
icon: "🖱️",
|
|
condition: { type: "totalClicks", amount: 100 },
|
|
reward: { crystals: 25 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "click_master",
|
|
name: "Click Master",
|
|
description: "Click the Guild Hall 1,000 times.",
|
|
icon: "⚡",
|
|
condition: { type: "totalClicks", amount: 1_000 },
|
|
reward: { crystals: 100 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "first_gold",
|
|
name: "First Gold",
|
|
description: "Earn your first 100 gold.",
|
|
icon: "🪙",
|
|
condition: { type: "totalGoldEarned", amount: 100 },
|
|
reward: { crystals: 5 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "wealthy",
|
|
name: "Wealthy",
|
|
description: "Earn 10,000 gold in total.",
|
|
icon: "💰",
|
|
condition: { type: "totalGoldEarned", amount: 10_000 },
|
|
reward: { crystals: 25 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "rich",
|
|
name: "Rich",
|
|
description: "Earn 1,000,000 gold in total.",
|
|
icon: "👑",
|
|
condition: { type: "totalGoldEarned", amount: 1_000_000 },
|
|
reward: { crystals: 100 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "billionaire",
|
|
name: "Billionaire",
|
|
description: "Earn 1,000,000,000 gold in total.",
|
|
icon: "🏦",
|
|
condition: { type: "totalGoldEarned", amount: 1_000_000_000 },
|
|
reward: { crystals: 500 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "first_quest",
|
|
name: "Adventurous Spirit",
|
|
description: "Complete your first quest.",
|
|
icon: "📜",
|
|
condition: { type: "questsCompleted", amount: 1 },
|
|
reward: { crystals: 10 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "quest_veteran",
|
|
name: "Quest Veteran",
|
|
description: "Complete 5 quests.",
|
|
icon: "📚",
|
|
condition: { type: "questsCompleted", amount: 5 },
|
|
reward: { crystals: 50 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "boss_slayer",
|
|
name: "Boss Slayer",
|
|
description: "Defeat your first boss.",
|
|
icon: "⚔️",
|
|
condition: { type: "bossesDefeated", amount: 1 },
|
|
reward: { crystals: 25 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "legendary_hunter",
|
|
name: "Legendary Hunter",
|
|
description: "Defeat all four bosses.",
|
|
icon: "🏆",
|
|
condition: { type: "bossesDefeated", amount: 4 },
|
|
reward: { crystals: 200 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "guild_master",
|
|
name: "Guild Master",
|
|
description: "Recruit a total of 50 adventurers.",
|
|
icon: "🏰",
|
|
condition: { type: "adventurerTotal", amount: 50 },
|
|
reward: { crystals: 50 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "army_commander",
|
|
name: "Army Commander",
|
|
description: "Recruit a total of 500 adventurers.",
|
|
icon: "🛡️",
|
|
condition: { type: "adventurerTotal", amount: 500 },
|
|
reward: { crystals: 200 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "first_prestige",
|
|
name: "Born Again",
|
|
description: "Prestige for the first time.",
|
|
icon: "⭐",
|
|
condition: { type: "prestigeCount", amount: 1 },
|
|
reward: { crystals: 100 },
|
|
unlockedAt: null,
|
|
},
|
|
{
|
|
id: "collector",
|
|
name: "Collector",
|
|
description: "Acquire your first piece of boss-dropped equipment.",
|
|
icon: "🎒",
|
|
condition: { type: "equipmentOwned", amount: 4 },
|
|
reward: { crystals: 10 },
|
|
unlockedAt: null,
|
|
},
|
|
];
|