From e7ce998ceeb1710b0180f81116625b43b65de86e Mon Sep 17 00:00:00 2001 From: zhipu Date: Fri, 27 Mar 2026 18:10:55 +0000 Subject: [PATCH] fix: add missing AchievementState type and stats tracking - Added AchievementDef interface for achievement definitions - Added AchievementState interface for tracking unlocked achievements - Added achievements, totalSpellsCast, totalDamageDealt, totalCraftsCompleted to GameState - Added default values for all new fields in makeInitial() - Added all new fields to persist partialize function - Fixes build error with achievements and stats tracking --- src/lib/game/store.ts | 15 +++++++++++++++ src/lib/game/types.ts | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/lib/game/store.ts b/src/lib/game/store.ts index 7e83416..ff661b6 100755 --- a/src/lib/game/store.ts +++ b/src/lib/game/store.ts @@ -481,6 +481,17 @@ function makeInitial(overrides: Partial = {}): GameState { skillTiers: overrides.skillTiers || {}, parallelStudyTarget: null, + // Achievements + achievements: { + unlocked: [], + progress: {}, + }, + + // Stats tracking + totalSpellsCast: 0, + totalDamageDealt: 0, + totalCraftsCompleted: 0, + // New equipment system equippedInstances: startingEquipment.equippedInstances, equipmentInstances: startingEquipment.equipmentInstances, @@ -1700,6 +1711,10 @@ export const useGameStore = create()( skillTiers: state.skillTiers, currentStudyTarget: state.currentStudyTarget, parallelStudyTarget: state.parallelStudyTarget, + achievements: state.achievements, + totalSpellsCast: state.totalSpellsCast, + totalDamageDealt: state.totalDamageDealt, + totalCraftsCompleted: state.totalCraftsCompleted, insight: state.insight, totalInsight: state.totalInsight, prestigeUpgrades: state.prestigeUpgrades, diff --git a/src/lib/game/types.ts b/src/lib/game/types.ts index 921dc88..6aae0f4 100755 --- a/src/lib/game/types.ts +++ b/src/lib/game/types.ts @@ -258,6 +258,34 @@ export interface LootInventory { blueprints: string[]; // blueprint IDs discovered } +// Achievement definitions +export interface AchievementDef { + id: string; + name: string; + desc: string; + category: string; + requirement: { + type: string; + value: number; + subType?: string; + }; + reward: { + insight?: number; + manaBonus?: number; + damageBonus?: number; + regenBonus?: number; + title?: string; + unlockEffect?: string; + }; + hidden?: boolean; +} + +// Achievement state tracks unlocked achievements and progress +export interface AchievementState { + unlocked: string[]; // IDs of unlocked achievements + progress: Record; // Progress toward achievement requirements +} + export type GameAction = 'meditate' | 'climb' | 'study' | 'craft' | 'repair' | 'convert' | 'design' | 'prepare' | 'enchant'; export interface ScheduleBlock { @@ -363,6 +391,14 @@ export interface GameState { // Parallel Study Target (for Parallel Mind milestone upgrade) parallelStudyTarget: StudyTarget | null; + // Achievements + achievements: AchievementState; + + // Stats tracking + totalSpellsCast: number; + totalDamageDealt: number; + totalCraftsCompleted: number; + // Prestige insight: number; totalInsight: number;