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
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Circular Dependencies
|
# Circular Dependencies
|
||||||
Generated: 2026-05-29T13:07:07.851Z
|
Generated: 2026-05-29T13:10:03.724Z
|
||||||
|
|
||||||
No circular dependencies found. ✅
|
No circular dependencies found. ✅
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"generated": "2026-05-29T13:07:06.203Z",
|
"generated": "2026-05-29T13:10:02.096Z",
|
||||||
"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."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export const PRESTIGE_DEF: Record<string, PrestigeDef> = {
|
|||||||
insightAmp: { name: "Insight Amp", desc: "+25% insight gain", max: 4, cost: 1500 },
|
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 },
|
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 },
|
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 },
|
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 },
|
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 },
|
spellMemory: { name: "Spell Memory", desc: "Start with random spell learned", max: 3, cost: 2500 },
|
||||||
|
|||||||
@@ -90,9 +90,12 @@ export interface UnifiedEffects extends ComputedEffects {
|
|||||||
export function computeAllEffects(
|
export function computeAllEffects(
|
||||||
equipmentInstances: Record<string, EquipmentInstance>,
|
equipmentInstances: Record<string, EquipmentInstance>,
|
||||||
equippedInstances: Record<string, string | null>,
|
equippedInstances: Record<string, string | null>,
|
||||||
|
prestigeUpgrades?: Record<string, number>,
|
||||||
): UnifiedEffects {
|
): UnifiedEffects {
|
||||||
const upgradeEffects = computeEffects();
|
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 disciplineEffects = computeDisciplineEffects();
|
||||||
|
|
||||||
const perElementCapBonus: Record<string, number> = { ...upgradeEffects.perElementCapBonus };
|
const perElementCapBonus: Record<string, number> = { ...upgradeEffects.perElementCapBonus };
|
||||||
@@ -158,10 +161,12 @@ export function computeAllEffects(
|
|||||||
export function getUnifiedEffects(state: {
|
export function getUnifiedEffects(state: {
|
||||||
equipmentInstances?: Record<string, EquipmentInstance>;
|
equipmentInstances?: Record<string, EquipmentInstance>;
|
||||||
equippedInstances?: Record<string, string | null>;
|
equippedInstances?: Record<string, string | null>;
|
||||||
|
prestigeUpgrades?: Record<string, number>;
|
||||||
}): UnifiedEffects {
|
}): UnifiedEffects {
|
||||||
return computeAllEffects(
|
return computeAllEffects(
|
||||||
state.equipmentInstances || {},
|
state.equipmentInstances || {},
|
||||||
state.equippedInstances || {},
|
state.equippedInstances || {},
|
||||||
|
state.prestigeUpgrades,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,12 +29,14 @@ export function useGameLoop() {
|
|||||||
export function useUnifiedEffects() {
|
export function useUnifiedEffects() {
|
||||||
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
|
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
|
||||||
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
|
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
|
||||||
|
const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades);
|
||||||
const disciplineEffects = computeDisciplineEffects();
|
const disciplineEffects = computeDisciplineEffects();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...getUnifiedEffects({
|
...getUnifiedEffects({
|
||||||
equippedInstances,
|
equippedInstances,
|
||||||
equipmentInstances,
|
equipmentInstances,
|
||||||
|
prestigeUpgrades,
|
||||||
}),
|
}),
|
||||||
disciplineEffects,
|
disciplineEffects,
|
||||||
};
|
};
|
||||||
@@ -55,6 +57,7 @@ export function useManaStats() {
|
|||||||
const upgradeEffects = getUnifiedEffects({
|
const upgradeEffects = getUnifiedEffects({
|
||||||
equippedInstances,
|
equippedInstances,
|
||||||
equipmentInstances,
|
equipmentInstances,
|
||||||
|
prestigeUpgrades,
|
||||||
});
|
});
|
||||||
|
|
||||||
const maxMana = computeMaxMana(
|
const maxMana = computeMaxMana(
|
||||||
@@ -105,12 +108,14 @@ export function useManaStats() {
|
|||||||
*/
|
*/
|
||||||
export function useCombatStats() {
|
export function useCombatStats() {
|
||||||
const signedPacts = usePrestigeStore((s) => s.signedPacts);
|
const signedPacts = usePrestigeStore((s) => s.signedPacts);
|
||||||
|
const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades);
|
||||||
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
|
const equippedInstances = useCraftingStore((s) => s.equippedInstances);
|
||||||
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
|
const equipmentInstances = useCraftingStore((s) => s.equipmentInstances);
|
||||||
|
|
||||||
const upgradeEffects = getUnifiedEffects({
|
const upgradeEffects = getUnifiedEffects({
|
||||||
equippedInstances,
|
equippedInstances,
|
||||||
equipmentInstances,
|
equipmentInstances,
|
||||||
|
prestigeUpgrades,
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -95,9 +95,12 @@ export const useGameStore = create<GameCoordinatorStore>()(
|
|||||||
const addLog = (msg: string) => writes.logs.push(msg);
|
const addLog = (msg: string) => writes.logs.push(msg);
|
||||||
|
|
||||||
// Compute equipment and discipline effects
|
// Compute equipment and discipline effects
|
||||||
|
const steadyHandLevel = ctx.prestige.prestigeUpgrades.steadyHand || 0;
|
||||||
|
const enchantmentPowerMultiplier = 1 + steadyHandLevel * 0.15;
|
||||||
const equipmentEffects = computeEquipmentEffects(
|
const equipmentEffects = computeEquipmentEffects(
|
||||||
ctx.crafting.equipmentInstances || {},
|
ctx.crafting.equipmentInstances || {},
|
||||||
ctx.crafting.equippedInstances || {}
|
ctx.crafting.equippedInstances || {},
|
||||||
|
enchantmentPowerMultiplier,
|
||||||
);
|
);
|
||||||
const disciplineEffects = computeDisciplineEffects();
|
const disciplineEffects = computeDisciplineEffects();
|
||||||
const allSpecials = new Set<string>([
|
const allSpecials = new Set<string>([
|
||||||
|
|||||||
Reference in New Issue
Block a user