Update Healer Man server

This commit is contained in:
phenom committed 2026-09-27 14:31:15 -04:00
1 parent ab1434a3b8
commit e284f4fc76
60 files changed
+2704 -118

No files matched your search

+13
View File
@@ -379,6 +379,12 @@ describe("party combat runtime", () => {
useCombatStore.getState().synchronizeActors();
registerEngagedMob("penance-boss", 100_000);
const visuals: CombatPresentationEvent[] = [];
const stopVisuals = subscribeCombatPresentation((message) => {
if (message.kind === "event" && message.event.sourceActorId === healer.id
&& message.event.abilityId === penance.id) visuals.push(message.event);
});
advanceDungeonPartyCombat(1_000);
expect(usePartyStore.getState().members.find((member) => member.id === healer.id)?.activeCast)
.toMatchObject({ mode: "channel", startedAt: 1_000, completesAt: 3_000 });
@@ -394,6 +400,13 @@ describe("party combat runtime", () => {
expect(usePartyStore.getState().members.find((member) => member.id === healer.id)?.activeCast).toBeNull();
expect(usePartyStore.getState().members.find((member) => member.id === healer.id)?.nextActionAt).toBe(3_250);
expect(useCombatStore.getState().effects.some((effect) => effect.sourceAbilityId === penance.id)).toBe(false);
stopVisuals();
expect(visuals[0]?.durationMs).toBe(2_000);
expect(visuals.map((event) => [event.phase, event.sourceSpellId])).toEqual([
["cast-start", 47540],
...Array.from({ length: 3 }, () => [["tick", 47750], ["impact", 47750]]).flat(),
["release", 47540],
]);
});
it("lets a resurrected tank rejoin independently instead of taunting or casting from its checkpoint", () => {