fix: add missing AchievementState type and stats tracking
Some checks failed
Build and Publish Mana Loop Docker Image / build-and-publish (push) Has been cancelled
Some checks failed
Build and Publish Mana Loop Docker Image / build-and-publish (push) Has been cancelled
- 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
This commit is contained in:
@@ -481,6 +481,17 @@ function makeInitial(overrides: Partial<GameState> = {}): GameState {
|
|||||||
skillTiers: overrides.skillTiers || {},
|
skillTiers: overrides.skillTiers || {},
|
||||||
parallelStudyTarget: null,
|
parallelStudyTarget: null,
|
||||||
|
|
||||||
|
// Achievements
|
||||||
|
achievements: {
|
||||||
|
unlocked: [],
|
||||||
|
progress: {},
|
||||||
|
},
|
||||||
|
|
||||||
|
// Stats tracking
|
||||||
|
totalSpellsCast: 0,
|
||||||
|
totalDamageDealt: 0,
|
||||||
|
totalCraftsCompleted: 0,
|
||||||
|
|
||||||
// New equipment system
|
// New equipment system
|
||||||
equippedInstances: startingEquipment.equippedInstances,
|
equippedInstances: startingEquipment.equippedInstances,
|
||||||
equipmentInstances: startingEquipment.equipmentInstances,
|
equipmentInstances: startingEquipment.equipmentInstances,
|
||||||
@@ -1700,6 +1711,10 @@ export const useGameStore = create<GameStore>()(
|
|||||||
skillTiers: state.skillTiers,
|
skillTiers: state.skillTiers,
|
||||||
currentStudyTarget: state.currentStudyTarget,
|
currentStudyTarget: state.currentStudyTarget,
|
||||||
parallelStudyTarget: state.parallelStudyTarget,
|
parallelStudyTarget: state.parallelStudyTarget,
|
||||||
|
achievements: state.achievements,
|
||||||
|
totalSpellsCast: state.totalSpellsCast,
|
||||||
|
totalDamageDealt: state.totalDamageDealt,
|
||||||
|
totalCraftsCompleted: state.totalCraftsCompleted,
|
||||||
insight: state.insight,
|
insight: state.insight,
|
||||||
totalInsight: state.totalInsight,
|
totalInsight: state.totalInsight,
|
||||||
prestigeUpgrades: state.prestigeUpgrades,
|
prestigeUpgrades: state.prestigeUpgrades,
|
||||||
|
|||||||
@@ -258,6 +258,34 @@ export interface LootInventory {
|
|||||||
blueprints: string[]; // blueprint IDs discovered
|
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<string, number>; // Progress toward achievement requirements
|
||||||
|
}
|
||||||
|
|
||||||
export type GameAction = 'meditate' | 'climb' | 'study' | 'craft' | 'repair' | 'convert' | 'design' | 'prepare' | 'enchant';
|
export type GameAction = 'meditate' | 'climb' | 'study' | 'craft' | 'repair' | 'convert' | 'design' | 'prepare' | 'enchant';
|
||||||
|
|
||||||
export interface ScheduleBlock {
|
export interface ScheduleBlock {
|
||||||
@@ -363,6 +391,14 @@ export interface GameState {
|
|||||||
// Parallel Study Target (for Parallel Mind milestone upgrade)
|
// Parallel Study Target (for Parallel Mind milestone upgrade)
|
||||||
parallelStudyTarget: StudyTarget | null;
|
parallelStudyTarget: StudyTarget | null;
|
||||||
|
|
||||||
|
// Achievements
|
||||||
|
achievements: AchievementState;
|
||||||
|
|
||||||
|
// Stats tracking
|
||||||
|
totalSpellsCast: number;
|
||||||
|
totalDamageDealt: number;
|
||||||
|
totalCraftsCompleted: number;
|
||||||
|
|
||||||
// Prestige
|
// Prestige
|
||||||
insight: number;
|
insight: number;
|
||||||
totalInsight: number;
|
totalInsight: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user