70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
|
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 += "<color=purple>" + data1.name + "</color> (epic)"
|
||
|
}
|
||
|
else if(data1.rarity >= 75){
|
||
|
message += "<color=red>" + data1.name + "</color> (rare)"
|
||
|
}
|
||
|
else if(data1.rarity >= 60){
|
||
|
message += "<color=yellow>" + data1.name + "</color> (uncommon)"
|
||
|
}
|
||
|
else
|
||
|
message += data1.name;
|
||
|
|
||
|
game.addMessage(new lobbyMessage(message))
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
console.log("ERROR ERROR ITEM ERROR")
|
||
|
}
|
||
|
}
|
||
|
}
|