updating buff and debuff icons. separated COA classes from WoW classes on the character creation screen

This commit is contained in:
phenom committed 2026-08-16 11:16:51 -04:00
1 parent b5c9bce1aa
commit c00f3211ea
39 files changed
+2037 -208

No files matched your search

+27
View File
@@ -5,6 +5,7 @@ import {
parseWoWAnimationName,
selectCharacterBaseClip,
selectCharacterEventClip,
selectCharacterVerticalClip,
selectWoWAnimationVariation,
} from "./combatAnimation";
@@ -20,6 +21,10 @@ const clips = [
{ name: "Death (ID 1 variation 0)" },
{ name: "AttackUnarmed (ID 16 variation 0)" },
{ name: "AttackUnarmed (ID 16 variation 1)" },
{ name: "JumpStart (ID 37 variation 0)" },
{ name: "Fall (ID 40 variation 0)" },
{ name: "JumpEnd (ID 39 variation 0)" },
{ name: "JumpLandRun (ID 133 variation 0)" },
];
describe("WoW character animation selection", () => {
@@ -45,6 +50,19 @@ describe("WoW character animation selection", () => {
expect(clipsForAnimationIds(clips, [57, 17])).toEqual([clips[4], clips[3]]);
});
it("selects native rising, falling, and landing locomotion", () => {
expect(selectCharacterVerticalClip(clips, "rising", false)).toMatchObject({
clip: clips[11],
loop: false,
});
expect(selectCharacterVerticalClip(clips, "falling", false)).toMatchObject({
clip: clips[12],
loop: true,
});
expect(selectCharacterVerticalClip(clips, "landing", false)?.clip).toBe(clips[13]);
expect(selectCharacterVerticalClip(clips, "landing", true)?.clip).toBe(clips[14]);
});
it("maps hard-cast lifecycle events to ready and release clips", () => {
expect(selectCharacterEventClip(clips, "priest", {
revision: 1,
@@ -79,6 +97,9 @@ describe("WoW character animation selection", () => {
{ name: "Action - buff01" },
{ name: "Wound - hurt" },
{ name: "Death - death" },
{ name: "Action - jump_up" },
{ name: "Action - jump_down" },
{ name: "Action - jump_end_run" },
];
expect(selectCharacterEventClip(runewakerClips, "rom-mage", {
@@ -114,5 +135,11 @@ describe("WoW character animation selection", () => {
revision: 6,
kind: "death",
})).toMatchObject({ clip: runewakerClips[9], terminal: true, native: true });
expect(selectCharacterVerticalClip(runewakerClips, "rising", false)?.clip)
.toBe(runewakerClips[10]);
expect(selectCharacterVerticalClip(runewakerClips, "falling", false)?.clip)
.toBe(runewakerClips[11]);
expect(selectCharacterVerticalClip(runewakerClips, "landing", true)?.clip)
.toBe(runewakerClips[12]);
});
});