skyhelper-networth
Version:
SkyHelper's Networth Calculation for Hypixel SkyBlock
39 lines (34 loc) • 1.35 kB
JavaScript
const { starCosts } = require('../../helper/essenceStars');
/**
* A handler for Essence Stars on an item.
*/
class EssenceStarsHandler {
/**
* Get the item's upgrade level
* @param {object} item The item data
* @returns {number} The upgrade level of the item
*/
#getUpgradeLevel(item) {
const dungeonItemLevel = parseInt((item.extraAttributes.dungeon_item_level ?? 0).toString().replace(/\D/g, ''));
const upgradeLevel = parseInt((item.extraAttributes.upgrade_level ?? 0).toString().replace(/\D/g, ''));
return Math.max(dungeonItemLevel, upgradeLevel);
}
/**
* Checks if the handler applies to the item
* @param {object} item The item data
* @returns {boolean} Whether the handler applies to the item
*/
applies(item) {
return item.skyblockItem?.upgrade_costs?.length > 0 && this.#getUpgradeLevel(item) > 0;
}
/**
* Calculates and adds the price of the modifier to the item
* @param {object} item The item data
* @param {object} prices A prices object generated from the getPrices function
*/
calculate(item, prices) {
const level = this.#getUpgradeLevel(item);
item.price += starCosts(prices, item.calculation, item.skyblockItem.upgrade_costs.slice(0, level));
}
}
module.exports = EssenceStarsHandler;