UNPKG

farming-weight

Version:

Tools for calculating farming weight and fortune in Hypixel Skyblock

105 lines 3.74 kB
import { FarmingPetStatType, FarmingPets } from '../../constants/pets.js'; import { Stat } from '../../constants/stats.js'; import { FarmingPetDefinition } from '../base-pet.js'; export class RoseDragonPet extends FarmingPetDefinition { get id() { return FarmingPets.RoseDragon; } get name() { return 'Rose Dragon'; } get wiki() { return 'https://w.elitesb.gg/Rose_Dragon_Pet'; } maxLevel = 200; stats = { [Stat.FarmingFortune]: { name: 'Base Stats', type: FarmingPetStatType.Base, calculated: (pet) => (pet.level < 101 ? 0 : pet.level * 0.2), }, [Stat.Speed]: { name: 'Base Stats', type: FarmingPetStatType.Base, calculated: (pet) => (pet.level < 101 ? 0 : pet.level * 0.5), }, }; abilities = [ { name: 'Garden Power', exists: (_, pet) => pet.level >= 101, computed: (player, pet) => { return { [Stat.FarmingFortune]: { name: 'Garden Power', value: (player.options.farmingLevel ?? 0) * ((3 * pet.level) / 200), type: FarmingPetStatType.Ability, }, }; }, }, { name: 'Rosy Scales', exists: (_, pet) => pet.level >= 101, computed: (player, pet) => { const milestoneLevels = Object.values(player.options.milestones ?? {}).reduce((a, b) => a + b, 0); return { [Stat.FarmingFortune]: { name: 'Rosy Scales', value: milestoneLevels * ((0.15 * pet.level) / 200), type: FarmingPetStatType.Ability, }, [Stat.Speed]: { name: 'Rosy Scales', value: milestoneLevels * ((0.1 * pet.level) / 200), type: FarmingPetStatType.Ability, }, }; }, }, { name: "Dragon's Gluttony", exists: (_, pet) => pet.level >= 101, computed: (_, pet) => { return { [Stat.Overbloom]: { name: "Dragon's Gluttony", value: pet.level * 0.2, type: FarmingPetStatType.Ability, }, }; }, }, { name: 'Symbiosis', exists: (_, pet) => pet.level >= 200, computed: () => ({}), lateComputed: (ctx) => { const player = ctx.player; const pets = player?.pets ?? []; const maxedPets = {}; for (const pet of pets) { if (pet.type === FarmingPets.RoseDragon) { continue; } // Max rarity not checked here as Hypixel apparently doesn't look for it if (pet.level >= 100) { maxedPets[pet.type] = 1; } } const maxedPetCount = Object.keys(maxedPets).length; const fortune = maxedPetCount * 3; return { additive: fortune, breakdown: { Symbiosis: { value: fortune, stat: Stat.FarmingFortune, }, }, }; }, }, ]; } //# sourceMappingURL=rose-dragon.js.map