fix: make discipline perk numerical bonuses functional via structured BonusSpec
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s

- Add PerkBonus type and optional bonus field to DisciplinePerk
- Populate bonus data on 39 perks across base, elemental, elemental-regen,
  elemental-regen-advanced, and invoker discipline files
- Rewrite computeDisciplineEffects() to apply once/infinite/capped perk bonuses
  through known stat keys (maxManaBonus, baseDamageBonus, regen_*, elementCap_*)
- Add per-element cap bonus routing in effects.ts computeAllEffects()
- Remove dead enchantPower bonus (no consumer in effects pipeline)
This commit is contained in:
2026-05-26 18:00:29 +02:00
parent ae30c4770c
commit da4f9eccb3
10 changed files with 88 additions and 15 deletions
+8
View File
@@ -102,6 +102,14 @@ export function computeAllEffects(
}
}
// Merge per-element cap bonuses from discipline effects (elementCap_{element})
for (const [key, value] of Object.entries(disciplineEffects.bonuses)) {
if (key.startsWith('elementCap_')) {
const element = key.replace('elementCap_', '');
perElementCapBonus[element] = (perElementCapBonus[element] || 0) + value;
}
}
const merged: UnifiedEffects = {
...upgradeEffects,
maxManaBonus: upgradeEffects.maxManaBonus + (equipmentEffects.bonuses.maxMana || 0) + (disciplineEffects.bonuses.maxManaBonus || 0),