UNPKG

ggejs

Version:

A powerful JavaScript library for interacting with the server of Goodgame Empire: Four Kingdoms

67 lines (63 loc) 1.8 kB
const Gem = require("./Gem"); const Effect = require("./Effect"); const {equipment_effects: equipmentEffects} = require('e4k-data').data; class Equipment { /** * @param {Client} client * @param {Array} data * @param {Lord} lord */ constructor(client, data, lord = null) { /** @type {number} */ this.id = data[0]; /** @type {number} */ this.slotId = data[1]; /** @type {number} */ this.wearerId = data[2]; /** @type {number} */ this.rarityId = data[3]; /** @type {number} */ this.pictureId = data[4]; /** @type {boolean} */ this.canSlotGem = this.slotId !== 6; /** @type {number} */ this.enhancementLevel = data[8]; /** @type {number} */ this.setId = data[7]; /** @type {Effect[]} */ this.effects = parseEffects(client, data[5]); if (data[10] !== -1) /** @type {Gem} */ this.attachedGem = parseGem(client, data[10], this); if (lord) /** @type {Lord} */ this.equippedLord = lord; } } /** * @param {Client} client * @param {Array} data * @returns {Effect[]} */ function parseEffects(client, data) { let effects = []; for (let d of data) { for (let e of equipmentEffects) { if (e.equipmentEffectID === d[0]) { d[0] = e.effectID } } effects.push(new Effect(client, d)); } return effects; } /** * @param {Client} client * @param {number} data * @param {Equipment} equipment * @returns {Gem} */ function parseGem(client, data, equipment) { return new Gem(client, data, equipment) } module.exports = Equipment;