import { itemData } from "../Classes/itemData"; import { itemGenerated } from "../Classes/itemGenerated"; import { generateItem } from "./itemGeneration"; import { itemRequest } from "../Classes/itemRequest"; import { lobbyMessage } from "../Classes/lobbyMessage"; import { userData } from "../Classes/userData"; import { game } from "../game"; import { playerData } from "../Classes/playerData"; export function registerItemCallbacks(socket){ socket.on('item/pickup', (data) => { if(!socket.hasOwnProperty("user")) return; let buff = Buffer.from(data, 'base64'); let data1 : itemData = JSON.parse(buff.toString('utf-8')); let player : playerData = socket.user.playerData if(player != null){ let message = socket.user.login + " picked up " if(data1.rarity >= 90){ console.log("epic") message += "" + data1.name + " (epic)" } else if(data1.rarity >= 60){ console.log("rare") message += "" + data1.name + " (rare)" } else if(data1.rarity >= 40){ console.log("uncommon") message += "" + data1.name + " (uncommon)" } else message += data1.name; player.inventory.items.push(data1) game.addMessage(new lobbyMessage(message)) } }); socket.on('item/delete', (data) => { if(!socket.hasOwnProperty("user")) return; let buff = Buffer.from(data, 'base64'); let data1 = Number(buff.toString('utf-8')); let player : playerData = socket.user.playerData let item = player.inventory.items.findIndex(i=>i.id == data1); if(item == -1){ console.log("Error! Item " + item + " not found!") } player.inventory.items.splice(item, 1) }); socket.on('item/request', (data) => { if(!socket.hasOwnProperty("user")) return; let buff = Buffer.from(data, 'base64'); let data1 : itemRequest = JSON.parse(buff.toString('utf-8')); let response = new itemGenerated() response.instanceId = data1.instanceId response.item = generateItem(data1.itemType) socket.emit("item/generated", JSON.stringify(response)) }); }