osrs-tools 0.2.0 → 0.2.2

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.
Files changed (92) hide show
  1. package/dist/index.d.ts +8 -0
  2. package/dist/index.js +12 -0
  3. package/dist/jest.config.dev.js +7 -0
  4. package/dist/model/Requirement.d.ts +65 -0
  5. package/dist/model/Requirement.js +130 -0
  6. package/dist/model/account/OsrsAccount.d.ts +31 -0
  7. package/dist/model/account/OsrsAccount.js +64 -0
  8. package/dist/model/quest/Quest.d.ts +41 -0
  9. package/dist/model/quest/Quest.js +2 -0
  10. package/dist/model/quest/QuestTool.d.ts +51 -0
  11. package/{src/model/quest/QuestTool.ts → dist/model/quest/QuestTool.js} +78 -96
  12. package/dist/model/slayer/Assignment.d.ts +17 -0
  13. package/dist/model/slayer/Assignment.js +28 -0
  14. package/dist/model/slayer/SlayerMaster.d.ts +67 -0
  15. package/dist/model/slayer/SlayerMaster.js +112 -0
  16. package/dist/model/slayer/SlayerReward.d.ts +33 -0
  17. package/dist/model/slayer/SlayerReward.js +30 -0
  18. package/dist/model/slayer/Task.d.ts +85 -0
  19. package/dist/model/slayer/Task.js +117 -0
  20. package/dist/resources/slayer/Masters.d.ts +10 -0
  21. package/dist/resources/slayer/Masters.js +100 -0
  22. package/dist/resources/slayer/SlayerData.d.ts +13 -0
  23. package/dist/resources/slayer/SlayerData.js +42 -0
  24. package/dist/resources/slayer/SlayerExtends.d.ts +23 -0
  25. package/dist/resources/slayer/SlayerExtends.js +184 -0
  26. package/dist/resources/slayer/SlayerUnlock.d.ts +7 -0
  27. package/dist/resources/slayer/SlayerUnlock.js +67 -0
  28. package/dist/resources/slayer/slayerBuys.d.ts +3 -0
  29. package/dist/resources/slayer/slayerBuys.js +34 -0
  30. package/dist/resources/slayer/tasks/ChaelderTasks.d.ts +3 -0
  31. package/dist/resources/slayer/tasks/ChaelderTasks.js +78 -0
  32. package/dist/resources/slayer/tasks/DuradelTasks.d.ts +2 -0
  33. package/dist/resources/slayer/tasks/DuradelTasks.js +18 -0
  34. package/{src/resources/slayer/tasks/KonarTasks.ts → dist/resources/slayer/tasks/KonarTasks.d.ts} +3 -6
  35. package/dist/resources/slayer/tasks/KonarTasks.js +5 -0
  36. package/dist/resources/slayer/tasks/MazchnaTasks.d.ts +3 -0
  37. package/dist/resources/slayer/tasks/MazchnaTasks.js +4 -0
  38. package/dist/resources/slayer/tasks/NieveTasks.d.ts +3 -0
  39. package/dist/resources/slayer/tasks/NieveTasks.js +78 -0
  40. package/dist/resources/slayer/tasks/ReadTasks.d.ts +1 -0
  41. package/dist/resources/slayer/tasks/ReadTasks.js +63 -0
  42. package/dist/resources/slayer/tasks/SpriaTasks.d.ts +2 -0
  43. package/dist/resources/slayer/tasks/SpriaTasks.js +117 -0
  44. package/dist/resources/slayer/tasks/Tureal.d.ts +3 -0
  45. package/dist/resources/slayer/tasks/Tureal.js +125 -0
  46. package/dist/resources/slayer/tasks/VannakaTasks.d.ts +3 -0
  47. package/dist/resources/slayer/tasks/VannakaTasks.js +78 -0
  48. package/package.json +22 -25
  49. package/src/index.ts +0 -11
  50. package/src/model/Requirement.ts +0 -173
  51. package/src/model/account/OsrsAccount.ts +0 -82
  52. package/src/model/quest/Quest.ts +0 -44
  53. package/src/model/slayer/Assignment.ts +0 -40
  54. package/src/model/slayer/SlayerMaster.ts +0 -137
  55. package/src/model/slayer/SlayerReward.ts +0 -39
  56. package/src/model/slayer/Task.ts +0 -168
  57. package/src/resources/QuestData.json +0 -754
  58. package/src/resources/quest/diaries.json +0 -1171
  59. package/src/resources/quest/diariesArray.json +0 -0
  60. package/src/resources/quest/exp.json +0 -1333
  61. package/src/resources/quest/questData.js +0 -5628
  62. package/src/resources/quest/questData.json +0 -5790
  63. package/src/resources/quest/questDataArray.js +0 -5489
  64. package/src/resources/quest/questDataArray.json +0 -5489
  65. package/src/resources/quest/subquestArray.js +0 -58
  66. package/src/resources/quest/subquestArray.json +0 -58
  67. package/src/resources/quest/testObj.json +0 -5682
  68. package/src/resources/quest/testarray.json +0 -5589
  69. package/src/resources/quests/CooksAssistant.json +0 -34
  70. package/src/resources/slayer/Masters.ts +0 -180
  71. package/src/resources/slayer/SlayerData.ts +0 -45
  72. package/src/resources/slayer/SlayerExtends.ts +0 -218
  73. package/src/resources/slayer/SlayerUnlock.ts +0 -194
  74. package/src/resources/slayer/slayer.json +0 -3581
  75. package/src/resources/slayer/slayerBuys.ts +0 -38
  76. package/src/resources/slayer/slayerData.json +0 -4431
  77. package/src/resources/slayer/tasks/ChaelderTasks.ts +0 -235
  78. package/src/resources/slayer/tasks/DuradelTasks.ts +0 -75
  79. package/src/resources/slayer/tasks/MazchnaTasks.ts +0 -5
  80. package/src/resources/slayer/tasks/NieveTasks.ts +0 -235
  81. package/src/resources/slayer/tasks/ReadTasks.ts +0 -55
  82. package/src/resources/slayer/tasks/SpriaTasks.ts +0 -344
  83. package/src/resources/slayer/tasks/Tureal.ts +0 -436
  84. package/src/resources/slayer/tasks/VannakaTasks.ts +0 -236
  85. package/src/resources/slayer/tasks/json/Chaeldar.json +0 -348
  86. package/src/resources/slayer/tasks/json/Duradel.json +0 -541
  87. package/src/resources/slayer/tasks/json/Krystilia.json +0 -2
  88. package/src/resources/slayer/tasks/json/Mazchna.json +0 -379
  89. package/src/resources/slayer/tasks/json/Neive.json +0 -320
  90. package/src/resources/slayer/tasks/json/Spria.json +0 -345
  91. package/src/resources/slayer/tasks/json/Tureal.json +0 -341
  92. package/src/resources/slayer/tasks/json/Vannaka.json +0 -547
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpriaTasks = void 0;
4
+ const Requirement_1 = require("../../../model/Requirement");
5
+ const Task_1 = require("../../../model/slayer/Task");
6
+ exports.SpriaTasks = [
7
+ new Task_1.Task("Banshees", 15, 30, [
8
+ new Requirement_1.CombatLevelRequirement(15),
9
+ new Requirement_1.CombatLevelRequirement(20),
10
+ new Requirement_1.QuestRequirement("Priest in Peril"),
11
+ ], null, null, ["Twisted Banshee"], 8),
12
+ new Task_1.Task("Bats", 15, 30, [new Requirement_1.CombatLevelRequirement(5)], null, null, ["Giant bat", "Albino bat", "Death wing"], 7),
13
+ new Task_1.Task("Bears", 10, 20, [new Requirement_1.CombatLevelRequirement(13)], null, null, [
14
+ "Grizzly bear cub",
15
+ "Bear cub",
16
+ "Grizzly bear",
17
+ "Reanimated bear",
18
+ "Callisto",
19
+ "Artio",
20
+ ], 7),
21
+ new Task_1.Task("Birds", 15, 30, [], null, null, [
22
+ "Chicken",
23
+ "Mounted terrorbird",
24
+ "Terrorbird",
25
+ "Rooster",
26
+ "Chompy bird",
27
+ "Seagull",
28
+ "Penguin",
29
+ "Duck",
30
+ "Duckling",
31
+ ], 6),
32
+ new Task_1.Task("Cave bugs", 10, 30, [new Requirement_1.SlayerLevelRequirement(7)], null, null, [], 8),
33
+ new Task_1.Task("Cave crawlers", 15, 30, [new Requirement_1.SlayerLevelRequirement(10), new Requirement_1.CombatLevelRequirement(10)], null, null, [], 8),
34
+ new Task_1.Task("Cave slime", 10, 20, [new Requirement_1.SlayerLevelRequirement(17), new Requirement_1.CombatLevelRequirement(15)], null, null, [], 8),
35
+ new Task_1.Task("Cows", 15, 30, [new Requirement_1.CombatLevelRequirement(5)], null, null, ["Buffalo", "Cow calf", "Undead cow"], 8),
36
+ new Task_1.Task("Crawling Hands", 15, 30, [new Requirement_1.SlayerLevelRequirement(5), new Requirement_1.QuestRequirement("Priest in Peril")], null, null, [], 8),
37
+ new Task_1.Task("Dogs", 15, 30, [new Requirement_1.CombatLevelRequirement(15)], null, null, ["Jackal", "Guard dog", "Wild dog", "Reanimated dog"], 7),
38
+ new Task_1.Task("Dwarves", 10, 25, [new Requirement_1.CombatLevelRequirement(6)], null, null, ["Black Guard", "Chaos Dwarf", "Dwarf gang member"], 7),
39
+ new Task_1.Task("Ghosts", 15, 30, [new Requirement_1.CombatLevelRequirement(13)], null, null, ["Tortured soul", "Forgotten Soul", "Revenants", "Death wing"], 7),
40
+ new Task_1.Task("Goblins", 15, 30, [], null, null, [
41
+ "Cave goblin guards",
42
+ "Sergeant Strongstack",
43
+ "Sergeant Steelwill",
44
+ "Sergeant Grimspike",
45
+ ], 7),
46
+ new Task_1.Task("Icefiends", 15, 20, [new Requirement_1.CombatLevelRequirement(20)], null, null, [], 8),
47
+ new Task_1.Task("Kalphites", 15, 30, [new Requirement_1.CombatLevelRequirement(15)], null, null, [
48
+ "Kalphite worker",
49
+ "Kalphite soldier",
50
+ "Kalphite guardian",
51
+ "Kalphite Queen",
52
+ ], 6),
53
+ new Task_1.Task("Lizards", 15, 30, [new Requirement_1.SlayerLevelRequirement(22)], null, null, [
54
+ "Small Lizard",
55
+ "Desert Lizard",
56
+ "Sulphur Lizard (Slayer 44)",
57
+ "Grimy Lizard (Slayer 44)",
58
+ ], 8),
59
+ new Task_1.Task("Minotaurs", 10, 20, [new Requirement_1.CombatLevelRequirement(7)], null, null, [], 7),
60
+ new Task_1.Task("Monkeys", 15, 30, [], null, null, [
61
+ "Karamjan Monkey",
62
+ "Monkey Guard",
63
+ "Monkey Archer",
64
+ "Monkey Zombie",
65
+ "Demonic Gorilla",
66
+ "Tortured Gorilla",
67
+ ], 6),
68
+ new Task_1.Task("Rats", 15, 30, [], null, null, [
69
+ "Giant rat",
70
+ "Dungeon rat",
71
+ "Crypt rat",
72
+ "Brine rat",
73
+ "Hell-Rat Behemoth",
74
+ "Giant crypt rat",
75
+ "Scurrius",
76
+ ], 7),
77
+ new Task_1.Task("Scorpions", 15, 30, [new Requirement_1.CombatLevelRequirement(7)], null, null, [
78
+ "King Scorpion",
79
+ "Poison Scorpion",
80
+ "Pit Scorpion",
81
+ "Scorpia",
82
+ "Lobstrosity",
83
+ "Reanimated scorpion",
84
+ "Scorpia's offspring",
85
+ "Scorpia's guardian",
86
+ ], 7),
87
+ new Task_1.Task("Skeletons", 15, 30, [new Requirement_1.CombatLevelRequirement(15)], null, null, [
88
+ "Skeleton mage",
89
+ "Skeletons in the Stronghold of Security and Ancient Cavern",
90
+ "Vet'ion",
91
+ "Skogre",
92
+ "Shayzien Crypts Skeletons",
93
+ "Skeleton fremennik",
94
+ "Calvar'ion",
95
+ ], 7),
96
+ new Task_1.Task("Sourhogs", 15, 25, [new Requirement_1.QuestRequirement("A Porcine of Interest")], null, null, [], 6),
97
+ new Task_1.Task("Spiders", 15, 30, [], null, null, [
98
+ "Giant spider",
99
+ "Shadow spider",
100
+ "Giant crypt spider",
101
+ "Sarachnis",
102
+ "Temple Spider",
103
+ "Venenatis",
104
+ "Spindel",
105
+ ], 6),
106
+ new Task_1.Task("Wolves", 15, 30, [new Requirement_1.CombatLevelRequirement(20)], null, null, ["Big Wolf", "Desert Wolf", "Ice wolf", "Jungle wolf", "White wolf"], 7),
107
+ new Task_1.Task("Zombies", 15, 30, [new Requirement_1.CombatLevelRequirement(10)], null, null, [
108
+ "Monkey Zombie",
109
+ "Undead chicken",
110
+ "Undead cow",
111
+ "Undead Druid",
112
+ "Undead one",
113
+ "Zombie rat",
114
+ "Zogre",
115
+ "Vorkath",
116
+ ], 7),
117
+ ];
@@ -0,0 +1,3 @@
1
+ import { Task } from "../../../model/slayer/Task";
2
+ declare const turealTasks: Task[];
3
+ export { turealTasks };
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.turealTasks = void 0;
4
+ const Requirement_1 = require("../../../model/Requirement");
5
+ const Task_1 = require("../../../model/slayer/Task");
6
+ const turealTasks = [
7
+ new Task_1.Task("Banshees", 15, 30, [new Requirement_1.SlayerLevelRequirement(15), new Requirement_1.CombatLevelRequirement(20)], null, null, ["Twisted Banshee"], 8, [], 0, ["Slayer Tower (CKS)"]),
8
+ new Task_1.Task("Bats", 15, 30, [new Requirement_1.CombatLevelRequirement(5)], null, null, ["Giant bat", "Albino bat", "Death wing"], 7, [], 0, ["Silvarea, North of Digsite"]),
9
+ new Task_1.Task("Bears", 10, 20, [new Requirement_1.CombatLevelRequirement(13)], null, null, [
10
+ "Grizzly bear cub",
11
+ "Bear cub",
12
+ "Grizzly bear",
13
+ "Reanimated bear",
14
+ "Callisto",
15
+ "Artio",
16
+ ], 7, [], 0, ["South-west of Legends' Guild (cannon)"]),
17
+ new Task_1.Task("Birds", 15, 30, [], null, null, [
18
+ "Chicken",
19
+ "Mounted terrorbird",
20
+ "Terrorbird",
21
+ "Rooster",
22
+ "Chompy bird",
23
+ "Seagull",
24
+ "Penguin",
25
+ "Duck",
26
+ "Duckling",
27
+ ], 6, [], 0, ["West of the Champions' Guild (cannon ducks)"]),
28
+ new Task_1.Task("Cave bugs", 10, 30, [new Requirement_1.SlayerLevelRequirement(7)], null, null, [], 8, [], 0, ["Dorgesh-Kaan South Dungeon (AJQ)"]),
29
+ new Task_1.Task("Cave crawlers", 15, 30, [new Requirement_1.SlayerLevelRequirement(10), new Requirement_1.CombatLevelRequirement(10)], null, null, [], 8, [], 0, ["Fremennik Slayer Dungeon (AJR)"]),
30
+ new Task_1.Task("Cave slime", 10, 20, [new Requirement_1.SlayerLevelRequirement(17), new Requirement_1.CombatLevelRequirement(15)], null, null, [], 8, [], 0, ["Dorgesh-Kaan South Dungeon (AJQ)"]),
31
+ new Task_1.Task("Cows", 15, 30, [new Requirement_1.CombatLevelRequirement(5)], null, null, ["Buffalo", "Cow calf", "Undead cow"], 8, [], 0, ["East of Lumbridge"]),
32
+ new Task_1.Task("Crawling Hands", 15, 30, [new Requirement_1.SlayerLevelRequirement(5), new Requirement_1.CombatLevelRequirement(20)], null, null, [], 8, [], 0, ["Slayer Tower (CKS)"]),
33
+ new Task_1.Task("Dogs", 15, 30, [new Requirement_1.CombatLevelRequirement(15)], null, null, ["Jackal", "Guard dog", "Wild dog", "Reanimated dog"], 7, [], 0, ["East of Sophanem (Pharaoh's sceptre - Jaleustrophos)"]),
34
+ new Task_1.Task("Dwarves", 10, 25, [new Requirement_1.CombatLevelRequirement(6)], null, null, ["Black Guard", "Chaos Dwarf", "Dwarf gang member"], 7, [], 0, ["White Wolf Tunnel pub"]),
35
+ new Task_1.Task("Ghosts", 15, 30, [new Requirement_1.CombatLevelRequirement(13)], null, null, ["Tortured soul", "Forgotten Soul", "Revenants", "Death wing"], 7, [], 0, ["Catacombs of Kourend"]),
36
+ new Task_1.Task("Goblins", 15, 30, [], null, null, [
37
+ "Cave goblin guards",
38
+ "Sergeant Strongstack",
39
+ "Sergeant Steelwill",
40
+ "Sergeant Grimspike",
41
+ ], 7, [], 0, ["East of Lumbridge"]),
42
+ new Task_1.Task("Icefiends", 15, 20, [new Requirement_1.CombatLevelRequirement(20)], null, null, [], 8, [], 0, ["Ice Mountain"]),
43
+ new Task_1.Task("Kalphite", 15, 30, [new Requirement_1.CombatLevelRequirement(15)], null, null, [
44
+ "Kalphite worker",
45
+ "Kalphite soldier",
46
+ "Kalphite guardian",
47
+ "Kalphite Queen",
48
+ ], 6, [], 0, ["Kalphite Cave"]),
49
+ new Task_1.Task("Lizards", 15, 30, [new Requirement_1.SlayerLevelRequirement(22)], null, null, ["Small Lizard", "Desert Lizard", "Sulphur Lizard", "Grimy Lizard"], 8, [], 0, ["North of Nardah Fairy Ring (DLQ)", "Karuulm Slayer Dungeon"]),
50
+ new Task_1.Task("Minotaurs", 10, 20, [new Requirement_1.CombatLevelRequirement(7)], null, null, [], 7, [], 0, ["Stronghold of Security"]),
51
+ new Task_1.Task("Monkeys", 15, 30, [], null, null, [
52
+ "Karamjan Monkey",
53
+ "Monkey Guard",
54
+ "Monkey Archer",
55
+ "Monkey Zombie",
56
+ "Demonic Gorilla",
57
+ "Tortured Gorilla",
58
+ "Maniacal Monkey",
59
+ ], 6, [], 0, [
60
+ "Ardougne Zoo",
61
+ "Karamja north-west of glider",
62
+ "Kruk's Dungeon",
63
+ "North of Cairn Isle",
64
+ ]),
65
+ new Task_1.Task("Rats", 15, 30, [], null, null, [
66
+ "Giant rat",
67
+ "Dungeon rat",
68
+ "Crypt rat",
69
+ "Brine rat",
70
+ "Hell-Rat Behemoth",
71
+ "Giant crypt rat",
72
+ "Scurrius",
73
+ ], 7, [], 0, ["Ferox Enclave"]),
74
+ new Task_1.Task("Scorpions", 15, 30, [new Requirement_1.CombatLevelRequirement(7)], null, null, [
75
+ "King Scorpion",
76
+ "Poison Scorpion",
77
+ "Pit Scorpion",
78
+ "Scorpia",
79
+ "Lobstrosity",
80
+ "Reanimated scorpion",
81
+ "Scorpia's offspring",
82
+ "Scorpia's guardian",
83
+ ], 7, [], 0, ["Al Kharid Mine", "Dwarven Mine"]),
84
+ new Task_1.Task("Skeletons", 15, 30, [new Requirement_1.CombatLevelRequirement(15)], null, null, [
85
+ "Skeleton mage",
86
+ "Skeletons in the Stronghold of Security and Ancient Cavern",
87
+ "Vet'ion",
88
+ "Skogre",
89
+ "Shayzien Crypts Skeletons",
90
+ "Skeleton fremennik",
91
+ "Calvar'ion",
92
+ ], 7, [], 0, ["Digsite Dungeon", "Catacombs of Kourend", "Edgeville Dungeon"]),
93
+ new Task_1.Task("Spiders", 15, 30, [], null, null, [
94
+ "Araxxor",
95
+ "Araxyte",
96
+ "Giant spider",
97
+ "Shadow spider",
98
+ "Giant crypt spider",
99
+ "Sarachnis",
100
+ "Temple Spider",
101
+ "Venenatis",
102
+ "Spindel",
103
+ ], 6, [], 0, ["Outside H.A.M. Hideout", "Clock Tower dungeon"]),
104
+ new Task_1.Task("Wolves", 15, 30, [new Requirement_1.CombatLevelRequirement(20)], null, null, [
105
+ "Big Wolf",
106
+ "Desert Wolf",
107
+ "Dire Wolf",
108
+ "Ice wolf",
109
+ "Jungle wolf",
110
+ "White wolf",
111
+ ], 7, [], 0, ["White Wolf Mountain", "Stronghold of Security"]),
112
+ new Task_1.Task("Zombies", 15, 30, [new Requirement_1.CombatLevelRequirement(10)], null, null, [
113
+ "Monkey Zombie",
114
+ "Undead chicken",
115
+ "Undead cow",
116
+ "Undead Druid",
117
+ "Undead one",
118
+ "Zombie rat",
119
+ "Zogre",
120
+ "Armoured zombie",
121
+ "Zombie pirate",
122
+ "Vorkath",
123
+ ], 7, [], 0, ["Alice's Farm West of Ectofuntus"]),
124
+ ];
125
+ exports.turealTasks = turealTasks;
@@ -0,0 +1,3 @@
1
+ import { Task } from "../../../model/slayer/Task";
2
+ declare const VannakaTasks: Task[];
3
+ export { VannakaTasks };
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VannakaTasks = void 0;
4
+ const Requirement_1 = require("../../../model/Requirement");
5
+ const Task_1 = require("../../../model/slayer/Task");
6
+ const VannakaTasks = [
7
+ new Task_1.Task("Aberrant spectres", 40, 90, [
8
+ new Requirement_1.SlayerLevelRequirement(60),
9
+ new Requirement_1.CombatLevelRequirement(65),
10
+ new Requirement_1.QuestRequirement("Priest in Peril"),
11
+ ], 200, 250, ["Deviant spectres"], 8),
12
+ new Task_1.Task("Abyssal demons", 40, 90, [
13
+ new Requirement_1.SlayerLevelRequirement(85),
14
+ new Requirement_1.CombatLevelRequirement(85),
15
+ new Requirement_1.QuestRequirement("Priest in Peril"),
16
+ new Requirement_1.QuestRequirement("Fairytale II - Cure a Queen"),
17
+ ], 200, 250, ["Abyssal Sire"], 5),
18
+ new Task_1.Task("Ankou", 25, 35, [new Requirement_1.CombatLevelRequirement(40)], 91, 150, ["Dark Ankou"], 7),
19
+ new Task_1.Task("Basilisks", 40, 90, [
20
+ new Requirement_1.SlayerLevelRequirement(40),
21
+ new Requirement_1.CombatLevelRequirement(40),
22
+ new Requirement_1.CombatLevelRequirement(20), // Defense requirement
23
+ ], 200, 250, ["Basilisk Knight"], 8),
24
+ new Task_1.Task("Bloodveld", 40, 90, [
25
+ new Requirement_1.SlayerLevelRequirement(50),
26
+ new Requirement_1.CombatLevelRequirement(50),
27
+ new Requirement_1.QuestRequirement("Priest in Peril"),
28
+ ], 200, 250, ["Mutated Bloodveld"], 8),
29
+ new Task_1.Task("Blue dragons", 40, 90, [
30
+ new Requirement_1.CombatLevelRequirement(65),
31
+ new Requirement_1.QuestRequirement("Dragon Slayer I (partial completion)"),
32
+ ], null, null, ["Baby blue dragons", "Brutal blue dragons", "Vorkath"], 7),
33
+ new Task_1.Task("Brine rats", 40, 90, [
34
+ new Requirement_1.SlayerLevelRequirement(47),
35
+ new Requirement_1.CombatLevelRequirement(45),
36
+ new Requirement_1.QuestRequirement("Olaf's Quest (partial completion)"),
37
+ ], null, null, [], 7),
38
+ new Task_1.Task("Cockatrice", 40, 90, [
39
+ new Requirement_1.SlayerLevelRequirement(25),
40
+ new Requirement_1.CombatLevelRequirement(25),
41
+ new Requirement_1.CombatLevelRequirement(20), // Defense requirement
42
+ ], null, null, ["Moonlight Cockatrice"], 8),
43
+ new Task_1.Task("Crabs", 40, 90, [new Requirement_1.SlayerLevelRequirement(1)], null, null, [
44
+ "Ammonite crabs",
45
+ "Frost crabs",
46
+ "Rock crabs",
47
+ "Sand crabs",
48
+ "Swamp crabs",
49
+ ], 8),
50
+ new Task_1.Task("Crocodiles", 40, 90, [new Requirement_1.CombatLevelRequirement(50)], null, null, [], 6),
51
+ new Task_1.Task("Dagannoth", 40, 90, [
52
+ new Requirement_1.CombatLevelRequirement(75),
53
+ new Requirement_1.QuestRequirement("Horror from the Deep"),
54
+ ], null, null, ["Dagannoth spawn", "Dagannoth fledgeling", "Dagannoth Kings"], 7),
55
+ new Task_1.Task("Dust devils", 40, 90, [
56
+ new Requirement_1.SlayerLevelRequirement(65),
57
+ new Requirement_1.CombatLevelRequirement(70),
58
+ new Requirement_1.QuestRequirement("Desert Treasure I (partial completion)"),
59
+ ], 200, 250, [], 8),
60
+ new Task_1.Task("Elves", 30, 70, [
61
+ new Requirement_1.CombatLevelRequirement(70),
62
+ new Requirement_1.QuestRequirement("Regicide (partial completion)"),
63
+ ], null, null, ["Elf warrior", "Mourner (Mourner Headquarters)"], 7),
64
+ new Task_1.Task("Fever spiders", 30, 90, [
65
+ new Requirement_1.SlayerLevelRequirement(42),
66
+ new Requirement_1.CombatLevelRequirement(40),
67
+ new Requirement_1.QuestRequirement("Rum Deal (partial completion)"),
68
+ ], null, null, [], 7),
69
+ new Task_1.Task("Fire giants", 40, 90, [new Requirement_1.CombatLevelRequirement(65)], null, null, [], 7),
70
+ new Task_1.Task("Gargoyles", 40, 90, [
71
+ new Requirement_1.SlayerLevelRequirement(75),
72
+ new Requirement_1.CombatLevelRequirement(80),
73
+ new Requirement_1.QuestRequirement("Priest in Peril"),
74
+ ], 200, 250, ["Grotesque Guardians"], 5),
75
+ new Task_1.Task("Ghouls", 10, 40, [new Requirement_1.CombatLevelRequirement(25), new Requirement_1.QuestRequirement("Priest in Peril")], null, null, [], 7),
76
+ // Add more tasks here following the same structure...
77
+ ];
78
+ exports.VannakaTasks = VannakaTasks;
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "osrs-tools",
3
3
  "description": "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@hawkmail.newpaltz.edu or jamesmcerniglia@gmail.com.",
