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 -22
View File
@@ -1,5 +1,14 @@
import type { AbilityEffect } from "./abilityCatalog";
import type { RomGeneratedAbilityLike } from "./romAbilitySemantics";
import {
isRomDruidRoguePair,
romDruidRogueCorrosivePoisonEffect,
romDruidRogueCooldownRider,
} from "./romDruidRogueCurrentCoa";
import {
isRomMageDruidPair,
romMageDruidGreenGuardianAuraEffect,
} from "./romMageDruidGreenGuardianRuntime";
export const ROM_DRUID_GREEN_GUARDIAN_TAG = "rom-druid-green-guardian";
export const ROM_DRUID_MOTHER_EARTH_PROTECTION_TAG = "rom-druid-mother-earth-protection";
@@ -85,6 +94,22 @@ export function overrideRomDruidEffects(
row: RomGeneratedAbilityLike,
translated: readonly AbilityEffect[],
): readonly AbilityEffect[] | null {
if (isRomDruidRoguePair(row)) {
if (row.sourceSkillId === 494024) return [romDruidRogueCorrosivePoisonEffect()];
if (row.sourceSkillId === 494321) return [
{ kind: "damage", coefficient: 3.297, school: "shadow" },
{
kind: "utility",
action: "class-script",
effectType: -1,
auraType: -1,
miscValue: 0,
triggerSpellId: 494024,
durationMs: 12_000,
},
];
if (row.sourceSkillId === 494023) return [];
}
switch (row.sourceSkillId) {
case 493533:
case 493558: { // Both Mother Earth's Protection ranks can trigger Green Guardian on expiry.
@@ -101,7 +126,9 @@ export function overrideRomDruidEffects(
};
});
}
case 494331: // Keep source HoT payloads on the learned passive for its expiry trigger.
case 494331:
if (isRomMageDruidPair(row)) return [romMageDruidGreenGuardianAuraEffect()];
// Keep RuneWaker's legacy HoTs only for rows outside the current CoA pair.
return [
passiveState(494331, row.name, ROM_DRUID_GREEN_GUARDIAN_TAG),
...translated.filter((effect) => effect.kind === "hot"),
@@ -143,8 +170,8 @@ export function overrideRomDruidEffects(
...effect,
falloffPerJump: 0.7,
}));
case 494321: // Its root is supplied by the optional Knee Ulcer passive.
return translated.filter((effect) => effect.kind !== "apply-aura" || effect.control?.kind !== "root");
case 494321: // The CoA rework replaces RuneWaker's healing reduction and Knee Ulcer root.
return translated.filter((effect) => effect.kind === "damage");
case 494938: // 505938 supplies the 40-second lifetime; the tooltip states 4-second party pulses.
return [spiritOfLifeHot(translated)];
default:
@@ -293,11 +320,23 @@ export function romDruidCastEffects(
&& !(empowered && effect.kind === "resource" && effect.resource === "nature-power"));
return [...selectedHits, ...selected, ...(empowered ? [naturePowerDrain()] : [])];
}
case 499956: { // Briar Technique unlocks this source row, with both DMG branches on distinct components.
const selectedHits = empowered
? [damage[1], damage[3]].filter((effect) => effect !== undefined)
: [damage[0], damage[2]].filter((effect) => effect !== undefined);
if (selectedHits.length !== 2) return effects;
const selected = effects.filter((effect) => effect.kind !== "damage"
&& !(empowered && effect.kind === "resource" && effect.resource === "nature-power"));
return [...selectedHits, ...selected, ...(empowered ? [naturePowerDrain()] : [])];
}
case 494022: { // Poisonous Widow Embrace selects one damage component and refunds a spent point.
const selectedDamage = damage[empowered ? 1 : 0];
if (!selectedDamage) return effects;
const selected = effects.filter((effect) => effect.kind !== "damage" || effect === selectedDamage);
return empowered ? spendBeforeNaturePowerRefund(selected) : selected;
const branch = empowered ? spendBeforeNaturePowerRefund(selected) : selected;
return isRomDruidRoguePair(ability)
? [...branch, romDruidRogueCooldownRider()]
: branch;
}
case 493528: { // Extended Recovery's source-backed duration increase; proc chance is absent.
if (!hasTag(passiveTags, "rom-druid-extended-recovery")) return effects;
@@ -305,24 +344,13 @@ export function romDruidCastEffects(
? { ...effect, ticks: effect.ticks + 3 }
: effect);
}
case 494321: { // The passive's root is only emitted when Knee Ulcer is learned.
if (!hasTag(passiveTags, "rom-druid-knee-ulcer")) return effects;
return [...effects, {
kind: "apply-aura",
recipient: "ability-target",
aura: {
id: "rom-druid-knee-ulcer-root",
name: "Knee Ulcer",
disposition: "debuff",
durationMs: 5_000,
dispelCategory: "magic",
},
control: { kind: "root" },
sourceEffectType: -1,
sourceAuraType: -1,
miscValue: 0,
triggerSpellId: 499944,
}];
case 494321: { // CoA's current poison-gated channel replaces the old healing-reduction/root row.
if (!isRomDruidRoguePair(ability)) return effects;
return [
...effects.filter((effect) => effect.kind === "damage" || (effect.kind === "utility"
&& effect.action === "class-script" && effect.triggerSpellId === 494024)),
romDruidRogueCooldownRider(),
];
}
default:
return effects;