refactor: remove skill system leftovers, migrate click mana to discipline perk
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m30s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m30s
- Simplified getMeditationBonus() to continuous ramp formula - Added click-mana capped perk to Mana Circulation discipline - Removed manaWell/manaFlow/manaSpring skill reads and prestige upgrades - Removed all skill fields from GameState and GameActionType - Updated all call sites and tests (916 tests passing) Closes #174
This commit is contained in:
+4
-25
@@ -88,12 +88,10 @@ export interface UnifiedEffects extends ComputedEffects {
|
||||
}
|
||||
|
||||
export function computeAllEffects(
|
||||
skillUpgrades: Record<string, string[]>,
|
||||
skillTiers: Record<string, number>,
|
||||
equipmentInstances: Record<string, EquipmentInstance>,
|
||||
equippedInstances: Record<string, string | null>,
|
||||
): UnifiedEffects {
|
||||
const upgradeEffects = computeEffects(skillUpgrades, skillTiers);
|
||||
const upgradeEffects = computeEffects();
|
||||
const equipmentEffects = computeEquipmentEffects(equipmentInstances, equippedInstances, upgradeEffects.enchantmentPowerMultiplier);
|
||||
const disciplineEffects = computeDisciplineEffects();
|
||||
|
||||
@@ -105,9 +103,6 @@ export function computeAllEffects(
|
||||
}
|
||||
}
|
||||
|
||||
// Per-element regen from discipline effects (regen_{element}) — no longer produced
|
||||
// by elemental disciplines (they now use conversion instead).
|
||||
// Kept for backward compatibility with any upgrade effects that may provide per-element regen.
|
||||
const perElementRegenBonus: Record<string, number> = { ...upgradeEffects.perElementRegenBonus };
|
||||
|
||||
// Merge per-element cap bonuses from discipline effects (elementCap_{element})
|
||||
@@ -158,14 +153,10 @@ export function computeAllEffects(
|
||||
}
|
||||
|
||||
export function getUnifiedEffects(state: {
|
||||
skillUpgrades?: Record<string, string[]>;
|
||||
skillTiers?: Record<string, number>;
|
||||
equipmentInstances?: Record<string, EquipmentInstance>;
|
||||
equippedInstances?: Record<string, string | null>;
|
||||
}): UnifiedEffects {
|
||||
return computeAllEffects(
|
||||
state.skillUpgrades || {},
|
||||
state.skillTiers || {},
|
||||
state.equipmentInstances || {},
|
||||
state.equippedInstances || {},
|
||||
);
|
||||
@@ -175,28 +166,21 @@ export function getUnifiedEffects(state: {
|
||||
|
||||
export function computeTotalMaxMana(
|
||||
state: {
|
||||
skills?: Record<string, number>;
|
||||
prestigeUpgrades?: Record<string, number>;
|
||||
skillUpgrades?: Record<string, string[]>;
|
||||
skillTiers?: Record<string, number>;
|
||||
equipmentInstances?: Record<string, EquipmentInstance>;
|
||||
equippedInstances?: Record<string, string | null>;
|
||||
},
|
||||
effects?: UnifiedEffects
|
||||
): number {
|
||||
const pu = state.prestigeUpgrades;
|
||||
const skillMult = effects?.skillLevelMultiplier || 1;
|
||||
const base = 100 + ((state.skills || {}).manaWell || 0) * 100 * skillMult + ((pu || {}).manaWell || 0) * 500;
|
||||
const base = 100 + ((pu || {}).manaWell || 0) * 500;
|
||||
const resolvedEffects = effects || getUnifiedEffects(state);
|
||||
return Math.floor((base + resolvedEffects.maxManaBonus) * resolvedEffects.maxManaMultiplier);
|
||||
}
|
||||
|
||||
export function computeTotalRegen(
|
||||
state: {
|
||||
skills?: Record<string, number>;
|
||||
prestigeUpgrades?: Record<string, number>;
|
||||
skillUpgrades?: Record<string, string[]>;
|
||||
skillTiers?: Record<string, number>;
|
||||
equipmentInstances?: Record<string, EquipmentInstance>;
|
||||
equippedInstances?: Record<string, string | null>;
|
||||
},
|
||||
@@ -204,8 +188,7 @@ export function computeTotalRegen(
|
||||
): number {
|
||||
const pu = state.prestigeUpgrades;
|
||||
const temporalBonus = 1 + ((pu?.temporalEcho || 0)) * 0.1;
|
||||
const skillMult = effects?.skillLevelMultiplier || 1;
|
||||
const base = 2 + (state.skills?.manaFlow || 0) * 1 * skillMult + (state.skills?.manaSpring || 0) * 2 * skillMult + (pu?.manaFlow || 0) * 0.5;
|
||||
const base = 2 + (pu?.manaFlow || 0) * 0.5;
|
||||
let regen = base * temporalBonus;
|
||||
const resolvedEffects = effects || getUnifiedEffects(state);
|
||||
regen = (regen + resolvedEffects.regenBonus + resolvedEffects.permanentRegenBonus) * resolvedEffects.regenMultiplier;
|
||||
@@ -214,16 +197,12 @@ export function computeTotalRegen(
|
||||
|
||||
export function computeTotalClickMana(
|
||||
state: {
|
||||
skills?: Record<string, number>;
|
||||
skillUpgrades?: Record<string, string[]>;
|
||||
skillTiers?: Record<string, number>;
|
||||
equipmentInstances?: Record<string, EquipmentInstance>;
|
||||
equippedInstances?: Record<string, string | null>;
|
||||
},
|
||||
effects?: UnifiedEffects
|
||||
): number {
|
||||
const skillMult = effects?.skillLevelMultiplier || 1;
|
||||
const base = 1 + (state.skills?.manaTap || 0) * 1 * skillMult + (state.skills?.manaSurge || 0) * 3 * skillMult;
|
||||
const base = 1;
|
||||
const resolvedEffects = effects || getUnifiedEffects(state);
|
||||
return Math.floor((base + resolvedEffects.clickManaBonus) * resolvedEffects.clickManaMultiplier);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user