Release Healer Man 0.1.22

This commit is contained in:
phenom committed 2026-09-09 11:21:33 -04:00
1 parent f6f2375145
commit 7f6001723a
144 files changed
+54107 -690

No files matched your search

+11 -3
View File
@@ -12,10 +12,12 @@ import { useManastormAdminStore } from "./manastormAdminStore";
import type { GmReviewTarget } from "./gmContentReview";
import {
activateDungeonEncounterDefinitions,
exportDungeonEncounterSnapshots,
importDungeonEncounterSnapshots,
resetDungeonEncounters,
} from "./dungeonEncounterRuntime";
import type { DungeonEncounterSnapshot } from "./dungeonEncounterTypes";
import { dungeonContentIsUsable } from "../content/contentManager";
export interface DungeonSessionOptions {
readonly gameMode?: GameMode;
@@ -39,13 +41,17 @@ export function activateDungeonSession(
options: DungeonSessionOptions = {},
): boolean {
const definition = dungeonDefinitionById(dungeonId);
if (!definition || !dungeonCanEnter(dungeonId)) {
if (!definition || !dungeonCanEnter(dungeonId) || !dungeonContentIsUsable(dungeonId)) {
return false;
}
const previousDefinition = dungeonDefinitionById(useGameStore.getState().activeDungeonId);
if (previousDefinition) releaseDungeonGltfCache(previousDefinition);
activateDungeonEncounterDefinitions(dungeonId, definition.encounters ?? []);
activateDungeonEncounterDefinitions(
dungeonId,
definition.encounters ?? [],
difficultyId ?? definition.defaultDifficultyId,
);
resetDungeonEncounters("dungeon", dungeonId);
clearMobRuntimeRegistry();
clearPartyRuntimeRegistry();
@@ -91,7 +97,7 @@ export function activateDungeonSession(
gmReviewTarget: options.gmReviewTarget,
});
if (options.encounterSnapshots?.length) {
importDungeonEncounterSnapshots(dungeonId, options.encounterSnapshots);
importDungeonEncounterSnapshots(dungeonId, options.encounterSnapshots, { authoritative: true });
}
useCombatStore.getState().setPlayerPosition(useGameStore.getState().playerPosition);
return true;
@@ -103,11 +109,13 @@ export function activateDungeonSession(
*/
export function restartActiveDungeonSession(): boolean {
const game = useGameStore.getState();
const encounterSnapshots = exportDungeonEncounterSnapshots(game.activeDungeonId);
return activateDungeonSession(game.activeDungeonId, game.activeDifficultyId, {
gameMode: game.gameMode,
spawn: game.activeSpawn,
gmTestMode: game.gmTestMode,
gmReviewTarget: game.activeGmReviewTarget,
preserveCharacter: true,
encounterSnapshots,
});
}