Update Healer Man server
This commit is contained in:
1 parent
6114a2295f
commit
69809f7228
593 files changed
+903643
-40774
No files matched your search
@@ -0,0 +1,59 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { COA_ABILITIES_BY_CLASS } from "./coaAbilityCatalog";
|
||||
import { coaSpellById } from "./coaLiveCatalog";
|
||||
|
||||
const expectedTrainerActions = [
|
||||
{ spellId: 800317, level: 4, marker: "coa:800317:effect:0:aura:87", markerAura: 87 },
|
||||
{ spellId: 803130, level: 20, marker: "coa:803130:effect:0:aura:232", markerAura: 232 },
|
||||
] as const;
|
||||
|
||||
describe("Guardian rankless trainer actions", () => {
|
||||
it("exposes only the two sourced formations with self-owned raw aura markers", () => {
|
||||
const guardianAbilities = COA_ABILITIES_BY_CLASS.guardian;
|
||||
const expectedIds = new Set<number>(expectedTrainerActions.map(({ spellId }) => spellId));
|
||||
const actions = guardianAbilities.filter((ability) => expectedIds.has(ability.dbcSpellId));
|
||||
|
||||
expect(actions.map(({ dbcSpellId }) => dbcSpellId).sort()).toEqual([...expectedIds].sort());
|
||||
for (const expected of expectedTrainerActions) {
|
||||
const ability = actions.find(({ dbcSpellId }) => dbcSpellId === expected.spellId)!;
|
||||
const source = coaSpellById(expected.spellId)!;
|
||||
const marker = ability.effects.find((effect) => effect.kind === "apply-aura"
|
||||
&& effect.aura.id === expected.marker);
|
||||
|
||||
expect(source.classIds).toContain(18);
|
||||
expect(source.sourceIds).toContain(6);
|
||||
expect(source.level).toBe(expected.level);
|
||||
expect(source.rank).toBe("");
|
||||
expect(ability).toMatchObject({
|
||||
id: `coa-trainer-${expected.spellId}`,
|
||||
classId: "guardian",
|
||||
dbcSpellId: expected.spellId,
|
||||
unlockLevel: expected.level,
|
||||
target: "self",
|
||||
castMode: "instant",
|
||||
castTimeMs: 0,
|
||||
cooldownMs: 0,
|
||||
gcdMs: 0,
|
||||
cost: { resource: "energy", amount: 20 },
|
||||
passive: false,
|
||||
source: "coa-progression",
|
||||
});
|
||||
expect(ability.ranks).toHaveLength(1);
|
||||
expect(ability.ranks?.[0]).toMatchObject({ spellId: expected.spellId, rank: 1, level: expected.level });
|
||||
expect(marker).toMatchObject({
|
||||
kind: "apply-aura",
|
||||
recipient: "caster",
|
||||
sourceEffectType: 6,
|
||||
sourceAuraType: expected.markerAura,
|
||||
});
|
||||
}
|
||||
|
||||
const learnedSpellIds = new Set(guardianAbilities.flatMap((ability) => [
|
||||
ability.dbcSpellId,
|
||||
...(ability.ranks ?? []).map(({ spellId }) => spellId),
|
||||
]));
|
||||
for (const helperSpellId of [803151, 803690, 803907, 803941]) {
|
||||
expect(learnedSpellIds.has(helperSpellId)).toBe(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user