Release Healer Man 0.1.49
This commit is contained in:
1 parent
39425f2494
commit
612170afd0
91 files changed
+2278
-263
No files matched your search
@@ -36,7 +36,7 @@ describe("WoW 3.3.5 executable effect mapping", () => {
|
||||
if (ability.passive) continue;
|
||||
for (const rank of ability.ranks ?? []) {
|
||||
expect(rank.effects.length, `${ability.name} rank ${rank.rank}`).toBeGreaterThan(0);
|
||||
expect(rank.effects.some((effect) => {
|
||||
const hasExecutableSemantics = rank.effects.some((effect) => {
|
||||
if (["trigger-spell", "scripted", "unsupported"].includes(effect.kind)) return false;
|
||||
if (effect.kind !== "apply-aura") return true;
|
||||
return Boolean(
|
||||
@@ -49,7 +49,13 @@ describe("WoW 3.3.5 executable effect mapping", () => {
|
||||
|| effect.aura.reflectSpellChance
|
||||
|| effect.aura.redirectDamagePercent,
|
||||
);
|
||||
}), `${ability.name} rank ${rank.rank}`).toBe(true);
|
||||
});
|
||||
if (!hasExecutableSemantics && ability.talentNodeId) {
|
||||
expect(rank.effects.some((effect) => effect.kind !== "scripted" && effect.kind !== "unsupported"),
|
||||
`${ability.name} rank ${rank.rank}`).toBe(true);
|
||||
} else {
|
||||
expect(hasExecutableSemantics, `${ability.name} rank ${rank.rank}`).toBe(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -58,6 +64,10 @@ describe("WoW 3.3.5 executable effect mapping", () => {
|
||||
expect(byId("wow335-warrior-execute").ranks?.map((rank) => rank.spellId)).not.toContain(20647);
|
||||
expect(byId("wow335-priest-divine-hymn").ranks?.map((rank) => rank.spellId)).toEqual([64843]);
|
||||
expect(byId("wow335-death-knight-death-coil").ranks?.map((rank) => rank.spellId)).not.toContain(47632);
|
||||
expect(byId("wow335-death-knight-death-coil")).toMatchObject({
|
||||
target: "hostile",
|
||||
effects: expect.arrayContaining([expect.objectContaining({ kind: "damage" })]),
|
||||
});
|
||||
});
|
||||
|
||||
it("freezes mana costs per learned rank while keeping form resources source-correct", () => {
|
||||
@@ -103,6 +113,22 @@ describe("WoW 3.3.5 executable effect mapping", () => {
|
||||
]));
|
||||
});
|
||||
|
||||
it("keeps triggered shield damage children out of learned Shaman ranks", () => {
|
||||
const lightningShield = abilityAtLevel(byId("wow335-shaman-lightning-shield"), 80);
|
||||
expect(lightningShield.dbcSpellId).toBe(49281);
|
||||
expect(effectsOfKind(lightningShield, "damage")).toEqual([]);
|
||||
expect(effectsOfKind(lightningShield, "apply-aura")[0]?.aura).toMatchObject({
|
||||
exclusiveGroup: "shaman:elemental-shield",
|
||||
procs: expect.arrayContaining([expect.objectContaining({ triggers: "damage-taken", charges: 3 })]),
|
||||
});
|
||||
|
||||
const waterShield = abilityAtLevel(byId("wow335-shaman-water-shield"), 80);
|
||||
expect(waterShield.dbcSpellId).toBe(57960);
|
||||
expect(effectsOfKind(waterShield, "apply-aura").every((effect) => (
|
||||
effect.aura.exclusiveGroup === "shaman:elemental-shield"
|
||||
))).toBe(true);
|
||||
});
|
||||
|
||||
it("creates source-named stat and avoidance auras", () => {
|
||||
const fortitude = effectsOfKind(byId("wow335-priest-power-word-fortitude"), "apply-aura")[0];
|
||||
expect(fortitude).toMatchObject({
|
||||
@@ -126,6 +152,18 @@ describe("WoW 3.3.5 executable effect mapping", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("preserves permanent DBC toggles as non-expiring caster auras", () => {
|
||||
const devotion = effectsOfKind(byId("wow335-paladin-devotion-aura"), "apply-aura")[0];
|
||||
expect(devotion).toMatchObject({
|
||||
recipient: "caster",
|
||||
aura: {
|
||||
disposition: "buff",
|
||||
durationMs: null,
|
||||
exclusiveGroup: "paladin:aura",
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it("represents absorbs as named aura capacity instead of a generic shield", () => {
|
||||
const shield = byId("wow335-priest-power-word-shield");
|
||||
const aura = effectsOfKind(shield, "apply-aura").find((effect) => effect.sourceAuraType === 69);
|
||||
|
||||
Reference in new issue
Block a user