Files
healer-man/src/game/ManastormClientCueBridge.tsx
T
2026-08-14 15:56:39 -04:00

27 lines
883 B
TypeScript

import { useEffect } from "react";
import { playManastormClientCue, stopManastormClientCue } from "./manastormClientCues";
import { useManastormStore } from "./manastormStore";
import { useGameStore } from "./store";
export function ManastormClientCueBridge() {
const gameMode = useGameStore((state) => state.gameMode);
const cueRequest = useManastormStore((state) => state.clientCue);
useEffect(() => {
if (gameMode !== "manastorm" || !cueRequest) return;
let current = true;
void playManastormClientCue(cueRequest.cueId).finally(() => {
if (!current) return;
const state = useManastormStore.getState();
if (state.clientCue?.revision === cueRequest.revision) state.clearClientCue();
});
return () => {
current = false;
};
}, [cueRequest, gameMode]);
useEffect(() => () => stopManastormClientCue(), []);
return null;
}