osrs-tools 0.2.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -66
- package/dist/Requirement.d.ts +1 -0
- package/dist/account/OsrsAccount.d.ts +76 -27
- package/dist/account/OsrsAccount.js +172 -48
- package/dist/quest/Quest.d.ts +37 -9
- package/dist/quest/QuestTool.d.ts +22 -37
- package/dist/quest/QuestTool.js +115 -56
- package/dist/quest/all/AHandInTheSand.d.ts +3 -0
- package/dist/quest/all/AHandInTheSand.js +46 -0
- package/dist/quest/all/AKingdomDivided.d.ts +3 -0
- package/dist/quest/all/AKingdomDivided.js +56 -0
- package/dist/quest/all/APorcineOfInterest.js +7 -2
- package/dist/quest/all/ASoulsBane.js +8 -2
- package/dist/quest/all/ATailOfTwoCats.js +5 -4
- package/dist/quest/all/ATasteOfHope.js +5 -2
- package/dist/quest/all/ATheatreOfBlood.d.ts +3 -0
- package/dist/quest/all/ATheatreOfBlood.js +38 -0
- package/dist/quest/all/AnimalMagnetism.js +13 -4
- package/dist/quest/all/AnotherSliceOfHAM.js +8 -2
- package/dist/quest/all/BelowIceMountain.js +9 -6
- package/dist/quest/all/BetweenARock.js +9 -2
- package/dist/quest/all/BigChompyBirdHunting.js +9 -2
- package/dist/quest/all/Biohazard.js +7 -2
- package/dist/quest/all/BlackKnightsFortress.js +5 -2
- package/dist/quest/all/BoneVoyage.js +5 -2
- package/dist/quest/all/CabinFever.js +9 -2
- package/dist/quest/all/ClientOfKourend.js +5 -2
- package/dist/quest/all/ClockTower.js +5 -2
- package/dist/quest/all/ColdWar.js +10 -2
- package/dist/quest/all/Contact.js +8 -2
- package/dist/quest/all/CookAssistant.js +7 -2
- package/dist/quest/all/CooksAssistant.js +8 -2
- package/dist/quest/all/CreatureOfFenkenstrain.js +8 -2
- package/dist/quest/all/DarknessOfHallowvale.js +10 -2
- package/dist/quest/all/DeathPlateau.js +8 -2
- package/dist/quest/all/DeathToTheDorgeshuun.js +9 -2
- package/dist/quest/all/DemonSlayer.js +5 -2
- package/dist/quest/all/DesertTreasure.d.ts +14 -0
- package/dist/quest/all/DesertTreasure.js +15 -0
- package/dist/quest/all/DeviousMinds.js +10 -2
- package/dist/quest/all/DoricQuest.d.ts +16 -0
- package/dist/quest/all/DoricQuest.js +20 -0
- package/dist/quest/all/DoricsQuest.js +8 -2
- package/dist/quest/all/DragonSlayer.js +9 -2
- package/dist/quest/all/DragonSlayerII.js +13 -4
- package/dist/quest/all/DreamMentor.d.ts +16 -0
- package/dist/quest/all/DreamMentor.js +21 -0
- package/dist/quest/all/DruidicRitual.js +8 -2
- package/dist/quest/all/DwarfCannon.js +8 -2
- package/dist/quest/all/EadgarsRuse.js +8 -2
- package/dist/quest/all/EaglesPeak.js +8 -2
- package/dist/quest/all/ElementalWorkshopI.js +9 -2
- package/dist/quest/all/ElementalWorkshopII.js +9 -2
- package/dist/quest/all/EnakhrasLament.js +5 -2
- package/dist/quest/all/EnlightenedJourney.js +5 -2
- package/dist/quest/all/FairytaleIGrowingPains.js +5 -2
- package/dist/quest/all/FairytaleIICureAQueen.js +5 -2
- package/dist/quest/all/FamilyCrest.js +5 -2
- package/dist/quest/all/FightArena.js +5 -2
- package/dist/quest/all/FishingContest.js +5 -2
- package/dist/quest/all/ForgettableTale.js +5 -2
- package/dist/quest/all/GardenOfTranquillity.js +5 -2
- package/dist/quest/all/GertrudesCat.js +5 -2
- package/dist/quest/all/GettingAhead.js +5 -2
- package/dist/quest/all/GhostsAhoy.js +5 -2
- package/dist/quest/all/GoblinDiplomacy.js +6 -3
- package/dist/quest/all/GrimTales.js +13 -2
- package/dist/quest/all/HauntedMine.js +8 -2
- package/dist/quest/all/HazeelCult.js +8 -2
- package/dist/quest/all/HeroesQuest.js +19 -15
- package/dist/quest/all/HolyGrail.js +8 -2
- package/dist/quest/all/HorrorFromTheDeep.js +10 -2
- package/dist/quest/all/IcthlarinsLittleHelper.js +10 -2
- package/dist/quest/all/ImpCatcher.js +8 -2
- package/dist/quest/all/InAidOfTheMyreque.js +11 -2
- package/dist/quest/all/InSearchOfTheMyreque.js +12 -8
- package/dist/quest/all/JunglePotion.js +8 -2
- package/dist/quest/all/KingsRansom.js +11 -5
- package/dist/quest/all/LegendsQuest.d.ts +3 -0
- package/dist/quest/all/LegendsQuest.js +56 -0
- package/dist/quest/all/LostCity.d.ts +3 -0
- package/dist/quest/all/LostCity.js +42 -0
- package/dist/quest/all/LunarDiplomacy.d.ts +3 -0
- package/dist/quest/all/LunarDiplomacy.js +55 -0
- package/dist/quest/all/MakingHistory.d.ts +3 -0
- package/dist/quest/all/MakingHistory.js +42 -0
- package/dist/quest/all/MerlinsCrystal.d.ts +3 -0
- package/dist/quest/all/MerlinsCrystal.js +39 -0
- package/dist/quest/all/MonkeyMadness.d.ts +3 -0
- package/dist/quest/all/MonkeyMadness.js +46 -0
- package/dist/quest/all/MonkeyMadnessII.d.ts +3 -0
- package/dist/quest/all/MonkeyMadnessII.js +57 -0
- package/dist/quest/all/MonksFriend.d.ts +3 -0
- package/dist/quest/all/MonksFriend.js +42 -0
- package/dist/quest/all/MurderMystery.d.ts +3 -0
- package/dist/quest/all/MurderMystery.js +39 -0
- package/dist/quest/all/MyArmsBigAdventure.d.ts +3 -0
- package/dist/quest/all/MyArmsBigAdventure.js +48 -0
- package/dist/quest/all/NatureSpirit.d.ts +3 -0
- package/dist/quest/all/NatureSpirit.js +43 -0
- package/dist/quest/all/ObservatoryQuest.d.ts +3 -0
- package/dist/quest/all/ObservatoryQuest.js +39 -0
- package/dist/quest/all/OlafsQuest.d.ts +3 -0
- package/dist/quest/all/OlafsQuest.js +47 -0
- package/dist/quest/all/OneSmallFavour.d.ts +3 -0
- package/dist/quest/all/OneSmallFavour.js +47 -0
- package/dist/quest/all/PlagueCity.d.ts +3 -0
- package/dist/quest/all/PlagueCity.js +39 -0
- package/dist/quest/all/PriestInPeril.d.ts +3 -0
- package/dist/quest/all/PriestInPeril.js +42 -0
- package/dist/quest/all/RagAndBoneMan.d.ts +3 -0
- package/dist/quest/all/RagAndBoneMan.js +39 -0
- package/dist/quest/all/Ratcatchers.d.ts +3 -0
- package/dist/quest/all/Ratcatchers.js +42 -0
- package/dist/quest/all/RecipeForDisaster.d.ts +3 -0
- package/dist/quest/all/RecipeForDisaster.js +62 -0
- package/dist/quest/all/RecruitmentDrive.d.ts +3 -0
- package/dist/quest/all/RecruitmentDrive.js +43 -0
- package/dist/quest/all/Regicide.d.ts +3 -0
- package/dist/quest/all/Regicide.js +43 -0
- package/dist/quest/all/RovingElves.d.ts +3 -0
- package/dist/quest/all/RovingElves.js +43 -0
- package/dist/quest/all/RoyalTrouble.d.ts +3 -0
- package/dist/quest/all/RoyalTrouble.js +44 -0
- package/dist/quest/all/RumDeal.d.ts +3 -0
- package/dist/quest/all/RumDeal.js +47 -0
- package/dist/quest/all/ScorpionCatcher.d.ts +3 -0
- package/dist/quest/all/ScorpionCatcher.js +39 -0
- package/dist/quest/all/SeaSlug.d.ts +3 -0
- package/dist/quest/all/SeaSlug.js +39 -0
- package/dist/quest/all/ShadesOfMortton.d.ts +3 -0
- package/dist/quest/all/ShadesOfMortton.js +43 -0
- package/dist/quest/all/ShadowOfTheStorm.d.ts +3 -0
- package/dist/quest/all/ShadowOfTheStorm.js +44 -0
- package/dist/quest/all/SheepHerder.d.ts +3 -0
- package/dist/quest/all/SheepHerder.js +39 -0
- package/dist/quest/all/ShiloVillage.d.ts +3 -0
- package/dist/quest/all/ShiloVillage.js +43 -0
- package/dist/quest/all/SlugMenace.d.ts +3 -0
- package/dist/quest/all/SlugMenace.js +48 -0
- package/dist/quest/all/SongOfTheElves.d.ts +3 -0
- package/dist/quest/all/SongOfTheElves.js +50 -0
- package/dist/quest/all/SpiritsOfTheElid.d.ts +3 -0
- package/dist/quest/all/SpiritsOfTheElid.js +43 -0
- package/dist/quest/all/SwanSong.d.ts +3 -0
- package/dist/quest/all/SwanSong.js +47 -0
- package/dist/quest/all/TaiBwoWannaiTrio.d.ts +3 -0
- package/dist/quest/all/TaiBwoWannaiTrio.js +45 -0
- package/dist/quest/all/TheAscentOfArceuus.d.ts +3 -0
- package/dist/quest/all/TheAscentOfArceuus.js +39 -0
- package/dist/quest/all/TheDepthsOfDespair.d.ts +3 -0
- package/dist/quest/all/TheDepthsOfDespair.js +43 -0
- package/dist/quest/all/TheForsakenTower.d.ts +3 -0
- package/dist/quest/all/TheForsakenTower.js +42 -0
- package/dist/quest/all/TheFremennikExiles.d.ts +3 -0
- package/dist/quest/all/TheFremennikExiles.js +47 -0
- package/dist/quest/all/TheFremennikIsles.d.ts +3 -0
- package/dist/quest/all/TheFremennikIsles.js +44 -0
- package/dist/quest/all/TheFremennikTrials.d.ts +3 -0
- package/dist/quest/all/TheFremennikTrials.js +39 -0
- package/dist/quest/all/TheGiantDwarf.d.ts +3 -0
- package/dist/quest/all/TheGiantDwarf.js +44 -0
- package/dist/quest/all/TheGolem.d.ts +3 -0
- package/dist/quest/all/TheGolem.js +39 -0
- package/dist/quest/all/TheGrandTree.d.ts +3 -0
- package/dist/quest/all/TheGrandTree.js +39 -0
- package/dist/quest/all/TheGreatBrainRobbery.d.ts +3 -0
- package/dist/quest/all/TheGreatBrainRobbery.js +46 -0
- package/dist/quest/all/TheHandInTheSand.d.ts +3 -0
- package/dist/quest/all/TheHandInTheSand.js +43 -0
- package/dist/quest/all/TheKnightsSword.d.ts +3 -0
- package/dist/quest/all/TheKnightsSword.js +39 -0
- package/dist/quest/all/TheLostTribe.d.ts +3 -0
- package/dist/quest/all/TheLostTribe.js +43 -0
- package/dist/quest/all/TheQueenOfThieves.d.ts +3 -0
- package/dist/quest/all/TheQueenOfThieves.js +43 -0
- package/dist/quest/all/TheSlugMenace.d.ts +3 -0
- package/dist/quest/all/TheSlugMenace.js +48 -0
- package/dist/quest/all/TheTaleOfTheRighteous.d.ts +3 -0
- package/dist/quest/all/TheTaleOfTheRighteous.js +43 -0
- package/dist/quest/all/TheTempleOfIkov.d.ts +3 -0
- package/dist/quest/all/TheTempleOfIkov.js +42 -0
- package/dist/quest/all/TheTouristTrap.d.ts +3 -0
- package/dist/quest/all/TheTouristTrap.js +43 -0
- package/dist/quest/all/ThroneOfMiscellania.d.ts +3 -0
- package/dist/quest/all/ThroneOfMiscellania.js +46 -0
- package/dist/quest/all/TowerOfLife.d.ts +3 -0
- package/dist/quest/all/TowerOfLife.js +42 -0
- package/dist/quest/all/TreeGnomeVillage.d.ts +3 -0
- package/dist/quest/all/TreeGnomeVillage.js +39 -0
- package/dist/quest/all/TribalTotem.d.ts +3 -0
- package/dist/quest/all/TribalTotem.js +39 -0
- package/dist/quest/all/TrollRomance.d.ts +3 -0
- package/dist/quest/all/TrollRomance.js +43 -0
- package/dist/quest/all/TrollStronghold.d.ts +3 -0
- package/dist/quest/all/TrollStronghold.js +42 -0
- package/dist/quest/all/UndergroundPass.d.ts +3 -0
- package/dist/quest/all/UndergroundPass.js +43 -0
- package/dist/quest/all/VampyreSlayer.d.ts +3 -0
- package/dist/quest/all/VampyreSlayer.js +39 -0
- package/dist/quest/all/Wanted.d.ts +3 -0
- package/dist/quest/all/Wanted.js +48 -0
- package/dist/quest/all/Watchtower.d.ts +3 -0
- package/dist/quest/all/Watchtower.js +45 -0
- package/dist/quest/all/WaterfallQuest.d.ts +3 -0
- package/dist/quest/all/WaterfallQuest.js +39 -0
- package/dist/quest/all/WhatLiesBelow.d.ts +3 -0
- package/dist/quest/all/WhatLiesBelow.js +42 -0
- package/dist/quest/all/WitchesPotion.d.ts +3 -0
- package/dist/quest/all/WitchesPotion.js +39 -0
- package/dist/quest/all/WitchsHouse.d.ts +3 -0
- package/dist/quest/all/WitchsHouse.js +39 -0
- package/dist/quest/all/ZogreFleshEaters.d.ts +3 -0
- package/dist/quest/all/ZogreFleshEaters.js +44 -0
- package/dist/slayer/Assignment.d.ts +1 -1
- package/dist/slayer/Masters.js +14 -10
- package/dist/slayer/task/ChaelderTasks.d.ts +2 -2
- package/dist/slayer/task/ChaelderTasks.js +55 -65
- package/dist/slayer/task/DuradelTasks.d.ts +2 -1
- package/dist/slayer/task/DuradelTasks.js +32 -14
- package/dist/slayer/task/KonarTasks.d.ts +2 -2
- package/dist/slayer/task/KonarTasks.js +34 -3
- package/dist/slayer/task/KrystiliaTasks.d.ts +3 -0
- package/dist/slayer/task/KrystiliaTasks.js +36 -0
- package/dist/slayer/task/MazchnaTasks.d.ts +2 -2
- package/dist/slayer/task/MazchnaTasks.js +83 -2
- package/dist/slayer/task/NieveTasks.d.ts +2 -2
- package/dist/slayer/task/NieveTasks.js +38 -64
- package/dist/slayer/task/SpriaTasks.d.ts +2 -1
- package/dist/slayer/task/SpriaTasks.js +39 -34
- package/dist/slayer/task/TurealTasks.d.ts +3 -0
- package/dist/slayer/task/TurealTasks.js +125 -0
- package/dist/slayer/task/VannakaTasks.d.ts +2 -1
- package/dist/slayer/task/VannakaTasks.js +54 -69
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -13,93 +13,66 @@ The **Old School RuneScape Quest Tool** is a Node.js package designed to provide
|
|
|
13
13
|
- Built-in support for tracking quest and slayer progress.
|
|
14
14
|
- Easy-to-use API for developers of all skill levels.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Overview
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
This package provides a comprehensive, programmatic interface to Old School RuneScape (OSRS) quest, slayer, and account data. It is designed for developers, tool creators, and enthusiasts who want to:
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
- Access and analyze detailed quest data, including requirements, rewards, and quest steps.
|
|
21
|
+
- Retrieve and filter slayer master tasks, including requirements, locations, and weights.
|
|
22
|
+
- Simulate or build tools for quest progression, slayer assignment, and account planning.
|
|
23
|
+
- Integrate OSRS data into bots, web apps, Discord bots, or personal utilities.
|
|
24
|
+
- Track quest and slayer progress, or build custom checklists and planners.
|
|
23
25
|
|
|
24
|
-
##
|
|
26
|
+
## What You Can Do
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
- **Quest Data**: Use the `QuestTool` class and related functions to get all quest data as objects or arrays. Filter quests by requirements, rewards, or completion status. Build quest guides, checklists, or progress trackers.
|
|
29
|
+
- **Slayer Masters & Tasks**: Import any Slayer Master (e.g., `Turael`, `Duradel`, `Krystilia`) to access their full list of tasks, requirements, and locations. Randomly assign tasks, filter by requirements, or analyze task weights for planning.
|
|
30
|
+
- **Account Modeling**: Use the `OsrsAccount` and `Skill` models to represent and manipulate player accounts, including skill levels and quest completions. Simulate account progression or validate requirements for quests and tasks.
|
|
31
|
+
- **Slayer Rewards**: Access lists of unlockable Slayer rewards and buyable items, including costs and descriptions, for use in planning or calculators.
|
|
32
|
+
- **Data Integration**: All data is available as TypeScript/JavaScript objects, making it easy to integrate into web apps, bots, or scripts. The structure is ideal for both backend and frontend use.
|
|
33
|
+
- **Extendable**: The modular design allows you to add new quests, tasks, or masters, or to extend models for custom use cases.
|
|
27
34
|
|
|
28
|
-
|
|
35
|
+
## Example Use Cases
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
- **Quest Progress Tracker**: Build a web or mobile app that tracks quest completion, shows requirements, and suggests next quests based on your account.
|
|
38
|
+
- **Slayer Task Generator**: Create a Discord bot or web tool that assigns random slayer tasks based on your current level and unlocked masters.
|
|
39
|
+
- **Account Planner**: Simulate an account's progression, checking which quests or tasks are available at each stage.
|
|
40
|
+
- **Data Analysis**: Analyze quest or slayer data for guides, statistics, or optimization (e.g., fastest quest cape route, most efficient slayer path).
|
|
33
41
|
|
|
34
|
-
|
|
42
|
+
## Data Structure Highlights
|
|
35
43
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
44
|
+
- **Quests**: Each quest is represented as a class with requirements, rewards, and steps. Data is available in both object and array formats for flexibility.
|
|
45
|
+
- **Slayer Masters**: Each master is a class instance with a list of `Task` objects, each containing requirements, weights, and locations.
|
|
46
|
+
- **Tasks**: Tasks include all relevant requirements (combat, slayer, quest), possible monsters, and location data.
|
|
47
|
+
- **Account Models**: The `OsrsAccount` and `Skill` classes allow you to represent and manipulate player data programmatically.
|
|
39
48
|
|
|
40
|
-
|
|
41
|
-
const questArrayData = questArray();
|
|
49
|
+
## Installation
|
|
42
50
|
|
|
43
|
-
|
|
44
|
-
const questObjectData = questObject();
|
|
51
|
+
Install the package via npm:
|
|
45
52
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
console.log(questObjectData);
|
|
53
|
+
```bash
|
|
54
|
+
npm install osrs-tools --save
|
|
49
55
|
```
|
|
50
56
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
```javascript
|
|
54
|
-
import { Turael, Duradel } from 'osrs-tools';
|
|
55
|
-
|
|
56
|
-
// Access Turael's tasks
|
|
57
|
-
console.log(Turael.getTasks());
|
|
57
|
+
## Usage
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
const randomTask = Duradel.getRandomTask();
|
|
61
|
-
console.log(randomTask);
|
|
62
|
-
```
|
|
59
|
+
Here’s how to use the tool in your project:
|
|
63
60
|
|
|
64
|
-
###
|
|
61
|
+
### Importing the Module
|
|
65
62
|
|
|
66
63
|
```javascript
|
|
67
|
-
import {
|
|
68
|
-
|
|
69
|
-
// List all available Slayer unlocks
|
|
70
|
-
console.log(SlayerUnlocks);
|
|
71
|
-
|
|
72
|
-
// List all items available for purchase with Slayer points
|
|
73
|
-
console.log(SlayerBuys);
|
|
64
|
+
import { QuestTool, questArray, questObject } from 'osrs-tools';
|
|
74
65
|
```
|
|
75
66
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
### Quest API
|
|
79
|
-
|
|
80
|
-
| Method | Description | Type |
|
|
81
|
-
| ----------------- | ----------------------------------------------------------------------- | ----------------- |
|
|
82
|
-
| `new QuestTool()` | Constructor for the `QuestTool` class. | Class Constructor |
|
|
83
|
-
| `questObject()` | Function that returns an object with quest data (keys are quest names). | Function |
|
|
84
|
-
| `questArray()` | Function that returns an array of quests, ordered alphabetically. | Function |
|
|
67
|
+
### Module Optional Dependencies
|
|
68
|
+
If you want to use your account to test quest tool compatibilities or check what you can unlock for slayer, I am referencing the repository [osrs-json-hiscores](https://www.npmjs.com/package/osrs-json-hiscores)
|
|
85
69
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
| -------------------- | ------------------------------------------------------------------------- |
|
|
90
|
-
| `SlayerMaster` | Represents a Slayer Master, including tasks, location, and requirements. |
|
|
91
|
-
| `getTasks()` | Returns a list of tasks assigned by the Slayer Master. |
|
|
92
|
-
| `getRandomTask()` | Returns a random task based on task weights. |
|
|
93
|
-
| `SlayerUnlocks` | Predefined list of Slayer unlocks with costs and descriptions. |
|
|
94
|
-
| `SlayerBuys` | Predefined list of items available for purchase with Slayer points. |
|
|
95
|
-
|
|
96
|
-
## To-Do
|
|
70
|
+
```bash
|
|
71
|
+
npm install osrs-json-hiscores --save
|
|
72
|
+
```
|
|
97
73
|
|
|
98
|
-
|
|
99
|
-
-
|
|
100
|
-
- Refactor `questArray()` and `questObject()` to return objects instead of functions.
|
|
101
|
-
- Continue work on the **Recipe for Disaster** quest.
|
|
102
|
-
- Fix and validate all Slayer data.
|
|
74
|
+
### Todo
|
|
75
|
+
- Fix quest completion detection
|
|
103
76
|
|
|
104
77
|
## Contributing
|
|
105
78
|
|
package/dist/Requirement.d.ts
CHANGED
|
@@ -1,31 +1,80 @@
|
|
|
1
|
-
interface
|
|
1
|
+
interface SkillDetail {
|
|
2
|
+
rank: number;
|
|
3
|
+
level: number;
|
|
4
|
+
xp: number;
|
|
5
|
+
}
|
|
6
|
+
interface Skill {
|
|
7
|
+
level: number;
|
|
8
|
+
}
|
|
9
|
+
interface Skills {
|
|
10
|
+
[skillName: string]: Skill;
|
|
11
|
+
}
|
|
12
|
+
interface SkillsDetail {
|
|
13
|
+
[skillName: string]: SkillDetail;
|
|
14
|
+
}
|
|
15
|
+
interface BossScore {
|
|
16
|
+
rank: number;
|
|
17
|
+
score: number;
|
|
18
|
+
}
|
|
19
|
+
interface Bosses {
|
|
20
|
+
[bossName: string]: BossScore;
|
|
21
|
+
}
|
|
22
|
+
interface ClueScore {
|
|
23
|
+
rank: number;
|
|
24
|
+
score: number;
|
|
25
|
+
}
|
|
26
|
+
interface Clues {
|
|
27
|
+
[clueType: string]: ClueScore;
|
|
28
|
+
}
|
|
29
|
+
interface BountyHunter {
|
|
30
|
+
hunterV2?: BossScore;
|
|
31
|
+
rogueV2?: BossScore;
|
|
32
|
+
hunter?: BossScore;
|
|
33
|
+
rogue?: BossScore;
|
|
34
|
+
}
|
|
35
|
+
interface OsrsAccountData {
|
|
2
36
|
name: string;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
37
|
+
combatLevel: number;
|
|
38
|
+
questPoints: number;
|
|
39
|
+
skills: Skills;
|
|
40
|
+
skillsDetail?: SkillsDetail;
|
|
41
|
+
bosses?: Bosses;
|
|
42
|
+
clues?: Clues;
|
|
43
|
+
bountyHunter?: BountyHunter;
|
|
44
|
+
lastManStanding?: BossScore;
|
|
45
|
+
pvpArena?: BossScore;
|
|
46
|
+
soulWarsZeal?: BossScore;
|
|
47
|
+
riftsClosed?: BossScore;
|
|
48
|
+
colosseumGlory?: BossScore;
|
|
49
|
+
collectionsLogged?: BossScore;
|
|
50
|
+
leaguePoints?: BossScore;
|
|
51
|
+
deadmanPoints?: BossScore;
|
|
12
52
|
}
|
|
13
53
|
declare class OsrsAccount {
|
|
14
|
-
private
|
|
15
|
-
constructor(
|
|
16
|
-
|
|
54
|
+
#private;
|
|
55
|
+
constructor(data: OsrsAccountData);
|
|
56
|
+
static fromJson(json: any): OsrsAccount;
|
|
57
|
+
get name(): string;
|
|
58
|
+
get combatLevel(): number;
|
|
59
|
+
get questPoints(): number;
|
|
60
|
+
get skills(): Skills;
|
|
61
|
+
get skillsDetail(): SkillsDetail | undefined;
|
|
62
|
+
get bosses(): Bosses | undefined;
|
|
63
|
+
get clues(): Clues | undefined;
|
|
64
|
+
get bountyHunter(): BountyHunter | undefined;
|
|
65
|
+
get lastManStanding(): BossScore | undefined;
|
|
66
|
+
get pvpArena(): BossScore | undefined;
|
|
67
|
+
get soulWarsZeal(): BossScore | undefined;
|
|
68
|
+
get riftsClosed(): BossScore | undefined;
|
|
69
|
+
get colosseumGlory(): BossScore | undefined;
|
|
70
|
+
get collectionsLogged(): BossScore | undefined;
|
|
71
|
+
get leaguePoints(): BossScore | undefined;
|
|
72
|
+
get deadmanPoints(): BossScore | undefined;
|
|
73
|
+
getSkill(skillName: string): Skill | undefined;
|
|
74
|
+
getSkillDetail(skillName: string): SkillDetail | undefined;
|
|
75
|
+
getBossScore(bossName: string): BossScore | undefined;
|
|
76
|
+
getClueScore(clueType: string): ClueScore | undefined;
|
|
17
77
|
toString(): string;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
} | undefined;
|
|
23
|
-
getSkill(skillName: string): {
|
|
24
|
-
level: number;
|
|
25
|
-
} | undefined;
|
|
26
|
-
getQuestPoints(): number | undefined;
|
|
27
|
-
setQuestPoints(x: number): void;
|
|
28
|
-
getCombatLevel(): number | undefined;
|
|
29
|
-
setCombatLevel(): void;
|
|
30
|
-
}
|
|
31
|
-
export { OsrsAccount };
|
|
78
|
+
toJson(): OsrsAccountData;
|
|
79
|
+
}
|
|
80
|
+
export { OsrsAccount, OsrsAccountData, Skills, Skill, SkillsDetail, Bosses, BossScore, Clues, ClueScore, BountyHunter, };
|
|
@@ -1,64 +1,188 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _OsrsAccount_name, _OsrsAccount_combatLevel, _OsrsAccount_questPoints, _OsrsAccount_skills, _OsrsAccount_skillsDetail, _OsrsAccount_bosses, _OsrsAccount_clues, _OsrsAccount_bountyHunter, _OsrsAccount_lastManStanding, _OsrsAccount_pvpArena, _OsrsAccount_soulWarsZeal, _OsrsAccount_riftsClosed, _OsrsAccount_colosseumGlory, _OsrsAccount_collectionsLogged, _OsrsAccount_leaguePoints, _OsrsAccount_deadmanPoints;
|
|
2
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
15
|
exports.OsrsAccount = void 0;
|
|
4
16
|
class OsrsAccount {
|
|
5
|
-
constructor(
|
|
6
|
-
this
|
|
7
|
-
|
|
8
|
-
|
|
17
|
+
constructor(data) {
|
|
18
|
+
_OsrsAccount_name.set(this, void 0);
|
|
19
|
+
_OsrsAccount_combatLevel.set(this, void 0);
|
|
20
|
+
_OsrsAccount_questPoints.set(this, void 0);
|
|
21
|
+
_OsrsAccount_skills.set(this, void 0);
|
|
22
|
+
_OsrsAccount_skillsDetail.set(this, void 0);
|
|
23
|
+
_OsrsAccount_bosses.set(this, void 0);
|
|
24
|
+
_OsrsAccount_clues.set(this, void 0);
|
|
25
|
+
_OsrsAccount_bountyHunter.set(this, void 0);
|
|
26
|
+
_OsrsAccount_lastManStanding.set(this, void 0);
|
|
27
|
+
_OsrsAccount_pvpArena.set(this, void 0);
|
|
28
|
+
_OsrsAccount_soulWarsZeal.set(this, void 0);
|
|
29
|
+
_OsrsAccount_riftsClosed.set(this, void 0);
|
|
30
|
+
_OsrsAccount_colosseumGlory.set(this, void 0);
|
|
31
|
+
_OsrsAccount_collectionsLogged.set(this, void 0);
|
|
32
|
+
_OsrsAccount_leaguePoints.set(this, void 0);
|
|
33
|
+
_OsrsAccount_deadmanPoints.set(this, void 0);
|
|
34
|
+
__classPrivateFieldSet(this, _OsrsAccount_name, data.name, "f");
|
|
35
|
+
__classPrivateFieldSet(this, _OsrsAccount_combatLevel, data.combatLevel, "f");
|
|
36
|
+
__classPrivateFieldSet(this, _OsrsAccount_questPoints, data.questPoints, "f");
|
|
37
|
+
__classPrivateFieldSet(this, _OsrsAccount_skills, data.skills, "f");
|
|
38
|
+
__classPrivateFieldSet(this, _OsrsAccount_skillsDetail, data.skillsDetail, "f");
|
|
39
|
+
__classPrivateFieldSet(this, _OsrsAccount_bosses, data.bosses, "f");
|
|
40
|
+
__classPrivateFieldSet(this, _OsrsAccount_clues, data.clues, "f");
|
|
41
|
+
__classPrivateFieldSet(this, _OsrsAccount_bountyHunter, data.bountyHunter, "f");
|
|
42
|
+
__classPrivateFieldSet(this, _OsrsAccount_lastManStanding, data.lastManStanding, "f");
|
|
43
|
+
__classPrivateFieldSet(this, _OsrsAccount_pvpArena, data.pvpArena, "f");
|
|
44
|
+
__classPrivateFieldSet(this, _OsrsAccount_soulWarsZeal, data.soulWarsZeal, "f");
|
|
45
|
+
__classPrivateFieldSet(this, _OsrsAccount_riftsClosed, data.riftsClosed, "f");
|
|
46
|
+
__classPrivateFieldSet(this, _OsrsAccount_colosseumGlory, data.colosseumGlory, "f");
|
|
47
|
+
__classPrivateFieldSet(this, _OsrsAccount_collectionsLogged, data.collectionsLogged, "f");
|
|
48
|
+
__classPrivateFieldSet(this, _OsrsAccount_leaguePoints, data.leaguePoints, "f");
|
|
49
|
+
__classPrivateFieldSet(this, _OsrsAccount_deadmanPoints, data.deadmanPoints, "f");
|
|
9
50
|
}
|
|
10
|
-
|
|
11
|
-
var _a;
|
|
12
|
-
|
|
51
|
+
static fromJson(json) {
|
|
52
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
53
|
+
const name = json.name || '';
|
|
54
|
+
const combatLevel = (_c = (_b = (_a = json.main) === null || _a === void 0 ? void 0 : _a.combatLevel) !== null && _b !== void 0 ? _b : json.combatLevel) !== null && _c !== void 0 ? _c : 3;
|
|
55
|
+
const questPoints = (_f = (_e = (_d = json.main) === null || _d === void 0 ? void 0 : _d.questPoints) !== null && _e !== void 0 ? _e : json.questPoints) !== null && _f !== void 0 ? _f : 0;
|
|
56
|
+
// Accept both lower and upper case skill keys
|
|
57
|
+
const skills = {};
|
|
58
|
+
const skillsDetail = {};
|
|
59
|
+
const srcSkills = ((_g = json.main) === null || _g === void 0 ? void 0 : _g.skills) || json.skills || {};
|
|
60
|
+
for (const key of Object.keys(srcSkills)) {
|
|
61
|
+
skills[key.toLowerCase()] = { level: srcSkills[key].level };
|
|
62
|
+
skillsDetail[key.toLowerCase()] = {
|
|
63
|
+
rank: srcSkills[key].rank,
|
|
64
|
+
level: srcSkills[key].level,
|
|
65
|
+
xp: srcSkills[key].xp,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const bosses = json.bosses
|
|
69
|
+
? Object.assign({}, json.bosses) : undefined;
|
|
70
|
+
const clues = json.clues ? Object.assign({}, json.clues) : undefined;
|
|
71
|
+
const bountyHunter = json.bountyHunter
|
|
72
|
+
? Object.assign({}, json.bountyHunter) : undefined;
|
|
73
|
+
const lastManStanding = json.lastManStanding;
|
|
74
|
+
const pvpArena = json.pvpArena;
|
|
75
|
+
const soulWarsZeal = json.soulWarsZeal;
|
|
76
|
+
const riftsClosed = json.riftsClosed;
|
|
77
|
+
const colosseumGlory = json.colosseumGlory;
|
|
78
|
+
const collectionsLogged = json.collectionsLogged;
|
|
79
|
+
const leaguePoints = json.leaguePoints;
|
|
80
|
+
const deadmanPoints = json.deadmanPoints;
|
|
81
|
+
return new OsrsAccount({
|
|
82
|
+
name,
|
|
83
|
+
combatLevel,
|
|
84
|
+
questPoints,
|
|
85
|
+
skills,
|
|
86
|
+
skillsDetail,
|
|
87
|
+
bosses,
|
|
88
|
+
clues,
|
|
89
|
+
bountyHunter,
|
|
90
|
+
lastManStanding,
|
|
91
|
+
pvpArena,
|
|
92
|
+
soulWarsZeal,
|
|
93
|
+
riftsClosed,
|
|
94
|
+
colosseumGlory,
|
|
95
|
+
collectionsLogged,
|
|
96
|
+
leaguePoints,
|
|
97
|
+
deadmanPoints,
|
|
98
|
+
});
|
|
13
99
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return (
|
|
100
|
+
get name() {
|
|
101
|
+
return __classPrivateFieldGet(this, _OsrsAccount_name, "f");
|
|
102
|
+
}
|
|
103
|
+
get combatLevel() {
|
|
104
|
+
return __classPrivateFieldGet(this, _OsrsAccount_combatLevel, "f");
|
|
105
|
+
}
|
|
106
|
+
get questPoints() {
|
|
107
|
+
return __classPrivateFieldGet(this, _OsrsAccount_questPoints, "f");
|
|
108
|
+
}
|
|
109
|
+
get skills() {
|
|
110
|
+
return __classPrivateFieldGet(this, _OsrsAccount_skills, "f");
|
|
111
|
+
}
|
|
112
|
+
get skillsDetail() {
|
|
113
|
+
return __classPrivateFieldGet(this, _OsrsAccount_skillsDetail, "f");
|
|
114
|
+
}
|
|
115
|
+
get bosses() {
|
|
116
|
+
return __classPrivateFieldGet(this, _OsrsAccount_bosses, "f");
|
|
117
|
+
}
|
|
118
|
+
get clues() {
|
|
119
|
+
return __classPrivateFieldGet(this, _OsrsAccount_clues, "f");
|
|
120
|
+
}
|
|
121
|
+
get bountyHunter() {
|
|
122
|
+
return __classPrivateFieldGet(this, _OsrsAccount_bountyHunter, "f");
|
|
123
|
+
}
|
|
124
|
+
get lastManStanding() {
|
|
125
|
+
return __classPrivateFieldGet(this, _OsrsAccount_lastManStanding, "f");
|
|
126
|
+
}
|
|
127
|
+
get pvpArena() {
|
|
128
|
+
return __classPrivateFieldGet(this, _OsrsAccount_pvpArena, "f");
|
|
129
|
+
}
|
|
130
|
+
get soulWarsZeal() {
|
|
131
|
+
return __classPrivateFieldGet(this, _OsrsAccount_soulWarsZeal, "f");
|
|
132
|
+
}
|
|
133
|
+
get riftsClosed() {
|
|
134
|
+
return __classPrivateFieldGet(this, _OsrsAccount_riftsClosed, "f");
|
|
135
|
+
}
|
|
136
|
+
get colosseumGlory() {
|
|
137
|
+
return __classPrivateFieldGet(this, _OsrsAccount_colosseumGlory, "f");
|
|
138
|
+
}
|
|
139
|
+
get collectionsLogged() {
|
|
140
|
+
return __classPrivateFieldGet(this, _OsrsAccount_collectionsLogged, "f");
|
|
141
|
+
}
|
|
142
|
+
get leaguePoints() {
|
|
143
|
+
return __classPrivateFieldGet(this, _OsrsAccount_leaguePoints, "f");
|
|
144
|
+
}
|
|
145
|
+
get deadmanPoints() {
|
|
146
|
+
return __classPrivateFieldGet(this, _OsrsAccount_deadmanPoints, "f");
|
|
25
147
|
}
|
|
26
148
|
getSkill(skillName) {
|
|
27
|
-
|
|
28
|
-
return (_a = this.osrsAccount) === null || _a === void 0 ? void 0 : _a.main.skills[skillName.toLowerCase()];
|
|
149
|
+
return __classPrivateFieldGet(this, _OsrsAccount_skills, "f")[skillName.toLowerCase()];
|
|
29
150
|
}
|
|
30
|
-
|
|
151
|
+
getSkillDetail(skillName) {
|
|
31
152
|
var _a;
|
|
32
|
-
return (_a = this
|
|
153
|
+
return (_a = __classPrivateFieldGet(this, _OsrsAccount_skillsDetail, "f")) === null || _a === void 0 ? void 0 : _a[skillName.toLowerCase()];
|
|
33
154
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
155
|
+
getBossScore(bossName) {
|
|
156
|
+
var _a;
|
|
157
|
+
return (_a = __classPrivateFieldGet(this, _OsrsAccount_bosses, "f")) === null || _a === void 0 ? void 0 : _a[bossName];
|
|
38
158
|
}
|
|
39
|
-
|
|
159
|
+
getClueScore(clueType) {
|
|
40
160
|
var _a;
|
|
41
|
-
return (_a = this
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this
|
|
60
|
-
|
|
61
|
-
|
|
161
|
+
return (_a = __classPrivateFieldGet(this, _OsrsAccount_clues, "f")) === null || _a === void 0 ? void 0 : _a[clueType];
|
|
162
|
+
}
|
|
163
|
+
toString() {
|
|
164
|
+
return `${__classPrivateFieldGet(this, _OsrsAccount_name, "f")}:\nCombat Level: ${__classPrivateFieldGet(this, _OsrsAccount_combatLevel, "f")}\nQuestPoints: ${__classPrivateFieldGet(this, _OsrsAccount_questPoints, "f")}`;
|
|
165
|
+
}
|
|
166
|
+
toJson() {
|
|
167
|
+
return {
|
|
168
|
+
name: __classPrivateFieldGet(this, _OsrsAccount_name, "f"),
|
|
169
|
+
combatLevel: __classPrivateFieldGet(this, _OsrsAccount_combatLevel, "f"),
|
|
170
|
+
questPoints: __classPrivateFieldGet(this, _OsrsAccount_questPoints, "f"),
|
|
171
|
+
skills: __classPrivateFieldGet(this, _OsrsAccount_skills, "f"),
|
|
172
|
+
skillsDetail: __classPrivateFieldGet(this, _OsrsAccount_skillsDetail, "f"),
|
|
173
|
+
bosses: __classPrivateFieldGet(this, _OsrsAccount_bosses, "f"),
|
|
174
|
+
clues: __classPrivateFieldGet(this, _OsrsAccount_clues, "f"),
|
|
175
|
+
bountyHunter: __classPrivateFieldGet(this, _OsrsAccount_bountyHunter, "f"),
|
|
176
|
+
lastManStanding: __classPrivateFieldGet(this, _OsrsAccount_lastManStanding, "f"),
|
|
177
|
+
pvpArena: __classPrivateFieldGet(this, _OsrsAccount_pvpArena, "f"),
|
|
178
|
+
soulWarsZeal: __classPrivateFieldGet(this, _OsrsAccount_soulWarsZeal, "f"),
|
|
179
|
+
riftsClosed: __classPrivateFieldGet(this, _OsrsAccount_riftsClosed, "f"),
|
|
180
|
+
colosseumGlory: __classPrivateFieldGet(this, _OsrsAccount_colosseumGlory, "f"),
|
|
181
|
+
collectionsLogged: __classPrivateFieldGet(this, _OsrsAccount_collectionsLogged, "f"),
|
|
182
|
+
leaguePoints: __classPrivateFieldGet(this, _OsrsAccount_leaguePoints, "f"),
|
|
183
|
+
deadmanPoints: __classPrivateFieldGet(this, _OsrsAccount_deadmanPoints, "f"),
|
|
184
|
+
};
|
|
62
185
|
}
|
|
63
186
|
}
|
|
64
187
|
exports.OsrsAccount = OsrsAccount;
|
|
188
|
+
_OsrsAccount_name = new WeakMap(), _OsrsAccount_combatLevel = new WeakMap(), _OsrsAccount_questPoints = new WeakMap(), _OsrsAccount_skills = new WeakMap(), _OsrsAccount_skillsDetail = new WeakMap(), _OsrsAccount_bosses = new WeakMap(), _OsrsAccount_clues = new WeakMap(), _OsrsAccount_bountyHunter = new WeakMap(), _OsrsAccount_lastManStanding = new WeakMap(), _OsrsAccount_pvpArena = new WeakMap(), _OsrsAccount_soulWarsZeal = new WeakMap(), _OsrsAccount_riftsClosed = new WeakMap(), _OsrsAccount_colosseumGlory = new WeakMap(), _OsrsAccount_collectionsLogged = new WeakMap(), _OsrsAccount_leaguePoints = new WeakMap(), _OsrsAccount_deadmanPoints = new WeakMap();
|
package/dist/quest/Quest.d.ts
CHANGED
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
import { Requirement } from '../Requirement';
|
|
2
|
+
interface QuestRewardExperience {
|
|
3
|
+
skill: string;
|
|
4
|
+
amount: number;
|
|
5
|
+
}
|
|
6
|
+
interface QuestRewardItem {
|
|
7
|
+
name: string;
|
|
8
|
+
quantity?: number;
|
|
9
|
+
note?: string;
|
|
10
|
+
}
|
|
11
|
+
interface QuestRewardUnlock {
|
|
12
|
+
description: string;
|
|
13
|
+
url?: string;
|
|
14
|
+
}
|
|
15
|
+
interface QuestRewardLamp {
|
|
16
|
+
amount: number;
|
|
17
|
+
skillRestriction?: string | string[];
|
|
18
|
+
note?: string;
|
|
19
|
+
}
|
|
20
|
+
interface QuestRewardPoints {
|
|
21
|
+
type: string;
|
|
22
|
+
amount: number;
|
|
23
|
+
}
|
|
24
|
+
interface QuestRewardPet {
|
|
25
|
+
name: string;
|
|
26
|
+
note?: string;
|
|
27
|
+
}
|
|
28
|
+
interface QuestRewards {
|
|
29
|
+
experience?: QuestRewardExperience[];
|
|
30
|
+
items?: QuestRewardItem[];
|
|
31
|
+
unlocks?: QuestRewardUnlock[];
|
|
32
|
+
lamps?: QuestRewardLamp[];
|
|
33
|
+
points?: QuestRewardPoints[];
|
|
34
|
+
pets?: QuestRewardPet[];
|
|
35
|
+
questPoints: number;
|
|
36
|
+
areas?: string[];
|
|
37
|
+
}
|
|
2
38
|
interface Quest {
|
|
3
39
|
id: number;
|
|
4
40
|
name: string;
|
|
@@ -25,15 +61,7 @@ interface Quest {
|
|
|
25
61
|
[skill: string]: number;
|
|
26
62
|
};
|
|
27
63
|
recommendedPrayers: string[];
|
|
28
|
-
rewards:
|
|
29
|
-
experience?: {
|
|
30
|
-
[skill: string]: number;
|
|
31
|
-
};
|
|
32
|
-
items?: string[];
|
|
33
|
-
questPoints: number;
|
|
34
|
-
areas?: string[];
|
|
35
|
-
grants?: string[];
|
|
36
|
-
};
|
|
64
|
+
rewards: QuestRewards;
|
|
37
65
|
[key: string]: any;
|
|
38
66
|
}
|
|
39
67
|
export { Quest };
|
|
@@ -1,51 +1,36 @@
|
|
|
1
1
|
import { OsrsAccount } from '../account/OsrsAccount';
|
|
2
2
|
import { Quest } from './Quest';
|
|
3
3
|
declare class QuestTool {
|
|
4
|
-
private questObject;
|
|
5
|
-
private questArray;
|
|
6
|
-
private subQuestArray;
|
|
7
4
|
private osrsAccount;
|
|
8
|
-
constructor();
|
|
9
|
-
/**
|
|
10
|
-
* to string func
|
|
11
|
-
* @todo Implement this function
|
|
12
|
-
* @return {String} The string representation of the class object.
|
|
13
|
-
*/
|
|
14
|
-
toString(): string;
|
|
15
|
-
/**
|
|
16
|
-
* Get the data for a quest
|
|
17
|
-
* @param {String} questName The name of the quest
|
|
18
|
-
* @return {Object} The data for the input quest in a JSON object.
|
|
19
|
-
* */
|
|
20
|
-
getQuest(questName: string): Quest | undefined;
|
|
21
|
-
/**
|
|
22
|
-
* Get the data for a quest
|
|
23
|
-
* @param {String} questName The name of the quest
|
|
24
|
-
* @return {Object} The data for the input quest in a JSON object.
|
|
25
|
-
* */
|
|
26
|
-
getQuestByName(questName: string): Quest | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* Get the data for a quest
|
|
29
|
-
* @param {String} subQuestName The name of the subquest
|
|
30
|
-
* @return {Object} The data for the input subquest in a JSON object.
|
|
31
|
-
* */
|
|
32
|
-
getSubQuest(subQuestName: string): any | undefined;
|
|
33
|
-
/**
|
|
34
|
-
* Add two numbers together
|
|
35
|
-
* @todo Need to implement Recipe for disaster functionality
|
|
36
|
-
* @param {String} quest The either string or quest object of the quest to be determined completeable or not.
|
|
37
|
-
* @return {Boolean} If the account currently tied to the tool can complete the quest.
|
|
38
|
-
* */
|
|
39
|
-
canCompleteQuest(quest: string | Quest | undefined): boolean;
|
|
5
|
+
constructor(account?: OsrsAccount);
|
|
40
6
|
/**
|
|
41
7
|
* Set the account to be used in this quest tool
|
|
42
8
|
* @param {OsrsAccount} acc1 The osrs Account to be associated with this class object.
|
|
43
|
-
|
|
9
|
+
*/
|
|
44
10
|
setOsrsAccount(acc1: OsrsAccount): boolean;
|
|
45
11
|
/**
|
|
46
12
|
* Get the osrs account associated with this quest tool
|
|
47
13
|
* @return {OsrsAccount | undefined} The osrs Account associated with this class object.
|
|
48
|
-
|
|
14
|
+
*/
|
|
49
15
|
getOsrsAccount(): OsrsAccount | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Determine if the account can complete a quest, including recursively checking quest requirements.
|
|
18
|
+
* @param quest The quest to check (must be a Quest instance)
|
|
19
|
+
* @param visited (internal) Set of quest names already checked to prevent infinite recursion
|
|
20
|
+
*/
|
|
21
|
+
canCompleteQuest(quest: Quest | undefined, visited?: Set<string>): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Static utility to get a Quest instance by its name.
|
|
24
|
+
* This assumes all quests are exported as default from their respective files in quest/all/.
|
|
25
|
+
* @param questName The name of the quest to retrieve
|
|
26
|
+
* @returns Quest instance or undefined if not found
|
|
27
|
+
*/
|
|
28
|
+
static getQuestByName(questName: string): Quest | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Get the maximum boost for a given skill, based on OSRS Wiki data.
|
|
31
|
+
* @param skillName The name of the skill (case-insensitive, e.g. 'Attack', 'Herblore')
|
|
32
|
+
* @returns The maximum boost amount for the skill (positive integer, or 0 if unboostable)
|
|
33
|
+
*/
|
|
34
|
+
static getMaxSkillBoost(skillName: string): number;
|
|
50
35
|
}
|
|
51
36
|
export { QuestTool };
|