fix: update Steady Hand prestige upgrade with real enchantment power effect
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s

This commit is contained in:
2026-05-29 15:23:40 +02:00
parent 06241e1e9a
commit 9e49aa1ca6
6 changed files with 18 additions and 5 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ export const PRESTIGE_DEF: Record<string, PrestigeDef> = {
insightAmp: { name: "Insight Amp", desc: "+25% insight gain", max: 4, cost: 1500 },
spireKey: { name: "Spire Key", desc: "Start at floor +2", max: 5, cost: 4000 },
temporalEcho: { name: "Temporal Echo", desc: "+10% mana generation", max: 5, cost: 3000 },
steadyHand: { name: "Steady Hand", desc: "-15% durability loss", max: 5, cost: 1200 },
steadyHand: { name: "Steady Hand", desc: "+15% enchantment power", max: 5, cost: 1200 },
ancientKnowledge: { name: "Ancient Knowledge", desc: "Start with blueprint discovered", max: 5, cost: 2000 },
elementalAttune: { name: "Elemental Attunement", desc: "+25 elemental mana cap", max: 10, cost: 600 },
spellMemory: { name: "Spell Memory", desc: "Start with random spell learned", max: 3, cost: 2500 },
+6 -1
View File
@@ -90,9 +90,12 @@ export interface UnifiedEffects extends ComputedEffects {
export function computeAllEffects(
equipmentInstances: Record<string, EquipmentInstance>,
equippedInstances: Record<string, string | null>,
prestigeUpgrades?: Record<string, number>,
): UnifiedEffects {
const upgradeEffects = computeEffects();
const equipmentEffects = computeEquipmentEffects(equipmentInstances, equippedInstances, upgradeEffects.enchantmentPowerMultiplier);
const steadyHandLevel = (prestigeUpgrades?.steadyHand || 0);
const enchantmentPowerMultiplier = upgradeEffects.enchantmentPowerMultiplier * (1 + steadyHandLevel * 0.15);
const equipmentEffects = computeEquipmentEffects(equipmentInstances, equippedInstances, enchantmentPowerMultiplier);
const disciplineEffects = computeDisciplineEffects();
const perElementCapBonus: Record<string, number> = { ...upgradeEffects.perElementCapBonus };
@@ -158,10 +161,12 @@ export function computeAllEffects(
export function getUnifiedEffects(state: {
equipmentInstances?: Record<string, EquipmentInstance>;
equippedInstances?: Record<string, string | null>;
prestigeUpgrades?: Record<string, number>;
}): UnifiedEffects {
return computeAllEffects(
state.equipmentInstances || {},
state.equippedInstances || {},
state.prestigeUpgrades,
);
}
+5
View File
@@ -29,12 +29,14 @@ export function useGameLoop() {
export function useUnifiedEffects() {
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades);
const disciplineEffects = computeDisciplineEffects();
return {
...getUnifiedEffects({
equippedInstances,
equipmentInstances,
prestigeUpgrades,
}),
disciplineEffects,
};
@@ -55,6 +57,7 @@ export function useManaStats() {
const upgradeEffects = getUnifiedEffects({
equippedInstances,
equipmentInstances,
prestigeUpgrades,
});
const maxMana = computeMaxMana(
@@ -105,12 +108,14 @@ export function useManaStats() {
*/
export function useCombatStats() {
const signedPacts = usePrestigeStore((s) => s.signedPacts);
const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades);
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
const upgradeEffects = getUnifiedEffects({
equippedInstances,
equipmentInstances,
prestigeUpgrades,
});
return {
+4 -1
View File
@@ -95,9 +95,12 @@ export const useGameStore = create<GameCoordinatorStore>()(
const addLog = (msg: string) => writes.logs.push(msg);
// Compute equipment and discipline effects
const steadyHandLevel = ctx.prestige.prestigeUpgrades.steadyHand || 0;
const enchantmentPowerMultiplier = 1 + steadyHandLevel * 0.15;
const equipmentEffects = computeEquipmentEffects(
ctx.crafting.equipmentInstances || {},
ctx.crafting.equippedInstances || {}
ctx.crafting.equippedInstances || {},
enchantmentPowerMultiplier,
);
const disciplineEffects = computeDisciplineEffects();
const allSpecials = new Set<string>([