4
- "version": "0.2.0",
4
+ "version": "0.2.2",
5
5
  "license": "MIT",
6
- "main": "index.js",
6
+ "main": "./dist/index.js",
7
+ "files": [
8
+ "dist/**"
9
+ ],
7
10
  "engines": {
8
- "node": ">=14.0.0"
11
+ "node": ">=18"
9
12
  },
10
13
  "scripts": {
14
+ "lint": "npx eslint --fix .",
11
15
  "test": "jest --coverage",
12
16
  "scrapeQuestList": "ts-node tools/ScrapeQuestData.ts",
13
17
  "scrapeSlayerData": "ts-node tools/ScrapeSlayerData.ts",
@@ -16,40 +20,33 @@
16
20
  "build": "tsc -p .",
17
21
  "dev": "tsc --watch -p .",
18
22
  "test:mocha": "mocha ./src/lib/tests/unit/Quest.test.js --timeout 30000 --exit",
19
- "prepublishOnly": "npm test",
23
+ "backupprepublishOnly": "npm run lint && npm run test && npm run build",
24
+ "prepublishOnly": " npm run build && npm test",
20
25
  "postpublish": "git push && git push --tags",
21
26
  "preversion": "gulp version && npm test",
22
27
  "version": "npm run build && git add dist && git add package.json"
23
28
  },
