farming-weight
Version:
Tools for calculating farming weight and fortune in Hypixel Skyblock
77 lines (76 loc) • 1.98 kB
TypeScript
import { EliteItemDto } from '../fortune/item.js';
import { UpgradeableInfo } from '../fortune/upgradeable.js';
import type { GearSlot } from '../items/armor.js';
import type { FARMING_TOOLS } from '../items/tools.js';
import { Crop } from './crops.js';
import { Stat } from './stats.js';
export declare enum UpgradeReason {
NextTier = "next",
DeadEnd = "dead",
Situational = "situational"
}
export interface FortuneSource {
name: string;
fortunePerLevel: number;
cropSpecific?: boolean;
maxLevel: number;
wiki: string;
statsPerLevel?: Partial<Record<Stat, number>>;
}
export interface FortuneSourceProgress {
name: string;
fortune: number;
ratio: number;
maxLevel?: number;
fortunePerLevel?: number;
maxFortune: number;
wiki?: string;
upgrades?: FortuneUpgrade[];
progress?: FortuneSourceProgress[];
item?: EliteItemDto;
info?: UpgradeableInfo;
nextInfo?: UpgradeableInfo;
maxInfo?: UpgradeableInfo;
api?: boolean;
}
export interface UpgradeCost {
items: Record<string, number>;
coins?: number;
copper?: number;
}
export declare enum UpgradeCategory {
Enchant = "enchant",
Rarity = "rarity",
Item = "item",
Gem = "gem"
}
export declare enum UpgradeAction {
Apply = "apply",
Recombobulate = "recombobulate",
LevelUp = "levelup"
}
export interface FortuneUpgradeImprovement {
name: string;
fortune: number;
}
export interface FortuneUpgrade {
title: string;
increase: number;
action: UpgradeAction;
category: UpgradeCategory;
cost?: UpgradeCost;
wiki?: string;
improvements?: FortuneUpgradeImprovement[];
}
export interface Upgrade {
id: string;
reason: UpgradeReason;
cost?: UpgradeCost;
why?: string;
preffered?: boolean;
}
export interface InitialItems {
tools: Partial<Record<Crop, keyof typeof FARMING_TOOLS>>;
armor: Record<GearSlot, string | string[]>;
pets: string[];
}