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

74 lines 3.15 kB
import { OsrsAccount } from "../account/OsrsAccount"; import { Quest } from "./Quest"; /** * OSRS Quest utility tool * * @description A tool to help with quest-related operations, such as checking if an account can complete a quest. * @author James Cerniglia */ declare class QuestTool { private osrsAccount; constructor(account?: OsrsAccount); /** * Set the account to be used in this quest tool * @param {OsrsAccount} acc1 The osrs Account to be associated with this class object. */ setOsrsAccount(acc1: OsrsAccount): boolean; /** * Get the osrs account associated with this quest tool * @return {OsrsAccount | undefined} The osrs Account associated with this class object. */ getOsrsAccount(): OsrsAccount | undefined; /** * Determine if the account can complete a quest, including recursively checking quest requirements. * @param quest The quest to check (must be a Quest instance) * @param visited (internal) Set of quest names already checked to prevent infinite recursion */ canCompleteQuest(quest: Quest | undefined, visited?: Set<string>): boolean; static getAllQuests(): Quest[]; static getAllMiniQuests(): Quest[]; /** * Build the quest registry mapping canonical names to quest objects. * Uses QuestList as the source of truth for quest names. * @returns Map of normalized quest names to Quest objects */ private static buildQuestRegistry; /** * Find the quest object matching a canonical quest name from QuestList. * Uses the quest's name property to match against the canonical name. * @param canonicalName The canonical name from QuestList * @param questMap Map of available quest objects * @returns The matching Quest object or undefined */ private static findQuestByCanonicalName; /** * Normalize a quest name for comparison purposes. * Removes punctuation, extra spaces, and converts to lowercase. * @param questName The quest name to normalize * @returns Normalized quest name */ private static normalizeQuestName; /** * Calculate Levenshtein distance between two strings for fuzzy matching. * @param str1 First string * @param str2 Second string * @returns Levenshtein distance */ private static levenshteinDistance; /** * Get a quest by name with support for fuzzy matching and common variations. * Supports exact matches, case-insensitive matches, and approximate matches. * @param questName The name of the quest to retrieve * @returns Quest instance or undefined if not found */ static getQuestByName(questName: string): Quest | undefined; private static questCache; /** * Get the maximum boost for a given skill, based on OSRS Wiki data. * @param skillName The name of the skill (case-insensitive, e.g. 'Attack', 'Herblore') * @returns The maximum boost amount for the skill (positive integer, or 0 if unboostable) */ static getMaxSkillBoost(skillName: string): number; } export { QuestTool }; //# sourceMappingURL=QuestTool.d.ts.map