Worked on movement, added character limit
This commit is contained in:
parent
93cb7b7887
commit
f9ea866abf
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
@ -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', {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user