fix: pass disciplineEffects to computeMaxMana in useGameDerived (BUG #213), fix getMeditationBonus arg count in 3 files (BUG #212/#208), remove duplicate Climb button from SpireSummaryTab (BUG #211)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s

This commit is contained in:
2026-05-30 15:27:19 +02:00
parent b8e6d651b2
commit 90b309885e
7 changed files with 14 additions and 20 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
# Circular Dependencies
Generated: 2026-05-29T23:43:49.944Z
Generated: 2026-05-30T08:40:53.794Z
No circular dependencies found. ✅
+1 -1
View File
@@ -1,6 +1,6 @@
{
"_meta": {
"generated": "2026-05-29T23:43:46.156Z",
"generated": "2026-05-30T08:40:52.033Z",
"description": "Import dependency graph for src/lib/game. Keys are files, values are arrays of files they import.",
"usage": "To find what a file affects, search for its path in the VALUES. To find what a file depends on, look at its KEY entry."
},
+6
View File
@@ -14,6 +14,8 @@ Mana-Loop/
│ ├── circular-deps.txt
│ ├── dependency-graph.json
│ └── project-structure.txt
├── e2e/
│ └── playtest.spec.ts
├── playwright-report/
│ ├── data/
│ │ ├── 1513ea5b9ea5985996f67ca36f2bc4d34add51f1.webm
@@ -408,6 +410,10 @@ Mana-Loop/
│ └── test/
│ └── setup.ts
├── test-results/
│ ├── playtest-Mana-Loop---Compr-0eb11--crash-with-React-error-185-chromium/
│ │ ├── error-context.md
│ │ ├── test-failed-1.png
│ │ └── video.webm
│ └── .last-run.json
├── .dockerignore
├── .gitignore
+1 -1
View File
@@ -58,7 +58,7 @@ export function LeftPanel() {
const maxMana = computeTotalMaxMana({ skills: {}, prestigeUpgrades, skillUpgrades: {}, skillTiers: {}, equippedInstances, equipmentInstances }, upgradeEffects);
const baseRegen = computeTotalRegen({ skills: {}, prestigeUpgrades, skillUpgrades: {}, skillTiers: {}, equippedInstances, equipmentInstances }, upgradeEffects);
const clickMana = computeTotalClickMana({ skills: {}, skillUpgrades: {}, skillTiers: {}, equippedInstances, equipmentInstances }, upgradeEffects);
const meditationMultiplier = getMeditationBonus(meditateTicks, {}, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus);
const meditationMultiplier = getMeditationBonus(meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus);
const incursionStrength = getIncursionStrength(useGameStore((s) => s.day), useGameStore((s) => s.hour));
const effectiveRegen = baseRegen * (1 - incursionStrength) * meditationMultiplier;
+1 -1
View File
@@ -91,7 +91,7 @@ function useGameDerivedStats() {
}, upgradeEffects, disciplineEffects);
const clickMana = computeClickMana({}, disciplineEffects);
const meditationMultiplier = getMeditationBonus(meditateTicks, {}, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus);
const meditationMultiplier = getMeditationBonus(meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus);
const incursionStrength = getIncursionStrength(day, hour);
const effectiveRegenWithSpecials = baseRegen * (1 - incursionStrength);
+1 -13
View File
@@ -7,12 +7,11 @@ import { ELEMENT_OPPOSITES, FLOOR_ELEM_CYCLE } from '@/lib/game/constants';
import { getGuardianForFloor, getAllGuardianFloors } from '@/lib/game/data/guardian-encounters';
import type { GuardianDef } from '@/lib/game/types';
import { Card, CardContent } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { ScrollArea } from '@/components/ui/scroll-area';
import { SectionHeader } from '@/components/ui/section-header';
import { DebugName } from '@/components/game/debug/debug-context';
import { Mountain } from 'lucide-react';
// ─── Guardian Data ────────────────────────────────────────────────────────────
@@ -364,17 +363,6 @@ export function SpireSummaryTab() {
insight={insight}
/>
<DebugName name="ClimbSpireButton">
<Button
className="w-full bg-gradient-to-r from-amber-600 to-orange-600 hover:from-amber-700 hover:to-orange-600 text-white"
size="lg"
onClick={enterSpireMode}
>
<Mountain className="w-5 h-5 mr-2" />
Climb the Spire
</Button>
</DebugName>
{nextGuardianData && nextGuardian && (
<NextGuardianCard nextGuardian={nextGuardian} nextGuardianData={nextGuardianData} />
)}
+3 -3
View File
@@ -39,8 +39,8 @@ export function useManaStats() {
);
const maxMana = useMemo(
() => computeMaxMana({ prestigeUpgrades }, upgradeEffects),
[prestigeUpgrades, upgradeEffects]
() => computeMaxMana({ prestigeUpgrades }, upgradeEffects, disciplineEffects),
[prestigeUpgrades, upgradeEffects, disciplineEffects]
);
const baseRegen = useMemo(
@@ -56,7 +56,7 @@ export function useManaStats() {
const disciplineEffects = computeDisciplineEffects();
const meditationCap = 5.0 + disciplineEffects.meditationCapBonus;
const meditationMultiplier = useMemo(
() => getMeditationBonus(meditateTicks, {}, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus),
() => getMeditationBonus(meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus),
[meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus]
);