osrs-tools 0.1.1 → 0.2.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 +106 -30
- package/package.json +90 -75
- package/src/index.ts +6 -433
- package/src/model/Requirement.ts +173 -0
- package/src/model/account/OsrsAccount.ts +82 -0
- package/src/model/quest/Quest.ts +44 -0
- package/src/model/quest/QuestTool.ts +96 -0
- package/src/model/slayer/Assignment.ts +40 -0
- package/src/model/slayer/SlayerMaster.ts +137 -0
- package/src/model/slayer/SlayerReward.ts +39 -0
- package/src/model/slayer/Task.ts +168 -0
- package/src/resources/QuestData.json +754 -0
- package/src/{data/Diaries → resources/quest}/diaries.json +3 -3
- package/src/{data/quest/questData.ts → resources/quest/questData.js} +169 -223
- package/src/{data/quest/questDataArray.json → resources/quest/questData.json} +950 -1833
- package/src/resources/quest/questDataArray.js +5489 -0
- package/src/{data/quest/questData.json → resources/quest/questDataArray.json} +642 -643
- package/src/{data/quest/miniquestQuestArray.json → resources/quest/subquestArray.js} +2 -2
- package/src/{data/quest/subQuestArray.json → resources/quest/subquestArray.json} +1 -1
- package/src/{data → resources}/quest/testObj.json +148 -148
- package/src/{data → resources}/quest/testarray.json +149 -149
- package/src/resources/quests/CooksAssistant.json +34 -0
- package/src/resources/slayer/Masters.ts +180 -0
- package/src/resources/slayer/SlayerData.ts +45 -0
- package/src/resources/slayer/SlayerExtends.ts +218 -0
- package/src/resources/slayer/SlayerUnlock.ts +194 -0
- package/src/resources/slayer/slayer.json +3581 -0
- package/src/resources/slayer/slayerBuys.ts +38 -0
- package/src/resources/slayer/slayerData.json +4431 -0
- package/src/resources/slayer/tasks/ChaelderTasks.ts +235 -0
- package/src/resources/slayer/tasks/DuradelTasks.ts +75 -0
- package/src/resources/slayer/tasks/KonarTasks.ts +6 -0
- package/src/resources/slayer/tasks/MazchnaTasks.ts +5 -0
- package/src/resources/slayer/tasks/NieveTasks.ts +235 -0
- package/src/resources/slayer/tasks/ReadTasks.ts +55 -0
- package/src/resources/slayer/tasks/SpriaTasks.ts +344 -0
- package/src/resources/slayer/tasks/Tureal.ts +436 -0
- package/src/resources/slayer/tasks/VannakaTasks.ts +236 -0
- package/src/resources/slayer/tasks/json/Chaeldar.json +348 -0
- package/src/resources/slayer/tasks/json/Duradel.json +541 -0
- package/src/resources/slayer/tasks/json/Krystilia.json +2 -0
- package/src/resources/slayer/tasks/json/Mazchna.json +379 -0
- package/src/resources/slayer/tasks/json/Neive.json +320 -0
- package/src/resources/slayer/tasks/json/Spria.json +345 -0
- package/src/resources/slayer/tasks/json/Tureal.json +341 -0
- package/src/resources/slayer/tasks/json/Vannaka.json +547 -0
- package/src/cli.js +0 -9
- package/src/data/farming/fruitTrees.json +0 -165
- package/src/data/farming/locations.json +0 -78
- package/src/data/farming/patches.json +0 -102
- package/src/data/farming/seeds.json +0 -170
- package/src/data/farming/teleports.json +0 -301
- package/src/data/farming/treePatches.json +0 -3
- package/src/data/farming/trees.json +0 -103
- package/src/data/quest/miniquestQuestArray.ts +0 -8
- package/src/data/quest/questDataArray.ts +0 -4134
- package/src/data/quest/subQuestArray.ts +0 -60
- package/src/tests/QuestTest.js +0 -71
- package/src/tests/getAllQuestSeries.ts +0 -6
- package/src/tests/test Quest Array.ts +0 -9
- package/src/tests/test Requirements.ts +0 -56
- package/src/tests/test.ts +0 -402
- package/src/tests/test3.js +0 -370
- package/src/tests/testQuestCompletion.js +0 -367
- package/src/tests/testSeed.js +0 -8
- package/src/utils/AchievementDiary.ts +0 -18
- package/src/utils/Farming/FarmingTool.ts +0 -110
- package/src/utils/Farming/Seed.js +0 -42
- package/src/utils/Farming/TreeSeed.js +0 -21
- package/src/utils/OsrsAccount.ts +0 -280
- package/src/utils/Quest.ts +0 -99
- package/src/utils/QuestTool.ts +0 -437
- package/src/utils/Requirement.ts +0 -63
- package/src/utils/Skill.ts +0 -11
- /package/src/{data/Diaries → resources/quest}/diariesArray.json +0 -0
- /package/src/{data → resources/quest}/exp.json +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": 1,
|
|
3
|
+
"name": "Cook's Assistant",
|
|
4
|
+
"difficulty": "Novice",
|
|
5
|
+
"skillRequirements": {},
|
|
6
|
+
"status": "Not Started",
|
|
7
|
+
"miniquest": false,
|
|
8
|
+
"shortName": "Cook's Assistant",
|
|
9
|
+
"url": "https://oldschool.runescape.wiki/w/Cook's_Assistant",
|
|
10
|
+
"series": "",
|
|
11
|
+
"members": false,
|
|
12
|
+
"questPoints": 1,
|
|
13
|
+
"length": "Short",
|
|
14
|
+
"age": "",
|
|
15
|
+
"startLocation": "Lumbridge Castle kitchen",
|
|
16
|
+
"difficultyLevel": "1",
|
|
17
|
+
"officialDifficulty": "Novice",
|
|
18
|
+
"officialLength": "Short",
|
|
19
|
+
"officialAge": "",
|
|
20
|
+
"itemRequirements": [
|
|
21
|
+
"Bucket",
|
|
22
|
+
"Pot"
|
|
23
|
+
],
|
|
24
|
+
"recommendedItems": [],
|
|
25
|
+
"recommendedSkills": {},
|
|
26
|
+
"recommendedPrayers": [],
|
|
27
|
+
"questRequirements": [],
|
|
28
|
+
"rewards": {
|
|
29
|
+
"experience": {
|
|
30
|
+
"Cooking": 300
|
|
31
|
+
},
|
|
32
|
+
"items": []
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { SlayerMaster } from '../../model/slayer/SlayerMaster';
|
|
2
|
+
import { turealTasks } from './tasks/Tureal';
|
|
3
|
+
|
|
4
|
+
import { DuradelTasks } from './tasks/DuradelTasks';
|
|
5
|
+
import { SpriaTasks } from './tasks/SpriaTasks';
|
|
6
|
+
import { VannakaTasks } from './tasks/VannakaTasks';
|
|
7
|
+
import { NieveTasks } from './tasks/NieveTasks';
|
|
8
|
+
|
|
9
|
+
// TODO: Add the rest of the tasks for each master
|
|
10
|
+
// TODO: Add the rest of the masters
|
|
11
|
+
// TODO: Ensure points are correct
|
|
12
|
+
|
|
13
|
+
// Mazchna: https://oldschool.runescape.wiki/w/Mazchna
|
|
14
|
+
export const Mazchna = new SlayerMaster(
|
|
15
|
+
'Mazchna',
|
|
16
|
+
[],
|
|
17
|
+
'Canifis',
|
|
18
|
+
0,
|
|
19
|
+
'https://oldschool.runescape.wiki/w/Mazchna',
|
|
20
|
+
{
|
|
21
|
+
1: 2,
|
|
22
|
+
10: 5,
|
|
23
|
+
50: 15,
|
|
24
|
+
100: 50,
|
|
25
|
+
250: 70,
|
|
26
|
+
1000: 100,
|
|
27
|
+
},
|
|
28
|
+
undefined
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
// Spria: https://oldschool.runescape.wiki/w/Spria
|
|
32
|
+
export const Spria = new SlayerMaster(
|
|
33
|
+
'Spria',
|
|
34
|
+
SpriaTasks,
|
|
35
|
+
'Draynor Village',
|
|
36
|
+
0,
|
|
37
|
+
'https://oldschool.runescape.wiki/w/Spria',
|
|
38
|
+
{
|
|
39
|
+
1: 2,
|
|
40
|
+
10: 5,
|
|
41
|
+
50: 15,
|
|
42
|
+
100: 50,
|
|
43
|
+
250: 70,
|
|
44
|
+
1000: 100,
|
|
45
|
+
},
|
|
46
|
+
undefined
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
// Tureal: https://oldschool.runescape.wiki/w/Turael
|
|
50
|
+
export const Turael = new SlayerMaster(
|
|
51
|
+
'Turael',
|
|
52
|
+
turealTasks,
|
|
53
|
+
'Burthope',
|
|
54
|
+
0,
|
|
55
|
+
'https://oldschool.runescape.wiki/w/Turael',
|
|
56
|
+
{
|
|
57
|
+
1: 2,
|
|
58
|
+
10: 5,
|
|
59
|
+
50: 15,
|
|
60
|
+
100: 50,
|
|
61
|
+
250: 70,
|
|
62
|
+
1000: 100,
|
|
63
|
+
},
|
|
64
|
+
undefined
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
// Vannaka: https://oldschool.runescape.wiki/w/Vannaka
|
|
68
|
+
export const Vannaka = new SlayerMaster(
|
|
69
|
+
'Vannaka',
|
|
70
|
+
VannakaTasks,
|
|
71
|
+
'Edgeville Dungeon',
|
|
72
|
+
0,
|
|
73
|
+
'https://oldschool.runescape.wiki/w/Vannaka',
|
|
74
|
+
{
|
|
75
|
+
1: 2,
|
|
76
|
+
10: 5,
|
|
77
|
+
50: 15,
|
|
78
|
+
100: 50,
|
|
79
|
+
250: 70,
|
|
80
|
+
1000: 100,
|
|
81
|
+
},
|
|
82
|
+
undefined
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
// Konar Quo Maten: https://oldschool.runescape.wiki/w/Konar_Quo_Maten
|
|
86
|
+
export const KonarQuoMaten = new SlayerMaster(
|
|
87
|
+
'Konar Quo Maten',
|
|
88
|
+
[],
|
|
89
|
+
'Mount Karuulm',
|
|
90
|
+
0,
|
|
91
|
+
'https://oldschool.runescape.wiki/w/Konar_Quo_Maten',
|
|
92
|
+
{
|
|
93
|
+
1: 2,
|
|
94
|
+
10: 5,
|
|
95
|
+
50: 15,
|
|
96
|
+
100: 50,
|
|
97
|
+
250: 70,
|
|
98
|
+
1000: 100,
|
|
99
|
+
},
|
|
100
|
+
undefined
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
// Krystilia: https://oldschool.runescape.wiki/w/Krystilia
|
|
104
|
+
export const Krystilia = new SlayerMaster(
|
|
105
|
+
'Krystilia',
|
|
106
|
+
[],
|
|
107
|
+
'Edgeville',
|
|
108
|
+
0,
|
|
109
|
+
'https://oldschool.runescape.wiki/w/Krystilia',
|
|
110
|
+
{
|
|
111
|
+
1: 2,
|
|
112
|
+
10: 5,
|
|
113
|
+
50: 15,
|
|
114
|
+
100: 50,
|
|
115
|
+
250: 70,
|
|
116
|
+
1000: 100,
|
|
117
|
+
},
|
|
118
|
+
undefined
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
// Nieve: https://oldschool.runescape.wiki/w/Nieve
|
|
122
|
+
export const Nieve = new SlayerMaster(
|
|
123
|
+
'Nieve',
|
|
124
|
+
NieveTasks,
|
|
125
|
+
"Nieve's Cave",
|
|
126
|
+
0,
|
|
127
|
+
'https://oldschool.runescape.wiki/w/Nieve',
|
|
128
|
+
{
|
|
129
|
+
1: 12,
|
|
130
|
+
10: 60,
|
|
131
|
+
50: 180,
|
|
132
|
+
100: 300,
|
|
133
|
+
250: 420,
|
|
134
|
+
1000: 600,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
1: 15,
|
|
138
|
+
10: 75,
|
|
139
|
+
50: 225,
|
|
140
|
+
100: 375,
|
|
141
|
+
250: 525,
|
|
142
|
+
1000: 750,
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// Duradel: https://oldschool.runescape.wiki/w/Duradel
|
|
147
|
+
export const Duradel = new SlayerMaster(
|
|
148
|
+
'Duradel',
|
|
149
|
+
DuradelTasks,
|
|
150
|
+
'Shilo Village',
|
|
151
|
+
85,
|
|
152
|
+
'https://oldschool.runescape.wiki/w/Duradel',
|
|
153
|
+
{
|
|
154
|
+
1: 15,
|
|
155
|
+
10: 75,
|
|
156
|
+
50: 225,
|
|
157
|
+
100: 375,
|
|
158
|
+
250: 525,
|
|
159
|
+
1000: 750,
|
|
160
|
+
},
|
|
161
|
+
undefined
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
// Chaeldar: https://oldschool.runescape.wiki/w/Chaeldar
|
|
165
|
+
export const Chaeldar = new SlayerMaster(
|
|
166
|
+
'Chaeldar',
|
|
167
|
+
[],
|
|
168
|
+
'Zanaris',
|
|
169
|
+
0,
|
|
170
|
+
'https://oldschool.runescape.wiki/w/Chaeldar',
|
|
171
|
+
{
|
|
172
|
+
1: 10,
|
|
173
|
+
10: 50,
|
|
174
|
+
50: 150,
|
|
175
|
+
100: 250,
|
|
176
|
+
250: 350,
|
|
177
|
+
1000: 500,
|
|
178
|
+
},
|
|
179
|
+
undefined
|
|
180
|
+
);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { SlayerMaster } from '../../model/slayer/SlayerMaster';
|
|
2
|
+
import { Assignment } from '../../model/slayer/Assignment';
|
|
3
|
+
|
|
4
|
+
import { Turael, Mazchna, Duradel, Krystilia, Vannaka, Nieve, KonarQuoMaten, Spria } from './Masters';
|
|
5
|
+
|
|
6
|
+
type SlayerData = Record<string, SlayerMaster>;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Gerenate the SlayerData object
|
|
10
|
+
const SlayerData: SlayerData = {
|
|
11
|
+
Turael,
|
|
12
|
+
Mazchna,
|
|
13
|
+
Duradel,
|
|
14
|
+
Krystilia,
|
|
15
|
+
Vannaka,
|
|
16
|
+
Nieve,
|
|
17
|
+
KonarQuoMaten,
|
|
18
|
+
Spria,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// Function to get a SlayerMaster by name
|
|
22
|
+
export function getSlayerMasterByName(name: string): SlayerMaster | undefined {
|
|
23
|
+
return SlayerData[name];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export class SlayerTool {
|
|
27
|
+
private slayerMasters: SlayerData;
|
|
28
|
+
|
|
29
|
+
constructor(slayerMasters: SlayerData) {
|
|
30
|
+
this.slayerMasters = slayerMasters;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
getSlayerMaster(name: string): SlayerMaster | undefined {
|
|
34
|
+
return this.slayerMasters[name];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
getAllSlayerMasters(): SlayerMaster[] {
|
|
38
|
+
return Object.values(this.slayerMasters);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
// Export the SlayerData object for use in other parts of the application
|
|
44
|
+
export default SlayerData;
|
|
45
|
+
export { Turael, Mazchna, Duradel, Krystilia, Vannaka, Nieve, KonarQuoMaten, Spria };
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
export class SlayerExtend {
|
|
2
|
+
name: string;
|
|
3
|
+
cost: number;
|
|
4
|
+
notes: string;
|
|
5
|
+
constructor({
|
|
6
|
+
name,
|
|
7
|
+
cost,
|
|
8
|
+
notes,
|
|
9
|
+
}: {
|
|
10
|
+
name: string;
|
|
11
|
+
cost: number;
|
|
12
|
+
notes: string;
|
|
13
|
+
}) {
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.cost = cost;
|
|
16
|
+
this.notes = notes;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the name of the Slayer Extend
|
|
20
|
+
*/
|
|
21
|
+
getName(): string {
|
|
22
|
+
return this.name;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the cost of the Slayer Extend
|
|
26
|
+
*/
|
|
27
|
+
getCost(): number {
|
|
28
|
+
return this.cost;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the notes of the Slayer Extend
|
|
32
|
+
*/
|
|
33
|
+
getNotes(): string {
|
|
34
|
+
return this.notes;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Define each SlayerExtend as a const
|
|
39
|
+
const NeedMoreDarkness = new SlayerExtend({
|
|
40
|
+
name: 'Need more darkness',
|
|
41
|
+
cost: 100,
|
|
42
|
+
notes: 'Number of dark beasts assigned is increased to 100-149.',
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const AnkouVeryMuch = new SlayerExtend({
|
|
46
|
+
name: 'Ankou very much',
|
|
47
|
+
cost: 100,
|
|
48
|
+
notes: 'Number of ankous assigned is increased to 91-149.',
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const SuqAnotherOne = new SlayerExtend({
|
|
52
|
+
name: 'Suq-a-nother one',
|
|
53
|
+
cost: 100,
|
|
54
|
+
notes: 'Number of suqahs assigned is increased to 185-250.',
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const FireAndDarkness = new SlayerExtend({
|
|
58
|
+
name: 'Fire & Darkness',
|
|
59
|
+
cost: 50,
|
|
60
|
+
notes: 'Number of black dragons assigned is increased to 40-60.',
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const PedalToTheMetals = new SlayerExtend({
|
|
64
|
+
name: 'Pedal to the metals',
|
|
65
|
+
cost: 100,
|
|
66
|
+
notes:
|
|
67
|
+
'Number of bronze, iron and steel dragons assigned is increased to 30-50, 60-100 and 40-60, respectively.',
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const IReallyMithYou = new SlayerExtend({
|
|
71
|
+
name: 'I really mith you',
|
|
72
|
+
cost: 120,
|
|
73
|
+
notes: 'Number of mithril dragons assigned is increased to 20-40.',
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const AdaMindSomeMore = new SlayerExtend({
|
|
77
|
+
name: "Ada'mind some more",
|
|
78
|
+
cost: 100,
|
|
79
|
+
notes: 'Number of adamant dragons assigned is increased to 20-30.',
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
const Ruuuuune = new SlayerExtend({
|
|
83
|
+
name: 'RUUUUUNE',
|
|
84
|
+
cost: 100,
|
|
85
|
+
notes: 'Number of rune dragons assigned is increased to 30-60.',
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
const SpiritualFervour = new SlayerExtend({
|
|
89
|
+
name: 'Spiritual fervour',
|
|
90
|
+
cost: 100,
|
|
91
|
+
notes: 'Number of spiritual creatures assigned is increased to 181-250.',
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const BirdsOfAFeather = new SlayerExtend({
|
|
95
|
+
name: 'Birds of a Feather',
|
|
96
|
+
cost: 100,
|
|
97
|
+
notes: 'Number of aviansies assigned is increased to 130-250.',
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const GreaterChallenge = new SlayerExtend({
|
|
101
|
+
name: 'Greater challenge',
|
|
102
|
+
cost: 100,
|
|
103
|
+
notes: 'Number of greater demons assigned is increased to 150-200.',
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
const ItsDarkInHere = new SlayerExtend({
|
|
107
|
+
name: "It's dark in here",
|
|
108
|
+
cost: 100,
|
|
109
|
+
notes: 'Number of black demons assigned is increased to 200-250.',
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
const BleedMeDry = new SlayerExtend({
|
|
113
|
+
name: 'Bleed me dry',
|
|
114
|
+
cost: 75,
|
|
115
|
+
notes: 'Number of bloodvelds assigned is increased to 200-250.',
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const SmellYaLater = new SlayerExtend({
|
|
119
|
+
name: 'Smell ya later',
|
|
120
|
+
cost: 100,
|
|
121
|
+
notes: 'Number of aberrant spectres assigned is increased to 200-250.',
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const Horrorific = new SlayerExtend({
|
|
125
|
+
name: 'Horrorific',
|
|
126
|
+
cost: 100,
|
|
127
|
+
notes: 'Number of cave horrors assigned is increased to 200-250.',
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
const ToDustYouShallReturn = new SlayerExtend({
|
|
131
|
+
name: 'To dust you shall return',
|
|
132
|
+
cost: 100,
|
|
133
|
+
notes: 'Number of dust devils assigned is increased to 200-250.',
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
const WyverNotherOne = new SlayerExtend({
|
|
137
|
+
name: 'Wyver-nother one',
|
|
138
|
+
cost: 100,
|
|
139
|
+
notes: 'Number of skeletal Wyverns assigned is increased to 50-75.',
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
const GetSmashed = new SlayerExtend({
|
|
143
|
+
name: 'Get smashed',
|
|
144
|
+
cost: 100,
|
|
145
|
+
notes: 'Number of gargoyles assigned is increased to 200-250.',
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
const NechsPlease = new SlayerExtend({
|
|
149
|
+
name: 'Nechs please',
|
|
150
|
+
cost: 100,
|
|
151
|
+
notes: 'Number of nechryael assigned is increased to 200-250.',
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
const AugmentMyAbbies = new SlayerExtend({
|
|
155
|
+
name: 'Augment my abbies',
|
|
156
|
+
cost: 100,
|
|
157
|
+
notes: 'Number of abyssal demons assigned is increased to 200-250.',
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
const KrackOn = new SlayerExtend({
|
|
161
|
+
name: 'Krack on',
|
|
162
|
+
cost: 100,
|
|
163
|
+
notes: 'Number of cave kraken assigned is increased to 150-200.',
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
const GetScabarightOnIt = new SlayerExtend({
|
|
167
|
+
name: 'Get scabaright on it',
|
|
168
|
+
cost: 50,
|
|
169
|
+
notes: 'Number of scabarites assigned is increased to 130-170.',
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
const WyverNotherTwo = new SlayerExtend({
|
|
173
|
+
name: 'Wyver-nother two',
|
|
174
|
+
cost: 100,
|
|
175
|
+
notes: 'Number of Fossil Island wyverns assigned is increased to 55-75.',
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
const Basilonger = new SlayerExtend({
|
|
179
|
+
name: 'Basilonger',
|
|
180
|
+
cost: 100,
|
|
181
|
+
notes: 'Number of Basilisks assigned is increased to 200-250.',
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
const MoreAtStake = new SlayerExtend({
|
|
185
|
+
name: 'More at stake',
|
|
186
|
+
cost: 100,
|
|
187
|
+
notes: 'Number of Vampyres assigned is increased to 200-250.',
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// Add all defined SlayerExtend objects to the array
|
|
191
|
+
export const SlayerExtends = [
|
|
192
|
+
NeedMoreDarkness,
|
|
193
|
+
AnkouVeryMuch,
|
|
194
|
+
SuqAnotherOne,
|
|
195
|
+
FireAndDarkness,
|
|
196
|
+
PedalToTheMetals,
|
|
197
|
+
IReallyMithYou,
|
|
198
|
+
AdaMindSomeMore,
|
|
199
|
+
Ruuuuune,
|
|
200
|
+
SpiritualFervour,
|
|
201
|
+
BirdsOfAFeather,
|
|
202
|
+
GreaterChallenge,
|
|
203
|
+
ItsDarkInHere,
|
|
204
|
+
BleedMeDry,
|
|
205
|
+
SmellYaLater,
|
|
206
|
+
Horrorific,
|
|
207
|
+
ToDustYouShallReturn,
|
|
208
|
+
WyverNotherOne,
|
|
209
|
+
GetSmashed,
|
|
210
|
+
NechsPlease,
|
|
211
|
+
AugmentMyAbbies,
|
|
212
|
+
KrackOn,
|
|
213
|
+
GetScabarightOnIt,
|
|
214
|
+
WyverNotherTwo,
|
|
215
|
+
Basilonger,
|
|
216
|
+
MoreAtStake,
|
|
217
|
+
// Add additional SlayerExtend objects here...
|
|
218
|
+
];
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
export class SlayerUnlock {
|
|
2
|
+
name: string;
|
|
3
|
+
cost: number;
|
|
4
|
+
description: string;
|
|
5
|
+
|
|
6
|
+
constructor(name: string, cost: number, description: string) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.cost = cost;
|
|
9
|
+
this.description = description;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const WatchTheBirdie = new SlayerUnlock(
|
|
14
|
+
'Watch the birdie',
|
|
15
|
+
80,
|
|
16
|
+
'Konar, Duradel, Nieve and Chaeldar will be able to assign you Aviansie as your task.'
|
|
17
|
+
);
|
|
18
|
+
const GargoyleSmasher = new SlayerUnlock(
|
|
19
|
+
'Gargoyle smasher',
|
|
20
|
+
120,
|
|
21
|
+
'Gargoyles are automatically dealt the finishing blow if the player has a Rock hammer in their inventory.'
|
|
22
|
+
);
|
|
23
|
+
const SlugSalter = new SlayerUnlock(
|
|
24
|
+
'Slug salter',
|
|
25
|
+
80,
|
|
26
|
+
'Rock slugs are automatically dealt the finishing blow if the player has a Bag of salt in their inventory.'
|
|
27
|
+
);
|
|
28
|
+
const ReptileFreezer = new SlayerUnlock(
|
|
29
|
+
'Reptile freezer',
|
|
30
|
+
90,
|
|
31
|
+
'Desert lizards are automatically dealt the finishing blow if the player has an Ice cooler in their inventory.'
|
|
32
|
+
);
|
|
33
|
+
const ShroomSprayer = new SlayerUnlock(
|
|
34
|
+
'Shroom sprayer',
|
|
35
|
+
110,
|
|
36
|
+
'Mutated zygomites are automatically dealt the finishing blow if the player has Fungicide spray & Fungicide.'
|
|
37
|
+
);
|
|
38
|
+
const BroaderFletching = new SlayerUnlock(
|
|
39
|
+
'Broader fletching',
|
|
40
|
+
300,
|
|
41
|
+
'Learn to fletch Broad arrows (level 52 Fletching), Broad bolts (level 55 Fletching), and Amethyst broad bolts (level 76 Fletching).'
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
const Malevolent = new SlayerUnlock(
|
|
45
|
+
'Malevolent masquerade',
|
|
46
|
+
400,
|
|
47
|
+
'Learn to assemble a Slayer helmet, which requires level 55 Crafting.'
|
|
48
|
+
);
|
|
49
|
+
const ringbling = new SlayerUnlock(
|
|
50
|
+
'Ring bling',
|
|
51
|
+
300,
|
|
52
|
+
'Learn to craft a Slayer ring, which requires level 75 Crafting.'
|
|
53
|
+
);
|
|
54
|
+
const Seeingred = new SlayerUnlock(
|
|
55
|
+
'Seeing red',
|
|
56
|
+
50,
|
|
57
|
+
'Konar, Duradel and Nieve will be able to assign you Red dragons as your task.'
|
|
58
|
+
);
|
|
59
|
+
const mithme = new SlayerUnlock(
|
|
60
|
+
'I hope you mith me',
|
|
61
|
+
80,
|
|
62
|
+
'Konar, Duradel and Nieve will be able to assign you Mithril dragons as your task.'
|
|
63
|
+
);
|
|
64
|
+
const HotStuff = new SlayerUnlock(
|
|
65
|
+
'Hot stuff',
|
|
66
|
+
100,
|
|
67
|
+
'Duradel, Nieve and Chaeldar will be able to assign TzHaar as your task. You may also be offered a chance to slay TzTok-Jad.'
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
const ReptileGotRipped = new SlayerUnlock(
|
|
71
|
+
'Reptile got ripped',
|
|
72
|
+
75,
|
|
73
|
+
'Konar, Duradel, Nieve, and Chaeldar will be able to assign Lizardmen as your task.'
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
const LikeABoss = new SlayerUnlock(
|
|
77
|
+
'Like a boss',
|
|
78
|
+
200,
|
|
79
|
+
'Konar, Duradel, Krystilia and Nieve will be able to assign boss monsters as your task, excluding the Corporeal Beast.'
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
const BiggerAndBadder = new SlayerUnlock(
|
|
83
|
+
'Bigger and Badder',
|
|
84
|
+
150,
|
|
85
|
+
'Certain slayer monsters will have the chance of spawning a superior version whilst on a slayer task.'
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
const KingBlackBonnet = new SlayerUnlock(
|
|
89
|
+
'King black bonnet',
|
|
90
|
+
1000,
|
|
91
|
+
'Learn how to combine a KBD head with your slayer helm to colour it black.'
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
const KalphiteKhat = new SlayerUnlock(
|
|
95
|
+
'Kalphite khat',
|
|
96
|
+
1000,
|
|
97
|
+
'Learn how to combine a Kalphite Queen head with your slayer helm to colour it green.'
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const UnholyHelmet = new SlayerUnlock(
|
|
101
|
+
'Unholy helmet',
|
|
102
|
+
1000,
|
|
103
|
+
'Learn how to combine an Abyssal Demon head with your slayer helm to colour it red.'
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
const DarkMantle = new SlayerUnlock(
|
|
107
|
+
'Dark Mantle',
|
|
108
|
+
1000,
|
|
109
|
+
'Learn how to combine a Dark Claw with your slayer helm to colour it purple.'
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
const UndeadHead = new SlayerUnlock(
|
|
113
|
+
'Undead Head',
|
|
114
|
+
1000,
|
|
115
|
+
"Learn how to combine Vorkath's head with your slayer helm to colour it turquoise."
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
const UseMoreHead = new SlayerUnlock(
|
|
119
|
+
'Use more head',
|
|
120
|
+
1000,
|
|
121
|
+
'Learn how to combine a Hydra head with your slayer helm to theme it like the Alchemical Hydra.'
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const TwistedVision = new SlayerUnlock(
|
|
125
|
+
'Twisted Vision',
|
|
126
|
+
1000,
|
|
127
|
+
'Learn how to combine the Twisted Horns with your slayer helm to theme it like the Great Olm.'
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
const DulyNoted = new SlayerUnlock(
|
|
131
|
+
'Duly noted',
|
|
132
|
+
200,
|
|
133
|
+
'Mithril dragons drop mithril bars in banknote form while killed on assignment.'
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
const StopTheWyvern = new SlayerUnlock(
|
|
137
|
+
'Stop the Wyvern',
|
|
138
|
+
500,
|
|
139
|
+
'Stops you getting Fossil Island Wyvern tasks, without counting towards your blocked task limit. This does not cancel a current fossil wyvern task.'
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
const DoubleTrouble = new SlayerUnlock(
|
|
143
|
+
'Double Trouble',
|
|
144
|
+
500,
|
|
145
|
+
'Slaying Dusk and Dawn now counts for two kills towards your task rather than one.'
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
const Basilocked = new SlayerUnlock(
|
|
149
|
+
'Basilocked',
|
|
150
|
+
80,
|
|
151
|
+
'Konar, Duradel and Nieve will be able to assign Basilisks as your task.'
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
const ActualVampyreSlayer = new SlayerUnlock(
|
|
155
|
+
'Actual Vampyre Slayer',
|
|
156
|
+
80,
|
|
157
|
+
'Konar, Duradel, Nieve, and Chaeldar will be able to assign Vampyres as your task.'
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
const TaskStorage = new SlayerUnlock(
|
|
161
|
+
'Task Storage',
|
|
162
|
+
1000,
|
|
163
|
+
'Gain the ability to store your task for 50 points, allowing you to take it at a later time.'
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
export const SlayerUnlocks: SlayerUnlock[] = [
|
|
167
|
+
GargoyleSmasher,
|
|
168
|
+
SlugSalter,
|
|
169
|
+
ReptileFreezer,
|
|
170
|
+
ShroomSprayer,
|
|
171
|
+
BroaderFletching,
|
|
172
|
+
Malevolent,
|
|
173
|
+
ringbling,
|
|
174
|
+
Seeingred,
|
|
175
|
+
mithme,
|
|
176
|
+
WatchTheBirdie,
|
|
177
|
+
HotStuff,
|
|
178
|
+
ReptileGotRipped,
|
|
179
|
+
LikeABoss,
|
|
180
|
+
BiggerAndBadder,
|
|
181
|
+
KingBlackBonnet,
|
|
182
|
+
KalphiteKhat,
|
|
183
|
+
UnholyHelmet,
|
|
184
|
+
DarkMantle,
|
|
185
|
+
UndeadHead,
|
|
186
|
+
UseMoreHead,
|
|
187
|
+
TwistedVision,
|
|
188
|
+
DulyNoted,
|
|
189
|
+
StopTheWyvern,
|
|
190
|
+
DoubleTrouble,
|
|
191
|
+
Basilocked,
|
|
192
|
+
ActualVampyreSlayer,
|
|
193
|
+
TaskStorage,
|
|
194
|
+
];
|