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'});
}
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);

View File

@ -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);
}
});
}

View File

@ -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', {