UNPKG

farming-weight

Version:

Tools for calculating farming weight and fortune in Hypixel Skyblock

36 lines (35 loc) 2.17 kB
import type { FarmingPlayer } from '../player/player.js'; import type { DynamicFortuneSource } from '../upgrades/sources/dynamicfortunesources.js'; import { Crop } from './crops.js'; import { Rarity } from './reforges.js'; import { Stat, type StatsRecord } from './stats.js'; type ShardId = keyof typeof FARMING_ATTRIBUTE_SHARDS; export type FarmingAttributes = Record<ShardId | string, number>; export interface FarmingAttributeShardContext { attributes?: FarmingAttributes | Record<string, number>; infestedPlotProbability?: number; crop?: Crop; } export type FarmingAttributeShardSourceContext = FarmingPlayer | FarmingAttributeShardContext; export interface FarmingAttributeShard { name: string; skyblockId: string; rarity: Rarity; wiki: string; effect: FarmingAttributeShardEffect; stats?: StatsRecord<unknown, FarmingAttributeShardSourceContext>; perLevelStats?: StatsRecord<unknown, FarmingAttributeShardSourceContext>; active?: DynamicFortuneSource<FarmingAttributeShardSourceContext>['active']; } export type FarmingAttributeShardEffect = 'none' | 'rates' | 'fortune' | 'wisdom'; export declare const FARMING_ATTRIBUTE_SHARDS: Record<string, FarmingAttributeShard>; export declare function normalizeAttributeId(id: string): ShardId | undefined; export declare function getAttributeAmount(attributes: Record<string, number> | undefined, id: ShardId): number; export declare function normalizeAttributes(attributes?: Record<string, number>): Record<string, number> | undefined; export declare const ATTRIBUTE_SHARD_LEVELING: Partial<Record<Rarity, number[]>>; export declare function getShardLevel(rarity: Rarity, amount?: number | null): number; export declare function getShardsForLevel(rarity: Rarity, level: number): number; export declare function getShardsForNextLevel(rarity: Rarity, amount: number): number; export declare function getShardFortune(shard: FarmingAttributeShard, player: FarmingAttributeShardSourceContext, level?: number): number; export declare function getShardStat(shard: FarmingAttributeShard, player: FarmingAttributeShardSourceContext, stat: Stat, level?: number): number; export {};