From f9ea866abf29685c002401cbbe5d8b11d32f6db6 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Mon, 3 Jun 2024 22:35:14 +0200 Subject: [PATCH] Worked on movement, added character limit --- src/app/events/CharacterCreate.ts | 8 +++++++- src/app/events/CharacterMove.ts | 10 +++++----- src/app/events/CharacterZoneLoad.ts | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/app/events/CharacterCreate.ts b/src/app/events/CharacterCreate.ts index a1c87ad..14edd37 100644 --- a/src/app/events/CharacterCreate.ts +++ b/src/app/events/CharacterCreate.ts @@ -19,8 +19,14 @@ export default function (socket: TSocket, io: Server) { return socket.emit('notification', {message: 'Character name already exists'}); } + let characters: Character[] = await CharacterRepository.getByUserId(user_id) as Character[]; + + if (characters.length >= 4) { + return socket.emit('notification', {message: 'You can only have 3 characters'}); + } + const character: Character = await CharacterRepository.create(user_id, data.name) as Character; - const characters: Character[] = await CharacterRepository.getByUserId(user_id) as Character[]; + characters = [...characters, character]; socket.emit('character:create:success'); socket.emit('character:list', characters); diff --git a/src/app/events/CharacterMove.ts b/src/app/events/CharacterMove.ts index b5e7239..e4ddba3 100644 --- a/src/app/events/CharacterMove.ts +++ b/src/app/events/CharacterMove.ts @@ -1,19 +1,19 @@ -import { Socket, Server } from "socket.io"; +import { Server } from "socket.io"; import {TSocket} from "../utilities/Types"; import CharacterRepository from "../repositories/CharacterRepository"; import {Character} from "@prisma/client"; type SocketResponseT = { - character_id: number + position_x: number, + position_y: number, } export default function (socket: TSocket, io: Server) { socket.on('character:move', async (data: SocketResponseT) => { try { - socket.character = await CharacterRepository.getById(data.character_id) as Character; - socket.emit('character:connect', socket.character) + } catch (error: any) { - console.log('character:connect error', error); + console.log('character:move error', error); } }); } \ No newline at end of file diff --git a/src/app/events/CharacterZoneLoad.ts b/src/app/events/CharacterZoneLoad.ts index de08be4..af5faad 100644 --- a/src/app/events/CharacterZoneLoad.ts +++ b/src/app/events/CharacterZoneLoad.ts @@ -34,7 +34,7 @@ export default function (socket: TSocket, io: Server) { // const characters = socketConnectionsInRoom.filter(socket => socket.id !== socket.id); // let other clients know of new character - socket.to(zone.name).emit('character:zone:character_join', socket.character); + socket.to(zone.name).emit('zone:new_join', socket.character); // send over zone and characters io.in(zone.name).to(socket.id).emit('character:zone:load', {