2023-09-16 05:42:42 +08:00
|
|
|
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'));
|
|
|
|
|
2023-09-16 17:24:44 +08:00
|
|
|
let player : playerData = socket.player
|
2023-09-16 05:42:42 +08:00
|
|
|
if(player != null){
|
|
|
|
let message = socket.user.login + " picked up "
|
2023-09-16 17:24:44 +08:00
|
|
|
if(data1.rarity >= 95){
|
2023-09-16 05:42:42 +08:00
|
|
|
message += "<color=purple>" + data1.name + "</color> (epic)"
|
|
|
|
}
|
2023-09-16 17:24:44 +08:00
|
|
|
else if(data1.rarity >= 75){
|
2023-09-16 05:42:42 +08:00
|
|
|
message += "<color=red>" + data1.name + "</color> (rare)"
|
|
|
|
}
|
2023-09-16 17:24:44 +08:00
|
|
|
else if(data1.rarity >= 60){
|
2023-09-16 05:42:42 +08:00
|
|
|
message += "<color=yellow>" + data1.name + "</color> (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))
|
|
|
|
});
|
|
|
|
}
|