Update Healer Man server

This commit is contained in:
phenom committed 2026-09-27 14:31:15 -04:00
1 parent ab1434a3b8
commit e284f4fc76
60 files changed
+2704 -118

No files matched your search

+28 -2
View File
@@ -28,6 +28,21 @@ export type CombatPresentationSchool =
export type CombatPresentationSource = "wow335" | "ascension" | "runewaker" | "fallback";
export type CombatPresentationPosition = readonly [number, number, number];
export const PENANCE_DAMAGE_VISUAL_SPELL_ID = 47666;
export const PENANCE_HEAL_VISUAL_SPELL_ID = 47750;
export function penancePulseVisualSpellId(hostile: boolean): number {
return hostile ? PENANCE_DAMAGE_VISUAL_SPELL_ID : PENANCE_HEAL_VISUAL_SPELL_ID;
}
export function isPenancePulseVisual(
event: Pick<CombatPresentationEvent, "abilityId" | "sourceSpellId">,
): boolean {
return event.abilityId === "wow335-priest-penance"
&& (event.sourceSpellId === PENANCE_DAMAGE_VISUAL_SPELL_ID
|| event.sourceSpellId === PENANCE_HEAL_VISUAL_SPELL_ID);
}
export interface CombatPresentationSettings {
readonly originalMediaEnabled: boolean;
readonly vfxMode: CombatVfxMode;
@@ -200,7 +215,7 @@ export interface CombatEffectManifestEntry {
readonly source: Exclude<CombatPresentationSource, "fallback">;
readonly spellId: number;
readonly visualIds?: readonly number[];
readonly phases?: Readonly<Partial<Record<CombatPresentationPhase, readonly CombatEffectPhaseAsset[]>>>;
readonly phases?: Readonly<Partial<Record<CombatPresentationPhase | "summon", readonly CombatEffectPhaseAsset[]>>>;
readonly sounds?: readonly CombatEffectSoundAsset[];
}
@@ -249,6 +264,13 @@ export function combatEffectManifestEntry(
return manifestBySpellId.get(spellId) ?? null;
}
/** Client display 19110 for the priest's creature 19668. */
export function shadowfiendOriginalModelAsset(): CombatEffectPhaseAsset | null {
return combatEffectManifestEntry(34433, "wow335")?.phases?.summon?.find((asset) => (
asset.effectKind === "wow-m2-model" && Boolean(asset.effectGraphUrl)
)) ?? null;
}
export function originalCombatPhaseAssets(
entry: CombatEffectManifestEntry | null | undefined,
phase: CombatPresentationPhase,
@@ -256,7 +278,11 @@ export function originalCombatPhaseAssets(
): readonly CombatEffectPhaseAsset[] {
const sourcePhase = abilityId === "wow335-priest-holy-nova" && phase === "impact"
? "cast-start"
: phase;
: abilityId === "wow335-priest-penance" && phase === "cast-start"
? "tick"
: abilityId === "wow335-priest-penance" && phase === "tick"
? "release"
: phase;
if (abilityId === "wow335-priest-holy-nova" && phase !== "impact") return [];
return (entry?.phases?.[sourcePhase] ?? []).filter((asset) => (
typeof asset.effectGraphUrl === "string"