From b89dcadd3f2705d1fb0273f46837ae26a2bf8b1c Mon Sep 17 00:00:00 2001
From: Dennis Postma <dennis@directonline.io>
Date: Tue, 4 Jun 2024 19:57:59 +0200
Subject: [PATCH] character movement logic

---
 src/app/events/CharacterMove.ts     | 5 +++--
 src/app/events/CharacterZoneLoad.ts | 4 ++--
 src/app/events/Disconnect.ts        | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/app/events/CharacterMove.ts b/src/app/events/CharacterMove.ts
index 3e585f1..28e5537 100644
--- a/src/app/events/CharacterMove.ts
+++ b/src/app/events/CharacterMove.ts
@@ -1,7 +1,7 @@
 import { Server } from "socket.io";
 import {TSocket} from "../utilities/Types";
 import CharacterRepository from "../repositories/CharacterRepository";
-import {Character} from "@prisma/client";
+import ZoneManager from "../ZoneManager";
 
 type SocketResponseT = {
     position_x: number,
@@ -22,9 +22,10 @@ export default function (socket: TSocket, io: Server) {
             socket.character.position_y = data.position_y;
 
             await CharacterRepository.update(socket.character);
+            ZoneManager.updateCharacterInZone(socket.character.zoneId, socket.character);
             console.log(socket.character);
 
-            socket.emit('character:moved', socket.character);
+            io.in(socket.character.zoneId.toString()).emit('character:moved', socket.character);
         } catch (error: any) {
             console.log('character:move error', error);
         }
diff --git a/src/app/events/CharacterZoneLoad.ts b/src/app/events/CharacterZoneLoad.ts
index d3baac3..40f0737 100644
--- a/src/app/events/CharacterZoneLoad.ts
+++ b/src/app/events/CharacterZoneLoad.ts
@@ -31,7 +31,7 @@ export default function (socket: TSocket, io: Server) {
             return;
         }
 
-        socket.join(zone.name);
+        socket.join(zone.id.toString());
 
         // send over zone and characters to socket
         socket.emit('character:zone:load', {
@@ -40,7 +40,7 @@ export default function (socket: TSocket, io: Server) {
         });
 
         // let other clients know of new character
-        io.to(zone.name).emit('zone:character:join', socket.character);
+        io.to(zone.id.toString()).emit('zone:character:join', socket.character);
 
         // add character to zone manager
         ZoneManager.addCharacterToZone(zone.id, socket.character as Character);
diff --git a/src/app/events/Disconnect.ts b/src/app/events/Disconnect.ts
index dc67dd1..1850d90 100644
--- a/src/app/events/Disconnect.ts
+++ b/src/app/events/Disconnect.ts
@@ -11,7 +11,7 @@ export default function (socket: TSocket, io: Server) {
             return;
         }
 
-        ZoneManager.removeCharacterFromZone(socket.character.id, socket.character.zoneId);
+        ZoneManager.removeCharacterFromZone(socket.character.zoneId, socket.character.id);
 
         io.emit('user:disconnect', socket.character);
     });