Release Healer Man 0.1.40
This commit is contained in:
1 parent
ed0d2fea3d
commit
197a64117c
215 files changed
+5131
-181
No files matched your search
@@ -8,7 +8,7 @@ import {
|
||||
type PartyRole,
|
||||
} from "../game/partyRoles";
|
||||
import { useShellStore } from "./shellStore";
|
||||
import { registerDungeonShellRuntime } from "./dungeonShellRuntimeBridge";
|
||||
import { registerDungeonShellRuntime, type DungeonEntrySettings } from "./dungeonShellRuntimeBridge";
|
||||
import { touchCharacter } from "./accountRepository";
|
||||
import { specializationById } from "../game/specializationCatalog";
|
||||
import { dungeonContentIsUsable } from "../content/contentManager";
|
||||
@@ -17,7 +17,7 @@ export function installDungeonShellRuntime(): void {
|
||||
registerDungeonShellRuntime({ enterDungeon });
|
||||
}
|
||||
|
||||
function enterDungeon(dungeonId: string, requestedRole?: PartyRole): boolean {
|
||||
function enterDungeon(dungeonId: string, requestedRole?: PartyRole, settings?: DungeonEntrySettings): boolean {
|
||||
const dungeon = dungeonById(dungeonId);
|
||||
if (!dungeon || !dungeon.available) {
|
||||
useShellStore.setState({ notice: "That dungeon is not available yet." });
|
||||
@@ -55,14 +55,19 @@ function enterDungeon(dungeonId: string, requestedRole?: PartyRole): boolean {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
const resume = activeCharacter.dungeonRunCheckpoint?.dungeonId === dungeonId
|
||||
const checkpoint = activeCharacter.dungeonRunCheckpoint;
|
||||
const resume = !settings?.freshRun && checkpoint?.dungeonId === dungeonId
|
||||
&& checkpoint.run?.finishedAt == null
|
||||
&& (settings?.difficultyId === undefined || checkpoint.difficultyId === settings.difficultyId)
|
||||
&& (settings?.bossDifficulty === undefined || checkpoint.run?.bossDifficulty === settings.bossDifficulty)
|
||||
? activeCharacter.dungeonRunCheckpoint
|
||||
: null;
|
||||
if (!activateDungeonSession(dungeonId, resume?.difficultyId, {
|
||||
if (!activateDungeonSession(dungeonId, settings?.difficultyId ?? resume?.difficultyId, {
|
||||
bossDifficulty: settings?.bossDifficulty ?? resume?.run?.bossDifficulty,
|
||||
spawn: resume?.spawn,
|
||||
encounterSnapshots: resume?.encounters,
|
||||
runProgress: resume?.run,
|
||||
legacyResume: Boolean(resume && !resume.run),
|
||||
legacyResume: Boolean(resume && resume.run?.bossDifficulty === undefined),
|
||||
})) {
|
||||
useShellStore.setState({
|
||||
notice: dungeon.availabilityReason ?? "That dungeon failed its latest validation gate.",
|
||||
|
||||
Reference in new issue
Block a user