farming-weight
Version:
Tools for calculating farming weight and fortune in Hypixel Skyblock
105 lines • 3.74 kB
JavaScript
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