farming-weight
Version:
Tools for calculating farming weight and fortune in Hypixel Skyblock
267 lines (266 loc) • 6.74 kB
JavaScript
import { unlockedPestBestiaryTiers } from '../util/pests';
import { Rarity } from './reforges';
import { Stat } from './stats';
export var FarmingPets;
(function (farmingPets) {
farmingPets['Elephant'] = 'ELEPHANT';
farmingPets['MooshroomCow'] = 'MOOSHROOM_COW';
farmingPets['Bee'] = 'BEE';
farmingPets['Rabbit'] = 'RABBIT';
farmingPets['Slug'] = 'SLUG';
farmingPets['TRex'] = 'TYRANNOSAURUS';
})(FarmingPets || (FarmingPets = {}));
export var FarmingPetStatType;
(function (farmingPetStatType) {
farmingPetStatType['Base'] = 'base';
farmingPetStatType['Ability'] = 'ability';
})(FarmingPetStatType || (FarmingPetStatType = {}));
export const FARMING_PETS = {
[FarmingPets.Elephant]: {
name: 'Elephant',
wiki: 'https://wiki.hypixel.net/Elephant_Pet',
perLevelStats: {
[Stat.FarmingFortune]: {
name: 'Farming Fortune',
value: 1.5,
type: FarmingPetStatType.Ability,
},
},
},
[FarmingPets.MooshroomCow]: {
name: 'Mooshroom Cow',
wiki: 'https://wiki.hypixel.net/Mooshroom_Cow_Pet',
stats: {
[Stat.FarmingFortune]: {
name: 'Farming Fortune',
value: 10,
type: FarmingPetStatType.Base,
},
},
perLevelStats: {
[Stat.FarmingFortune]: {
name: 'Farming Fortune',
value: 1,
type: FarmingPetStatType.Base,
},
},
abilities: [
{
name: 'Farming Strength',
exists: (player, pet) => pet.rarity === Rarity.Legendary,
computed: (player, pet) => {
const STRENGTH_PER = 40 - pet.level * 0.2;
const STRENGTH = player.strength ?? 0;
const AMOUNT = Math.floor((STRENGTH / STRENGTH_PER) * 0.7);
return {
[Stat.FarmingFortune]: {
name: 'Farming Strength Fortune',
value: AMOUNT,
type: FarmingPetStatType.Ability,
},
};
},
},
],
},
[FarmingPets.Bee]: {
name: 'Bee',
wiki: 'https://wiki.hypixel.net/Bee_Pet',
perLevelStats: {
[Stat.Strength]: {
name: 'Bee Strength',
value: 0.3,
type: FarmingPetStatType.Base,
},
},
perRarityLevelStats: {
[Rarity.Rare]: {
[Stat.FarmingFortune]: {
name: 'Busy Buzz Buzz',
value: 0.2,
type: FarmingPetStatType.Ability,
},
},
[Rarity.Epic]: {
[Stat.FarmingFortune]: {
name: 'Busy Buzz Buzz',
value: 0.3,
type: FarmingPetStatType.Ability,
},
},
[Rarity.Legendary]: {
[Stat.FarmingFortune]: {
name: 'Busy Buzz Buzz',
value: 0.3,
type: FarmingPetStatType.Ability,
},
},
},
},
[FarmingPets.Rabbit]: {
name: 'Rabbit',
wiki: 'https://wiki.hypixel.net/Rabbit_Pet',
perLevelStats: {
[Stat.Speed]: {
name: 'Rabbit Speed',
value: 0.2,
type: FarmingPetStatType.Base,
},
[Stat.Health]: {
name: 'Rabbit Health',
value: 1,
type: FarmingPetStatType.Base,
},
},
perRarityLevelStats: {
[Rarity.Rare]: {
[Stat.FarmingWisdom]: {
name: 'Farming Wisdom Boost',
value: 0.25,
type: FarmingPetStatType.Ability,
},
},
[Rarity.Epic]: {
[Stat.FarmingWisdom]: {
name: 'Farming Wisdom Boost',
value: 0.3,
type: FarmingPetStatType.Ability,
},
},
[Rarity.Legendary]: {
[Stat.FarmingWisdom]: {
name: 'Farming Wisdom Boost',
value: 0.3,
type: FarmingPetStatType.Ability,
},
},
[Rarity.Mythic]: {
[Stat.FarmingWisdom]: {
name: 'Farming Wisdom Boost',
value: 0.3,
type: FarmingPetStatType.Ability,
},
},
},
},
[FarmingPets.Slug]: {
name: 'Slug',
wiki: 'https://wiki.hypixel.net/Slug_Pet',
perLevelStats: {
[Stat.Defense]: {
name: 'Slug Defense',
value: 0.2,
type: FarmingPetStatType.Base,
},
[Stat.Intelligence]: {
name: 'Slug Intelligence',
value: 0.25,
type: FarmingPetStatType.Base,
},
},
perRarityLevelStats: {
[Rarity.Epic]: {
[Stat.BonusPestChance]: {
name: 'Pest Friends',
value: 0.4,
type: FarmingPetStatType.Ability,
},
},
[Rarity.Legendary]: {
[Stat.BonusPestChance]: {
name: 'Pest Friends',
value: 0.4,
type: FarmingPetStatType.Ability,
},
// An option to check if this fortune is present doesn't exist yet
[Stat.FarmingFortune]: {
name: 'Repungent Aroma',
calculated: () => 100,
exists: () => false,
type: FarmingPetStatType.Ability,
},
},
},
},
[FarmingPets.TRex]: {
name: 'T-Rex',
wiki: 'https://wiki.hypixel.net/T-Rex_Pet',
perLevelStats: {
[Stat.Strength]: {
name: 'T-Rex Strength',
value: 0.75,
type: FarmingPetStatType.Base,
},
[Stat.CritChance]: {
name: 'T-Rex Crit Chance',
value: 0.05,
type: FarmingPetStatType.Base,
},
[Stat.Ferocity]: {
name: 'T-Rex Ferocity',
value: 0.25,
type: FarmingPetStatType.Base,
},
},
abilities: [
{
name: 'Tyrant',
computed: (player, pet) => {
// Effectively doubles pet item stats by counting them twice
return pet.item?.stats ?? {};
},
},
],
},
};
export const FARMING_PET_ITEMS = {
YELLOW_BANDANA: {
name: 'Yellow Bandana',
wiki: 'https://wiki.hypixel.net/Yellow_Bandana',
stats: {
[Stat.FarmingFortune]: {
name: 'Bandana Fortune',
value: 30,
},
},
},
GREEN_BANDANA: {
name: 'Green Bandana',
wiki: 'https://wiki.hypixel.net/Green_Bandana',
stats: {
[Stat.FarmingFortune]: {
name: 'Bandana Fortune',
calculated: (player) => 4 * (player.gardenLevel ?? 0),
},
},
},
BROWN_BANDANA: {
name: 'Brown Bandana',
wiki: 'https://wiki.hypixel.net/Brown_Bandana',
stats: {
[Stat.BonusPestChance]: {
name: 'Bandana Pest Chance',
calculated: (player) => 0.2 * unlockedPestBestiaryTiers(player.bestiaryKills ?? {}),
},
},
},
};
export const PET_RARITY_OFFSETS = {
[Rarity.Common]: 0,
[Rarity.Uncommon]: 6,
[Rarity.Rare]: 11,
[Rarity.Epic]: 16,
[Rarity.Legendary]: 20,
[Rarity.Mythic]: 20,
};
export const PET_LEVELS = [
100, 110, 120, 130, 145, 160, 175, 190, 210, 230, 250, 275, 300, 330, 360, 400, 440, 490, 540, 600, 660, 730, 800,
880, 960, 1050, 1150, 1260, 1380, 1510, 1650, 1800, 1960, 2130, 2310, 2500, 2700, 2920, 3160, 3420, 3700, 4000,
4350, 4750, 5200, 5700, 6300, 7000, 7800, 8700, 9700, 10800, 12000, 13300, 14700, 16200, 17800, 19500, 21300, 23200,
25200, 27400, 29800, 32400, 35200, 38200, 41400, 44800, 48400, 52200, 56200, 60400, 64800, 69400, 74200, 79200,
84700, 90700, 97200, 104200, 111700, 119700, 128200, 137200, 146700, 156700, 167700, 179700, 192700, 206700, 221700,
237700, 254700, 272700, 291700, 311700, 333700, 357700, 383700, 411700, 441700, 476700, 516700, 561700, 611700,
666700, 726700, 791700, 861700, 936700, 1016700, 1101700, 1191700, 1286700, 1386700, 1496700, 1616700, 1746700,
1886700,
];
//# sourceMappingURL=pets.js.map