Update Healer Man server

This commit is contained in:
phenom committed 2026-10-02 10:38:12 -04:00
1 parent 4c768fbec6
commit b16821e92e
330 files changed
+35406 -1760

No files matched your search

+50 -8
View File
@@ -1,5 +1,48 @@
import type { AbilityDefinition, AbilityEffect } from "./abilityCatalog";
export const ROM_PRIEST_WARRIOR_CONDENSED_RAGE_PHYSICAL_DAMAGE_BONUS = 0.22;
export const ROM_PRIEST_CHAMPION_RAGE_CONTROL_PER_COMPLETED_CHANNEL_SECOND = 20;
export const ROM_PRIEST_CHAMPION_RAGE_CONTROL_CHANNEL_SECOND_MS = 1_000;
export const ROM_PRIEST_VOW_OF_SILENCE_NPC_DURATION_MS = 8_400;
export const ROM_PRIEST_VOW_OF_SILENCE_CHARACTER_DURATION_MS = 4_200;
/** Current CoA Vow of Silence is 8.4s on NPCs and 4.2s on player targets. */
export function romPriestVowOfSilenceDurationMs(characterDefender: boolean): number {
return characterDefender
? ROM_PRIEST_VOW_OF_SILENCE_CHARACTER_DURATION_MS
: ROM_PRIEST_VOW_OF_SILENCE_NPC_DURATION_MS;
}
/** Current CoA Condensed Rage (493038) passively increases Physical Damage by 22%. */
export function romPriestWarriorCondensedRagePhysicalDamageMultiplier(
hasCondensedRage: boolean,
): number {
return hasCondensedRage
? 1 + ROM_PRIEST_WARRIOR_CONDENSED_RAGE_PHYSICAL_DAMAGE_BONUS
: 1;
}
export type RomPriestChampionRageControlProgress =
| { kind: "channel"; durationMs: number }
| { kind: "ordinary-cast"; durationMs: number };
/**
* Current CoA Rage Control (498610) grants 20 Rage per second of channeling.
* Only whole completed channel-seconds pay out; an ordinary cast never counts.
*/
export function romPriestChampionRageControlGain(
learnedRageControl: boolean,
progress: RomPriestChampionRageControlProgress,
): number {
if (!learnedRageControl || progress.kind !== "channel"
|| !Number.isFinite(progress.durationMs) || progress.durationMs <= 0) return 0;
const completedSeconds = Math.floor(
progress.durationMs / ROM_PRIEST_CHAMPION_RAGE_CONTROL_CHANNEL_SECOND_MS,
);
return completedSeconds * ROM_PRIEST_CHAMPION_RAGE_CONTROL_PER_COMPLETED_CHANNEL_SECOND;
}
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";
@@ -23,16 +66,15 @@ const PROTECTION_RUNE_SEAL_REGENERATE_PROC_AURA = {
}],
};
/** Infused Light Chain removes Chain of Light's base cooldown for Priest/Champion. */
/**
* The local Infused Light Chain cooldown rider is not present in current CoA:
* ID 498610 is now Rage Control, so it no longer overrides Chain of Light.
*/
export function romPriestChampionCooldownOverride(
ability: AbilityDefinition,
learnedPassiveSourceIds: readonly number[],
_ability: AbilityDefinition,
_learnedPassiveSourceIds: readonly number[],
): number | null {
if (ability.source !== "runewaker"
|| ability.classId !== "rom-priest"
|| ability.dbcSpellId !== 491164
|| !learnedPassiveSourceIds.includes(498610)) return null;
return 0;
return null;
}
/** Righteous Explosion removes every modeled harmful effect from the party. */