osrs-tools
Version:
A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information
171 lines • 5.22 kB
TypeScript
import { QuestDifficulty, QuestLength, QuestStatus } from "./enums";
import { Requirement } from "./Requirements";
/**
* Types and interfaces for the OSRS Quests system
* @author James Cerniglia
*/
/**
* Experience reward for completing a quest
*/
export interface QuestRewardExperience {
/** The skill that receives the experience */
skill: string;
/** The amount of experience gained */
amount: number;
}
/**
* An item rewarded from completing a quest
*/
export interface QuestRewardItem {
/** The name of the item */
name: string;
/** The quantity of the item (defaults to 1 if not specified) */
quantity?: number;
/** Additional notes about the item reward (e.g. "choice of one", "untradeable") */
note?: string;
id?: number;
}
/**
* A feature/ability unlocked by completing a quest
*/
export interface QuestRewardUnlock {
/** Description of what was unlocked */
description: string;
/** Optional URL to wiki page about the unlocked content */
url?: string;
}
/**
* An experience lamp rewarded from a quest
*/
export interface QuestRewardLamp {
/** The amount of experience in the lamp */
amount: number;
/** Any restrictions on which skills the lamp can be used on */
skillRestriction?: string | string[];
/** Additional notes about the lamp */
note?: string;
}
/**
* Points awarded for completing a quest
*/
export interface QuestRewardPoints {
/** The type of points (e.g. "Slayer", "Quest") */
type: string;
/** The number of points awarded */
amount: number;
}
/**
* A pet rewarded from completing a quest
*/
export interface QuestRewardPet {
/** The name of the pet */
name: string;
/** Additional notes about the pet */
note?: string;
}
/**
* Types of recommendations for quests
*/
export declare const RecommendationType: {
Item: string;
Travel: string;
Tip: string;
Level: string;
};
/**
* A recommendation for completing a quest
*/
export interface QuestRecommendation {
/** The type of recommendation (item, travel, tip, etc.) */
type: string;
/** The main name or label */
name: string;
/** Quantity if relevant */
quantity?: number;
/** Alternatives or options */
alternatives?: string[];
/** Additional notes or explanation */
note?: string;
}
/**
* All possible rewards from completing a quest
*/
export interface QuestRewards {
/** Experience rewards in different skills */
experience?: QuestRewardExperience[];
/** Item rewards */
items?: QuestRewardItem[];
/** Features/abilities unlocked */
unlocks?: QuestRewardUnlock[];
/** Experience lamps awarded */
lamps?: QuestRewardLamp[];
/** Points awarded */
points?: QuestRewardPoints[];
/** Pet rewards */
pets?: QuestRewardPet[];
/** Quest points awarded for completion */
questPoints: number;
/** Areas unlocked by completing the quest */
areas?: string[];
/** Miscellaneous rewards or notes */
misc?: string[];
}
/**
* Represents a quest in Old School RuneScape
*/
export interface Quest {
/** Unique identifier for the quest */
id: number;
/** The full name of the quest */
name: string;
/** Brief description of the quest's story/objective */
description: string;
/** The difficulty rating of the quest */
difficulty: QuestDifficulty;
/** Step-by-step guide to complete the quest */
steps: string[];
/** Requirements that must be met to start/complete the quest */
requirements: Requirement[];
/** Current status of the quest for the player */
status: QuestStatus;
/** Whether this is a miniquest rather than a full quest */
miniquest: boolean;
/** Machine-friendly version of the quest name for internal use */
shortName: string;
/** URL to the official OSRS Wiki guide for this quest */
url: string;
/** The quest series this belongs to (e.g. 'Elf', 'Mahjarrat') */
series?: string | null;
/** Whether this is a members-only quest */
members: boolean;
/** Number of quest points awarded for completion
* @deprecated Use rewards.questPoints instead
*/
questPoints: number;
/** Approximate time to complete the quest */
length: QuestLength;
/** The RuneScape age when this quest was released */
age: string;
/** Location where the quest starts */
startLocation: string;
/** Items recommended (but not required) to complete the quest */
recommendations: QuestRecommendation[];
/** Recommended (but not required) skill levels */
recommendedSkills: {
[skill: string]: number;
};
/** Recommended prayers to use during the quest */
recommendedPrayers: string[];
/** All rewards for completing the quest */
rewards: QuestRewards;
/** Additional notes about the quest */
notes?: string;
/** Alternative names or abbreviations for the quest */
altNames?: string[];
/** Date the quest was originally released */
releaseDate?: string;
leadDeveloper?: string;
alsoCalled?: string[];
}
export { QuestDifficulty, QuestLength, QuestStatus };
//# sourceMappingURL=Quest.d.ts.map