Update Healer Man server

This commit is contained in:
phenom committed 2026-10-04 13:13:35 -04:00
1 parent 39458d5de6
commit 6cc1b9217f
203 files changed
+133929 -31271

No files matched your search

+28 -12
View File
@@ -215,16 +215,27 @@ describe("accepted RoM Priest/Knight and Knight/Scout pairs", () => {
]));
});
it("adds source 499924's Blood Arrow healing bonus only with Blood Punishment", () => {
it("adds current-CoA Blood Punishment modifiers to Blood Arrow's actor-owned aura", () => {
const bloodArrow = ROM_ALL_ABILITIES.find((ability) => ability.dbcSpellId === 490434)!;
const ordinary = romPriestKnightCastEffects(bloodArrow, bloodArrow.effects, [], 1_000);
const upgraded = romPriestKnightCastEffects(bloodArrow, bloodArrow.effects, ["rom-blood-punishment"], 1_000);
expect(ordinary.some((effect) => effect.kind === "apply-aura"
&& effect.aura.utilityTags?.includes("rom-blood-arrow-upgrade"))).toBe(false);
expect(upgraded.some((effect) => effect.kind === "apply-aura"
&& effect.aura.durationMs === 30_000
&& effect.aura.modifiers?.some((modifier) => modifier.kind === "healing"
&& modifier.direction === "taken" && modifier.value === 0.5))).toBe(true);
const arrowAura = (effects: readonly AbilityEffect[]) => effects.find((effect) => effect.kind === "apply-aura"
&& effect.recipient === "caster" && effect.aura.utilityTags?.includes("rom-self-health-drain"));
const sourceAura = arrowAura(bloodArrow.effects);
const plainAura = arrowAura(ordinary);
const upgradedAura = arrowAura(upgraded);
expect(sourceAura).toBeDefined();
expect(plainAura).toEqual(sourceAura);
expect(upgradedAura?.kind).toBe("apply-aura");
if (upgradedAura?.kind !== "apply-aura") throw new Error("Blood Arrow active aura is missing");
expect(upgradedAura.aura.durationMs).toBe(sourceAura?.kind === "apply-aura" ? sourceAura.aura.durationMs : null);
expect(upgradedAura.aura.modifiers).toEqual(expect.arrayContaining([
expect.objectContaining({ kind: "healing", direction: "taken", operation: "percent", value: 0.15 }),
expect.objectContaining({ kind: "damage", direction: "dealt", school: "holy", operation: "percent", value: 0.05 }),
]));
expect(upgraded.filter((effect) => effect.kind === "apply-aura")).toHaveLength(
bloodArrow.effects.filter((effect) => effect.kind === "apply-aura").length,
);
});
it("builds source 499966 Devotion Halo and grants conditional Light Guidance healing", () => {
@@ -462,16 +473,21 @@ describe("accepted RoM Priest/Knight and Knight/Scout pairs", () => {
expect(discounted.resourcePools.mana).toBeGreaterThan(ordinary.resourcePools.mana!);
});
it("adds Blood Punishment's healing bonus during Knight/Scout Blood Arrow", () => {
it("keeps Blood Punishment's two benefits on the live Knight/Scout Blood Arrow aura", () => {
useCombatStore.getState().initializeCharacter({
classId: "rom-knight", secondaryClassId: "rom-scout", raceId: "rom-human", level: 79, role: "tank",
});
expect(useCombatStore.getState().castAbility("rom-scout-general-4", undefined, 1_000))
.toMatchObject({ ok: true });
expect(useCombatStore.getState().auras.some((aura) => aura.targetId === PLAYER_AGGRO_ID
&& aura.definition.id === "rom-pair-blood-arrow-healing-received"
&& aura.definition.modifiers?.some((modifier) => modifier.kind === "healing"
&& modifier.direction === "taken" && modifier.value === 0.5))).toBe(true);
const arrowAuras = useCombatStore.getState().auras.filter((aura) => aura.targetId === PLAYER_AGGRO_ID
&& aura.definition.utilityTags?.includes("rom-self-health-drain"));
expect(arrowAuras).toHaveLength(1);
expect(arrowAuras[0]?.definition.modifiers).toEqual(expect.arrayContaining([
expect.objectContaining({ kind: "healing", direction: "taken", value: 0.15 }),
expect.objectContaining({ kind: "damage", direction: "dealt", school: "holy", value: 0.05 }),
]));
expect(useCombatStore.getState().auras.some((aura) => aura.definition.id === "rom-pair-blood-arrow-healing-received"))
.toBe(false);
});
it("summons the Priest/Knight Light Fairy companion", () => {