forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
bd073fb00f
commit
83eac6d476
15 files changed
+438
-272
No files matched your search
@@ -1,16 +1,18 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { useDungeonRaceStore } from "../app/dungeonRaceStore";
|
||||
import { formatDungeonDuration } from "../game/dungeonRunTypes";
|
||||
import { useGameStore } from "../game/store";
|
||||
import "./dungeonRace.css";
|
||||
|
||||
export function DungeonRaceHud() {
|
||||
const race = useDungeonRaceStore();
|
||||
const activeDungeonId = useGameStore((state) => state.activeDungeonId);
|
||||
const [now, setNow] = useState(() => Date.now());
|
||||
useEffect(() => {
|
||||
const interval = window.setInterval(() => setNow(Date.now()), 100);
|
||||
return () => window.clearInterval(interval);
|
||||
}, []);
|
||||
if (!race.inGame || !race.opponent) return null;
|
||||
if (!race.inGame || !race.opponent || race.dungeonId !== activeDungeonId) return null;
|
||||
const serverNow = now + race.serverOffset;
|
||||
const remaining = race.startAt ? Math.max(0, Math.ceil((race.startAt - serverNow) / 1000)) : null;
|
||||
const elapsed = race.startAt ? Math.max(0, serverNow - race.startAt) : 0;
|
||||
|
||||
@@ -159,6 +159,6 @@ export function DungeonRunResults() {
|
||||
useShellStore.getState().saveActiveDungeonRunCheckpoint(null);
|
||||
useGameStore.getState().closeOverlay();
|
||||
useShellStore.getState().returnToMainMenu();
|
||||
if (raceRun) useDungeonRaceStore.getState().reset();
|
||||
if (raceRun) void useDungeonRaceStore.getState().leave();
|
||||
})(); }} />;
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import { specializationById, specializationIconUrl } from "../game/specializatio
|
||||
import { dungeonBossCards } from "../game/dungeonBossCards";
|
||||
import { requireDungeonDefinition } from "../game/dungeonRegistry";
|
||||
import { DungeonBossCards } from "./DungeonBossCards";
|
||||
import { useDungeonRaceStore } from "../app/dungeonRaceStore";
|
||||
|
||||
function PauseDialog() {
|
||||
const closeOverlay = useGameStore((state) => state.closeOverlay);
|
||||
@@ -31,9 +32,14 @@ function PauseDialog() {
|
||||
closeOverlay();
|
||||
};
|
||||
const returnToEntrance = () => {
|
||||
if (useDungeonRaceStore.getState().inGame) {
|
||||
void useDungeonRaceStore.getState().leave();
|
||||
useGameStore.setState({ raceStartBlocked: false });
|
||||
}
|
||||
reset();
|
||||
};
|
||||
const leaveDungeon = () => {
|
||||
if (useDungeonRaceStore.getState().inGame) void useDungeonRaceStore.getState().leave();
|
||||
closeOverlay();
|
||||
returnToMainMenu();
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user