diff --git a/Frontend/src/core/economy.ts b/Frontend/src/core/economy.ts index 742551a..a3c6ed5 100644 --- a/Frontend/src/core/economy.ts +++ b/Frontend/src/core/economy.ts @@ -186,8 +186,9 @@ export function computePrestigeDna(lifetimeTadpoles: number, prestigeCount: numb // Milestones disponibles mais pas encore réclamés export function getClaimableMilestones(state: GameState): PrestigeMilestone[] { + const claimed = state.claimedMilestones ?? []; return PRESTIGE_MILESTONES.filter( - (m) => state.prestigeCount >= m.threshold && !state.claimedMilestones.includes(m.id) + (m) => state.prestigeCount >= m.threshold && !claimed.includes(m.id) ); } @@ -201,11 +202,12 @@ export function claimMilestone(state: GameState, milestoneId: string): GameState const milestone = PRESTIGE_MILESTONES.find((m) => m.id === milestoneId); if (!milestone) return null; if (state.prestigeCount < milestone.threshold) return null; - if (state.claimedMilestones.includes(milestoneId)) return null; + const claimed = state.claimedMilestones ?? []; + if (claimed.includes(milestoneId)) return null; let newState = { ...state, - claimedMilestones: [...state.claimedMilestones, milestoneId], + claimedMilestones: [...claimed, milestoneId], }; // Appliquer la récompense @@ -224,13 +226,13 @@ export function claimMilestone(state: GameState, milestoneId: string): GameState // Bonus gameplay cumulés depuis les milestones réclamés export function getMilestoneStartNid(state: GameState): number { - const claimed = state.claimedMilestones; + const claimed = state.claimedMilestones ?? []; if (claimed.includes("milestone_5")) return 1; // 1 Nid gratuit return 0; } export function getMilestoneOfflineBonus(state: GameState): number { - const claimed = state.claimedMilestones; + const claimed = state.claimedMilestones ?? []; if (claimed.includes("milestone_15")) return 0.05; // +5% offline cap return 0; }