osrs-tools 2.3.5 → 2.4.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.
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Miniquests
3
+ * Miniquests are groups of objectives that, unlike quests, have no icon on the world map and offer no quest points upon completion. There will also be no indication of starting nor completing a miniquest, other than what is written in the corresponding Quest List journal entry. There are a total of 19 miniquests, which are all members-only.
4
+ * Quests are listed on the wiki at: https://oldschool.runescape.wiki/w/Quests/List
5
+ */
6
+ export const MiniQuestList = [
7
+ "Alfred Grimhand's Barcrawl",
8
+ "Barbarian Training",
9
+ "Bear Your Soul",
10
+ "Curse of the Empty Lord",
11
+ "Daddy's Home",
12
+ "The Enchanted Key",
13
+ "Enter the Abyss",
14
+ "Family Pest",
15
+ "The Frozen Door",
16
+ "The General's Shadow",
17
+ "His Faithful Servants",
18
+ "Hopespear's Will",
19
+ "In Search of Knowledge",
20
+ "Into the Tombs",
21
+ "Lair of Tarn Razorlor",
22
+ "Mage Arena I",
23
+ "Mage Arena II",
24
+ "Skippy and the Mogres",
25
+ "Vale Totems",
26
+ ];
27
+ /**
28
+ * Miniquests
29
+ Miniquests are groups of objectives that, unlike quests, have no icon on the world map and offer no quest points upon completion. There will also be no indication of starting nor completing a miniquest, other than what is written in the corresponding Quest List journal entry. There are a total of 19 miniquests, which are all members-only.
30
+
31
+
32
+ jimbo jango
33
+
34
+ Name Difficulty Length Series Release date
35
+ Alfred Grimhand's Barcrawl Novice Medium N/A 25 March 2002
36
+ Barbarian Training Experienced Medium N/A 3 July 2007
37
+ Bear Your Soul Intermediate Short Great Kourend 19 May 2016
38
+ Curse of the Empty Lord Experienced Medium Mahjarrat, #8 26 July 2005
39
+ Daddy's Home Novice Short N/A 26 August 2020
40
+ The Enchanted Key Intermediate Medium N/A 22 November 2005
41
+ Enter the Abyss Intermediate Very Short Order of Wizards, #2 13 June 2005
42
+ Family Pest Intermediate Short N/A 1 September 2016
43
+ The Frozen Door Master Short N/A 16 December 2021
44
+ The General's Shadow Experienced Medium Mahjarrat, #9 12 February 2007
45
+ His Faithful Servants Experienced Very Short Mahjarrat, #12 14 June 2023
46
+ Hopespear's Will Master Short N/A 9 February 2022
47
+ In Search of Knowledge Experienced Medium N/A 4 July 2019
48
+ Into the Tombs Master Medium Kharidian, #5 24 August 2022
49
+ Lair of Tarn Razorlor Experienced Medium N/A 22 January 2007
50
+ Mage Arena I Experienced Short N/A 22 September 2003
51
+ Mage Arena II Master Medium N/A 23 November 2017
52
+ Skippy and the Mogres Novice Very Short N/A 24 October 2005
53
+ Vale Totems Novice Very Short N/A 23 July 2025
54
+ */
@@ -1,99 +1,191 @@
1
- // List of all old school runescape quests
1
+ /**
2
+ * List of all Old School RuneScape quests, in the format they are commonly referred to in-game and on the OSRS Wiki.
3
+ * This is used by QuestTool to dynamically load quest data based on quest names.
4
+ * The list should be kept up-to-date with the OSRS Wiki's list of quests, and should match the names used in the wiki URLs.
5
+ * For example, "Dragon Slayer II" corresponds to the wiki page https://oldschool.runescape.wiki/w/Dragon_Slayer_II
6
+ * and should be listed here as "Dragon Slayer II".
7
+ * This list can be generated by scraping the OSRS Wiki or maintained manually.
8
+ * Quests are listed on the wiki at: https://oldschool.runescape.wiki/w/Quests/List
9
+ */
2
10
  export const QuestList = [
3
- 'A Kingdom Divided',
4
- 'A Night at the Theatre',
5
- 'A Porcine of Interest',
11
+ "A Kingdom Divided",
12
+ "A Night at the Theatre",
13
+ "A Porcine of Interest",
6
14
  "A Soul's Bane",
7
- 'A Tail of Two Cats',
8
- 'A Taste of Hope',
9
- "Alfred Grimhand's Barcrawl",
10
- 'Animal Magnetism',
11
- 'Another Slice of H.A.M.',
12
- 'At First Light',
13
- 'Ascent of Arceuus',
14
- 'Below Ice Mountain',
15
- 'Beneath Cursed Sands',
16
- 'Between a Rock...',
17
- 'Big Chompy Bird Hunting',
18
- 'Biohazard',
15
+ "A Tail of Two Cats",
16
+ "A Taste of Hope",
17
+ "A Theatre of Blood",
18
+ "Animal Magnetism",
19
+ "Another Slice of H.A.M.",
20
+ "At First Light",
21
+ "Below Ice Mountain",
22
+ "Beneath Cursed Sands",
23
+ "Between a Rock...",
24
+ "Big Chompy Bird Hunting",
25
+ "Biohazard",
19
26
  "Black Knights' Fortress",
20
- 'Bone Voyage',
21
- 'Cabin Fever',
22
- 'Children of the Sun',
23
- 'Client of Kourend',
24
- 'Clock Tower',
25
- 'Cold War',
26
- 'Contact!',
27
+ "Bone Voyage",
28
+ "Cabin Fever",
29
+ "Children of the Sun",
30
+ "Client of Kourend",
31
+ "Clock Tower",
32
+ "Cold War",
33
+ "Contact!",
27
34
  "Cook's Assistant",
28
- 'Creature of Fenkenstrain',
29
- 'Curse of the Empty Lord',
30
- "Daddy's Home",
31
- 'Darkness of Hallowvale',
32
- 'Death on the Isle',
33
- 'Death Plateau',
34
- 'Death to the Dorgeshuun',
35
- 'Defender of Varrock',
36
- 'Demon Slayer',
37
- 'Desert Treasure I',
38
- 'Desert Treasure II - The Fallen Empire',
39
- 'Devious Minds',
35
+ "Creature of Fenkenstrain",
36
+ "Current Affairs",
37
+ "Darkness of Hallowvale",
38
+ "Death on the Isle",
39
+ "Death Plateau",
40
+ "Death to the Dorgeshuun",
41
+ "Defender of Varrock",
42
+ "Demon Slayer",
43
+ "Desert Treasure I",
44
+ "Desert Treasure II - The Fallen Empire",
45
+ "Devious Minds",
40
46
  "Doric's Quest",
41
- 'Dragon Slayer I',
42
- 'Dragon Slayer II',
43
- 'Dream Mentor',
44
- 'Druidic Ritual',
45
- 'Dwarf Cannon',
46
- "Eadgar's Ruse",
47
+ "Dragon Slayer I",
48
+ "Dragon Slayer II",
49
+ "Dream Mentor",
50
+ "Druidic Ritual",
51
+ "Dwarf Cannon",
47
52
  "Eagles' Peak",
48
- 'Elemental Workshop I',
49
- 'Elemental Workshop II',
53
+ "Eadgar's Ruse",
54
+ "Elemental Workshop I",
55
+ "Elemental Workshop II",
50
56
  "Enakhra's Lament",
51
- 'Enlightened Journey',
52
- 'Enter the Abyss',
53
- 'Ernest the Chicken',
54
- 'Ethically Acquired Antiquities',
55
- 'Fairytale I - Growing Pains',
56
- 'Fairytale II - Cure a Queen',
57
- 'Family Crest',
58
- 'Family Pest',
59
- 'Fight Arena',
60
- 'Fishing Contest',
61
- 'Forgettable Tale...',
62
- 'The Fremennik Isles',
63
- 'The Fremennik Trials',
64
- 'The Garden of Death',
65
- 'The Giant Dwarf',
66
- 'The Golem',
67
- 'The Grand Tree',
68
- 'The Great Brain Robbery',
69
- 'The Hand in the Sand',
70
- 'The Heart of Darkness',
71
- 'The Lost Tribe',
72
- 'The Path of Glouphrie',
73
- 'The Queen of Thieves',
74
- 'The Restless Ghost',
75
- 'The Ribbiting Tale of a Lily Pad Labour Dispute',
76
- 'The Slug Menace',
77
- 'The Tale of the Righteous',
78
- 'The Temple of Ikov',
79
- 'The Tourist Trap',
80
- 'The Underground Pass',
81
- 'Tower of Life',
82
- 'Tree Gnome Village',
83
- 'Troll Romance',
84
- 'Troll Stronghold',
57
+ "Enlightened Journey",
58
+ "Ernest the Chicken",
59
+ "Ethically Acquired Antiquities",
60
+ "Fairytale I - Growing Pains",
61
+ "Fairytale II - Cure a Queen",
62
+ "Family Crest",
63
+ "Fight Arena",
64
+ "Fishing Contest",
65
+ "Forgettable Tale...",
66
+ "Garden of Tranquillity",
67
+ "Gertrude's Cat",
68
+ "Getting Ahead",
69
+ "Ghosts Ahoy",
70
+ "Goblin Diplomacy",
71
+ "Grim Tales",
72
+ "Hazeel Cult",
73
+ "Haunted Mine",
74
+ "Heroes' Quest",
75
+ "Holy Grail",
76
+ "Horror from the Deep",
77
+ "Icthlarin's Little Helper",
78
+ "Imp Catcher",
79
+ "In Aid of the Myreque",
80
+ "In Search of the Myreque",
81
+ "Jungle Potion",
82
+ "King's Ransom",
83
+ "Land of the Goblins",
84
+ "Learning the Ropes",
85
+ "Legends' Quest",
86
+ "Lost City",
87
+ "Lunar Diplomacy",
88
+ "Making Friends with My Arm",
89
+ "Making History",
90
+ "Meat and Greet",
91
+ "Merlin's Crystal",
92
+ "Misthalin Mystery",
93
+ "Monk's Friend",
94
+ "Monkey Madness I",
95
+ "Monkey Madness II",
96
+ "Mountain Daughter",
97
+ "Mourning's End Part I",
98
+ "Mourning's End Part II",
99
+ "Murder Mystery",
100
+ "My Arm's Big Adventure",
101
+ "Nature Spirit",
102
+ "Observatory Quest",
103
+ "Olaf's Quest",
104
+ "One Small Favour",
105
+ "Pandemonium",
106
+ "Perilous Moons",
107
+ "Pirate's Treasure",
108
+ "Plague City",
109
+ "Priest in Peril",
110
+ "Prince Ali Rescue",
111
+ "Prying Times",
112
+ "Rag and Bone Man I",
113
+ "Rag and Bone Man II",
114
+ "Ratcatchers",
115
+ "Recipe for Disaster",
116
+ "Regicide",
117
+ "Romeo & Juliet",
118
+ "Roving Elves",
119
+ "Royal Trouble",
120
+ "Rum Deal",
121
+ "Rune Mysteries",
122
+ "Scorpion Catcher",
123
+ "Scrambled!",
124
+ "Sea Slug",
125
+ "Secrets of the North",
126
+ "Shadow of the Storm",
127
+ "Shades of Mort'ton",
128
+ "Sheep Herder",
129
+ "Sheep Shearer",
130
+ "Shield of Arrav",
131
+ "Shilo Village",
132
+ "Sins of the Father",
133
+ "Sleeping Giants",
134
+ "Song of the Elves",
135
+ "Spirits of the Elid",
136
+ "Swan Song",
137
+ "Tai Bwo Wannai Trio",
138
+ "Tale of the Righteous",
139
+ "Tears of Guthix",
140
+ "Temple of Ikov",
141
+ "Temple of the Eye",
142
+ "The Ascent of Arceuus",
143
+ "The Corsair Curse",
144
+ "The Curse of Arrav",
145
+ "The Depths of Despair",
146
+ "The Dig Site",
147
+ "The Eyes of Glouphrie",
148
+ "The Feud",
149
+ "The Final Dawn",
150
+ "The Forsaken Tower",
151
+ "The Fremennik Exiles",
152
+ "The Fremennik Isles",
153
+ "The Fremennik Trials",
154
+ "The Garden of Death",
155
+ "The Giant Dwarf",
156
+ "The Golem",
157
+ "The Grand Tree",
158
+ "The Great Brain Robbery",
159
+ "The Hand in the Sand",
160
+ "The Heart of Darkness",
161
+ "The Ides of Milk",
162
+ "The Knight's Sword",
163
+ "The Lost Tribe",
164
+ "The Path of Glouphrie",
165
+ "The Queen of Thieves",
166
+ "The Restless Ghost",
167
+ "The Ribbiting Tale of a Lily Pad Labour Dispute",
168
+ "The Slug Menace",
169
+ "The Tale of the Righteous",
170
+ "The Temple of Ikov",
171
+ "The Tourist Trap",
172
+ "Throne of Miscellania",
173
+ "Tower of Life",
174
+ "Tree Gnome Village",
175
+ "Tribal Totem",
176
+ "Troll Romance",
177
+ "Troll Stronghold",
178
+ "Troubled Tortugans",
85
179
  "Twilight's Promise",
86
- 'Vampyre Slayer',
87
- 'Wanted!',
88
- 'Watchtower',
89
- 'Waterfall Quest',
90
- 'What Lies Below',
91
- 'While Guthix Sleeps',
180
+ "Underground Pass",
181
+ "Vampyre Slayer",
182
+ "Wanted!",
183
+ "Watchtower",
184
+ "Waterfall Quest",
185
+ "What Lies Below",
186
+ "While Guthix Sleeps",
92
187
  "Witch's House",
93
188
  "Witch's Potion",
94
- 'X Marks the Spot',
95
- 'Zogre Flesh Eaters',
96
- 'The Final Dawn',
97
- 'Shadows of Custodia',
98
- 'Scrambled!',
189
+ "X Marks the Spot",
190
+ "Zogre Flesh Eaters",
99
191
  ];
