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

116 lines 3.7 kB
/** * Types and interfaces for quest and skill requirements */ /** * Base type for all requirements in OSRS */ export declare enum RequirementType { /** Level requirement for a specific skill */ Level = "Level", /** Required combat level */ CombatLevel = "CombatLevel", /** Required Slayer level */ SlayerLevel = "SlayerLevel", /** Quest that must be completed */ Quest = "Quest", /** Number of quest points needed */ QuestPoint = "QuestPoint", /** Item that must be possessed */ Item = "Item", /** Location that must be accessible */ Location = "Location", /** Slayer reward that must be unlocked */ SlayerUnlock = "SlayerUnlock" } /** * Base interface for all requirement types */ export interface Requirement { /** The type of requirement */ type: RequirementType; /** Human-readable description of the requirement */ description: string; } /** * Requirement for a specific skill level */ export interface LevelRequirement extends Requirement { type: RequirementType.Level; /** The name of the skill */ skillName: string; /** The required level */ level: number; /** Whether the requirement can be boosted */ boostable: boolean; } /** * Requirement for overall combat level */ export interface CombatLevelRequirement extends Requirement { type: RequirementType.CombatLevel; /** The required combat level */ level: number; } /** * Requirement for Slayer level */ export interface SlayerLevelRequirement extends Requirement { type: RequirementType.SlayerLevel; /** The required Slayer level */ level: number; /** Whether the requirement can be boosted */ boostable: boolean; } /** * Requirement to have completed a quest */ export interface QuestRequirement extends Requirement { type: RequirementType.Quest; /** The name of the required quest */ questName: string; } /** * Requirement for total quest points */ export interface QuestPointRequirement extends Requirement { type: RequirementType.QuestPoint; /** The number of quest points required */ points: number; } /** * Requirement to possess an item */ export interface ItemRequirement extends Requirement { type: RequirementType.Item; /** The name of the required item */ itemName: string; /** The quantity needed (defaults to 1) */ quantity?: number; /** Whether the item is consumed during the quest */ consumed?: boolean; } /** * Requirement to access a location */ export interface LocationRequirement extends Requirement { type: RequirementType.Location; /** The name of the required location */ locationName: string; } /** * Requirement for a Slayer unlock */ export interface SlayerUnlockRequirement extends Requirement { type: RequirementType.SlayerUnlock; /** The name of the required Slayer unlock */ unlockName: string; } /** Helper function to create a level requirement */ export declare function createLevelRequirement(skillName: string, level: number, boostable?: boolean, description?: string): LevelRequirement; /** Helper function to create a quest requirement */ export declare function createQuestRequirement(questName: string, description?: string): QuestRequirement; /** Helper function to create a quest points requirement */ export declare function createQuestPointRequirement(points: number, description?: string): QuestPointRequirement; /** Helper function to create an item requirement */ export declare function createItemRequirement(itemName: string, quantity?: number, consumed?: boolean, description?: string): ItemRequirement; //# sourceMappingURL=Requirements.d.ts.map