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

+55 -1
View File
@@ -1,4 +1,27 @@
import type { AbilityDefinition } from "./abilityCatalog";
import type { AbilityDefinition, AbilityEffect } from "./abilityCatalog";
export const ROM_PRIEST_CHAMPION_REGENERATE_PROC_ID = "rom-priest-protection-rune-seal-reset";
export const ROM_PRIEST_CHAMPION_REGENERATE_PROC_ACTION_ID = "rom-priest-protection-rune-seal-reset-heart-rune";
export const ROM_PRIEST_CHAMPION_REGENERATE_PROC_AURA_ID = "rom-priest-protection-rune-seal-regenerate";
export const ROM_PRIEST_CHAMPION_REGENERATE_PROC_CHANCE = 0.08;
const ROM_PRIEST_REGENERATE_ABILITY_ID = "rom-priest-general-2";
const PROTECTION_RUNE_SEAL_REGENERATE_PROC_AURA = {
id: ROM_PRIEST_CHAMPION_REGENERATE_PROC_AURA_ID,
name: "Protection Rune Seal: Regenerate",
disposition: "buff" as const,
// Keep the exact 20-second final HoT tick eligible before aura expiry runs.
durationMs: 20_001,
hideFromAuraStrip: true,
procs: [{
id: ROM_PRIEST_CHAMPION_REGENERATE_PROC_ID,
triggers: "periodic" as const,
abilityIds: [ROM_PRIEST_REGENERATE_ABILITY_ID],
chance: ROM_PRIEST_CHAMPION_REGENERATE_PROC_CHANCE,
action: { kind: "custom" as const, id: ROM_PRIEST_CHAMPION_REGENERATE_PROC_ACTION_ID },
}],
};
/** Infused Light Chain removes Chain of Light's base cooldown for Priest/Champion. */
export function romPriestChampionCooldownOverride(
@@ -11,3 +34,34 @@ export function romPriestChampionCooldownOverride(
|| !learnedPassiveSourceIds.includes(498610)) return null;
return 0;
}
/** Righteous Explosion removes every modeled harmful effect from the party. */
export function romPriestChampionCastEffects(
ability: AbilityDefinition,
effects: readonly AbilityEffect[],
learnedPassiveSpellIds: readonly number[] = [],
): readonly AbilityEffect[] {
if (ability.source === "runewaker"
&& ability.classId === "rom-priest"
&& ability.dbcSpellId === 490269
&& learnedPassiveSpellIds.includes(498613)) {
return [{
kind: "apply-aura",
aura: PROTECTION_RUNE_SEAL_REGENERATE_PROC_AURA,
recipient: "caster",
sourceEffectType: -1,
sourceAuraType: -1,
miscValue: 0,
triggerSpellId: 498613,
}, ...effects];
}
if (ability.source !== "runewaker"
|| ability.classId !== "rom-champion"
|| ability.secondaryClassId !== "rom-priest"
|| ability.dbcSpellId !== 499836) return effects;
return effects.map((effect) => effect.kind === "dispel" && effect.mode === "cleanse"
? { ...effect, maxCount: 99, scope: "party" }
: effect);
}