Files
front/netcode/handlers/lobby.handler.ts
T
2024-12-30 20:15:02 +01:00

35 lines
1.0 KiB
TypeScript

import { useLobbyStore } from "~/store/lobby.store";
import type {
LobbyCreateEvent,
LobbyDeleteEvent,
LobbyJoinEvent,
LobbyLeaveEvent,
LobbyStartEvent,
} from "../events/lobby.events";
export const handlers = {
create: (event: LobbyCreateEvent) => {
const lobbyStore = useLobbyStore();
lobbyStore.games[event.game.id] = event.game;
},
start: (event: LobbyStartEvent) => {
const lobbyStore = useLobbyStore();
lobbyStore.games[event.game.id].started = true;
},
delete: (event: LobbyDeleteEvent) => {
const lobbyStore = useLobbyStore();
delete lobbyStore.games[event.id];
},
joingame: (event: LobbyJoinEvent) => {
const lobbyStore = useLobbyStore();
lobbyStore.games[event.game.id].players.push(event.player);
},
leavegame: (event: LobbyLeaveEvent) => {
const lobbyStore = useLobbyStore();
const playerIndex = lobbyStore.games[event.game.id].players.findIndex(
(p) => p.userId == event.player.userId
);
lobbyStore.games[event.game.id].players.splice(playerIndex, 1);
},
};