Update Healer Man server
This commit is contained in:
1 parent
f864b5aea7
commit
fdb6739f8d
10 files changed
+236
-16
No files matched your search
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user