Update class mechanics, stat rulesets, and CoA reference catalogs

This commit is contained in:
phenom committed 2026-10-04 12:56:30 -04:00
1 parent b16821e92e
commit 39458d5de6
221 files changed
+2584962 -568

No files matched your search

+14 -2
View File
@@ -168,9 +168,9 @@ describe("RoM primary class conditional combat effects", () => {
});
it("removes only the four retired Holy Seal DoTs and applies CoA Probing Attack's conditional weapon-DPS value", () => {
for (const spellId of [490148, 490149, 490150, 490151]) {
for (const spellId of [490148, 490149, 490150, 490151, 499909]) {
const ability = ROM_ALL_ABILITIES.find((candidate) => candidate.dbcSpellId === spellId)!;
const resolved = romEffectsForCast(ability, spellId === 490151 ? { ...empty, sealStacks: 4 } : empty);
const resolved = romEffectsForCast(ability, spellId === 490151 || spellId === 499909 ? { ...empty, sealStacks: 4 } : empty);
expect(resolved.some((effect) => effect.kind === "dot")).toBe(false);
expect(resolved.some((effect) => effect.kind === "damage")).toBe(true);
if (spellId === 490148 || spellId === 490150) {
@@ -178,6 +178,18 @@ describe("RoM primary class conditional combat effects", () => {
}
}
const punishment = ROM_ALL_ABILITIES.find((candidate) => candidate.dbcSpellId === 499909)!;
const atTwoSeals = romEffectsForCast(punishment, { ...empty, sealStacks: 2 })
.find((effect) => effect.kind === "damage");
const atFourSeals = romEffectsForCast(punishment, { ...empty, sealStacks: 4 })
.find((effect) => effect.kind === "damage");
expect(atTwoSeals?.kind).toBe("damage");
expect(atFourSeals?.kind).toBe("damage");
if (atTwoSeals?.kind === "damage" && atFourSeals?.kind === "damage") {
expect(atTwoSeals.coefficient).toBeCloseTo(atFourSeals.coefficient / 2);
}
expect(romEffectsForCast(punishment, { ...empty, sealStacks: 0 })).toEqual([]);
const probing = ROM_ALL_ABILITIES.find((candidate) => candidate.dbcSpellId === 493283)!;
const base = romEffectsForCast(probing, empty).find((effect) => effect.kind === "damage");
const bleedEmpowered = romEffectsForCast(probing, { ...empty, bleedCount: 1 })