UNPKG

osrs-tools

Version:

A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information

166 lines 4.64 kB
/** * Clue Scroll Reward Item Mappings * Organizes all clue scroll rewards by tier with their correct rarity tiers * Based on official OSRS Wiki data */ import { Item } from "../Item/Item"; /** * Reward odds mapping for Beginner clue scrolls * Beginner caskets have a three-tier table structure based on wiki data: * https://oldschool.runescape.wiki/w/Reward_casket_(beginner) * * Key mechanics: * - Caskets contain 1-3 items (weighted towards 2) * - Unique/Cabbage roll: 1/12 (41/492) * - 50% Cabbage (5-9 noted) at 1/24 overall * - 50% Specific unique at 1/360 overall (1/15 items) * - Black items table: 11/492 (18 items at 1/805.1 each, or 11/8856) * - Common items: 440/492 (weapons, armor, runes, misc food) * * Average loot value per roll: 1,427 gp * Average casket value: 2,854 gp (2 rolls average) * Average clues for all uniques: 597 */ export interface RewardEntry { item: Item; rarity: number; quantity?: number; quantityMin?: number; quantityMax?: number; noted?: boolean; } interface RewardTable { [itemName: string]: RewardEntry; } /** * Beginner rewards organized by table structure * Table weights define the probability of selecting each table per roll * * Weights represent proportions that sum to 492: * - Unique/Cabbage: 41 weight = 1/12 chance (41/492) * - Black items: 11 weight = 11/492 chance * - Common items: 440 weight = 440/492 chance */ export declare const BEGINNER_REWARDS: { tables: Array<{ name: string; weight: number; items: RewardTable; description?: string; }>; flattened: { [x: string]: RewardEntry; }; }; /** * Easy rewards organized by table structure * Table weights represent the proportion of rolls hitting each table * * Beginner uses 1080 total weight units: * - Unique/standard items dominate * - Master clue is separate 1/50 mechanic */ export declare const EASY_REWARDS: { tables: Array<{ name: string; weight: number; items: RewardTable; description?: string; }>; flattened: { [x: string]: RewardEntry; }; }; /** * Medium clue rewards with table-based structure * Weighted table system for accurate probability distribution */ export declare const MEDIUM_REWARDS: { tables: Array<{ name: string; weight: number; items: RewardTable; description?: string; }>; flattened: { [x: string]: RewardEntry; }; }; /** * Hard clue rewards with table-based structure * 4-6 items per casket, average 5 */ export declare const HARD_REWARDS: { tables: Array<{ name: string; weight: number; items: RewardTable; description?: string; }>; flattened: { [x: string]: RewardEntry; }; }; /** * Elite clue rewards with table-based structure * 4-6 items per casket, average 5 */ export declare const ELITE_REWARDS: { tables: Array<{ name: string; weight: number; items: RewardTable; description?: string; }>; flattened: { [x: string]: RewardEntry; }; }; /** * Master tier unique items * Major rare table at various rarities (1/851 to 1/25,530) */ export declare const MASTER_UNIQUE_ITEMS: RewardTable; /** * Master tier standard table * Dragon weapons, runes, food, resources at 1/30.3 base */ export declare const MASTER_STANDARD_TABLE: RewardTable; /** * Master tier mega-rare items (gilded + 3rd age + special) */ export declare const MASTER_MEGA_RARE_ITEMS: RewardTable; /** * Master clue rewards with table-based structure * 5-7 items per casket, average 6 */ export declare const MASTER_REWARDS: { tables: Array<{ name: string; weight: number; items: RewardTable; description?: string; }>; flattened: { [x: string]: RewardEntry; }; }; /** * Gets all reward odds for a specific clue tier */ export declare function getClueRewardsByTier(tier: "beginner" | "easy" | "medium" | "hard" | "elite" | "master"): RewardTable; /** * Gets the table structure for a specific clue tier (if available) * Returns null for tiers that don't have table-based rewards */ export declare function getClueRewardTables(tier: "beginner" | "easy" | "medium" | "hard" | "elite" | "master"): Array<{ name: string; weight: number; items: RewardTable; }> | null; /** * Gets all items for a specific tier as an array */ export declare function getClueItemsList(tier: "beginner" | "easy" | "medium" | "hard" | "elite" | "master"): Item[]; export {}; //# sourceMappingURL=ClueScrollRewards.d.ts.map