UNPKG

osrs-tools

Version:

A JavaScript package to provide JSON data for all current Old School RuneScape quests. This package aims to help junior software developers create tools related to Old School RuneScape. It's a work in progress, and issues should be reported to jamescer@ha

106 lines (105 loc) 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SlayerUnlockRequirement = exports.SlayerLevelRequirement = exports.RequirementType = exports.QuestRequirement = exports.LocationRequirement = exports.LevelRequirement = exports.ItemRequirement = exports.QuestPointRequirement = exports.CombatLevelRequirement = void 0; // TODO: Add a requirement type for all "levels" (combat, slayer, farming, crafting etc.) class LevelRequirement { constructor(skillName, level, boostable = false) { this.type = RequirementType.Level; this.boostable = false; // Indicates if the level can be boosted this.boostable = boostable; this.skillName = skillName; this.level = level; } get description() { return `Level ${this.level}`; } } exports.LevelRequirement = LevelRequirement; // Enum for requirement types var RequirementType; (function (RequirementType) { RequirementType["SlayerLevel"] = "SlayerLevel"; RequirementType["Level"] = "Level"; RequirementType["CombatLevel"] = "CombatLevel"; RequirementType["Quest"] = "Quest"; RequirementType["QuestPoint"] = "QuestPoint"; RequirementType["Item"] = "Item"; RequirementType["Location"] = "Location"; RequirementType["SlayerUnlock"] = "SlayerUnlock"; })(RequirementType || (exports.RequirementType = RequirementType = {})); // Slayer Unlock requirement class SlayerUnlockRequirement { constructor(name) { this.type = RequirementType.SlayerUnlock; this.name = name; } get description() { return `Slayer unlock: ${this.name}`; } } exports.SlayerUnlockRequirement = SlayerUnlockRequirement; // Slayer level requirement class SlayerLevelRequirement { constructor(level) { this.type = RequirementType.SlayerLevel; this.level = level; } get description() { return `Slayer level ${this.level}`; } } exports.SlayerLevelRequirement = SlayerLevelRequirement; // Combat level requirement class CombatLevelRequirement { constructor(level) { this.type = RequirementType.CombatLevel; this.level = level; } get description() { return `Combat level ${this.level}`; } } exports.CombatLevelRequirement = CombatLevelRequirement; // Quest requirement class QuestRequirement { constructor(questName) { this.type = RequirementType.Quest; this.questName = questName; } get description() { return `Completed quest: ${this.questName}`; } } exports.QuestRequirement = QuestRequirement; class QuestPointRequirement { constructor(amount) { this.type = RequirementType.Quest; this.amount = amount; } get description() { return `Quest Points Needed: ${this.amount}`; } } exports.QuestPointRequirement = QuestPointRequirement; // Item requirement class ItemRequirement { constructor(itemName) { this.type = RequirementType.Item; this.itemName = itemName; } get description() { return `Has item: ${this.itemName}`; } } exports.ItemRequirement = ItemRequirement; // Location requirement class LocationRequirement { constructor(locationName) { this.type = RequirementType.Location; this.locationName = locationName; } get description() { return `Access to location: ${this.locationName}`; } } exports.LocationRequirement = LocationRequirement;