Release Healer Man 0.1.45

This commit is contained in:
phenom committed 2026-09-15 14:43:15 -04:00
1 parent 756ee4f64a
commit f82daf1c13
242 files changed
+1440 -101

No files matched your search

+23 -6
View File
@@ -113,6 +113,12 @@ 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 === "leech") {
return `Drains ${target} for ${effect.damageMultiplier}× boss power and heals the caster for ${effect.healMultiplier}× boss power`;
}
if (effect.kind === "composite") {
return effect.effects.map((entry) => describeEffect(entry, attack)).join("; ");
}
if (effect.kind === "aura") {
if (effect.meleeAutoCriticalProc) {
const proc = effect.meleeAutoCriticalProc;
@@ -131,6 +137,7 @@ 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 === "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`;
return `Advances encounter event “${effect.eventId}”`;
@@ -139,12 +146,17 @@ function describeEffect(effect: EnemyAbilityEffect | undefined, attack: EnemyAtt
function describeTelegraph(telegraph: EnemyAttackTelegraph | undefined, attack: EnemyAttackDefinition): string {
if (!telegraph) {
const warning = (attack.castTimeMs ?? 0) > 0 ? ` with a ${seconds(attack.castTimeMs!)} cast warning` : "";
return attack.effect?.kind === "heal"
|| attack.effect?.kind === "aura"
|| attack.effect?.kind === "transform"
|| attack.effect?.kind === "summon"
|| attack.effect?.kind === "call-for-help"
|| attack.effect?.kind === "encounter-event"
const effects = attack.effect?.kind === "composite"
? attack.effect.effects
: attack.effect ? [attack.effect] : [];
return effects.length > 0 && effects.every((effect) => (
effect.kind === "heal"
|| effect.kind === "aura"
|| effect.kind === "transform"
|| effect.kind === "summon"
|| effect.kind === "call-for-help"
|| effect.kind === "encounter-event"
))
? `No harmful ground area${warning}`
: `Targeted mechanic; no ground area${warning}`;
}
@@ -160,12 +172,17 @@ function describeTelegraph(telegraph: EnemyAttackTelegraph | undefined, attack:
function effectFollowup(effect: EnemyAbilityEffect | undefined): string {
if (!effect) return "Heal the affected party members after it resolves.";
if (effect.kind === "composite") {
return [...new Set(effect.effects.map((entry) => effectFollowup(entry)))].join(" ");
}
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 === "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.";
if (effect.kind === "call-for-help") return "Clear or control nearby enemies before this ability resolves.";
if (effect.kind === "transform") return "Expect the boss's behavior to change after the new form appears.";
if (effect.kind === "pull") return "Regain safe spacing after the forced movement resolves.";
if (effect.kind === "encounter-event") return "Watch for the encounter-state change and handle the newly activated objective.";
if (effect.kind === "aura") return "Adjust damage and healing for the aura while it remains active.";
return "Heal the affected party members after it resolves.";