Release Healer Man 0.1.15
This commit is contained in:
1 parent
7b41b102fa
commit
f49e54f35f
43 files changed
+1478
-112
No files matched your search
@@ -10,6 +10,7 @@ import {
|
||||
import { useShellStore } from "./shellStore";
|
||||
import { registerDungeonShellRuntime } from "./dungeonShellRuntimeBridge";
|
||||
import { touchCharacter } from "./accountRepository";
|
||||
import { specializationById } from "../game/specializationCatalog";
|
||||
|
||||
export function installDungeonShellRuntime(): void {
|
||||
registerDungeonShellRuntime({ enterDungeon });
|
||||
@@ -33,7 +34,16 @@ function enterDungeon(dungeonId: string, requestedRole?: PartyRole): boolean {
|
||||
useShellStore.setState({ notice: "That character is no longer available." });
|
||||
return false;
|
||||
}
|
||||
const playerRole = requestedRole ?? defaultPartyRoleForClass(activeCharacter.classId);
|
||||
const savedSpecialization = specializationById(activeCharacter.specializationId);
|
||||
if (activeCharacter.categoryId !== "rom" && !savedSpecialization) {
|
||||
useShellStore.setState({ phase: "class-hall", notice: "Choose a specialization before entering activities." });
|
||||
return false;
|
||||
}
|
||||
const playerRole = savedSpecialization?.role ?? requestedRole ?? defaultPartyRoleForClass(activeCharacter.classId);
|
||||
if (savedSpecialization && requestedRole && requestedRole !== savedSpecialization.role) {
|
||||
useShellStore.setState({ notice: `${savedSpecialization.displayName} is locked to ${PARTY_ROLE_LABELS[savedSpecialization.role]}.` });
|
||||
return false;
|
||||
}
|
||||
if (!classCanFillPartyRole(activeCharacter.classId, playerRole)) {
|
||||
useShellStore.setState({
|
||||
notice: `${activeCharacter.name}'s class cannot enter as ${PARTY_ROLE_LABELS[playerRole]}.`,
|
||||
@@ -56,4 +66,3 @@ function enterDungeon(dungeonId: string, requestedRole?: PartyRole): boolean {
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user