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

+7 -25
View File
@@ -1,14 +1,11 @@
import { beforeEach, describe, expect, it } from "vitest";
import { abilitiesForCharacter, abilitiesForClass, learnedAbilityForBuild, type AbilityDefinition } from "./abilityCatalog";
import { applyAura } from "./combatAuras";
import { PLAYER_AGGRO_ID } from "./aggro";
import { abilitiesForCharacter, learnedAbilityForBuild, type AbilityDefinition } from "./abilityCatalog";
import { useCombatStore } from "./combatStore";
import { clearMobRuntimeRegistry, setMobPosition } from "./mobRuntimeRegistry";
import { romScoutRogueCastEffects, romScoutRogueProcActionSpec, romScoutRogueWhirlwindBonusEffect } from "./romScoutRogueOverrides";
const scoutRogue = abilitiesForCharacter("rom-scout", "rom-rogue");
const scoutWarrior = abilitiesForCharacter("rom-scout", "rom-warrior");
const roguePrimary = abilitiesForClass("rom-rogue");
const rogueWarrior = abilitiesForCharacter("rom-rogue", "rom-warrior");
function skill(abilities: readonly AbilityDefinition[], id: string): AbilityDefinition {
@@ -177,9 +174,12 @@ describe("accepted RoM Scout/Rogue and Rogue/Warrior pairings", () => {
expect(proc?.kind === "apply-aura" ? proc.aura.procs?.[0]?.internalCooldownMs : null).toBe(20_000);
});
it("Poisonous Spit only adds its source poison while Poison Powder is active", () => {
it("Poisonous Spit uses the Scout/Rogue loadout's carried Poison Powder supply", () => {
for (const sourceId of [490457, 490424]) {
expect(romScoutRogueProcActionSpec("rom-poisonous-spit", sourceId, false)).toBeNull();
expect(romScoutRogueProcActionSpec("rom-poisonous-spit", sourceId, false)).toMatchObject({
kind: "dot", recipient: "target", provenance: "source",
effect: { kind: "dot", ticks: 4, intervalMs: 2_000, basePoints: 7.1, pointsPerLevel: 2.1 },
});
expect(romScoutRogueProcActionSpec("rom-poisonous-spit", sourceId, true)).toMatchObject({
kind: "dot", recipient: "target", provenance: "source",
effect: { kind: "dot", ticks: 4, intervalMs: 2_000, basePoints: 7.1, pointsPerLevel: 2.1 },
@@ -190,28 +190,10 @@ describe("accepted RoM Scout/Rogue and Rogue/Warrior pairings", () => {
expect(proc?.kind === "apply-aura" ? proc.aura.procs?.[0]?.internalCooldownMs : null).toBe(20_000);
});
it("does not execute Poisonous Spit without Poison Powder, then poisons after it is applied", () => {
it("executes Poisonous Spit from the loadout supply without Rogue's Poison Bottle buff", () => {
prime("rom-scout", 60);
expect(useCombatStore.getState().castAbility("rom-scout-primary-11", undefined, 1_000))
.toMatchObject({ ok: true });
expect(useCombatStore.getState().effects.some((effect) => effect.tag === "rom-poisonous-spit"
&& effect.targetId === "target")).toBe(false);
const poisonPowder = roguePrimary.find((ability) => ability.dbcSpellId === 490329);
if (!poisonPowder) throw new Error("Missing Poison Powder");
const powderAura = poisonPowder.effects.find((effect) => effect.kind === "apply-aura");
if (powderAura?.kind !== "apply-aura") throw new Error("Poison Powder has no aura");
const applied = applyAura(useCombatStore.getState().auras, {
definition: powderAura.aura,
sourceId: PLAYER_AGGRO_ID,
targetId: PLAYER_AGGRO_ID,
now: 3_000,
});
useCombatStore.setState({ auras: applied.auras });
expect(useCombatStore.getState().auras.some((aura) => aura.definition.utilityTags?.includes("rom-poisonous")))
.toBe(true);
expect(useCombatStore.getState().castAbility("rom-scout-primary-11", undefined, 22_000))
.toMatchObject({ ok: true });
expect(useCombatStore.getState().effects.some((effect) => effect.tag === "rom-poisonous-spit"
&& effect.targetId === "target")).toBe(true);
});