From 225411823dfd6d2c568de728acd5dfa10b2980c7 Mon Sep 17 00:00:00 2001 From: Katboi01 Date: Thu, 21 Sep 2023 09:56:54 +0200 Subject: [PATCH] projectile sync --- Classes/inventoryItemTransaction.ts | 5 +++++ Classes/projectileInfo.ts | 3 +++ Items/itemSocket.ts | 21 +++++++++++++++++++++ Level/levelSocket.ts | 9 +++++++++ game.ts | 2 +- 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Classes/inventoryItemTransaction.ts create mode 100644 Classes/projectileInfo.ts diff --git a/Classes/inventoryItemTransaction.ts b/Classes/inventoryItemTransaction.ts new file mode 100644 index 0000000..e59bf5b --- /dev/null +++ b/Classes/inventoryItemTransaction.ts @@ -0,0 +1,5 @@ +export class inventoryItemTransaction{ + type : number + itemId : number + amount : number +} \ No newline at end of file diff --git a/Classes/projectileInfo.ts b/Classes/projectileInfo.ts new file mode 100644 index 0000000..6a4b092 --- /dev/null +++ b/Classes/projectileInfo.ts @@ -0,0 +1,3 @@ +export class projectileInfo{ +//unneeded +} \ No newline at end of file diff --git a/Items/itemSocket.ts b/Items/itemSocket.ts index b2ff033..b3aa73d 100644 --- a/Items/itemSocket.ts +++ b/Items/itemSocket.ts @@ -5,6 +5,7 @@ import { itemRequest } from "../Classes/itemRequest"; import { lobbyMessage } from "../Classes/lobbyMessage"; import { game } from "../game"; import { playerData } from "../Classes/playerData"; +import { inventoryItemTransaction } from "../Classes/inventoryItemTransaction"; export function registerItemCallbacks(socket){ socket.on('item/pickup', (data) => { @@ -86,6 +87,26 @@ export function registerItemCallbacks(socket){ player.inventory.items.splice(item, 1) }); + socket.on('item/deleteMany', (data) => { + if(!socket.hasOwnProperty("user")) return; + + let buff = Buffer.from(data, 'base64'); + let data1 : inventoryItemTransaction[] = JSON.parse(buff.toString('utf-8')); + + let player : playerData = socket.player + data1.forEach(t=>{ + switch(t.type){ + case 0: + player.inventory.items.find(i=>i.id == t.itemId).count += t.amount; + break; + case 2: + let item = player.inventory.items.findIndex(i=>i.id == t.itemId); + player.inventory.items.splice(item, 1) + break; + } + }) + }); + socket.on('item/request', (data) => { if(!socket.hasOwnProperty("user")) return; diff --git a/Level/levelSocket.ts b/Level/levelSocket.ts index 7122c87..d2e7e64 100644 --- a/Level/levelSocket.ts +++ b/Level/levelSocket.ts @@ -25,4 +25,13 @@ export function registerLevelCallbacks(socket){ room.enemies = data1.enemies room.objects = data1.objects }); + + socket.on('level/projectile', (data) => { + if(!socket.hasOwnProperty("user")) return; + + let buff = Buffer.from(data, 'base64'); + //let data1 = JSON.parse(); + + game.socketIO.emit('level/projectile', buff.toString('utf-8')) + }); } \ No newline at end of file diff --git a/game.ts b/game.ts index c3add0b..69193cd 100644 --- a/game.ts +++ b/game.ts @@ -16,7 +16,7 @@ export class game{ static lobbyState : lobbyState = new lobbyState() - /** Max items: 20 */ + /** Max items: 28 */ static messages : lobbyMessage[] = []; static addMessage(message:lobbyMessage) {