Release Healer Man 0.1.49

This commit is contained in:
phenom committed 2026-09-17 09:13:15 -04:00
1 parent 39425f2494
commit 612170afd0
91 files changed
+2278 -263

No files matched your search

+21 -2
View File
@@ -1,6 +1,7 @@
import { baseClassFor, type BaseClassId, type ClassId } from "../app/characterCatalog";
import type { AbilityDefinition } from "./abilityCatalog";
import { abilityAnimationById } from "./abilityAnimationLookup";
import type { CombatPresentationEvent } from "./combatPresentation";
import type { CharacterVerticalMotion } from "./playerJump";
export type CharacterCombatAnimationKind =
@@ -53,8 +54,8 @@ const MELEE_CLASSES = new Set<ClassId>([
]);
const CLASS_ATTACK_IDS: Readonly<Record<BaseClassId, readonly number[]>> = {
warrior: [57, 17, 58, 18, 16, 118],
paladin: [57, 17, 59, 16, 118],
warrior: [17, 18, 16, 118, 57, 58],
paladin: [17, 18, 16, 118, 59, 57],
hunter: [46, 47, 49, 107, 16],
rogue: [85, 88, 87, 117, 57, 17, 95, 16],
priest: [53, 54, 32, 2, 16],
@@ -65,6 +66,24 @@ const CLASS_ATTACK_IDS: Readonly<Record<BaseClassId, readonly number[]>> = {
druid: [53, 54, 32, 118, 16],
};
/** Convert authoritative party combat presentation into one render event. */
export function characterCombatAnimationForPresentation(
event: CombatPresentationEvent,
revision: number,
): CharacterCombatAnimationEvent | null {
if (event.actorGroup !== "party") return null;
if (event.phase === "cast-start") {
return { revision, kind: "ability-start", abilityId: event.abilityId };
}
if (event.phase === "cast-cancel") {
return { revision, kind: "ability-cancel", abilityId: event.abilityId };
}
if (event.phase !== "release") return null;
return event.abilityId === "party-auto-attack"
? { revision, kind: "attack" }
: { revision, kind: "ability-release", abilityId: event.abilityId };
}
/** Parse the names emitted by wow.export without depending on Three.js. */
export function parseWoWAnimationName(name: string): ParsedWoWAnimationName {
const match = name.match(/^\s*(.*?)\s*\(ID\s+(\d+)\s+variation\s+(\d+)\)\s*$/i);