fix: resolve all Priority 5 CRASH/BLOCKER issues (#51-#57)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s
- #51: Fix broken import path @/types/disciplines → @/lib/game/types/disciplines - #52: Fix canProceedDiscipline() called with wrong arguments in discipline-slice.ts - #53: Add local useState for activeAttunement tab filtering in DisciplinesTab - #54: Make canProceedDiscipline() defensive when gameState is undefined - #57: Remove stale CraftingTab export from game/index.ts - Refactored DisciplineCard to use Zustand selector subscriptions properly - Added DisciplinePerk type import to discipline-math.ts
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// ─── Discipline Math Utilities ────────────────────────────────────────────────
|
||||
// Continuous scaling formulas for Active Disciplines
|
||||
|
||||
import type { DisciplineState, DisciplineDefinition } from '../types/disciplines';
|
||||
import type { DisciplineState, DisciplineDefinition, DisciplinePerk } from '../types/disciplines';
|
||||
|
||||
/**
|
||||
* Calculate continuous stat bonus from discipline XP
|
||||
@@ -64,21 +64,25 @@ export function canActivateDiscipline(
|
||||
*/
|
||||
export function canProceedDiscipline(
|
||||
discipline: DisciplineDefinition,
|
||||
disciplineState: DisciplineState,
|
||||
gameState: { elements?: Record<string, any>; rawMana?: number }
|
||||
disciplineState: DisciplineState | undefined,
|
||||
gameState?: { elements?: Record<string, any>; rawMana?: number }
|
||||
): boolean {
|
||||
if (!disciplineState) return true;
|
||||
if (disciplineState.paused) return false;
|
||||
|
||||
|
||||
// If no game state provided, allow activation (optimistic)
|
||||
if (!gameState) return true;
|
||||
|
||||
const drain = calculateManaDrain(
|
||||
discipline.drainBase,
|
||||
disciplineState.xp,
|
||||
discipline.difficultyFactor
|
||||
);
|
||||
|
||||
|
||||
if (discipline.manaType === 'raw') {
|
||||
return (gameState.rawMana || 0) >= drain;
|
||||
}
|
||||
|
||||
|
||||
const element = gameState.elements?.[discipline.manaType];
|
||||
return element && element.current >= drain;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user