osrs-tools 0.2.2 → 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 +65 -0
- package/dist/Requirement.js +105 -0
- package/dist/account/OsrsAccount.d.ts +80 -0
- package/dist/account/OsrsAccount.js +188 -0
- package/dist/account/Skill.d.ts +25 -0
- package/dist/account/Skill.js +29 -0
- package/dist/misc/Item.d.ts +7 -0
- package/dist/misc/Item.js +12 -0
- package/dist/quest/Quest.d.ts +73 -0
- package/dist/quest/Quest.js +10 -0
- package/dist/quest/QuestTool.d.ts +36 -0
- package/dist/quest/QuestTool.js +137 -0
- 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.d.ts +3 -0
- package/dist/quest/all/APorcineOfInterest.js +47 -0
- package/dist/quest/all/ASoulsBane.d.ts +3 -0
- package/dist/quest/all/ASoulsBane.js +42 -0
- package/dist/quest/all/ATailOfTwoCats.d.ts +3 -0
- package/dist/quest/all/ATailOfTwoCats.js +37 -0
- package/dist/quest/all/ATasteOfHope.d.ts +3 -0
- package/dist/quest/all/ATasteOfHope.js +39 -0
- package/dist/quest/all/ATheatreOfBlood.d.ts +3 -0
- package/dist/quest/all/ATheatreOfBlood.js +38 -0
- package/dist/quest/all/AnimalMagnetism.d.ts +3 -0
- package/dist/quest/all/AnimalMagnetism.js +45 -0
- package/dist/quest/all/AnotherSliceOfHAM.d.ts +3 -0
- package/dist/quest/all/AnotherSliceOfHAM.js +42 -0
- package/dist/quest/all/BelowIceMountain.d.ts +3 -0
- package/dist/quest/all/BelowIceMountain.js +47 -0
- package/dist/quest/all/BetweenARock.d.ts +3 -0
- package/dist/quest/all/BetweenARock.js +43 -0
- package/dist/quest/all/BigChompyBirdHunting.d.ts +3 -0
- package/dist/quest/all/BigChompyBirdHunting.js +43 -0
- package/dist/quest/all/Biohazard.d.ts +3 -0
- package/dist/quest/all/Biohazard.js +41 -0
- package/dist/quest/all/BlackKnightsFortress.d.ts +3 -0
- package/dist/quest/all/BlackKnightsFortress.js +39 -0
- package/dist/quest/all/BoneVoyage.d.ts +3 -0
- package/dist/quest/all/BoneVoyage.js +39 -0
- package/dist/quest/all/CabinFever.d.ts +3 -0
- package/dist/quest/all/CabinFever.js +43 -0
- package/dist/quest/all/ClientOfKourend.d.ts +3 -0
- package/dist/quest/all/ClientOfKourend.js +39 -0
- package/dist/quest/all/ClockTower.d.ts +3 -0
- package/dist/quest/all/ClockTower.js +39 -0
- package/dist/quest/all/ColdWar.d.ts +3 -0
- package/dist/quest/all/ColdWar.js +44 -0
- package/dist/quest/all/Contact.d.ts +3 -0
- package/dist/quest/all/Contact.js +42 -0
- package/dist/quest/all/CookAssistant.d.ts +3 -0
- package/dist/quest/all/CookAssistant.js +51 -0
- package/dist/quest/all/CooksAssistant.d.ts +3 -0
- package/dist/quest/all/CooksAssistant.js +42 -0
- package/dist/quest/all/CreatureOfFenkenstrain.d.ts +3 -0
- package/dist/quest/all/CreatureOfFenkenstrain.js +42 -0
- package/dist/quest/all/DarknessOfHallowvale.d.ts +3 -0
- package/dist/quest/all/DarknessOfHallowvale.js +44 -0
- package/dist/quest/all/DeathPlateau.d.ts +3 -0
- package/dist/quest/all/DeathPlateau.js +42 -0
- package/dist/quest/all/DeathToTheDorgeshuun.d.ts +3 -0
- package/dist/quest/all/DeathToTheDorgeshuun.js +43 -0
- package/dist/quest/all/DemonSlayer.d.ts +3 -0
- package/dist/quest/all/DemonSlayer.js +39 -0
- package/dist/quest/all/DesertTreasure.d.ts +14 -0
- package/dist/quest/all/DesertTreasure.js +15 -0
- package/dist/quest/all/DeviousMinds.d.ts +3 -0
- package/dist/quest/all/DeviousMinds.js +44 -0
- package/dist/quest/all/DoricQuest.d.ts +16 -0
- package/dist/quest/all/DoricQuest.js +20 -0
- package/dist/quest/all/DoricsQuest.d.ts +3 -0
- package/dist/quest/all/DoricsQuest.js +42 -0
- package/dist/quest/all/DragonSlayer.d.ts +3 -0
- package/dist/quest/all/DragonSlayer.js +43 -0
- package/dist/quest/all/DragonSlayerII.d.ts +3 -0
- package/dist/quest/all/DragonSlayerII.js +45 -0
- package/dist/quest/all/DreamMentor.d.ts +16 -0
- package/dist/quest/all/DreamMentor.js +21 -0
- package/dist/quest/all/DruidicRitual.d.ts +3 -0
- package/dist/quest/all/DruidicRitual.js +42 -0
- package/dist/quest/all/DwarfCannon.d.ts +3 -0
- package/dist/quest/all/DwarfCannon.js +42 -0
- package/dist/quest/all/EadgarsRuse.d.ts +3 -0
- package/dist/quest/all/EadgarsRuse.js +42 -0
- package/dist/quest/all/EaglesPeak.d.ts +3 -0
- package/dist/quest/all/EaglesPeak.js +42 -0
- package/dist/quest/all/ElementalWorkshopI.d.ts +3 -0
- package/dist/quest/all/ElementalWorkshopI.js +43 -0
- package/dist/quest/all/ElementalWorkshopII.d.ts +3 -0
- package/dist/quest/all/ElementalWorkshopII.js +43 -0
- package/dist/quest/all/EnakhrasLament.d.ts +3 -0
- package/dist/quest/all/EnakhrasLament.js +39 -0
- package/dist/quest/all/EnlightenedJourney.d.ts +3 -0
- package/dist/quest/all/EnlightenedJourney.js +39 -0
- package/dist/quest/all/FairytaleIGrowingPains.d.ts +3 -0
- package/dist/quest/all/FairytaleIGrowingPains.js +39 -0
- package/dist/quest/all/FairytaleIICureAQueen.d.ts +3 -0
- package/dist/quest/all/FairytaleIICureAQueen.js +39 -0
- package/dist/quest/all/FamilyCrest.d.ts +3 -0
- package/dist/quest/all/FamilyCrest.js +39 -0
- package/dist/quest/all/FightArena.d.ts +3 -0
- package/dist/quest/all/FightArena.js +39 -0
- package/dist/quest/all/FishingContest.d.ts +3 -0
- package/dist/quest/all/FishingContest.js +39 -0
- package/dist/quest/all/ForgettableTale.d.ts +3 -0
- package/dist/quest/all/ForgettableTale.js +39 -0
- package/dist/quest/all/GardenOfTranquillity.d.ts +3 -0
- package/dist/quest/all/GardenOfTranquillity.js +39 -0
- package/dist/quest/all/GertrudesCat.d.ts +3 -0
- package/dist/quest/all/GertrudesCat.js +39 -0
- package/dist/quest/all/GettingAhead.d.ts +3 -0
- package/dist/quest/all/GettingAhead.js +39 -0
- package/dist/quest/all/GhostsAhoy.d.ts +3 -0
- package/dist/quest/all/GhostsAhoy.js +39 -0
- package/dist/quest/all/GoblinDiplomacy.d.ts +3 -0
- package/dist/quest/all/GoblinDiplomacy.js +39 -0
- package/dist/quest/all/GrimTales.d.ts +3 -0
- package/dist/quest/all/GrimTales.js +47 -0
- package/dist/quest/all/HauntedMine.d.ts +3 -0
- package/dist/quest/all/HauntedMine.js +42 -0
- package/dist/quest/all/HazeelCult.d.ts +3 -0
- package/dist/quest/all/HazeelCult.js +42 -0
- package/dist/quest/all/HeroesQuest.d.ts +3 -0
- package/dist/quest/all/HeroesQuest.js +61 -0
- package/dist/quest/all/HolyGrail.d.ts +3 -0
- package/dist/quest/all/HolyGrail.js +50 -0
- package/dist/quest/all/HorrorFromTheDeep.d.ts +3 -0
- package/dist/quest/all/HorrorFromTheDeep.js +52 -0
- package/dist/quest/all/IcthlarinsLittleHelper.d.ts +3 -0
- package/dist/quest/all/IcthlarinsLittleHelper.js +44 -0
- package/dist/quest/all/ImpCatcher.d.ts +3 -0
- package/dist/quest/all/ImpCatcher.js +42 -0
- package/dist/quest/all/InAidOfTheMyreque.d.ts +3 -0
- package/dist/quest/all/InAidOfTheMyreque.js +51 -0
- package/dist/quest/all/InSearchOfTheMyreque.d.ts +3 -0
- package/dist/quest/all/InSearchOfTheMyreque.js +50 -0
- package/dist/quest/all/JunglePotion.d.ts +3 -0
- package/dist/quest/all/JunglePotion.js +43 -0
- package/dist/quest/all/KingsRansom.d.ts +3 -0
- package/dist/quest/all/KingsRansom.js +50 -0
- 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 +17 -0
- package/dist/slayer/Assignment.js +28 -0
- package/dist/slayer/Masters.d.ts +10 -0
- package/dist/slayer/Masters.js +104 -0
- package/dist/slayer/SlayerBuys.d.ts +3 -0
- package/dist/slayer/SlayerBuys.js +34 -0
- package/dist/slayer/SlayerData.d.ts +13 -0
- package/dist/slayer/SlayerData.js +42 -0
- package/dist/slayer/SlayerExtends.d.ts +23 -0
- package/dist/slayer/SlayerExtends.js +184 -0
- package/dist/slayer/SlayerMaster.d.ts +67 -0
- package/dist/slayer/SlayerMaster.js +112 -0
- package/dist/slayer/SlayerReward.d.ts +33 -0
- package/dist/slayer/SlayerReward.js +30 -0
- package/dist/slayer/SlayerUnlock.d.ts +7 -0
- package/dist/slayer/SlayerUnlock.js +67 -0
- package/dist/slayer/Task.d.ts +85 -0
- package/dist/slayer/Task.js +117 -0
- package/dist/slayer/task/ChaelderTasks.d.ts +3 -0
- package/dist/slayer/task/ChaelderTasks.js +68 -0
- package/dist/slayer/task/DuradelTasks.d.ts +3 -0
- package/dist/slayer/task/DuradelTasks.js +36 -0
- package/dist/slayer/task/KonarTasks.d.ts +3 -0
- package/dist/slayer/task/KonarTasks.js +36 -0
- package/dist/slayer/task/KrystiliaTasks.d.ts +3 -0
- package/dist/slayer/task/KrystiliaTasks.js +36 -0
- package/dist/slayer/task/MazchnaTasks.d.ts +3 -0
- package/dist/slayer/task/MazchnaTasks.js +85 -0
- package/dist/slayer/task/NieveTasks.d.ts +3 -0
- package/dist/slayer/task/NieveTasks.js +52 -0
- package/dist/slayer/task/ReadTasks.d.ts +1 -0
- package/dist/slayer/task/ReadTasks.js +63 -0
- package/dist/slayer/task/SpriaTasks.d.ts +3 -0
- package/dist/slayer/task/SpriaTasks.js +122 -0
- package/dist/slayer/task/Tureal.d.ts +3 -0
- package/dist/slayer/task/Tureal.js +125 -0
- package/dist/slayer/task/TurealTasks.d.ts +3 -0
- package/dist/slayer/task/TurealTasks.js +125 -0
- package/dist/slayer/task/VannakaTasks.d.ts +3 -0
- package/dist/slayer/task/VannakaTasks.js +63 -0
- package/package.json +3 -5
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
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
interface Requirement {
|
|
2
|
+
description: string;
|
|
3
|
+
type: RequirementType;
|
|
4
|
+
}
|
|
5
|
+
declare class LevelRequirement implements Requirement {
|
|
6
|
+
type: RequirementType;
|
|
7
|
+
skillName: string;
|
|
8
|
+
level: number;
|
|
9
|
+
boostable: boolean;
|
|
10
|
+
constructor(skillName: string, level: number, boostable?: boolean);
|
|
11
|
+
get description(): string;
|
|
12
|
+
}
|
|
13
|
+
declare enum RequirementType {
|
|
14
|
+
SlayerLevel = "SlayerLevel",
|
|
15
|
+
Level = "Level",
|
|
16
|
+
CombatLevel = "CombatLevel",
|
|
17
|
+
Quest = "Quest",
|
|
18
|
+
QuestPoint = "QuestPoint",
|
|
19
|
+
Item = "Item",
|
|
20
|
+
Location = "Location",
|
|
21
|
+
SlayerUnlock = "SlayerUnlock"
|
|
22
|
+
}
|
|
23
|
+
declare class SlayerUnlockRequirement implements Requirement {
|
|
24
|
+
type: RequirementType;
|
|
25
|
+
name: string;
|
|
26
|
+
constructor(name: string);
|
|
27
|
+
get description(): string;
|
|
28
|
+
}
|
|
29
|
+
declare class SlayerLevelRequirement implements Requirement {
|
|
30
|
+
type: RequirementType;
|
|
31
|
+
level: number;
|
|
32
|
+
constructor(level: number);
|
|
33
|
+
get description(): string;
|
|
34
|
+
}
|
|
35
|
+
declare class CombatLevelRequirement implements Requirement {
|
|
36
|
+
type: RequirementType;
|
|
37
|
+
level: number;
|
|
38
|
+
constructor(level: number);
|
|
39
|
+
get description(): string;
|
|
40
|
+
}
|
|
41
|
+
declare class QuestRequirement implements Requirement {
|
|
42
|
+
type: RequirementType;
|
|
43
|
+
questName: string;
|
|
44
|
+
constructor(questName: string);
|
|
45
|
+
get description(): string;
|
|
46
|
+
}
|
|
47
|
+
declare class QuestPointRequirement implements Requirement {
|
|
48
|
+
type: RequirementType;
|
|
49
|
+
amount: number;
|
|
50
|
+
constructor(amount: number);
|
|
51
|
+
get description(): string;
|
|
52
|
+
}
|
|
53
|
+
declare class ItemRequirement implements Requirement {
|
|
54
|
+
type: RequirementType;
|
|
55
|
+
itemName: string;
|
|
56
|
+
constructor(itemName: string);
|
|
57
|
+
get description(): string;
|
|
58
|
+
}
|
|
59
|
+
declare class LocationRequirement implements Requirement {
|
|
60
|
+
type: RequirementType;
|
|
61
|
+
locationName: string;
|
|
62
|
+
constructor(locationName: string);
|
|
63
|
+
get description(): string;
|
|
64
|
+
}
|
|
65
|
+
export { CombatLevelRequirement, QuestPointRequirement, ItemRequirement, LevelRequirement, LocationRequirement, QuestRequirement, Requirement, RequirementType, SlayerLevelRequirement, SlayerUnlockRequirement, };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SlayerUnlockRequirement = exports.SlayerLevelRequirement = exports.RequirementType = exports.QuestRequirement = exports.LocationRequirement = exports.LevelRequirement = exports.ItemRequirement = exports.QuestPointRequirement = exports.CombatLevelRequirement = void 0;
|
|
4
|
+
// TODO: Add a requirement type for all "levels" (combat, slayer, farming, crafting etc.)
|
|
5
|
+
class LevelRequirement {
|
|
6
|
+
constructor(skillName, level, boostable = false) {
|
|
7
|
+
this.type = RequirementType.Level;
|
|
8
|
+
this.boostable = false; // Indicates if the level can be boosted
|
|
9
|
+
this.boostable = boostable;
|
|
10
|
+
this.skillName = skillName;
|
|
11
|
+
this.level = level;
|
|
12
|
+
}
|
|
13
|
+
get description() {
|
|
14
|
+
return `Level ${this.level}`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.LevelRequirement = LevelRequirement;
|
|
18
|
+
// Enum for requirement types
|
|
19
|
+
var RequirementType;
|
|
20
|
+
(function (RequirementType) {
|
|
21
|
+
RequirementType["SlayerLevel"] = "SlayerLevel";
|
|
22
|
+
RequirementType["Level"] = "Level";
|
|
23
|
+
RequirementType["CombatLevel"] = "CombatLevel";
|
|
24
|
+
RequirementType["Quest"] = "Quest";
|
|
25
|
+
RequirementType["QuestPoint"] = "QuestPoint";
|
|
26
|
+
RequirementType["Item"] = "Item";
|
|
27
|
+
RequirementType["Location"] = "Location";
|
|
28
|
+
RequirementType["SlayerUnlock"] = "SlayerUnlock";
|
|
29
|
+
})(RequirementType || (exports.RequirementType = RequirementType = {}));
|
|
30
|
+
// Slayer Unlock requirement
|
|
31
|
+
class SlayerUnlockRequirement {
|
|
32
|
+
constructor(name) {
|
|
33
|
+
this.type = RequirementType.SlayerUnlock;
|
|
34
|
+
this.name = name;
|
|
35
|
+
}
|
|
36
|
+
get description() {
|
|
37
|
+
return `Slayer unlock: ${this.name}`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.SlayerUnlockRequirement = SlayerUnlockRequirement;
|
|
41
|
+
// Slayer level requirement
|
|
42
|
+
class SlayerLevelRequirement {
|
|
43
|
+
constructor(level) {
|
|
44
|
+
this.type = RequirementType.SlayerLevel;
|
|
45
|
+
this.level = level;
|
|
46
|
+
}
|
|
47
|
+
get description() {
|
|
48
|
+
return `Slayer level ${this.level}`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.SlayerLevelRequirement = SlayerLevelRequirement;
|
|
52
|
+
// Combat level requirement
|
|
53
|
+
class CombatLevelRequirement {
|
|
54
|
+
constructor(level) {
|
|
55
|
+
this.type = RequirementType.CombatLevel;
|
|
56
|
+
this.level = level;
|
|
57
|
+
}
|
|
58
|
+
get description() {
|
|
59
|
+
return `Combat level ${this.level}`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.CombatLevelRequirement = CombatLevelRequirement;
|
|
63
|
+
// Quest requirement
|
|
64
|
+
class QuestRequirement {
|
|
65
|
+
constructor(questName) {
|
|
66
|
+
this.type = RequirementType.Quest;
|
|
67
|
+
this.questName = questName;
|
|
68
|
+
}
|
|
69
|
+
get description() {
|
|
70
|
+
return `Completed quest: ${this.questName}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.QuestRequirement = QuestRequirement;
|
|
74
|
+
class QuestPointRequirement {
|
|
75
|
+
constructor(amount) {
|
|
76
|
+
this.type = RequirementType.Quest;
|
|
77
|
+
this.amount = amount;
|
|
78
|
+
}
|
|
79
|
+
get description() {
|
|
80
|
+
return `Quest Points Needed: ${this.amount}`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.QuestPointRequirement = QuestPointRequirement;
|
|
84
|
+
// Item requirement
|
|
85
|
+
class ItemRequirement {
|
|
86
|
+
constructor(itemName) {
|
|
87
|
+
this.type = RequirementType.Item;
|
|
88
|
+
this.itemName = itemName;
|
|
89
|
+
}
|
|
90
|
+
get description() {
|
|
91
|
+
return `Has item: ${this.itemName}`;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.ItemRequirement = ItemRequirement;
|
|
95
|
+
// Location requirement
|
|
96
|
+
class LocationRequirement {
|
|
97
|
+
constructor(locationName) {
|
|
98
|
+
this.type = RequirementType.Location;
|
|
99
|
+
this.locationName = locationName;
|
|
100
|
+
}
|
|
101
|
+
get description() {
|
|
102
|
+
return `Access to location: ${this.locationName}`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.LocationRequirement = LocationRequirement;
|
|
@@ -0,0 +1,80 @@
|
|
|
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 {
|
|
36
|
+
name: string;
|
|
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;
|
|
52
|
+
}
|
|
53
|
+
declare class OsrsAccount {
|
|
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;
|
|
77
|
+
toString(): string;
|
|
78
|
+
toJson(): OsrsAccountData;
|
|
79
|
+
}
|
|
80
|
+
export { OsrsAccount, OsrsAccountData, Skills, Skill, SkillsDetail, Bosses, BossScore, Clues, ClueScore, BountyHunter, };
|
|
@@ -0,0 +1,188 @@
|
|
|
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;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.OsrsAccount = void 0;
|
|
16
|
+
class OsrsAccount {
|
|
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");
|
|
50
|
+
}
|
|
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
|
+
});
|
|
99
|
+
}
|
|
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");
|
|
147
|
+
}
|
|
148
|
+
getSkill(skillName) {
|
|
149
|
+
return __classPrivateFieldGet(this, _OsrsAccount_skills, "f")[skillName.toLowerCase()];
|
|
150
|
+
}
|
|
151
|
+
getSkillDetail(skillName) {
|
|
152
|
+
var _a;
|
|
153
|
+
return (_a = __classPrivateFieldGet(this, _OsrsAccount_skillsDetail, "f")) === null || _a === void 0 ? void 0 : _a[skillName.toLowerCase()];
|
|
154
|
+
}
|
|
155
|
+
getBossScore(bossName) {
|
|
156
|
+
var _a;
|
|
157
|
+
return (_a = __classPrivateFieldGet(this, _OsrsAccount_bosses, "f")) === null || _a === void 0 ? void 0 : _a[bossName];
|
|
158
|
+
}
|
|
159
|
+
getClueScore(clueType) {
|
|
160
|
+
var _a;
|
|
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
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
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();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare enum Skill {
|
|
2
|
+
Attack = "Attack",
|
|
3
|
+
Defence = "Defence",
|
|
4
|
+
Strength = "Strength",
|
|
5
|
+
Hitpoints = "Hitpoints",
|
|
6
|
+
Ranged = "Ranged",
|
|
7
|
+
Prayer = "Prayer",
|
|
8
|
+
Magic = "Magic",
|
|
9
|
+
Cooking = "Cooking",
|
|
10
|
+
Woodcutting = "Woodcutting",
|
|
11
|
+
Fletching = "Fletching",
|
|
12
|
+
Fishing = "Fishing",
|
|
13
|
+
Firemaking = "Firemaking",
|
|
14
|
+
Crafting = "Crafting",
|
|
15
|
+
Smithing = "Smithing",
|
|
16
|
+
Mining = "Mining",
|
|
17
|
+
Herblore = "Herblore",
|
|
18
|
+
Agility = "Agility",
|
|
19
|
+
Thieving = "Thieving",
|
|
20
|
+
Slayer = "Slayer",
|
|
21
|
+
Farming = "Farming",
|
|
22
|
+
Runecraft = "Runecraft",
|
|
23
|
+
Hunter = "Hunter",
|
|
24
|
+
Construction = "Construction"
|
|
25
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Skill = void 0;
|
|
4
|
+
var Skill;
|
|
5
|
+
(function (Skill) {
|
|
6
|
+
Skill["Attack"] = "Attack";
|
|
7
|
+
Skill["Defence"] = "Defence";
|
|
8
|
+
Skill["Strength"] = "Strength";
|
|
9
|
+
Skill["Hitpoints"] = "Hitpoints";
|
|
10
|
+
Skill["Ranged"] = "Ranged";
|
|
11
|
+
Skill["Prayer"] = "Prayer";
|
|
12
|
+
Skill["Magic"] = "Magic";
|
|
13
|
+
Skill["Cooking"] = "Cooking";
|
|
14
|
+
Skill["Woodcutting"] = "Woodcutting";
|
|
15
|
+
Skill["Fletching"] = "Fletching";
|
|
16
|
+
Skill["Fishing"] = "Fishing";
|
|
17
|
+
Skill["Firemaking"] = "Firemaking";
|
|
18
|
+
Skill["Crafting"] = "Crafting";
|
|
19
|
+
Skill["Smithing"] = "Smithing";
|
|
20
|
+
Skill["Mining"] = "Mining";
|
|
21
|
+
Skill["Herblore"] = "Herblore";
|
|
22
|
+
Skill["Agility"] = "Agility";
|
|
23
|
+
Skill["Thieving"] = "Thieving";
|
|
24
|
+
Skill["Slayer"] = "Slayer";
|
|
25
|
+
Skill["Farming"] = "Farming";
|
|
26
|
+
Skill["Runecraft"] = "Runecraft";
|
|
27
|
+
Skill["Hunter"] = "Hunter";
|
|
28
|
+
Skill["Construction"] = "Construction";
|
|
29
|
+
})(Skill || (exports.Skill = Skill = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Item = void 0;
|
|
4
|
+
class Item {
|
|
5
|
+
constructor(id, name, description, value) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.description = description;
|
|
9
|
+
this.value = value;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.Item = Item;
|