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

+27 -1
View File
@@ -2,7 +2,8 @@ import { beforeEach, describe, expect, it } from "vitest";
import { PLAYER_AGGRO_ID } from "./aggro";
import { abilityTalentNodeId, type AbilityDefinition } from "./abilityCatalog";
import { WOW335_GLYPH_OF_SWIFTMEND_ID } from "./wow335GlyphCatalog";
import { clearMobRuntimeRegistry } from "./mobRuntimeRegistry";
import { talentModifiersForRanks } from "./talentModifiers";
import { clearMobRuntimeRegistry, setMobPosition } from "./mobRuntimeRegistry";
import { clearPartyRuntimeRegistry } from "./partyRuntimeRegistry";
import { useCombatStore, type TimedCombatEffect } from "./combatStore";
@@ -66,6 +67,31 @@ describe("WoW Druid active talent runtime", () => {
clearPartyRuntimeRegistry();
});
it("lets Nature's Reach extend a cast-time damaging spell to its generated rank range", () => {
useCombatStore.getState().initializeCharacter({ classId: "druid", level: 80, xp: 0 });
const wrath = useCombatStore.getState().abilities.find((candidate) => candidate.name === "Wrath");
if (!wrath) throw new Error("Druid Wrath is missing from the learned ability catalog.");
useCombatStore.getState().registerMob("natures-reach-target", { name: "Nature's Reach target", maxHealth: 100_000 });
setMobPosition("natures-reach-target", [35, 0, 0]);
useCombatStore.getState().selectMob("natures-reach-target");
expect(useCombatStore.getState().castAbility(wrath.id, {
targetActorId: "natures-reach-target",
now: 1_000,
})).toMatchObject({ ok: false, reason: "out-of-range" });
const talentRanks = { ...useCombatStore.getState().talentRanks, "talent-764": 3 };
useCombatStore.setState({
talentRanks,
talentModifiers: talentModifiersForRanks(talentRanks, "druid"),
});
const extendedCast = useCombatStore.getState().castAbility(wrath.id, {
targetActorId: "natures-reach-target",
now: 2_000,
});
expect(extendedCast.ok).toBe(true);
});
it.each([
["Rejuvenation", 100, 5, 400],
["Regrowth", 150, 7, 900],