Template
35 lines
1.0 KiB
TypeScript
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);
|
|
},
|
|
};
|