Update Healer Man server
This commit is contained in:
1 parent
39458d5de6
commit
6cc1b9217f
203 files changed
+133929
-31271
No files matched your search
@@ -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", () => {
|
||||
|
||||
Reference in new issue
Block a user