Worked on movement, added character limit

This commit is contained in:
Dennis Postma 2024-06-03 22:35:14 +02:00
parent 93cb7b7887
commit f9ea866abf
3 changed files with 13 additions and 7 deletions

View File

@ -19,8 +19,14 @@ export default function (socket: TSocket, io: Server) {
return socket.emit('notification', {message: 'Character name already exists'}); 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 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:create:success');
socket.emit('character:list', characters); socket.emit('character:list', characters);

View File

@ -1,19 +1,19 @@
import { Socket, Server } from "socket.io"; import { Server } from "socket.io";
import {TSocket} from "../utilities/Types"; import {TSocket} from "../utilities/Types";
import CharacterRepository from "../repositories/CharacterRepository"; import CharacterRepository from "../repositories/CharacterRepository";
import {Character} from "@prisma/client"; import {Character} from "@prisma/client";
type SocketResponseT = { type SocketResponseT = {
character_id: number position_x: number,
position_y: number,
} }
export default function (socket: TSocket, io: Server) { export default function (socket: TSocket, io: Server) {
socket.on('character:move', async (data: SocketResponseT) => { socket.on('character:move', async (data: SocketResponseT) => {
try { try {
socket.character = await CharacterRepository.getById(data.character_id) as Character;
socket.emit('character:connect', socket.character)
} catch (error: any) { } catch (error: any) {
console.log('character:connect error', error); console.log('character:move error', error);
} }
}); });
} }

View File

@ -34,7 +34,7 @@ export default function (socket: TSocket, io: Server) {
// const characters = socketConnectionsInRoom.filter(socket => socket.id !== socket.id); // const characters = socketConnectionsInRoom.filter(socket => socket.id !== socket.id);
// let other clients know of new character // 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 // send over zone and characters
io.in(zone.name).to(socket.id).emit('character:zone:load', { io.in(zone.name).to(socket.id).emit('character:zone:load', {