Release Healer Man 0.1.40

This commit is contained in:
phenom committed 2026-09-13 13:21:27 -04:00
1 parent ed0d2fea3d
commit 197a64117c
215 files changed
+5131 -181

No files matched your search

+11 -1
View File
@@ -50,9 +50,18 @@ describe("dungeon session asset eviction", () => {
expect(clear).not.toHaveBeenCalled();
});
it("rejects invalid difficulty settings before changing the dungeon or evicting assets", () => {
const active = useGameStore.getState().activeDungeonId;
const clear = vi.spyOn(useGLTF, "clear").mockImplementation(() => undefined);
expect(activateDungeonSession("wailing-caverns", "missing")).toBe(false);
expect(activateDungeonSession("wailing-caverns", undefined, { bossDifficulty: 11 })).toBe(false);
expect(useGameStore.getState().activeDungeonId).toBe(active);
expect(clear).not.toHaveBeenCalled();
});
it("restarts the active dungeon in place while preserving its party and encounter state", () => {
const active = dungeonDefinitionById("wailing-caverns")!;
expect(activateDungeonSession(active.id)).toBe(true);
expect(activateDungeonSession(active.id, undefined, { bossDifficulty: 6 })).toBe(true);
usePartyStore.getState().initializeParty("retry-party", 20, 600, "healer");
const members = usePartyStore.getState().members.map((member) => member.id);
const current = dungeonEncounterSnapshot(WAILING_NARALEX_ENCOUNTER.id)!;
@@ -64,6 +73,7 @@ describe("dungeon session asset eviction", () => {
const clear = vi.spyOn(useGLTF, "clear").mockImplementation(() => undefined);
expect(restartActiveDungeonSession()).toBe(true);
expect(useGameStore.getState().activeBossDifficulty).toBe(6);
expect(clear.mock.calls.map(([url]) => url)).toEqual(dungeonGltfUrls(active));
expect(useGameStore.getState().sessionRevision).toBe(revision + 1);