fix: SpireTab store props, mana regen display, skill cost deduction, grimoire cost format, unequip store, add test suite
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m34s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m34s
This commit is contained in:
@@ -7,9 +7,10 @@ import { ManaDisplay } from '@/components/game';
|
||||
import { ActionButtons } from '@/components/game';
|
||||
import { CalendarDisplay } from '@/components/game';
|
||||
import { DebugName } from '@/lib/game/debug-context';
|
||||
import { useGameStore, useManaStore, useSkillStore, useCombatStore, useCraftingStore } from '@/lib/game/stores';
|
||||
import { useGameStore, useManaStore, useSkillStore, useCombatStore, useCraftingStore, usePrestigeStore } from '@/lib/game/stores';
|
||||
import { getUnifiedEffects } from '@/lib/game/effects';
|
||||
import { computeMaxMana, computeRegen, computeClickMana, getMeditationBonus, getIncursionStrength } from '@/lib/game/stores';
|
||||
import { getMeditationBonus, getIncursionStrength } from '@/lib/game/stores';
|
||||
import { computeTotalMaxMana, computeTotalRegen, computeTotalClickMana } from '@/lib/game/effects';
|
||||
|
||||
export function LeftPanel() {
|
||||
const [isGathering, setIsGathering] = useState(false);
|
||||
@@ -23,6 +24,8 @@ export function LeftPanel() {
|
||||
const skillTiers = useSkillStore((s) => s.skillTiers);
|
||||
const skillUpgrades = useSkillStore((s) => s.skillUpgrades);
|
||||
|
||||
const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades);
|
||||
|
||||
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
|
||||
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
|
||||
|
||||
@@ -77,19 +80,18 @@ export function LeftPanel() {
|
||||
equipmentInstances,
|
||||
});
|
||||
|
||||
const maxMana = computeMaxMana(
|
||||
{ skills, skillTiers, skillUpgrades },
|
||||
const maxMana = computeTotalMaxMana(
|
||||
{ skills, prestigeUpgrades, skillUpgrades, skillTiers, equippedInstances, equipmentInstances },
|
||||
upgradeEffects
|
||||
);
|
||||
const baseRegen = computeRegen(
|
||||
{ skills, skillTiers, skillUpgrades },
|
||||
const baseRegen = computeTotalRegen(
|
||||
{ skills, prestigeUpgrades, skillUpgrades, skillTiers, equippedInstances, equipmentInstances },
|
||||
upgradeEffects
|
||||
);
|
||||
const clickMana = computeTotalClickMana(
|
||||
{ skills, skillUpgrades, skillTiers, equippedInstances, equipmentInstances },
|
||||
upgradeEffects
|
||||
);
|
||||
const clickMana = computeClickMana({
|
||||
skills,
|
||||
skillTiers,
|
||||
skillUpgrades,
|
||||
});
|
||||
const meditationMultiplier = getMeditationBonus(meditateTicks, skills, upgradeEffects.meditationEfficiency);
|
||||
const incursionStrength = getIncursionStrength(day, hour);
|
||||
const effectiveRegen = baseRegen * (1 - incursionStrength) * meditationMultiplier;
|
||||
@@ -127,7 +129,7 @@ export function LeftPanel() {
|
||||
<DebugName name="ActionButtons">
|
||||
<ActionButtons
|
||||
currentAction={currentAction}
|
||||
currentStudyTarget={currentStudyTarget}
|
||||
currentStudyTarget={currentStudyTarget as any}
|
||||
designProgress={designProgress}
|
||||
designProgress2={designProgress2}
|
||||
preparationProgress={preparationProgress}
|
||||
|
||||
+5
-1
@@ -112,7 +112,11 @@ function GrimoireTab() {
|
||||
</div>
|
||||
<p className="text-sm text-gray-400 mb-3">{spell.desc}</p>
|
||||
<div className="text-xs text-gray-500 space-y-1">
|
||||
<div>Cost: {(spell.cost as any[]).map((c: any) => `${c.amount} ${c.type}`).join(', ')}</div>
|
||||
<div>Cost: {spell.cost.amount} {
|
||||
spell.cost.type === 'element'
|
||||
? spell.cost.element
|
||||
: 'raw mana'
|
||||
}</div>
|
||||
<div>Power: {spell.power}</div>
|
||||
{spell.effect && <div>Effect: {spell.effect}</div>}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user