Release Healer Man 0.1.21

This commit is contained in:
phenom committed 2026-09-08 10:40:26 -04:00
1 parent 699fc858c9
commit f6f2375145
210 files changed
+976039 -6247

No files matched your search

+27 -5
View File
@@ -4,6 +4,7 @@ import {
useMemo,
useRef,
useState,
useSyncExternalStore,
type PointerEvent as ReactPointerEvent,
} from "react";
import { Canvas } from "@react-three/fiber";
@@ -52,6 +53,13 @@ import { numericFrameRateLimit } from "../game/frameRateSettings";
import { useDocumentVisibility } from "../platform/useDocumentVisibility";
import { CappedFrameLoop } from "./CappedFrameLoop";
import { selectDungeonSessionPopulation } from "../game/dungeonSpawnSelection";
import { DungeonWorldObjects } from "./DungeonWorldObjects";
import {
activeDungeonEncounterRevision,
activeDungeonEncounterSpawnGroupIds,
subscribeDungeonEncounterSnapshots,
} from "../game/dungeonEncounterRuntime";
import { activeEncounterSpawnGroupSpawns } from "../game/dungeonEncounterSpawns";
export function GameScene() {
const activeDungeonId = useGameStore((state) => state.activeDungeonId);
@@ -60,6 +68,11 @@ export function GameScene() {
const manastormEncounter = useManastormStore((state) => state.currentEncounter);
const manastormPhase = useManastormStore((state) => state.phase);
const wailingPhase = useWailingEncounterStore((state) => state.phase);
useSyncExternalStore(
subscribeDungeonEncounterSnapshots,
activeDungeonEncounterRevision,
activeDungeonEncounterRevision,
);
const dungeon = requireDungeonDefinition(activeDungeonId);
const cameraFar = Math.max(
950,
@@ -103,7 +116,17 @@ export function GameScene() {
phasedStaticSpawns,
difficultyRoamingPacks,
);
const staticSpawns = sessionPopulation.staticSpawns;
const activeSpawnGroupIds = activeDungeonEncounterSpawnGroupIds();
const encounterSpawns = activeEncounterSpawnGroupSpawns(
dungeon.encounterSpawnGroups ?? [],
activeSpawnGroupIds,
difficultyMask,
sessionPopulation.staticSpawns,
);
const staticSpawns = [
...sessionPopulation.staticSpawns,
...encounterSpawns,
];
const roamingPacks = sessionPopulation.roamingPacks;
const paused = useGameStore((state) => state.paused);
const mapOpen = useGameStore((state) => state.mapOpen);
@@ -180,10 +203,6 @@ export function GameScene() {
};
}, [canvasRevision]);
useEffect(() => {
useWailingEncounterStore.getState().reset();
}, [activeDungeonId, gameMode, sessionRevision]);
useEffect(() => {
setAdaptiveDpr(1.5);
}, [activeDungeonId, sessionRevision]);
@@ -294,6 +313,9 @@ export function GameScene() {
<OnlinePlayerPopulation active={!simulationBlocked} />
<PartyPopulation active={!simulationBlocked} simulate={!sharedOnline || onlineAuthority} />
<GroundEffectTelegraphs />
{gameMode === "dungeon" && (
<DungeonWorldObjects definitions={dungeon.serverGameObjects} />
)}
<MobPopulation
active={!simulationBlocked}
entities={stagePopulation.entities}