62 lines
2.1 KiB
TypeScript
62 lines
2.1 KiB
TypeScript
'use client';
|
|
|
|
import { usePrestigeStore } from '@/lib/game/stores';
|
|
import { useManaStats, useCombatStats, useStudyStats } from '@/lib/game/hooks/useGameDerived';
|
|
import { computeDisciplineEffects } from '@/lib/game/effects/discipline-effects';
|
|
import { ManaStatsSection } from './StatsTab/ManaStatsSection';
|
|
import { CombatStatsSection } from './StatsTab/CombatStatsSection';
|
|
import { PactStatusSection } from './StatsTab/PactStatusSection';
|
|
import { StudyStatsSection } from './StatsTab/StudyStatsSection';
|
|
import { ElementStatsSection } from './StatsTab/ElementStatsSection';
|
|
import { LoopStatsSection } from './StatsTab/LoopStatsSection';
|
|
import { DisciplineStatsSection } from './StatsTab/DisciplineStatsSection';
|
|
import { DebugName } from '@/components/game/debug/debug-context';
|
|
|
|
export function StatsTab() {
|
|
const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades);
|
|
|
|
const manaStats = useManaStats();
|
|
const combatStats = useCombatStats();
|
|
const studyStats = useStudyStats();
|
|
const disciplineEffects = computeDisciplineEffects();
|
|
|
|
// Compute element max (base + prestige only)
|
|
const elemMax = 10 + (prestigeUpgrades.elementalAttune || 0) * 25;
|
|
|
|
return (
|
|
<DebugName name="StatsTab">
|
|
<div className="space-y-4">
|
|
<ManaStatsSection
|
|
stats={{
|
|
...manaStats,
|
|
rawMana: manaStats.maxMana,
|
|
meditationCap: manaStats.meditationCap,
|
|
}}
|
|
elemMax={elemMax}
|
|
/>
|
|
<CombatStatsSection
|
|
activeSpellDef={combatStats.activeSpellDef}
|
|
pactMultiplier={combatStats.pactMultiplier}
|
|
/>
|
|
<PactStatusSection
|
|
pactMultiplier={combatStats.pactMultiplier}
|
|
pactInsightMultiplier={combatStats.pactInsightMultiplier}
|
|
/>
|
|
<StudyStatsSection
|
|
studySpeedMult={studyStats.studySpeedMult}
|
|
studyCostMult={studyStats.studyCostMult}
|
|
/>
|
|
<DisciplineStatsSection
|
|
disciplineEffects={disciplineEffects}
|
|
/>
|
|
<ElementStatsSection
|
|
elemMax={elemMax}
|
|
/>
|
|
<LoopStatsSection />
|
|
</div>
|
|
</DebugName>
|
|
);
|
|
}
|
|
|
|
StatsTab.displayName = "StatsTab";
|