reldens
Version:
Reldens - MMORPG Platform
35 lines (29 loc) • 1.2 kB
JavaScript
/**
*
* Reldens - PickUpObject
*
*/
const { RewardsConst } = require('../constants');
const { AddItemToInventory } = require('./add-item-to-inventory');
const { Logger, sc } = require('@reldens/utils');
class PickUpObject
{
async execute(roomObject, room, playerSchema, targetDeterminer)
{
let splitConfig = room.config.getWithoutLogs('client/rewards/general/splitItems', false);
let rewardTargets = RewardsConst.SPLIT_ITEMS.DROP_KEEPS === splitConfig || !targetDeterminer
? {[playerSchema.player_id]: playerSchema}
: targetDeterminer.forReward(playerSchema);
let playersKeys = Object.keys(rewardTargets);
let randomIndex = sc.randomInteger(0, (playersKeys.length -1));
let randomTarget = rewardTargets[playersKeys[randomIndex]];
if(!roomObject.itemId){
Logger.warning('Object with ID "'+roomObject.id+'" has no item ID.');
return false;
}
await AddItemToInventory.byItemIdOnPlayer(roomObject.itemId, randomTarget);
room.removeObject(roomObject);
return true;
}
}
module.exports.PickUpObject = new PickUpObject();