import { itemData } from "../Classes/itemData"; import { lobbyMessage } from "../Classes/lobbyMessage"; import { playerData } from "../Classes/playerData"; import { game } from "../game"; export function pickup(socket, 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.player if(player != null){ let inventory = player.inventory let template = game.getItemTemplate(data1.templateId) let items = inventory.items.filter(i=>i.templateId == data1.templateId) let totalAdded = 0 if(data1.count > template.maxCount) { console.log("ERROR ERROR ITEM ERROR") return; } items.forEach(item=>{ var maxAmount = Math.min(template.maxCount - item.count, data1.count - totalAdded); if (maxAmount > 0) { item.count += maxAmount; totalAdded += maxAmount; } }) if(totalAdded < data1.count) { let maxAmount = data1.count - totalAdded let itemCopy = itemData.copy(data1); itemCopy.count = maxAmount; totalAdded += maxAmount; inventory.items.push(itemCopy); } if (totalAdded == data1.count) { if(data1.rarity >= 75){ let message = socket.user.login + " picked up " if(data1.rarity >= 95){ message += "" + data1.name + " (epic)" } else if(data1.rarity >= 75){ message += "" + data1.name + " (rare)" } else if(data1.rarity >= 60){ message += "" + data1.name + " (uncommon)" } else message += data1.name; game.addMessage(new lobbyMessage(message)) } } else { console.log("ERROR ERROR ITEM ERROR") } } }