24
29
  "devDependencies": {
25
- "@babel/core": "^7.25.7",
26
- "@babel/preset-env": "^7.25.7",
27
- "@babel/preset-typescript": "^7.25.7",
28
- "@types/chai": "^5.0.1",
29
- "@types/jest": "^26.0.24",
30
+ "@tsconfig/recommended": "^1.0.7",
31
+ "@types/jest": "^29.5.13",
32
+ "@typescript-eslint/eslint-plugin": "^8.6.0",
33
+ "@typescript-eslint/parser": "^8.6.0",
34
+ "eslint": "^9.11.0",
35
+ "eslint-config-prettier": "^9.1.0",
36
+ "eslint-plugin-prettier": "^5.2.1",
37
+ "eslint-plugin-simple-import-sort": "^12.1.1",
38
+ "eslint-plugin-sort-destructure-keys": "^2.0.0",
39
+ "eslint-plugin-sort-keys-fix": "^1.1.2",
30
40
  "jest": "^29.7.0",
31
- "mocha": "^11.1.0",
32
- "ts-jest": "^29.2.6",
33
- "ts-node": "^10.9.2",
34
- "typescript": "^4.9.5"
41
+ "prettier": "^3.3.3",
42
+ "ts-jest": "^29.2.5",
43
+ "typescript": "^5.6.2"
35
44
  },
