farming-weight
Version:
Tools for calculating farming weight and fortune in Hypixel Skyblock
51 lines (50 loc) • 2.46 kB
TypeScript
import type { LateCalculationContext, LateCalculationResult } from '../constants/latecalc.js';
import { Rarity } from '../constants/reforges.js';
import { Stat, type StatBreakdown } from '../constants/stats.js';
import { type FortuneSourceProgress, type FortuneUpgrade, type StatQueryOptions } from '../constants/upgrades.js';
import type { Effect, EffectEnvironment } from '../effects/types.js';
import { type FarmingPetInfo, type FarmingPetItemInfo, type FarmingPets, type FarmingPetType } from '../items/pets.js';
import type { FarmingPlayer } from '../player/player.js';
import type { PlayerOptions } from '../player/playeroptions.js';
import type { EliteItemDto } from './item.js';
export declare function createFarmingPet(pet: FarmingPetType): FarmingPet;
export declare class FarmingPet {
readonly pet: FarmingPetType;
readonly type: FarmingPets;
readonly info: FarmingPetInfo;
readonly rarity: Rarity;
readonly level: number;
readonly item: FarmingPetItemInfo | undefined;
fortune: number;
breakdown: Record<string, number>;
options?: PlayerOptions;
constructor(pet: FarmingPetType, options?: PlayerOptions);
setOptions(options: PlayerOptions): void;
private computeFortune;
getFortune(stat?: Stat, player?: FarmingPlayer): number;
/**
* Returns the declarative `Effect[]` representation of every per-stat
* contribution this pet makes (base, per-level, per-rarity-level, abilities,
* pet item)
*/
getEffects(_env: EffectEnvironment, player?: FarmingPlayer): Effect[];
getFullBreakdown(player?: FarmingPlayer): StatBreakdown;
/**
* Get late-phase stats for abilities that depend on total fortune.
* Called after all base stats have been computed.
*/
getLateStats(ctx: LateCalculationContext): LateCalculationResult;
getFormattedName(): string;
getLevel(): number;
getXpForLevel(level: number): number;
private withChanges;
private getStatTotals;
private getBreakdownProgress;
private getDeltaStats;
private getProgressItem;
getProgress(stats?: Stat[], player?: FarmingPlayer): FortuneSourceProgress[];
getUpgrades(options?: StatQueryOptions, player?: FarmingPlayer): FortuneUpgrade[];
getChimeraAffectedStats(multiplier: number): Record<Stat, number>;
static isValid(pet: FarmingPetType): boolean | "" | undefined;
static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingPet[];
}