Update Healer Man server

This commit is contained in:
phenom committed 2026-09-20 20:15:40 -04:00
1 parent f864b5aea7
commit fdb6739f8d
10 files changed
+236 -16

No files matched your search

+23
View File
@@ -1,5 +1,6 @@
import { describe, expect, it } from "vitest";
import { abilityAtLevel, type AbilityDefinition, type AbilityEffect } from "./abilityCatalog";
import { aiHintsForAbility, targetingRulesForAbility } from "./abilityRules";
import { WOW335_ABILITIES_BY_CLASS } from "./wow335AbilityCatalog";
function byId(id: string): AbilityDefinition {
@@ -41,6 +42,28 @@ describe("WoW 3.3.5 executable effect mapping", () => {
]);
});
it("maps the Ready DPS area actions to executable multi-target shapes", () => {
const multiShot = abilityAtLevel(byId("wow335-hunter-multi-shot"), 80);
expect(targetingRulesForAbility(multiShot)).toMatchObject({
shape: "chain",
maximumTargets: 3,
jumpRange: 10,
});
expect(aiHintsForAbility(multiShot).categories).toContain("area-damage");
const volley = abilityAtLevel(byId("wow335-hunter-volley"), 80);
expect(volley).toMatchObject({ target: "hostile", castMode: "channel", castTimeMs: 6_000, radius: 8 });
expect(targetingRulesForAbility(volley).shape).toBe("ground");
expect(effectsOfKind(volley, "dot")).toEqual([
expect.objectContaining({ ticks: 6, intervalMs: 1_000, tag: "volley" }),
]);
const fan = abilityAtLevel(byId("wow335-rogue-fan-of-knives"), 80);
expect(fan).toMatchObject({ target: "self", radius: 8 });
expect(targetingRulesForAbility(fan).shape).toBe("circle");
expect(aiHintsForAbility(fan).categories).toContain("area-damage");
});
it("gives every imported classic rank executable or explicit utility semantics", () => {
const effects = Object.values(WOW335_ABILITIES_BY_CLASS)
.flat()