36
45
  "dependencies": {
37
- "axios": "^1.7.7",
38
- "babel": "^6.23.0",
39
- "cheerio": "^1.0.0",
40
- "jest-circus": "^29.7.0",
41
- "node-fetch": "^3.3.2",
42
- "travis": "^0.1.1"
43
46
  },
44
47
  "publishConfig": {
45
48
  "registryBackup": "https://npm.pkg.github.com/jamescer"
46
49
  },
47
- "files": [
48
- "src/**"
49
- ],
50
- "bin": {
51
- "osrs-tools": "lib/cli.js"
52
- },
53
50
  "repository": {
54
51
  "type": "git",
55
52
  "url": "git+https://github.com/jamescer/osrs-tools.git"
package/src/index.ts DELETED
@@ -1,11 +0,0 @@
1
- // import { QuestTool } from './questTool.js';
2
- import { QuestTool } from './model/quest/QuestTool';
3
- import { SlayerTool } from './model/slayer/SlayerTool';
4
- import { OsrsAccount } from './model/account/OsrsAccount';
5
-
6
- export default {
7
- QuestTool,
8
- OsrsAccount,
9
- SlayerTool
10
- };
11
- // export default
@@ -1,173 +0,0 @@
1
- // Base interface for all types of requirements
2
- interface Requirement {
3
- description: string;
4
- isMet(): boolean;
5
- }
6
-
7
- // TODO: Add a requirement type for all "levels" (combat, slayer, farming, crafting etc.)
8
- class LevelRequirement implements Requirement {
9
- type: RequirementType = RequirementType.Level;
10
- skillName: string;
11
- level: number;
12
- boostable: boolean = false; // Indicates if the level can be boosted
13
-
14
- constructor(skillName: string, level: number, boostable: boolean = false) {
15
- this.boostable = boostable;
16
- this.skillName = skillName;
17
- this.level = level;
18
- }
19
-
20
- get description(): string {
21
- return `Level ${this.level}`;
22
- }
23
-
24
- isMet(): boolean {
25
- // Replace with actual logic to check the player's level
26
- return false; // TODO
27
- }
28
- }
29
-
30
- // Enum for requirement types
31
- enum RequirementType {
32
- SlayerLevel = 'SlayerLevel',
33
- Level = 'Level',
34
- CombatLevel = 'CombatLevel',
35
- Quest = 'Quest',
36
- Item = 'Item',
37
- Location = 'Location',
38
- SlayerUnlock = 'SlayerUnlock',
39
- }
40
-
41
- // Slayer Unlock requirement
42
- class SlayerUnlockRequirement implements Requirement {
43
- type: RequirementType = RequirementType.SlayerUnlock;
44
- name: string;
45
-
46
- constructor(name: string) {
47
- this.name = name;
48
- }
49
- get description(): string {
50
- return `Slayer unlock: ${this.name}`;
51
- }
52
-
53
- isMet(): boolean {
54
- // Replace with actual logic to check the player's Slayer level
55
- return false; // TODO
56
- }
57
- }
58
-
59
- // Slayer level requirement
60
- class SlayerLevelRequirement implements Requirement {
61
- type: RequirementType = RequirementType.SlayerLevel;
62
- level: number;
63
-
64
- constructor(level: number) {
65
- this.level = level;
66
- }
67
-
68
- get description(): string {
69
- return `Slayer level ${this.level}`;
70
- }
71
-
72
- isMet(): boolean {
73
- // Replace with actual logic to check the player's Slayer level
74
- return false; // TODO
75
- }
76
- }
77
-
78
- // Combat level requirement
79
- class CombatLevelRequirement implements Requirement {
80
- type: RequirementType = RequirementType.CombatLevel;
81
- level: number;
82
-
83
- constructor(level: number) {
84
- this.level = level;
85
- }
86
-
87
- get description(): string {
88
- return `Combat level ${this.level}`;
89
- }
90
-
91
- isMet(): boolean {
92
- // Replace with actual logic to check the player's Combat level
93
- return false; // TODO
94
- }
95
- }
96
-
97
- // Quest requirement
98
- class QuestRequirement implements Requirement {
99
- type: RequirementType = RequirementType.Quest;
100
- questName: string;
101
-
102
- constructor(questName: string) {
103
- this.questName = questName;
104
- }
105
-
106
- get description(): string {
107
- return `Completed quest: ${this.questName}`;
108
- }
109
-
110
- isMet(): boolean {
111
- // Replace with actual logic to check if the quest is completed
112
- return false; // TODO
113
- }
114
- }
115
-
116
- // Item requirement
117
- class ItemRequirement implements Requirement {
118
- type: RequirementType = RequirementType.Item;
119
- itemName: string;
120
-
121
- constructor(itemName: string) {
122
- this.itemName = itemName;
123
- }
124
-
125
- get description(): string {
126
- return `Has item: ${this.itemName}`;
127
- }
128
-
129
- isMet(): boolean {
130
- // Replace with actual logic to check if the player has the item
131
- return false; // TODO
132
- }
133
- }
134
-
135
- // Location requirement
136
- class LocationRequirement implements Requirement {
137
- type: RequirementType = RequirementType.Location;
138
- locationName: string;
139
-
140
- constructor(locationName: string) {
141
- this.locationName = locationName;
142
- }
143
-
144
- get description(): string {
145
- return `Access to location: ${this.locationName}`;
146
- }
147
-
148
- isMet(): boolean {
149
- // Replace with actual logic to check if the player is in the location
150
- return false; // TODO
151
- }
152
- }
153
-
154
- // Example usage: Array of requirements for a monster
155
- const monsterRequirements: Requirement[] = [
156
- new SlayerLevelRequirement(44),
157
- new CombatLevelRequirement(5),
158
- new QuestRequirement('Dragon Slayer'),
159
- new ItemRequirement('Anti-dragon shield'),
160
- new LocationRequirement('Taverley Dungeon'),
161
- ];
162
-
163
- export {
164
- Requirement,
165
- RequirementType,
166
- SlayerLevelRequirement,
167
- CombatLevelRequirement,
168
- QuestRequirement,
169
- ItemRequirement,
170
- LocationRequirement,
171
- SlayerUnlockRequirement,
172
- LevelRequirement,
173
- };
@@ -1,82 +0,0 @@
1
- interface OsrsAccountObject {
2
- name: string;
3
- main: {
4
- combatLevel: number;
5
- questPoints: number;
6
- skills: {
7
- [skillName: string]: {
8
- level: number;
9
- };
10
- };
11
- };
12
- }
13
-
14
- class OsrsAccount {
15
- private osrsAccount: OsrsAccountObject | null;
16
-
17
- constructor(accountObject: OsrsAccountObject | null) {
18
- this.osrsAccount = accountObject ? accountObject : null;
19
- this.setQuestPoints(0);
20
- this.setCombatLevel();
21
- }
22
-
23
- getName(): string | undefined {
24
- return this.osrsAccount?.name;
25
- }
26
-
27
- toString(): string {
28
- return (
29
- (this.osrsAccount?.name ?? "") +
30
- ": \nCombat Level: " +
31
- (this.osrsAccount?.main.combatLevel ?? "") +
32
- "\nQuestPoints: " +
33
- this.getQuestPoints()
34
- );
35
- }
36
-
37
- getSkills(): { [skillName: string]: { level: number } } | undefined {
38
- return this.osrsAccount?.main.skills;
39
- }
40
-
41
- getSkill(skillName: string): { level: number } | undefined {
42
- return this.osrsAccount?.main.skills[skillName.toLowerCase()];
43
- }
44
-
45
- getQuestPoints(): number | undefined {
46
- return this.osrsAccount?.main.questPoints;
47
- }
48
-
49
- setQuestPoints(x: number): void {
50
- if (x >= 0 && this.osrsAccount) {
51
- this.osrsAccount.main.questPoints = x;
52
- }
53
- }
54
-
55
- getCombatLevel(): number | undefined {
56
- return this.osrsAccount?.main.combatLevel;
57
- }
58
-
59
- setCombatLevel(): void {
60
- if (this.osrsAccount) {
61
- const attklvl = this.osrsAccount.main.skills.attack?.level ?? 1;
62
- const strlvl = this.osrsAccount.main.skills.strength?.level ?? 1;
63
- const deflvl = this.osrsAccount.main.skills.defence?.level ?? 1;
64
- const rangedlvl = this.osrsAccount.main.skills.ranged?.level ?? 1;
65
- const magiclvl = this.osrsAccount.main.skills.magic?.level ?? 1;
66
- const praylvl = this.osrsAccount.main.skills.prayer?.level ?? 1;
67
- const hplvl = this.osrsAccount.main.skills.hitpoints?.level ?? 10;
68
- const x = [
69
- 0.325 * (attklvl + strlvl),
70
- 0.325 * ((3 * rangedlvl) / 2),
71
- 0.325 * ((3 * magiclvl) / 2),
72
- ];
73
- const cbMax = Math.max(...x);
74
-
75
- this.osrsAccount.main.combatLevel =
76
- 0.25 * (deflvl + hplvl + praylvl / 2) + cbMax
77
- ;
78
- }
79
- }
80
- }
81
-
82
- export { OsrsAccount };