farming-weight
Version:
Tools for calculating farming weight and fortune in Hypixel Skyblock
116 lines • 5.1 kB
JavaScript
import { ANITA_FORTUNE_UPGRADE, COMMUNITY_CENTER_UPGRADE, FARMING_LEVEL, PEST_BESTIARY_SOURCE, REFINED_TRUFFLE_SOURCE, UNLOCKED_PLOTS, } from '../../constants/specific.js';
import { Stat } from '../../constants/stats.js';
import { FarmingAccessory } from '../../fortune/farmingaccessory.js';
import { FARMING_ACCESSORIES_INFO } from '../../items/accessories.js';
import { fortuneFromPestBestiary } from '../../util/pests.js';
export const GENERAL_FORTUNE_SOURCES = [
{
name: FARMING_LEVEL.name,
wiki: () => FARMING_LEVEL.wiki,
exists: () => true,
max: () => FARMING_LEVEL.maxLevel * FARMING_LEVEL.fortunePerLevel,
current: (player) => {
return (player.options.farmingLevel ?? 0) * FARMING_LEVEL.fortunePerLevel;
},
},
{
name: PEST_BESTIARY_SOURCE.name,
wiki: () => PEST_BESTIARY_SOURCE.wiki,
exists: () => true,
max: () => PEST_BESTIARY_SOURCE.maxLevel * PEST_BESTIARY_SOURCE.fortunePerLevel,
current: (player) => {
return fortuneFromPestBestiary(player.options.bestiaryKills ?? {});
},
},
{
name: ANITA_FORTUNE_UPGRADE.name,
wiki: () => ANITA_FORTUNE_UPGRADE.wiki,
exists: () => true,
max: () => ANITA_FORTUNE_UPGRADE.maxLevel * ANITA_FORTUNE_UPGRADE.fortunePerLevel,
current: (player) => {
return (player.options.anitaBonus ?? 0) * ANITA_FORTUNE_UPGRADE.fortunePerLevel;
},
},
{
name: UNLOCKED_PLOTS.name,
wiki: () => UNLOCKED_PLOTS.wiki,
exists: () => true,
max: () => UNLOCKED_PLOTS.maxLevel * UNLOCKED_PLOTS.fortunePerLevel,
current: (player) => {
return (player.options.plotsUnlocked ?? 0) * UNLOCKED_PLOTS.fortunePerLevel;
},
},
{
name: COMMUNITY_CENTER_UPGRADE.name,
api: false,
wiki: () => COMMUNITY_CENTER_UPGRADE.wiki,
exists: () => true,
max: () => COMMUNITY_CENTER_UPGRADE.maxLevel * COMMUNITY_CENTER_UPGRADE.fortunePerLevel,
current: (player) => {
return (player.options.communityCenter ?? 0) * COMMUNITY_CENTER_UPGRADE.fortunePerLevel;
},
},
{
name: 'Fermento Artifact',
exists: () => true,
wiki: (player) => {
const highest = player.activeAccessories.find((a) => a.info.family === FARMING_ACCESSORIES_INFO.FERMENTO_ARTIFACT?.family);
return highest?.info.wiki ?? FARMING_ACCESSORIES_INFO.CROPIE_TALISMAN?.wiki;
},
max: () => FARMING_ACCESSORIES_INFO.FERMENTO_ARTIFACT?.baseStats?.[Stat.FarmingFortune] ?? 0,
current: (player) => {
const highest = player.activeAccessories.find((a) => a.info.family === FARMING_ACCESSORIES_INFO.FERMENTO_ARTIFACT?.family);
if (!highest)
return 0;
if (highest.info.crops) {
return 0;
}
return highest.info.baseStats?.[Stat.FarmingFortune] ?? 0;
},
info: (player) => {
const highest = player.activeAccessories.find((a) => a.info.family === FARMING_ACCESSORIES_INFO.FERMENTO_ARTIFACT?.family);
const first = !highest ? FARMING_ACCESSORIES_INFO.CROPIE_TALISMAN : undefined;
return {
item: highest?.item,
info: highest?.info,
nextInfo: first ?? highest?.getNextItemUpgrade()?.info,
maxInfo: highest?.getLastItemUpgrade()?.info ?? FARMING_ACCESSORIES_INFO.FERMENTO_ARTIFACT,
};
},
},
{
name: REFINED_TRUFFLE_SOURCE.name,
wiki: () => REFINED_TRUFFLE_SOURCE.wiki,
exists: () => true,
max: () => REFINED_TRUFFLE_SOURCE.maxLevel * REFINED_TRUFFLE_SOURCE.fortunePerLevel,
current: (player) => {
return (player.options.refinedTruffles ?? 0) * REFINED_TRUFFLE_SOURCE.fortunePerLevel;
},
},
{
name: 'Relic of Power',
exists: () => true,
wiki: () => FARMING_ACCESSORIES_INFO.POWER_RELIC?.wiki,
max: () => {
const accessory = FarmingAccessory.fakeItem(FARMING_ACCESSORIES_INFO.POWER_RELIC);
return accessory?.getProgress()?.reduce((acc, p) => acc + p.maxFortune, 0) ?? 0;
},
current: (player) => {
const accessory = player.accessories.find((a) => a.info.skyblockId === 'POWER_RELIC');
return accessory?.fortune ?? 0;
},
info: (player) => {
const accessory = player.accessories.find((a) => a.info.skyblockId === 'POWER_RELIC');
const fake = !accessory
? FarmingAccessory.fakeItem(FARMING_ACCESSORIES_INFO.POWER_RELIC)
: undefined;
return {
item: accessory?.item,
info: accessory?.info,
nextInfo: fake ? fake.info : accessory?.getNextItemUpgrade()?.info,
maxInfo: (fake ? fake : accessory)?.getLastItemUpgrade()?.info,
};
},
},
];
//# sourceMappingURL=generalsources.js.map