osrs-tools
Version:
A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information
69 lines • 2.5 kB
JavaScript
;
/**
* Types and interfaces for quest and skill requirements
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequirementType = void 0;
exports.createLevelRequirement = createLevelRequirement;
exports.createQuestRequirement = createQuestRequirement;
exports.createQuestPointRequirement = createQuestPointRequirement;
exports.createItemRequirement = createItemRequirement;
/**
* Base type for all requirements in OSRS
*/
var RequirementType;
(function (RequirementType) {
/** Level requirement for a specific skill */
RequirementType["Level"] = "Level";
/** Required combat level */
RequirementType["CombatLevel"] = "CombatLevel";
/** Required Slayer level */
RequirementType["SlayerLevel"] = "SlayerLevel";
/** Quest that must be completed */
RequirementType["Quest"] = "Quest";
/** Number of quest points needed */
RequirementType["QuestPoint"] = "QuestPoint";
/** Item that must be possessed */
RequirementType["Item"] = "Item";
/** Location that must be accessible */
RequirementType["Location"] = "Location";
/** Slayer reward that must be unlocked */
RequirementType["SlayerUnlock"] = "SlayerUnlock";
})(RequirementType || (exports.RequirementType = RequirementType = {}));
/** Helper function to create a level requirement */
function createLevelRequirement(skillName, level, boostable = false, description) {
return {
type: RequirementType.Level,
skillName,
level,
boostable,
description: description || `${level} ${skillName}`,
};
}
/** Helper function to create a quest requirement */
function createQuestRequirement(questName, description) {
return {
type: RequirementType.Quest,
questName,
description: description || `Completion of ${questName}`,
};
}
/** Helper function to create a quest points requirement */
function createQuestPointRequirement(points, description) {
return {
type: RequirementType.QuestPoint,
points,
description: description || `${points} Quest Points`,
};
}
/** Helper function to create an item requirement */
function createItemRequirement(itemName, quantity = 1, consumed = false, description) {
return {
type: RequirementType.Item,
itemName,
quantity,
consumed,
description: description || `${quantity}x ${itemName}${consumed ? ' (consumed)' : ''}`,
};
}
//# sourceMappingURL=requirements.js.map