Update Healer Man server
This commit is contained in:
1 parent
35dfdaed61
commit
4fb7a0b9c8
161 files changed
+24618
-529
No files matched your search
@@ -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]),
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user