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
TypeScript
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