Update Healer Man server

This commit is contained in:
phenom committed 2026-10-06 22:25:34 -04:00
1 parent 6114a2295f
commit 69809f7228
593 files changed
+903643 -40774

No files matched your search

+16 -1
View File
@@ -8,6 +8,7 @@ import {
type EnemyAttackTelegraph,
} from "./enemyAttacks";
import type { PopulationEntityDefinition } from "./mobPopulation";
import { enemyTriggeredShoutContract } from "./enemyTriggeredShouts";
export type BossGuideFidelity = "source" | "fallback" | "authored";
@@ -85,6 +86,9 @@ function describeCondition(condition: EnemyAbilityCondition | undefined): string
if (condition.kind === "friendly-missing-health") {
return `When an ally within ${condition.range}m is missing ${Math.round(condition.amount)} health`;
}
if (condition.kind === "friendly-missing-aura") {
return `When an ally within ${condition.range}m is missing this buff`;
}
return `While encounter ${condition.encounterId} is in: ${condition.states.join(", ")}`;
}
@@ -102,8 +106,10 @@ const TARGET_LABELS: Readonly<Record<EnemyAttackTarget, string>> = {
primary: "the boss's current target",
"random-party": "a random party member",
"nearby-party": "party members in the affected area",
"nearby-friendly": "the boss and nearby enemy allies",
self: "the boss",
"lowest-health-friendly": "the lowest-health enemy ally",
"selected-friendly": "the boss's selected ally",
};
function describeEffect(effect: EnemyAbilityEffect | undefined, attack: EnemyAttackDefinition): string {
@@ -113,7 +119,7 @@ function describeEffect(effect: EnemyAbilityEffect | undefined, attack: EnemyAtt
return `${titleCase(attack.school)} damage to ${target} (${Number(multiplier.toFixed(2))}× boss power)`;
}
if (effect.kind === "heal") return `Heals ${target} for ${effect.multiplier}× boss power`;
if (effect.kind === "dot") return `${titleCase(attack.school)} damage to ${target} every ${seconds(effect.intervalMs)} for ${effect.ticks} ticks; dispellable`;
if (effect.kind === "dot") return `${titleCase(attack.school)} ${effect.wowPeriodicSource ? "bleed " : ""}damage to ${target} every ${seconds(effect.intervalMs)} for ${effect.ticks} ticks${effect.wowPeriodicSource ? "; ignores armor" : "; dispellable"}`;
if (effect.kind === "leech") {
return `Drains ${target} for ${effect.damageMultiplier}× boss power and heals the caster for ${effect.healMultiplier}× boss power`;
}
@@ -138,6 +144,14 @@ function describeEffect(effect: EnemyAbilityEffect | undefined, attack: EnemyAtt
return `${damage}${titleCase(effect.mechanic)} controls ${target} for ${seconds(effect.durationMs)}`;
}
if (effect.kind === "transform") return `Transforms ${target} into ${titleCase(effect.form)}`;
if (effect.kind === "triggered-shout") {
const contract = enemyTriggeredShoutContract(effect.sourceSpellId, effect.sourceProfile);
if (!contract) return "Controls the cast victim and nearby party members";
const child = contract.childEffects.find((entry) => entry.kind === "control");
return `${child?.kind === "control" ? titleCase(child.mechanic) : "Control"} on the cast victim for ${seconds(contract.childSignature.durationMs)}; fear within ${contract.targeting.parentArea.radiusYards}m of the boss for ${seconds(contract.parentSignature.durationMs)}${contract.targeting.parentArea.maximumTargets ? ` (up to ${contract.targeting.parentArea.maximumTargets} party members)` : ""}${contract.childEffects.some((entry) => entry.kind === "damage-taken") ? "; cast victim takes 15% more physical damage" : ""}`;
}
if (effect.kind === "weapon-capability") return `Allows ${target} to dual wield`;
if (effect.kind === "extra-attacks") return `Grants ${effect.count} extra attacks to ${target}`;
if (effect.kind === "pull") return `Pulls ${target} to the boss`;
if (effect.kind === "summon") return `Summons ${effect.count} add${effect.count === 1 ? "" : "s"} (creature ${effect.creatureEntry})`;
if (effect.kind === "call-for-help") return `Calls hostile allies within ${effect.radius}m into combat`;
@@ -178,6 +192,7 @@ function effectFollowup(effect: EnemyAbilityEffect | undefined): string {
}
if (effect.kind === "leech") return "Limit the drain with mitigation and recover the health it steals.";
if (effect.kind === "control") return "Stabilize the controlled player and remove the control if an available ability allows it.";
if (effect.kind === "triggered-shout") return "Keep vulnerable party members beyond 8m of the boss and stabilize the cast victim through the control.";
if (effect.kind === "target-aura") return "Watch the affected player's debuff and respond with healing or removal if the effect permits it.";
if (effect.kind === "summon") return "Swap damage to the summoned adds and keep them away from vulnerable party members.";
if (effect.kind === "heal") return "Interrupt the heal when possible; otherwise plan for the boss to recover health.";