@@ -1,5 +1,6 @@
1
1
  import { Cache } from "../../utils/cache";
2
2
  import { RequirementType } from "../Requirement";
3
+ import { QuestList } from "./QuestList";
3
4
  import AKingdomDivided from "./all/AKingdomDivided";
4
5
  /**
5
6
  * OSRS Quest utility tool
@@ -75,6 +76,12 @@ class QuestTool {
75
76
  }
76
77
  return true;
77
78
  }
79
+ static getAllQuests() {
80
+ return QuestList.map((name) => QuestTool.getQuestByName(name)).filter((q) => q !== undefined);
81
+ }
82
+ static getAllMiniQuests() {
83
+ return QuestList.map((name) => QuestTool.getQuestByName(name)).filter((q) => q !== undefined && q.miniquest);
84
+ }
78
85
  /**
79
86
  * Static utility to get a Quest instance by its name.
80
87
  * This assumes all quests are exported as default from their respective files in quest/all/.
@@ -1,30 +1,29 @@
1
- import { SlayerBuy } from './SlayerReward';
1
+ import { SlayerBuy } from "./SlayerReward";
2
2
  const SlayerBuys = [
3
3
  {
4
- item: 'Slayer ring',
5
- notes: 'An equippable ring that provides all the functions of an Enchanted gem, and provides 8 charges for teleporting to useful Slayer sites.',
4
+ item: "Slayer ring",
5
+ notes: "An equippable ring that provides all the functions of an Enchanted gem, and provides 8 charges for teleporting to useful Slayer sites.",
6
6
  priceSoldAt: 75,
7
7
  },
8
8
  {
9
- item: 'Broad bolts (x250)',
10
- notes: 'Bolts that can damage Turoths and Kurask. Level 55 Slayer and 61 Ranged, alongside a suitable bow, are required to fire these bolts.',
9
+ item: "Broad bolts (x250)",
10
+ notes: "Bolts that can damage Turoths and Kurask. Level 55 Slayer and 61 Ranged, alongside a suitable bow, are required to fire these bolts.",
11
11
  priceSoldAt: 35,
12
12
  },
13
13
  {
14
- item: 'Broad arrows (x250)',
15
- notes: 'Arrows that can damage Turoths and Kurask. Level 55 Slayer and 50 Ranged, alongside a suitable bow, are required to fire these arrows.',
14
+ item: "Broad arrows (x250)",
15
+ notes: "Arrows that can damage Turoths and Kurask. Level 55 Slayer and 50 Ranged, alongside a suitable bow, are required to fire these arrows.",
16
16
  priceSoldAt: 35,
17
17
  },
18
18
  {
19
- item: 'Herb sack',
20
- notes: 'Stores up to 30 of each type of grimy herb (for a total of 420 herbs). Level 58 Herblore is required to use it.',
19
+ item: "Herb sack",
20
+ notes: "Stores up to 30 of each type of grimy herb (for a total of 420 herbs). Level 58 Herblore is required to use it.",
21
21
  priceSoldAt: 750,
22
22
  },
23
23
  {
24
- item: 'Rune pouch',
25
- notes: 'Stores up to 16,000 of three types of runes. Only one can be owned. Can also be obtained by exchanging a rune pouch note at a bank.',
24
+ item: "Rune pouch",
25
+ notes: "Stores up to 16,000 of three types of runes. Only one can be owned. Can also be obtained by exchanging a rune pouch note at a bank.",
26
26
  priceSoldAt: 750,
27
27
  },
28
28
  ];
29
29
  export { SlayerBuy, SlayerBuys };
30
- module.exports = exports = { SlayerBuys };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osrs-tools",
3
- "version": "2.3.5",
3
+ "version": "2.4.0",
4
4
  "description": "A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information",
5
5
  "license": "MIT",
6
6
  "scripts": {