refactor: eliminate as any type casts across 18 source files
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m34s

- Fix computeDisciplineEffects() to not require GameState parameter
- Fix getUnifiedEffects() to accept proper partial state type
- Replace upgradeEffects as any with proper UnifiedEffects type
- Replace explicit : any annotations with proper types (ComputedEffects, DesignProgress, SpellDef, etc.)
- Fix activity-log.ts eventType casting
- Fix crafting-design.ts computedEffects and designProgress types
- Fix page.tsx grimoire spell rendering with proper SpellDef property names
- Fix StatsTab ManaStatsSection with proper ManaStatsEffects interface
- Remove unused imports (useDisciplineStore from page.tsx, LeftPanel.tsx)

Remaining: 1 as any in craftingStore.ts (pre-existing CraftingStore/GameState architectural mismatch)
This commit is contained in:
2026-05-20 17:22:52 +02:00
parent df316c2865
commit 742a992d59
36 changed files with 1820 additions and 1460 deletions
+3 -3
View File
@@ -4,7 +4,7 @@
import type { EquipmentInstance, AppliedEnchantment, EnchantmentDesign, ApplicationProgress } from './types';
import { calculateApplicationTime, calculateApplicationManaPerHour } from './crafting-utils';
import { hasSpecial, SPECIAL_EFFECTS } from './effects/special-effects';
import { computeEffects } from './effects/upgrade-effects';
import type { ComputedEffects } from './effects/upgrade-effects.types';
import type { AttunementState } from './types';
import { calculateEnchantingXP, getAttunementXPForLevel, MAX_ATTUNEMENT_LEVEL } from './data/attunements';
import { ENCHANTMENT_EFFECTS } from './data/enchantment-effects';
@@ -91,7 +91,7 @@ export function calculateApplicationTick(
required: number,
currentManaSpent: number,
manaPerTick: number,
computedEffects: any
computedEffects: ComputedEffects
): ApplicationTickResult {
let progress = currentProgress + 0.04;
let manaSpent = currentManaSpent + manaPerTick;
@@ -131,7 +131,7 @@ export function calculateApplicationTick(
export function applyEnchantments(
instance: EquipmentInstance,
design: EnchantmentDesign,
computedEffects: any
computedEffects: ComputedEffects
): {
updatedInstance: EquipmentInstance;
xpGained: number;