let slots = require('../../../items/config/slots'); module.exports = { slot: null, quality: 0, type: 'loot', build: function () { let slotNames = slots.slots .filter(s => (s !== 'tool')); if (this.slot) { if (!slotNames.some(s => (s === this.slot))) this.slot = null; } if (!this.slot) { if (Math.random() < 0.2) { this.quality = 1 + ~~(Math.random() * 2); this.slotName = ''; if (this.quality === 1) { let roll = ~~(Math.random() * 2); if (roll === 0) this.slotName = 'Magic Armor'; else this.slotName = 'Magic Accessory'; this.slot = ([ [ 'head', 'chest', 'hands', 'waist', 'legs', 'feet', 'offHand' ], [ 'trinket', 'neck', 'finger' ] ])[roll]; } else { this.slotName = 'Rare Equipment'; this.slot = slotNames; } this.name = 'Purveyor of Rarities'; this.description = 'Loot 1x ' + this.slotName; } else { this.name = 'Purveyor of Artefacts'; this.slot = slotNames[~~(Math.random() * slotNames.length)]; this.slotName = this.slot[0].toUpperCase() + this.slot.substr(1); this.description = 'Loot 1x ' + this.slotName + ' slot item'; } } return true; }, getXpMultiplier: function () { let multiplier = 1; if (!this.quality) multiplier *= 8; else if (this.quality === 2) multiplier *= 6; else if (this.quality === 1) multiplier *= 4; return multiplier; }, events: { afterLootMobItem: function (item) { if ( (this.isReady) || (this.obj.zoneName !== this.zoneName) || ( (this.quality) && (item.quality < this.quality) ) || ( (this.slot.indexOf) && (this.slot.indexOf(item.slot) === -1) ) || ( (!this.slot.indexOf) && (this.slot !== item.slot) ) ) return; this.ready(); } } };