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
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m19s
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Circular Dependencies
|
# Circular Dependencies
|
||||||
Generated: 2026-05-29T23:43:49.944Z
|
Generated: 2026-05-30T08:40:53.794Z
|
||||||
|
|
||||||
No circular dependencies found. ✅
|
No circular dependencies found. ✅
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_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.",
|
"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."
|
"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."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ Mana-Loop/
|
|||||||
│ ├── circular-deps.txt
|
│ ├── circular-deps.txt
|
||||||
│ ├── dependency-graph.json
|
│ ├── dependency-graph.json
|
||||||
│ └── project-structure.txt
|
│ └── project-structure.txt
|
||||||
|
├── e2e/
|
||||||
|
│ └── playtest.spec.ts
|
||||||
├── playwright-report/
|
├── playwright-report/
|
||||||
│ ├── data/
|
│ ├── data/
|
||||||
│ │ ├── 1513ea5b9ea5985996f67ca36f2bc4d34add51f1.webm
|
│ │ ├── 1513ea5b9ea5985996f67ca36f2bc4d34add51f1.webm
|
||||||
@@ -408,6 +410,10 @@ Mana-Loop/
|
|||||||
│ └── test/
|
│ └── test/
|
||||||
│ └── setup.ts
|
│ └── setup.ts
|
||||||
├── test-results/
|
├── 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
|
│ └── .last-run.json
|
||||||
├── .dockerignore
|
├── .dockerignore
|
||||||
├── .gitignore
|
├── .gitignore
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export function LeftPanel() {
|
|||||||
const maxMana = computeTotalMaxMana({ skills: {}, prestigeUpgrades, skillUpgrades: {}, skillTiers: {}, equippedInstances, equipmentInstances }, upgradeEffects);
|
const maxMana = computeTotalMaxMana({ skills: {}, prestigeUpgrades, skillUpgrades: {}, skillTiers: {}, equippedInstances, equipmentInstances }, upgradeEffects);
|
||||||
const baseRegen = computeTotalRegen({ 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 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 incursionStrength = getIncursionStrength(useGameStore((s) => s.day), useGameStore((s) => s.hour));
|
||||||
const effectiveRegen = baseRegen * (1 - incursionStrength) * meditationMultiplier;
|
const effectiveRegen = baseRegen * (1 - incursionStrength) * meditationMultiplier;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -91,7 +91,7 @@ function useGameDerivedStats() {
|
|||||||
}, upgradeEffects, disciplineEffects);
|
}, upgradeEffects, disciplineEffects);
|
||||||
|
|
||||||
const clickMana = computeClickMana({}, 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 incursionStrength = getIncursionStrength(day, hour);
|
||||||
|
|
||||||
const effectiveRegenWithSpecials = baseRegen * (1 - incursionStrength);
|
const effectiveRegenWithSpecials = baseRegen * (1 - incursionStrength);
|
||||||
|
|||||||
@@ -7,12 +7,11 @@ import { ELEMENT_OPPOSITES, FLOOR_ELEM_CYCLE } from '@/lib/game/constants';
|
|||||||
import { getGuardianForFloor, getAllGuardianFloors } from '@/lib/game/data/guardian-encounters';
|
import { getGuardianForFloor, getAllGuardianFloors } from '@/lib/game/data/guardian-encounters';
|
||||||
import type { GuardianDef } from '@/lib/game/types';
|
import type { GuardianDef } from '@/lib/game/types';
|
||||||
import { Card, CardContent } from '@/components/ui/card';
|
import { Card, CardContent } from '@/components/ui/card';
|
||||||
import { Button } from '@/components/ui/button';
|
|
||||||
import { Badge } from '@/components/ui/badge';
|
import { Badge } from '@/components/ui/badge';
|
||||||
import { ScrollArea } from '@/components/ui/scroll-area';
|
import { ScrollArea } from '@/components/ui/scroll-area';
|
||||||
import { SectionHeader } from '@/components/ui/section-header';
|
import { SectionHeader } from '@/components/ui/section-header';
|
||||||
import { DebugName } from '@/components/game/debug/debug-context';
|
import { DebugName } from '@/components/game/debug/debug-context';
|
||||||
import { Mountain } from 'lucide-react';
|
|
||||||
|
|
||||||
// ─── Guardian Data ────────────────────────────────────────────────────────────
|
// ─── Guardian Data ────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
@@ -364,17 +363,6 @@ export function SpireSummaryTab() {
|
|||||||
insight={insight}
|
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 && (
|
{nextGuardianData && nextGuardian && (
|
||||||
<NextGuardianCard nextGuardian={nextGuardian} nextGuardianData={nextGuardianData} />
|
<NextGuardianCard nextGuardian={nextGuardian} nextGuardianData={nextGuardianData} />
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ export function useManaStats() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const maxMana = useMemo(
|
const maxMana = useMemo(
|
||||||
() => computeMaxMana({ prestigeUpgrades }, upgradeEffects),
|
() => computeMaxMana({ prestigeUpgrades }, upgradeEffects, disciplineEffects),
|
||||||
[prestigeUpgrades, upgradeEffects]
|
[prestigeUpgrades, upgradeEffects, disciplineEffects]
|
||||||
);
|
);
|
||||||
|
|
||||||
const baseRegen = useMemo(
|
const baseRegen = useMemo(
|
||||||
@@ -56,7 +56,7 @@ export function useManaStats() {
|
|||||||
const disciplineEffects = computeDisciplineEffects();
|
const disciplineEffects = computeDisciplineEffects();
|
||||||
const meditationCap = 5.0 + disciplineEffects.meditationCapBonus;
|
const meditationCap = 5.0 + disciplineEffects.meditationCapBonus;
|
||||||
const meditationMultiplier = useMemo(
|
const meditationMultiplier = useMemo(
|
||||||
() => getMeditationBonus(meditateTicks, {}, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus),
|
() => getMeditationBonus(meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus),
|
||||||
[meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus]
|
[meditateTicks, upgradeEffects.meditationEfficiency, disciplineEffects.meditationCapBonus]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user