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
JavaScript
"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;