Update Healer Man server

This commit is contained in:
phenom committed 2026-09-30 09:57:13 -04:00
1 parent 35dfdaed61
commit 4fb7a0b9c8
161 files changed
+24618 -529

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
import type { AbilityEffect } from "./abilityCatalog";
import type { RomGeneratedAbilityLike } from "./romAbilitySemantics";
// NPC spell mitigation models these five resistance fields. RuneWaker's
// Elemental Weakness component (500365) is an all-resistance −30 modifier;
// expand it so the debuff affects the same fields used by damage resolution.
const MODELED_MAGIC_RESISTANCES = ["arcane", "fire", "frost", "nature", "shadow"] as const;
export function overrideRomMageEffects(
row: RomGeneratedAbilityLike,
translated: readonly AbilityEffect[],
): readonly AbilityEffect[] | null {
if (row.classId !== "rom-mage") return null;
// Meditative Current is a hit-triggered passive, not an always-on haste
// aura. Its exact trigger and cooldown are applied by romMageRuntime.
if (row.sourceSkillId === 493262) return [];
// Light of Day is a landed-hit proc for Mage/Knight builds, not an always-on
// damage aura. Its trigger and internal cooldown are applied at hit time.
if (row.sourceSkillId === 493034) return [];
if (row.sourceSkillId !== 490247) return null;
return translated.map((effect) => {
if (effect.kind !== "apply-aura") return effect;
const modifiers = effect.aura.modifiers ?? [];
if (!modifiers.some((modifier) => modifier.kind === "stat" && modifier.stat === "all-resistance")) {
return effect;
}
return {
...effect,
aura: {
...effect.aura,
modifiers: modifiers.flatMap((modifier) => modifier.kind === "stat" && modifier.stat === "all-resistance"
? MODELED_MAGIC_RESISTANCES.map((school) => ({ ...modifier, stat: `resistance:${school}` }))
: [modifier]),
},
};
});
}