osrs-tools 2.12.0 → 2.14.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.
Files changed (991) hide show
  1. package/README.md +3 -3
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/runescape/model/Requirement.d.ts +1 -1
  7. package/dist/runescape/model/Requirement.d.ts.map +1 -1
  8. package/dist/runescape/model/Requirement.js +4 -4
  9. package/dist/runescape/model/Requirement.js.map +1 -1
  10. package/dist/runescape/model/account/Skill.js +4 -4
  11. package/dist/runescape/model/account/Skill.js.map +1 -1
  12. package/dist/runescape/model/account/index.d.ts +4 -1
  13. package/dist/runescape/model/account/index.d.ts.map +1 -1
  14. package/dist/runescape/model/account/index.js +2 -1
  15. package/dist/runescape/model/account/index.js.map +1 -1
  16. package/dist/runescape/model/account/skills/unlocks/AttackUnlocks.d.ts +2 -74
  17. package/dist/runescape/model/account/skills/unlocks/AttackUnlocks.d.ts.map +1 -1
  18. package/dist/runescape/model/account/skills/unlocks/AttackUnlocks.js +266 -121
  19. package/dist/runescape/model/account/skills/unlocks/AttackUnlocks.js.map +1 -1
  20. package/dist/runescape/model/clue/ClueScrollRewards.d.ts.map +1 -1
  21. package/dist/runescape/model/clue/ClueScrollRewards.js +446 -452
  22. package/dist/runescape/model/clue/ClueScrollRewards.js.map +1 -1
  23. package/dist/runescape/model/combat-achievements/CombatAchievement.d.ts +22 -2
  24. package/dist/runescape/model/combat-achievements/CombatAchievement.d.ts.map +1 -1
  25. package/dist/runescape/model/combat-achievements/CombatAchievement.js +17 -1
  26. package/dist/runescape/model/combat-achievements/CombatAchievement.js.map +1 -1
  27. package/dist/runescape/model/combat-achievements/index.d.ts +2 -2
  28. package/dist/runescape/model/combat-achievements/index.d.ts.map +1 -1
  29. package/dist/runescape/model/combat-achievements/index.js +1 -1
  30. package/dist/runescape/model/combat-achievements/index.js.map +1 -1
  31. package/dist/runescape/model/combat-achievements/tasks/Easy.d.ts +0 -6
  32. package/dist/runescape/model/combat-achievements/tasks/Easy.d.ts.map +1 -1
  33. package/dist/runescape/model/combat-achievements/tasks/Easy.js +18 -25
  34. package/dist/runescape/model/combat-achievements/tasks/Easy.js.map +1 -1
  35. package/dist/runescape/model/combat-achievements/tasks/Elite.d.ts.map +1 -1
  36. package/dist/runescape/model/combat-achievements/tasks/Elite.js +163 -163
  37. package/dist/runescape/model/combat-achievements/tasks/Elite.js.map +1 -1
  38. package/dist/runescape/model/combat-achievements/tasks/Grandmaster.d.ts.map +1 -1
  39. package/dist/runescape/model/combat-achievements/tasks/Grandmaster.js +122 -122
  40. package/dist/runescape/model/combat-achievements/tasks/Grandmaster.js.map +1 -1
  41. package/dist/runescape/model/combat-achievements/tasks/Hard.d.ts.map +1 -1
  42. package/dist/runescape/model/combat-achievements/tasks/Hard.js +86 -86
  43. package/dist/runescape/model/combat-achievements/tasks/Hard.js.map +1 -1
  44. package/dist/runescape/model/combat-achievements/tasks/Master.d.ts.map +1 -1
  45. package/dist/runescape/model/combat-achievements/tasks/Master.js +169 -169
  46. package/dist/runescape/model/combat-achievements/tasks/Master.js.map +1 -1
  47. package/dist/runescape/model/combat-achievements/tasks/Medium.d.ts.map +1 -1
  48. package/dist/runescape/model/combat-achievements/tasks/Medium.js +61 -61
  49. package/dist/runescape/model/combat-achievements/tasks/Medium.js.map +1 -1
  50. package/dist/runescape/model/diaries/Diary.d.ts +23 -3
  51. package/dist/runescape/model/diaries/Diary.d.ts.map +1 -1
  52. package/dist/runescape/model/diaries/Diary.js +6 -0
  53. package/dist/runescape/model/diaries/Diary.js.map +1 -1
  54. package/dist/runescape/model/diaries/ardougne/Ardougne.d.ts.map +1 -1
  55. package/dist/runescape/model/diaries/ardougne/Ardougne.js +98 -180
  56. package/dist/runescape/model/diaries/ardougne/Ardougne.js.map +1 -1
  57. package/dist/runescape/model/diaries/desert/Desert.d.ts.map +1 -1
  58. package/dist/runescape/model/diaries/desert/Desert.js +180 -142
  59. package/dist/runescape/model/diaries/desert/Desert.js.map +1 -1
  60. package/dist/runescape/model/diaries/falador/Falador.d.ts +8 -0
  61. package/dist/runescape/model/diaries/falador/Falador.d.ts.map +1 -0
  62. package/dist/runescape/model/diaries/falador/Falador.js +295 -0
  63. package/dist/runescape/model/diaries/falador/Falador.js.map +1 -0
  64. package/dist/runescape/model/diaries/fremennik/Fremennik.d.ts.map +1 -1
  65. package/dist/runescape/model/diaries/fremennik/Fremennik.js +135 -118
  66. package/dist/runescape/model/diaries/fremennik/Fremennik.js.map +1 -1
  67. package/dist/runescape/model/diaries/index.d.ts +1 -1
  68. package/dist/runescape/model/diaries/index.d.ts.map +1 -1
  69. package/dist/runescape/model/diaries/index.js +1 -1
  70. package/dist/runescape/model/diaries/index.js.map +1 -1
  71. package/dist/runescape/model/diaries/kandarin/Kandarin.d.ts.map +1 -1
  72. package/dist/runescape/model/diaries/kandarin/Kandarin.js +229 -107
  73. package/dist/runescape/model/diaries/kandarin/Kandarin.js.map +1 -1
  74. package/dist/runescape/model/diaries/karamja/Karamja.d.ts.map +1 -1
  75. package/dist/runescape/model/diaries/karamja/Karamja.js +32 -89
  76. package/dist/runescape/model/diaries/karamja/Karamja.js.map +1 -1
  77. package/dist/runescape/model/diaries/kourend-kebos/KourendKebos.d.ts.map +1 -1
  78. package/dist/runescape/model/diaries/kourend-kebos/KourendKebos.js +249 -117
  79. package/dist/runescape/model/diaries/kourend-kebos/KourendKebos.js.map +1 -1
  80. package/dist/runescape/model/diaries/lumbridge-draynor/LumbridgeDraynor.d.ts.map +1 -1
  81. package/dist/runescape/model/diaries/lumbridge-draynor/LumbridgeDraynor.js +162 -130
  82. package/dist/runescape/model/diaries/lumbridge-draynor/LumbridgeDraynor.js.map +1 -1
  83. package/dist/runescape/model/diaries/morytania/Morytania.d.ts +2 -0
  84. package/dist/runescape/model/diaries/morytania/Morytania.d.ts.map +1 -1
  85. package/dist/runescape/model/diaries/morytania/Morytania.js +194 -112
  86. package/dist/runescape/model/diaries/morytania/Morytania.js.map +1 -1
  87. package/dist/runescape/model/diaries/varrock/Varrock.d.ts.map +1 -1
  88. package/dist/runescape/model/diaries/varrock/Varrock.js +171 -120
  89. package/dist/runescape/model/diaries/varrock/Varrock.js.map +1 -1
  90. package/dist/runescape/model/diaries/western-provinces/WesternProvinces.d.ts +8 -0
  91. package/dist/runescape/model/diaries/western-provinces/WesternProvinces.d.ts.map +1 -0
  92. package/dist/runescape/model/diaries/western-provinces/WesternProvinces.js +356 -0
  93. package/dist/runescape/model/diaries/western-provinces/WesternProvinces.js.map +1 -0
  94. package/dist/runescape/model/diaries/wilderness/Wilderness.d.ts.map +1 -1
  95. package/dist/runescape/model/diaries/wilderness/Wilderness.js +165 -124
  96. package/dist/runescape/model/diaries/wilderness/Wilderness.js.map +1 -1
  97. package/dist/runescape/model/eligibility/RequirementEvaluator.d.ts +37 -0
  98. package/dist/runescape/model/eligibility/RequirementEvaluator.d.ts.map +1 -0
  99. package/dist/runescape/model/eligibility/RequirementEvaluator.js +87 -0
  100. package/dist/runescape/model/eligibility/RequirementEvaluator.js.map +1 -0
  101. package/dist/runescape/model/eligibility/index.d.ts +5 -0
  102. package/dist/runescape/model/eligibility/index.d.ts.map +1 -0
  103. package/dist/runescape/model/eligibility/index.js +5 -0
  104. package/dist/runescape/model/eligibility/index.js.map +1 -0
  105. package/dist/runescape/model/guilds/hunter/HunterGuild.d.ts +1 -2
  106. package/dist/runescape/model/guilds/hunter/HunterGuild.d.ts.map +1 -1
  107. package/dist/runescape/model/guilds/hunter/HunterGuild.js +2 -4
  108. package/dist/runescape/model/guilds/hunter/HunterGuild.js.map +1 -1
  109. package/dist/runescape/model/guilds/hunter/HunterGuildMaster.d.ts +3 -0
  110. package/dist/runescape/model/guilds/hunter/HunterGuildMaster.d.ts.map +1 -1
  111. package/dist/runescape/model/guilds/hunter/HunterGuildMaster.js +2 -1
  112. package/dist/runescape/model/guilds/hunter/HunterGuildMaster.js.map +1 -1
  113. package/dist/runescape/model/guilds/hunter/HunterRumour.d.ts.map +1 -1
  114. package/dist/runescape/model/guilds/hunter/HunterRumour.js.map +1 -1
  115. package/dist/runescape/model/guilds/hunter/RumourLocation.d.ts +1 -1
  116. package/dist/runescape/model/guilds/hunter/RumourLocation.d.ts.map +1 -1
  117. package/dist/runescape/model/guilds/hunter/RumourLocation.js +32 -23
  118. package/dist/runescape/model/guilds/hunter/RumourLocation.js.map +1 -1
  119. package/dist/runescape/model/guilds/hunter/Rumours.js +6 -6
  120. package/dist/runescape/model/guilds/hunter/Rumours.js.map +1 -1
  121. package/dist/runescape/model/items/AllClueItems.d.ts +1 -0
  122. package/dist/runescape/model/items/AllClueItems.d.ts.map +1 -1
  123. package/dist/runescape/model/items/AllClueItems.js +19 -0
  124. package/dist/runescape/model/items/AllClueItems.js.map +1 -1
  125. package/dist/runescape/model/items/Item.d.ts +0 -4
  126. package/dist/runescape/model/items/Item.d.ts.map +1 -1
  127. package/dist/runescape/model/items/Item.js +0 -16
  128. package/dist/runescape/model/items/Item.js.map +1 -1
  129. package/dist/runescape/model/leagues/DemonicPactsLeague/DemonicPactsLeagueAreas.js +11 -11
  130. package/dist/runescape/model/leagues/DemonicPactsLeague/DemonicPactsLeagueAreas.js.map +1 -1
  131. package/dist/runescape/model/leagues/RagingEchoesLeague/RagingEchoesLeague.d.ts +8 -731
  132. package/dist/runescape/model/leagues/RagingEchoesLeague/RagingEchoesLeague.d.ts.map +1 -1
  133. package/dist/runescape/model/leagues/RagingEchoesLeague/RagingEchoesLeague.js +8 -731
  134. package/dist/runescape/model/leagues/RagingEchoesLeague/RagingEchoesLeague.js.map +1 -1
  135. package/dist/runescape/model/leagues/model.d.ts +10 -5
  136. package/dist/runescape/model/leagues/model.d.ts.map +1 -1
  137. package/dist/runescape/model/leagues/model.js +15 -8
  138. package/dist/runescape/model/leagues/model.js.map +1 -1
  139. package/dist/runescape/model/npc/ComplexDropSystems.d.ts +1 -4
  140. package/dist/runescape/model/npc/ComplexDropSystems.d.ts.map +1 -1
  141. package/dist/runescape/model/npc/ComplexDropSystems.js +1 -6
  142. package/dist/runescape/model/npc/ComplexDropSystems.js.map +1 -1
  143. package/dist/runescape/model/npc/npcs/Artio.d.ts +1 -0
  144. package/dist/runescape/model/npc/npcs/Artio.js +1 -0
  145. package/dist/runescape/model/npc/npcs/GiantCryptRat.d.ts +1 -0
  146. package/dist/runescape/model/npc/npcs/GiantCryptRat.js +1 -0
  147. package/dist/runescape/model/npc/npcs/Hans.d.ts +1 -0
  148. package/dist/runescape/model/npc/npcs/Hans.d.ts.map +1 -1
  149. package/dist/runescape/model/npc/npcs/Hans.js +1 -0
  150. package/dist/runescape/model/npc/npcs/Hans.js.map +1 -1
  151. package/dist/runescape/model/npc/npcs/IceTroll.d.ts +1 -0
  152. package/dist/runescape/model/npc/npcs/IceTroll.js +1 -0
  153. package/dist/runescape/model/npc/npcs/KalphiteGuardian.d.ts +1 -0
  154. package/dist/runescape/model/npc/npcs/KalphiteGuardian.js +1 -0
  155. package/dist/runescape/model/npc/npcs/Man.d.ts +1 -0
  156. package/dist/runescape/model/npc/npcs/Man.js +1 -0
  157. package/dist/runescape/model/npc/npcs/PeerTheSeer.d.ts +1 -0
  158. package/dist/runescape/model/npc/npcs/PeerTheSeer.d.ts.map +1 -1
  159. package/dist/runescape/model/npc/npcs/PeerTheSeer.js +1 -0
  160. package/dist/runescape/model/npc/npcs/PeerTheSeer.js.map +1 -1
  161. package/dist/runescape/model/npc/npcs/Sarachnis.d.ts +1 -0
  162. package/dist/runescape/model/npc/npcs/Sarachnis.js +1 -0
  163. package/dist/runescape/model/npc/npcs/Scorpia.d.ts +1 -0
  164. package/dist/runescape/model/npc/npcs/Scorpia.js +1 -0
  165. package/dist/runescape/model/npc/npcs/ScorpiasGuardian.d.ts +1 -0
  166. package/dist/runescape/model/npc/npcs/ScorpiasGuardian.js +1 -0
  167. package/dist/runescape/model/npc/npcs/ScorpiasOffspring.d.ts +1 -0
  168. package/dist/runescape/model/npc/npcs/ScorpiasOffspring.js +1 -0
  169. package/dist/runescape/model/npc/npcs/Seagull.d.ts +1 -0
  170. package/dist/runescape/model/npc/npcs/Seagull.js +1 -0
  171. package/dist/runescape/model/npc/npcs/Terrorbird.d.ts +1 -0
  172. package/dist/runescape/model/npc/npcs/Terrorbird.js +1 -0
  173. package/dist/runescape/model/npc/npcs/ThermonuclearSmokDevil.d.ts +1 -0
  174. package/dist/runescape/model/npc/npcs/ThermonuclearSmokDevil.js +1 -0
  175. package/dist/runescape/model/npc/npcs/ThermonuclearSmokeDevil.d.ts +9 -0
  176. package/dist/runescape/model/npc/npcs/ThermonuclearSmokeDevil.d.ts.map +1 -0
  177. package/dist/runescape/model/npc/npcs/ThermonuclearSmokeDevil.js +67 -0
  178. package/dist/runescape/model/npc/npcs/ThermonuclearSmokeDevil.js.map +1 -0
  179. package/dist/runescape/model/npc/npcs/TorturedGorilla.d.ts +1 -0
  180. package/dist/runescape/model/npc/npcs/TorturedGorilla.js +1 -0
  181. package/dist/runescape/model/npc/npcs/TorturedSoul.d.ts +1 -0
  182. package/dist/runescape/model/npc/npcs/TorturedSoul.js +1 -0
  183. package/dist/runescape/model/npc/npcs/TzHaarKet.d.ts +1 -0
  184. package/dist/runescape/model/npc/npcs/TzHaarKet.js +1 -0
  185. package/dist/runescape/model/npc/npcs/TzHaarMej.d.ts +1 -0
  186. package/dist/runescape/model/npc/npcs/TzHaarMej.js +1 -0
  187. package/dist/runescape/model/npc/npcs/TzHaarXil.d.ts +1 -0
  188. package/dist/runescape/model/npc/npcs/TzHaarXil.js +1 -0
  189. package/dist/runescape/model/npc/npcs/UndeadDruid.d.ts +1 -0
  190. package/dist/runescape/model/npc/npcs/UndeadDruid.js +1 -0
  191. package/dist/runescape/model/npc/npcs/Venenatis.d.ts +1 -0
  192. package/dist/runescape/model/npc/npcs/Venenatis.js +1 -0
  193. package/dist/runescape/model/npc/npcs/VetIon.d.ts +1 -0
  194. package/dist/runescape/model/npc/npcs/VetIon.js +1 -0
  195. package/dist/runescape/model/npc/npcs/ZombiePirate.d.ts +1 -0
  196. package/dist/runescape/model/npc/npcs/ZombiePirate.js +1 -0
  197. package/dist/runescape/model/npc/npcs/ZombieRat.d.ts +1 -0
  198. package/dist/runescape/model/npc/npcs/ZombieRat.js +1 -0
  199. package/dist/runescape/model/quest/MiniQuestList.d.ts +0 -28
  200. package/dist/runescape/model/quest/MiniQuestList.d.ts.map +1 -1
  201. package/dist/runescape/model/quest/MiniQuestList.js +0 -28
  202. package/dist/runescape/model/quest/MiniQuestList.js.map +1 -1
  203. package/dist/runescape/model/quest/Quest.d.ts +2 -1
  204. package/dist/runescape/model/quest/Quest.d.ts.map +1 -1
  205. package/dist/runescape/model/quest/Quest.js.map +1 -1
  206. package/dist/runescape/model/quest/QuestList.d.ts.map +1 -1
  207. package/dist/runescape/model/quest/QuestList.js +1 -5
  208. package/dist/runescape/model/quest/QuestList.js.map +1 -1
  209. package/dist/runescape/model/quest/QuestTool.d.ts +19 -10
  210. package/dist/runescape/model/quest/QuestTool.d.ts.map +1 -1
  211. package/dist/runescape/model/quest/QuestTool.js +300 -279
  212. package/dist/runescape/model/quest/QuestTool.js.map +1 -1
  213. package/dist/runescape/model/quest/Requirements.d.ts +2 -21
  214. package/dist/runescape/model/quest/Requirements.d.ts.map +1 -1
  215. package/dist/runescape/model/quest/Requirements.js +3 -22
  216. package/dist/runescape/model/quest/Requirements.js.map +1 -1
  217. package/dist/runescape/model/quest/all/AKingdomDivided.d.ts.map +1 -1
  218. package/dist/runescape/model/quest/all/AKingdomDivided.js +19 -16
  219. package/dist/runescape/model/quest/all/AKingdomDivided.js.map +1 -1
  220. package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts.map +1 -1
  221. package/dist/runescape/model/quest/all/ANightAtTheTheatre.js +6 -5
  222. package/dist/runescape/model/quest/all/ANightAtTheTheatre.js.map +1 -1
  223. package/dist/runescape/model/quest/all/APorcineOfInterest.d.ts.map +1 -1
  224. package/dist/runescape/model/quest/all/APorcineOfInterest.js +3 -2
  225. package/dist/runescape/model/quest/all/APorcineOfInterest.js.map +1 -1
  226. package/dist/runescape/model/quest/all/ASoulsBane.d.ts.map +1 -1
  227. package/dist/runescape/model/quest/all/ASoulsBane.js +6 -8
  228. package/dist/runescape/model/quest/all/ASoulsBane.js.map +1 -1
  229. package/dist/runescape/model/quest/all/ATailOfTwoCats.d.ts.map +1 -1
  230. package/dist/runescape/model/quest/all/ATailOfTwoCats.js +10 -6
  231. package/dist/runescape/model/quest/all/ATailOfTwoCats.js.map +1 -1
  232. package/dist/runescape/model/quest/all/ATasteOfHope.d.ts.map +1 -1
  233. package/dist/runescape/model/quest/all/ATasteOfHope.js +26 -20
  234. package/dist/runescape/model/quest/all/ATasteOfHope.js.map +1 -1
  235. package/dist/runescape/model/quest/all/ATheatreOfBlood.d.ts.map +1 -1
  236. package/dist/runescape/model/quest/all/ATheatreOfBlood.js +8 -4
  237. package/dist/runescape/model/quest/all/ATheatreOfBlood.js.map +1 -1
  238. package/dist/runescape/model/quest/all/AlfredGrimhandsBarcrawl.d.ts +3 -0
  239. package/dist/runescape/model/quest/all/AlfredGrimhandsBarcrawl.d.ts.map +1 -0
  240. package/dist/runescape/model/quest/all/AlfredGrimhandsBarcrawl.js +34 -0
  241. package/dist/runescape/model/quest/all/AlfredGrimhandsBarcrawl.js.map +1 -0
  242. package/dist/runescape/model/quest/all/AnimalMagnetism.d.ts.map +1 -1
  243. package/dist/runescape/model/quest/all/AnimalMagnetism.js +6 -14
  244. package/dist/runescape/model/quest/all/AnimalMagnetism.js.map +1 -1
  245. package/dist/runescape/model/quest/all/AnotherSliceOfHAM.d.ts.map +1 -1
  246. package/dist/runescape/model/quest/all/AnotherSliceOfHAM.js +15 -8
  247. package/dist/runescape/model/quest/all/AnotherSliceOfHAM.js.map +1 -1
  248. package/dist/runescape/model/quest/all/AtFirstLight.d.ts.map +1 -1
  249. package/dist/runescape/model/quest/all/AtFirstLight.js +9 -6
  250. package/dist/runescape/model/quest/all/AtFirstLight.js.map +1 -1
  251. package/dist/runescape/model/quest/all/BarbarianTraining.d.ts +3 -0
  252. package/dist/runescape/model/quest/all/BarbarianTraining.d.ts.map +1 -0
  253. package/dist/runescape/model/quest/all/BarbarianTraining.js +49 -0
  254. package/dist/runescape/model/quest/all/BarbarianTraining.js.map +1 -0
  255. package/dist/runescape/model/quest/all/BearYourSoul.d.ts +3 -0
  256. package/dist/runescape/model/quest/all/BearYourSoul.d.ts.map +1 -0
  257. package/dist/runescape/model/quest/all/BearYourSoul.js +38 -0
  258. package/dist/runescape/model/quest/all/BearYourSoul.js.map +1 -0
  259. package/dist/runescape/model/quest/all/BelowIceMountain.d.ts.map +1 -1
  260. package/dist/runescape/model/quest/all/BelowIceMountain.js +9 -6
  261. package/dist/runescape/model/quest/all/BelowIceMountain.js.map +1 -1
  262. package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts.map +1 -1
  263. package/dist/runescape/model/quest/all/BeneathCursedSands.js +10 -5
  264. package/dist/runescape/model/quest/all/BeneathCursedSands.js.map +1 -1
  265. package/dist/runescape/model/quest/all/BetweenARock.d.ts.map +1 -1
  266. package/dist/runescape/model/quest/all/BetweenARock.js +21 -10
  267. package/dist/runescape/model/quest/all/BetweenARock.js.map +1 -1
  268. package/dist/runescape/model/quest/all/BigChompyBirdHunting.d.ts.map +1 -1
  269. package/dist/runescape/model/quest/all/BigChompyBirdHunting.js +15 -8
  270. package/dist/runescape/model/quest/all/BigChompyBirdHunting.js.map +1 -1
  271. package/dist/runescape/model/quest/all/Biohazard.d.ts.map +1 -1
  272. package/dist/runescape/model/quest/all/Biohazard.js +9 -5
  273. package/dist/runescape/model/quest/all/Biohazard.js.map +1 -1
  274. package/dist/runescape/model/quest/all/BlackKnightsFortress.d.ts.map +1 -1
  275. package/dist/runescape/model/quest/all/BlackKnightsFortress.js +8 -11
  276. package/dist/runescape/model/quest/all/BlackKnightsFortress.js.map +1 -1
  277. package/dist/runescape/model/quest/all/BoneVoyage.d.ts.map +1 -1
  278. package/dist/runescape/model/quest/all/BoneVoyage.js +7 -4
  279. package/dist/runescape/model/quest/all/BoneVoyage.js.map +1 -1
  280. package/dist/runescape/model/quest/all/CabinFever.d.ts.map +1 -1
  281. package/dist/runescape/model/quest/all/CabinFever.js +26 -11
  282. package/dist/runescape/model/quest/all/CabinFever.js.map +1 -1
  283. package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts.map +1 -1
  284. package/dist/runescape/model/quest/all/ChildrenOfTheSun.js +5 -5
  285. package/dist/runescape/model/quest/all/ChildrenOfTheSun.js.map +1 -1
  286. package/dist/runescape/model/quest/all/ClientOfKourend.js +3 -3
  287. package/dist/runescape/model/quest/all/ClientOfKourend.js.map +1 -1
  288. package/dist/runescape/model/quest/all/ClockTower.d.ts.map +1 -1
  289. package/dist/runescape/model/quest/all/ClockTower.js +10 -41
  290. package/dist/runescape/model/quest/all/ClockTower.js.map +1 -1
  291. package/dist/runescape/model/quest/all/ColdWar.d.ts.map +1 -1
  292. package/dist/runescape/model/quest/all/ColdWar.js +16 -7
  293. package/dist/runescape/model/quest/all/ColdWar.js.map +1 -1
  294. package/dist/runescape/model/quest/all/Contact.d.ts.map +1 -1
  295. package/dist/runescape/model/quest/all/Contact.js +6 -15
  296. package/dist/runescape/model/quest/all/Contact.js.map +1 -1
  297. package/dist/runescape/model/quest/all/CooksAssistant.d.ts.map +1 -1
  298. package/dist/runescape/model/quest/all/CooksAssistant.js +3 -9
  299. package/dist/runescape/model/quest/all/CooksAssistant.js.map +1 -1
  300. package/dist/runescape/model/quest/all/CreatureOfFenkenstrain.d.ts.map +1 -1
  301. package/dist/runescape/model/quest/all/CreatureOfFenkenstrain.js +12 -5
  302. package/dist/runescape/model/quest/all/CreatureOfFenkenstrain.js.map +1 -1
  303. package/dist/runescape/model/quest/all/CurrentAffairs.d.ts +0 -28
  304. package/dist/runescape/model/quest/all/CurrentAffairs.d.ts.map +1 -1
  305. package/dist/runescape/model/quest/all/CurrentAffairs.js +1 -29
  306. package/dist/runescape/model/quest/all/CurrentAffairs.js.map +1 -1
  307. package/dist/runescape/model/quest/all/CurseOfTheEmptyLord.d.ts +3 -0
  308. package/dist/runescape/model/quest/all/CurseOfTheEmptyLord.d.ts.map +1 -0
  309. package/dist/runescape/model/quest/all/CurseOfTheEmptyLord.js +41 -0
  310. package/dist/runescape/model/quest/all/CurseOfTheEmptyLord.js.map +1 -0
  311. package/dist/runescape/model/quest/all/DaddysHome.d.ts +3 -0
  312. package/dist/runescape/model/quest/all/DaddysHome.d.ts.map +1 -0
  313. package/dist/runescape/model/quest/all/DaddysHome.js +37 -0
  314. package/dist/runescape/model/quest/all/DaddysHome.js.map +1 -0
  315. package/dist/runescape/model/quest/all/DarknessOfHallowvale.d.ts.map +1 -1
  316. package/dist/runescape/model/quest/all/DarknessOfHallowvale.js +16 -6
  317. package/dist/runescape/model/quest/all/DarknessOfHallowvale.js.map +1 -1
  318. package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts.map +1 -1
  319. package/dist/runescape/model/quest/all/DeathOnTheIsle.js +4 -4
  320. package/dist/runescape/model/quest/all/DeathOnTheIsle.js.map +1 -1
  321. package/dist/runescape/model/quest/all/DeathPlateau.d.ts.map +1 -1
  322. package/dist/runescape/model/quest/all/DeathPlateau.js +5 -4
  323. package/dist/runescape/model/quest/all/DeathPlateau.js.map +1 -1
  324. package/dist/runescape/model/quest/all/DeathToTheDorgeshuun.d.ts.map +1 -1
  325. package/dist/runescape/model/quest/all/DeathToTheDorgeshuun.js +14 -7
  326. package/dist/runescape/model/quest/all/DeathToTheDorgeshuun.js.map +1 -1
  327. package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts.map +1 -1
  328. package/dist/runescape/model/quest/all/DefenderOfVarrock.js +17 -5
  329. package/dist/runescape/model/quest/all/DefenderOfVarrock.js.map +1 -1
  330. package/dist/runescape/model/quest/all/DemonSlayer.d.ts.map +1 -1
  331. package/dist/runescape/model/quest/all/DemonSlayer.js +1 -9
  332. package/dist/runescape/model/quest/all/DemonSlayer.js.map +1 -1
  333. package/dist/runescape/model/quest/all/DesertTreasure.d.ts +2 -69
  334. package/dist/runescape/model/quest/all/DesertTreasure.d.ts.map +1 -1
  335. package/dist/runescape/model/quest/all/DesertTreasure.js +8 -18
  336. package/dist/runescape/model/quest/all/DesertTreasure.js.map +1 -1
  337. package/dist/runescape/model/quest/all/DesertTreasureI.d.ts +1 -0
  338. package/dist/runescape/model/quest/all/DesertTreasureI.js +1 -0
  339. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts.map +1 -1
  340. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js +18 -4
  341. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js.map +1 -1
  342. package/dist/runescape/model/quest/all/DeviousMinds.d.ts.map +1 -1
  343. package/dist/runescape/model/quest/all/DeviousMinds.js +16 -8
  344. package/dist/runescape/model/quest/all/DeviousMinds.js.map +1 -1
  345. package/dist/runescape/model/quest/all/DoricQuest.d.ts +2 -51
  346. package/dist/runescape/model/quest/all/DoricQuest.d.ts.map +1 -1
  347. package/dist/runescape/model/quest/all/DoricQuest.js +4 -10
  348. package/dist/runescape/model/quest/all/DoricQuest.js.map +1 -1
  349. package/dist/runescape/model/quest/all/DoricsQuest.d.ts +1 -0
  350. package/dist/runescape/model/quest/all/DoricsQuest.js +1 -0
  351. package/dist/runescape/model/quest/all/DragonSlayerI.d.ts.map +1 -1
  352. package/dist/runescape/model/quest/all/DragonSlayerI.js +10 -22
  353. package/dist/runescape/model/quest/all/DragonSlayerI.js.map +1 -1
  354. package/dist/runescape/model/quest/all/DragonSlayerII.d.ts.map +1 -1
  355. package/dist/runescape/model/quest/all/DragonSlayerII.js +42 -14
  356. package/dist/runescape/model/quest/all/DragonSlayerII.js.map +1 -1
  357. package/dist/runescape/model/quest/all/DreamMentor.d.ts +2 -65
  358. package/dist/runescape/model/quest/all/DreamMentor.d.ts.map +1 -1
  359. package/dist/runescape/model/quest/all/DreamMentor.js +9 -21
  360. package/dist/runescape/model/quest/all/DreamMentor.js.map +1 -1
  361. package/dist/runescape/model/quest/all/DruidicRitual.d.ts.map +1 -1
  362. package/dist/runescape/model/quest/all/DruidicRitual.js +4 -9
  363. package/dist/runescape/model/quest/all/DruidicRitual.js.map +1 -1
  364. package/dist/runescape/model/quest/all/DwarfCannon.d.ts.map +1 -1
  365. package/dist/runescape/model/quest/all/DwarfCannon.js +4 -9
  366. package/dist/runescape/model/quest/all/DwarfCannon.js.map +1 -1
  367. package/dist/runescape/model/quest/all/EadgarsRuse.d.ts.map +1 -1
  368. package/dist/runescape/model/quest/all/EadgarsRuse.js +12 -19
  369. package/dist/runescape/model/quest/all/EadgarsRuse.js.map +1 -1
  370. package/dist/runescape/model/quest/all/EaglesPeak.d.ts.map +1 -1
  371. package/dist/runescape/model/quest/all/EaglesPeak.js +7 -4
  372. package/dist/runescape/model/quest/all/EaglesPeak.js.map +1 -1
  373. package/dist/runescape/model/quest/all/ElementalWorkshopI.d.ts.map +1 -1
  374. package/dist/runescape/model/quest/all/ElementalWorkshopI.js +13 -7
  375. package/dist/runescape/model/quest/all/ElementalWorkshopI.js.map +1 -1
  376. package/dist/runescape/model/quest/all/ElementalWorkshopII.d.ts.map +1 -1
  377. package/dist/runescape/model/quest/all/ElementalWorkshopII.js +11 -5
  378. package/dist/runescape/model/quest/all/ElementalWorkshopII.js.map +1 -1
  379. package/dist/runescape/model/quest/all/EnakhrasLament.d.ts.map +1 -1
  380. package/dist/runescape/model/quest/all/EnakhrasLament.js +11 -4
  381. package/dist/runescape/model/quest/all/EnakhrasLament.js.map +1 -1
  382. package/dist/runescape/model/quest/all/EnlightenedJourney.d.ts.map +1 -1
  383. package/dist/runescape/model/quest/all/EnlightenedJourney.js +11 -4
  384. package/dist/runescape/model/quest/all/EnlightenedJourney.js.map +1 -1
  385. package/dist/runescape/model/quest/all/EnterTheAbyss.d.ts +3 -0
  386. package/dist/runescape/model/quest/all/EnterTheAbyss.d.ts.map +1 -0
  387. package/dist/runescape/model/quest/all/EnterTheAbyss.js +40 -0
  388. package/dist/runescape/model/quest/all/EnterTheAbyss.js.map +1 -0
  389. package/dist/runescape/model/quest/all/ErnestTheChicken.js +3 -3
  390. package/dist/runescape/model/quest/all/ErnestTheChicken.js.map +1 -1
  391. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts.map +1 -1
  392. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js +5 -5
  393. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js.map +1 -1
  394. package/dist/runescape/model/quest/all/FairytaleIGrowingPains.d.ts.map +1 -1
  395. package/dist/runescape/model/quest/all/FairytaleIGrowingPains.js +9 -5
  396. package/dist/runescape/model/quest/all/FairytaleIGrowingPains.js.map +1 -1
  397. package/dist/runescape/model/quest/all/FairytaleIICureAQueen.d.ts.map +1 -1
  398. package/dist/runescape/model/quest/all/FairytaleIICureAQueen.js +11 -5
  399. package/dist/runescape/model/quest/all/FairytaleIICureAQueen.js.map +1 -1
  400. package/dist/runescape/model/quest/all/FamilyCrest.d.ts.map +1 -1
  401. package/dist/runescape/model/quest/all/FamilyCrest.js +6 -13
  402. package/dist/runescape/model/quest/all/FamilyCrest.js.map +1 -1
  403. package/dist/runescape/model/quest/all/FamilyPest.d.ts +3 -0
  404. package/dist/runescape/model/quest/all/FamilyPest.d.ts.map +1 -0
  405. package/dist/runescape/model/quest/all/FamilyPest.js +39 -0
  406. package/dist/runescape/model/quest/all/FamilyPest.js.map +1 -0
  407. package/dist/runescape/model/quest/all/FightArena.js +3 -3
  408. package/dist/runescape/model/quest/all/FightArena.js.map +1 -1
  409. package/dist/runescape/model/quest/all/FishingContest.d.ts.map +1 -1
  410. package/dist/runescape/model/quest/all/FishingContest.js +12 -15
  411. package/dist/runescape/model/quest/all/FishingContest.js.map +1 -1
  412. package/dist/runescape/model/quest/all/ForgettableTale.d.ts.map +1 -1
  413. package/dist/runescape/model/quest/all/ForgettableTale.js +11 -4
  414. package/dist/runescape/model/quest/all/ForgettableTale.js.map +1 -1
  415. package/dist/runescape/model/quest/all/GardenOfTranquillity.d.ts.map +1 -1
  416. package/dist/runescape/model/quest/all/GardenOfTranquillity.js +9 -4
  417. package/dist/runescape/model/quest/all/GardenOfTranquillity.js.map +1 -1
  418. package/dist/runescape/model/quest/all/GertrudesCat.js +3 -3
  419. package/dist/runescape/model/quest/all/GertrudesCat.js.map +1 -1
  420. package/dist/runescape/model/quest/all/GettingAhead.d.ts.map +1 -1
  421. package/dist/runescape/model/quest/all/GettingAhead.js +9 -4
  422. package/dist/runescape/model/quest/all/GettingAhead.js.map +1 -1
  423. package/dist/runescape/model/quest/all/GhostsAhoy.d.ts.map +1 -1
  424. package/dist/runescape/model/quest/all/GhostsAhoy.js +10 -4
  425. package/dist/runescape/model/quest/all/GhostsAhoy.js.map +1 -1
  426. package/dist/runescape/model/quest/all/GoblinDiplomacy.d.ts.map +1 -1
  427. package/dist/runescape/model/quest/all/GoblinDiplomacy.js +2 -9
  428. package/dist/runescape/model/quest/all/GoblinDiplomacy.js.map +1 -1
  429. package/dist/runescape/model/quest/all/GrimTales.d.ts.map +1 -1
  430. package/dist/runescape/model/quest/all/GrimTales.js +24 -14
  431. package/dist/runescape/model/quest/all/GrimTales.js.map +1 -1
  432. package/dist/runescape/model/quest/all/HauntedMine.d.ts.map +1 -1
  433. package/dist/runescape/model/quest/all/HauntedMine.js +10 -6
  434. package/dist/runescape/model/quest/all/HauntedMine.js.map +1 -1
  435. package/dist/runescape/model/quest/all/HazeelCult.js +3 -3
  436. package/dist/runescape/model/quest/all/HazeelCult.js.map +1 -1
  437. package/dist/runescape/model/quest/all/HeroesQuest.d.ts.map +1 -1
  438. package/dist/runescape/model/quest/all/HeroesQuest.js +5 -5
  439. package/dist/runescape/model/quest/all/HeroesQuest.js.map +1 -1
  440. package/dist/runescape/model/quest/all/HisFaithfulServants.d.ts +3 -0
  441. package/dist/runescape/model/quest/all/HisFaithfulServants.d.ts.map +1 -0
  442. package/dist/runescape/model/quest/all/HisFaithfulServants.js +41 -0
  443. package/dist/runescape/model/quest/all/HisFaithfulServants.js.map +1 -0
  444. package/dist/runescape/model/quest/all/HolyGrail.d.ts.map +1 -1
  445. package/dist/runescape/model/quest/all/HolyGrail.js +8 -7
  446. package/dist/runescape/model/quest/all/HolyGrail.js.map +1 -1
  447. package/dist/runescape/model/quest/all/HopespearsWill.d.ts +3 -0
  448. package/dist/runescape/model/quest/all/HopespearsWill.d.ts.map +1 -0
  449. package/dist/runescape/model/quest/all/HopespearsWill.js +42 -0
  450. package/dist/runescape/model/quest/all/HopespearsWill.js.map +1 -0
  451. package/dist/runescape/model/quest/all/HorrorFromTheDeep.d.ts.map +1 -1
  452. package/dist/runescape/model/quest/all/HorrorFromTheDeep.js +2 -10
  453. package/dist/runescape/model/quest/all/HorrorFromTheDeep.js.map +1 -1
  454. package/dist/runescape/model/quest/all/IcthlarinsLittleHelper.d.ts.map +1 -1
  455. package/dist/runescape/model/quest/all/IcthlarinsLittleHelper.js +10 -5
  456. package/dist/runescape/model/quest/all/IcthlarinsLittleHelper.js.map +1 -1
  457. package/dist/runescape/model/quest/all/ImpCatcher.d.ts.map +1 -1
  458. package/dist/runescape/model/quest/all/ImpCatcher.js +2 -11
  459. package/dist/runescape/model/quest/all/ImpCatcher.js.map +1 -1
  460. package/dist/runescape/model/quest/all/InAidOfTheMyreque.d.ts.map +1 -1
  461. package/dist/runescape/model/quest/all/InAidOfTheMyreque.js +12 -8
  462. package/dist/runescape/model/quest/all/InAidOfTheMyreque.js.map +1 -1
  463. package/dist/runescape/model/quest/all/InSearchOfKnowledge.d.ts +3 -0
  464. package/dist/runescape/model/quest/all/InSearchOfKnowledge.d.ts.map +1 -0
  465. package/dist/runescape/model/quest/all/InSearchOfKnowledge.js +36 -0
  466. package/dist/runescape/model/quest/all/InSearchOfKnowledge.js.map +1 -0
  467. package/dist/runescape/model/quest/all/InSearchOfTheMyreque.js +4 -4
  468. package/dist/runescape/model/quest/all/InSearchOfTheMyreque.js.map +1 -1
  469. package/dist/runescape/model/quest/all/IntoTheTombs.d.ts +3 -0
  470. package/dist/runescape/model/quest/all/IntoTheTombs.d.ts.map +1 -0
  471. package/dist/runescape/model/quest/all/IntoTheTombs.js +42 -0
  472. package/dist/runescape/model/quest/all/IntoTheTombs.js.map +1 -0
  473. package/dist/runescape/model/quest/all/JunglePotion.d.ts.map +1 -1
  474. package/dist/runescape/model/quest/all/JunglePotion.js +10 -14
  475. package/dist/runescape/model/quest/all/JunglePotion.js.map +1 -1
  476. package/dist/runescape/model/quest/all/KingsRansom.d.ts.map +1 -1
  477. package/dist/runescape/model/quest/all/KingsRansom.js +17 -13
  478. package/dist/runescape/model/quest/all/KingsRansom.js.map +1 -1
  479. package/dist/runescape/model/quest/all/LairOfTarnRazorlor.d.ts +3 -0
  480. package/dist/runescape/model/quest/all/LairOfTarnRazorlor.d.ts.map +1 -0
  481. package/dist/runescape/model/quest/all/LairOfTarnRazorlor.js +45 -0
  482. package/dist/runescape/model/quest/all/LairOfTarnRazorlor.js.map +1 -0
  483. package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts.map +1 -1
  484. package/dist/runescape/model/quest/all/LandOfTheGoblins.js +14 -5
  485. package/dist/runescape/model/quest/all/LandOfTheGoblins.js.map +1 -1
  486. package/dist/runescape/model/quest/all/LearningTheRopes.js +3 -3
  487. package/dist/runescape/model/quest/all/LearningTheRopes.js.map +1 -1
  488. package/dist/runescape/model/quest/all/LegendsQuest.d.ts.map +1 -1
  489. package/dist/runescape/model/quest/all/LegendsQuest.js +17 -15
  490. package/dist/runescape/model/quest/all/LegendsQuest.js.map +1 -1
  491. package/dist/runescape/model/quest/all/LostCity.d.ts.map +1 -1
  492. package/dist/runescape/model/quest/all/LostCity.js +15 -24
  493. package/dist/runescape/model/quest/all/LostCity.js.map +1 -1
  494. package/dist/runescape/model/quest/all/LunarDiplomacy.d.ts.map +1 -1
  495. package/dist/runescape/model/quest/all/LunarDiplomacy.js +17 -14
  496. package/dist/runescape/model/quest/all/LunarDiplomacy.js.map +1 -1
  497. package/dist/runescape/model/quest/all/MageArenaI.d.ts +3 -0
  498. package/dist/runescape/model/quest/all/MageArenaI.d.ts.map +1 -0
  499. package/dist/runescape/model/quest/all/MageArenaI.js +44 -0
  500. package/dist/runescape/model/quest/all/MageArenaI.js.map +1 -0
  501. package/dist/runescape/model/quest/all/MageArenaII.d.ts +3 -0
  502. package/dist/runescape/model/quest/all/MageArenaII.d.ts.map +1 -0
  503. package/dist/runescape/model/quest/all/MageArenaII.js +45 -0
  504. package/dist/runescape/model/quest/all/MageArenaII.js.map +1 -0
  505. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts.map +1 -1
  506. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js +14 -5
  507. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js.map +1 -1
  508. package/dist/runescape/model/quest/all/MakingHistory.js +3 -3
  509. package/dist/runescape/model/quest/all/MakingHistory.js.map +1 -1
  510. package/dist/runescape/model/quest/all/MeatAndGreet.d.ts.map +1 -1
  511. package/dist/runescape/model/quest/all/MeatAndGreet.js +2 -7
  512. package/dist/runescape/model/quest/all/MeatAndGreet.js.map +1 -1
  513. package/dist/runescape/model/quest/all/MerlinsCrystal.js +4 -4
  514. package/dist/runescape/model/quest/all/MerlinsCrystal.js.map +1 -1
  515. package/dist/runescape/model/quest/all/MisthalinMystery.js +4 -4
  516. package/dist/runescape/model/quest/all/MisthalinMystery.js.map +1 -1
  517. package/dist/runescape/model/quest/all/MonkeyMadness.d.ts.map +1 -1
  518. package/dist/runescape/model/quest/all/MonkeyMadness.js +16 -25
  519. package/dist/runescape/model/quest/all/MonkeyMadness.js.map +1 -1
  520. package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts +1 -0
  521. package/dist/runescape/model/quest/all/MonkeyMadnessI.js +1 -0
  522. package/dist/runescape/model/quest/all/MonkeyMadnessII.d.ts.map +1 -1
  523. package/dist/runescape/model/quest/all/MonkeyMadnessII.js +23 -13
  524. package/dist/runescape/model/quest/all/MonkeyMadnessII.js.map +1 -1
  525. package/dist/runescape/model/quest/all/MonksFriend.js +3 -3
  526. package/dist/runescape/model/quest/all/MonksFriend.js.map +1 -1
  527. package/dist/runescape/model/quest/all/MountainDaughter.d.ts.map +1 -1
  528. package/dist/runescape/model/quest/all/MountainDaughter.js +8 -5
  529. package/dist/runescape/model/quest/all/MountainDaughter.js.map +1 -1
  530. package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts.map +1 -1
  531. package/dist/runescape/model/quest/all/MourningsEndPartI.js +12 -5
  532. package/dist/runescape/model/quest/all/MourningsEndPartI.js.map +1 -1
  533. package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts.map +1 -1
  534. package/dist/runescape/model/quest/all/MourningsEndPartII.js +8 -5
  535. package/dist/runescape/model/quest/all/MourningsEndPartII.js.map +1 -1
  536. package/dist/runescape/model/quest/all/MurderMystery.js +3 -3
  537. package/dist/runescape/model/quest/all/MurderMystery.js.map +1 -1
  538. package/dist/runescape/model/quest/all/MyArmsBigAdventure.js +7 -7
  539. package/dist/runescape/model/quest/all/MyArmsBigAdventure.js.map +1 -1
  540. package/dist/runescape/model/quest/all/NatureSpirit.js +3 -3
  541. package/dist/runescape/model/quest/all/NatureSpirit.js.map +1 -1
  542. package/dist/runescape/model/quest/all/ObservatoryQuest.js +3 -3
  543. package/dist/runescape/model/quest/all/ObservatoryQuest.js.map +1 -1
  544. package/dist/runescape/model/quest/all/OlafsQuest.js +8 -8
  545. package/dist/runescape/model/quest/all/OlafsQuest.js.map +1 -1
  546. package/dist/runescape/model/quest/all/OneSmallFavour.d.ts.map +1 -1
  547. package/dist/runescape/model/quest/all/OneSmallFavour.js +8 -7
  548. package/dist/runescape/model/quest/all/OneSmallFavour.js.map +1 -1
  549. package/dist/runescape/model/quest/all/Pandemonium.d.ts +0 -29
  550. package/dist/runescape/model/quest/all/Pandemonium.d.ts.map +1 -1
  551. package/dist/runescape/model/quest/all/Pandemonium.js +4 -33
  552. package/dist/runescape/model/quest/all/Pandemonium.js.map +1 -1
  553. package/dist/runescape/model/quest/all/PerilousMoons.d.ts.map +1 -1
  554. package/dist/runescape/model/quest/all/PerilousMoons.js +12 -6
  555. package/dist/runescape/model/quest/all/PerilousMoons.js.map +1 -1
  556. package/dist/runescape/model/quest/all/PiratesTreasure.js +4 -4
  557. package/dist/runescape/model/quest/all/PiratesTreasure.js.map +1 -1
  558. package/dist/runescape/model/quest/all/PlagueCity.js +3 -3
  559. package/dist/runescape/model/quest/all/PlagueCity.js.map +1 -1
  560. package/dist/runescape/model/quest/all/PriestInPeril.d.ts.map +1 -1
  561. package/dist/runescape/model/quest/all/PriestInPeril.js +4 -10
  562. package/dist/runescape/model/quest/all/PriestInPeril.js.map +1 -1
  563. package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts.map +1 -1
  564. package/dist/runescape/model/quest/all/PrinceAliRescue.js +4 -4
  565. package/dist/runescape/model/quest/all/PrinceAliRescue.js.map +1 -1
  566. package/dist/runescape/model/quest/all/PryingTimes.d.ts +1 -41
  567. package/dist/runescape/model/quest/all/PryingTimes.d.ts.map +1 -1
  568. package/dist/runescape/model/quest/all/PryingTimes.js +3 -44
  569. package/dist/runescape/model/quest/all/PryingTimes.js.map +1 -1
  570. package/dist/runescape/model/quest/all/RagAndBoneMan.js +7 -7
  571. package/dist/runescape/model/quest/all/RagAndBoneMan.js.map +1 -1
  572. package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts +1 -0
  573. package/dist/runescape/model/quest/all/RagAndBoneManI.js +1 -0
  574. package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts.map +1 -1
  575. package/dist/runescape/model/quest/all/RagAndBoneManII.js +11 -6
  576. package/dist/runescape/model/quest/all/RagAndBoneManII.js.map +1 -1
  577. package/dist/runescape/model/quest/all/Ratcatchers.d.ts.map +1 -1
  578. package/dist/runescape/model/quest/all/Ratcatchers.js +5 -4
  579. package/dist/runescape/model/quest/all/Ratcatchers.js.map +1 -1
  580. package/dist/runescape/model/quest/all/RecipeForDisaster.js +5 -5
  581. package/dist/runescape/model/quest/all/RecipeForDisaster.js.map +1 -1
  582. package/dist/runescape/model/quest/all/RecruitmentDrive.d.ts.map +1 -1
  583. package/dist/runescape/model/quest/all/RecruitmentDrive.js +5 -10
  584. package/dist/runescape/model/quest/all/RecruitmentDrive.js.map +1 -1
  585. package/dist/runescape/model/quest/all/Regicide.d.ts.map +1 -1
  586. package/dist/runescape/model/quest/all/Regicide.js +10 -14
  587. package/dist/runescape/model/quest/all/Regicide.js.map +1 -1
  588. package/dist/runescape/model/quest/all/RomeoAndJuliet.js +3 -3
  589. package/dist/runescape/model/quest/all/RomeoAndJuliet.js.map +1 -1
  590. package/dist/runescape/model/quest/all/RovingElves.d.ts.map +1 -1
  591. package/dist/runescape/model/quest/all/RovingElves.js +10 -5
  592. package/dist/runescape/model/quest/all/RovingElves.js.map +1 -1
  593. package/dist/runescape/model/quest/all/RoyalTrouble.d.ts.map +1 -1
  594. package/dist/runescape/model/quest/all/RoyalTrouble.js +7 -6
  595. package/dist/runescape/model/quest/all/RoyalTrouble.js.map +1 -1
  596. package/dist/runescape/model/quest/all/RumDeal.d.ts.map +1 -1
  597. package/dist/runescape/model/quest/all/RumDeal.js +9 -8
  598. package/dist/runescape/model/quest/all/RumDeal.js.map +1 -1
  599. package/dist/runescape/model/quest/all/RuneMysteries.js +4 -4
  600. package/dist/runescape/model/quest/all/RuneMysteries.js.map +1 -1
  601. package/dist/runescape/model/quest/all/ScorpionCatcher.d.ts.map +1 -1
  602. package/dist/runescape/model/quest/all/ScorpionCatcher.js +8 -4
  603. package/dist/runescape/model/quest/all/ScorpionCatcher.js.map +1 -1
  604. package/dist/runescape/model/quest/all/Scrambled.d.ts.map +1 -1
  605. package/dist/runescape/model/quest/all/Scrambled.js +2 -7
  606. package/dist/runescape/model/quest/all/Scrambled.js.map +1 -1
  607. package/dist/runescape/model/quest/all/SeaSlug.d.ts.map +1 -1
  608. package/dist/runescape/model/quest/all/SeaSlug.js +9 -5
  609. package/dist/runescape/model/quest/all/SeaSlug.js.map +1 -1
  610. package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts.map +1 -1
  611. package/dist/runescape/model/quest/all/SecretsOfTheNorth.js +15 -5
  612. package/dist/runescape/model/quest/all/SecretsOfTheNorth.js.map +1 -1
  613. package/dist/runescape/model/quest/all/ShadesOfMortton.d.ts.map +1 -1
  614. package/dist/runescape/model/quest/all/ShadesOfMortton.js +7 -6
  615. package/dist/runescape/model/quest/all/ShadesOfMortton.js.map +1 -1
  616. package/dist/runescape/model/quest/all/ShadowOfTheStorm.d.ts.map +1 -1
  617. package/dist/runescape/model/quest/all/ShadowOfTheStorm.js +5 -4
  618. package/dist/runescape/model/quest/all/ShadowOfTheStorm.js.map +1 -1
  619. package/dist/runescape/model/quest/all/ShadowsOfCustodia.d.ts.map +1 -1
  620. package/dist/runescape/model/quest/all/ShadowsOfCustodia.js +2 -8
  621. package/dist/runescape/model/quest/all/ShadowsOfCustodia.js.map +1 -1
  622. package/dist/runescape/model/quest/all/SheepHerder.d.ts.map +1 -1
  623. package/dist/runescape/model/quest/all/SheepHerder.js +7 -13
  624. package/dist/runescape/model/quest/all/SheepHerder.js.map +1 -1
  625. package/dist/runescape/model/quest/all/SheepShearer.js +4 -4
  626. package/dist/runescape/model/quest/all/SheepShearer.js.map +1 -1
  627. package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts.map +1 -1
  628. package/dist/runescape/model/quest/all/ShieldOfArrav.js +4 -4
  629. package/dist/runescape/model/quest/all/ShieldOfArrav.js.map +1 -1
  630. package/dist/runescape/model/quest/all/ShiloVillage.d.ts.map +1 -1
  631. package/dist/runescape/model/quest/all/ShiloVillage.js +11 -22
  632. package/dist/runescape/model/quest/all/ShiloVillage.js.map +1 -1
  633. package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts.map +1 -1
  634. package/dist/runescape/model/quest/all/SinsOfTheFather.js +15 -6
  635. package/dist/runescape/model/quest/all/SinsOfTheFather.js.map +1 -1
  636. package/dist/runescape/model/quest/all/SkippyAndTheMogres.d.ts +3 -0
  637. package/dist/runescape/model/quest/all/SkippyAndTheMogres.d.ts.map +1 -0
  638. package/dist/runescape/model/quest/all/SkippyAndTheMogres.js +38 -0
  639. package/dist/runescape/model/quest/all/SkippyAndTheMogres.js.map +1 -0
  640. package/dist/runescape/model/quest/all/SleepingGiants.d.ts.map +1 -1
  641. package/dist/runescape/model/quest/all/SleepingGiants.js +11 -6
  642. package/dist/runescape/model/quest/all/SleepingGiants.js.map +1 -1
  643. package/dist/runescape/model/quest/all/SlugMenace.d.ts +1 -0
  644. package/dist/runescape/model/quest/all/SlugMenace.js +1 -0
  645. package/dist/runescape/model/quest/all/SongOfTheElves.d.ts.map +1 -1
  646. package/dist/runescape/model/quest/all/SongOfTheElves.js +12 -11
  647. package/dist/runescape/model/quest/all/SongOfTheElves.js.map +1 -1
  648. package/dist/runescape/model/quest/all/SpiritsOfTheElid.d.ts.map +1 -1
  649. package/dist/runescape/model/quest/all/SpiritsOfTheElid.js +5 -4
  650. package/dist/runescape/model/quest/all/SpiritsOfTheElid.js.map +1 -1
  651. package/dist/runescape/model/quest/all/SwanSong.d.ts.map +1 -1
  652. package/dist/runescape/model/quest/all/SwanSong.js +9 -8
  653. package/dist/runescape/model/quest/all/SwanSong.js.map +1 -1
  654. package/dist/runescape/model/quest/all/TaiBwoWannaiTrio.d.ts.map +1 -1
  655. package/dist/runescape/model/quest/all/TaiBwoWannaiTrio.js +8 -7
  656. package/dist/runescape/model/quest/all/TaiBwoWannaiTrio.js.map +1 -1
  657. package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts +1 -0
  658. package/dist/runescape/model/quest/all/TaleOfTheRighteous.js +1 -0
  659. package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts.map +1 -1
  660. package/dist/runescape/model/quest/all/TearsOfGuthix.js +13 -5
  661. package/dist/runescape/model/quest/all/TearsOfGuthix.js.map +1 -1
  662. package/dist/runescape/model/quest/all/TempleOfIkov.d.ts +1 -0
  663. package/dist/runescape/model/quest/all/TempleOfIkov.js +1 -0
  664. package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts.map +1 -1
  665. package/dist/runescape/model/quest/all/TempleOfTheEye.js +9 -5
  666. package/dist/runescape/model/quest/all/TempleOfTheEye.js.map +1 -1
  667. package/dist/runescape/model/quest/all/TheAscentOfArceuus.d.ts.map +1 -1
  668. package/dist/runescape/model/quest/all/TheAscentOfArceuus.js +7 -4
  669. package/dist/runescape/model/quest/all/TheAscentOfArceuus.js.map +1 -1
  670. package/dist/runescape/model/quest/all/TheCorsairCurse.js +4 -4
  671. package/dist/runescape/model/quest/all/TheCorsairCurse.js.map +1 -1
  672. package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts.map +1 -1
  673. package/dist/runescape/model/quest/all/TheCurseOfArrav.js +17 -4
  674. package/dist/runescape/model/quest/all/TheCurseOfArrav.js.map +1 -1
  675. package/dist/runescape/model/quest/all/TheDepthsOfDespair.d.ts.map +1 -1
  676. package/dist/runescape/model/quest/all/TheDepthsOfDespair.js +5 -4
  677. package/dist/runescape/model/quest/all/TheDepthsOfDespair.js.map +1 -1
  678. package/dist/runescape/model/quest/all/TheDigSite.d.ts.map +1 -1
  679. package/dist/runescape/model/quest/all/TheDigSite.js +12 -5
  680. package/dist/runescape/model/quest/all/TheDigSite.js.map +1 -1
  681. package/dist/runescape/model/quest/all/TheEnchantedKey.d.ts +3 -0
  682. package/dist/runescape/model/quest/all/TheEnchantedKey.d.ts.map +1 -0
  683. package/dist/runescape/model/quest/all/TheEnchantedKey.js +41 -0
  684. package/dist/runescape/model/quest/all/TheEnchantedKey.js.map +1 -0
  685. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts.map +1 -1
  686. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js +12 -5
  687. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js.map +1 -1
  688. package/dist/runescape/model/quest/all/TheFeud.d.ts.map +1 -1
  689. package/dist/runescape/model/quest/all/TheFeud.js +9 -5
  690. package/dist/runescape/model/quest/all/TheFeud.js.map +1 -1
  691. package/dist/runescape/model/quest/all/TheFinalDawn.d.ts.map +1 -1
  692. package/dist/runescape/model/quest/all/TheFinalDawn.js +26 -44
  693. package/dist/runescape/model/quest/all/TheFinalDawn.js.map +1 -1
  694. package/dist/runescape/model/quest/all/TheForsakenTower.js +3 -3
  695. package/dist/runescape/model/quest/all/TheForsakenTower.js.map +1 -1
  696. package/dist/runescape/model/quest/all/TheFremennikExiles.d.ts.map +1 -1
  697. package/dist/runescape/model/quest/all/TheFremennikExiles.js +9 -8
  698. package/dist/runescape/model/quest/all/TheFremennikExiles.js.map +1 -1
  699. package/dist/runescape/model/quest/all/TheFremennikIsles.d.ts.map +1 -1
  700. package/dist/runescape/model/quest/all/TheFremennikIsles.js +7 -6
  701. package/dist/runescape/model/quest/all/TheFremennikIsles.js.map +1 -1
  702. package/dist/runescape/model/quest/all/TheFremennikTrials.d.ts.map +1 -1
  703. package/dist/runescape/model/quest/all/TheFremennikTrials.js +10 -4
  704. package/dist/runescape/model/quest/all/TheFremennikTrials.js.map +1 -1
  705. package/dist/runescape/model/quest/all/TheFrozenDoor.d.ts +3 -0
  706. package/dist/runescape/model/quest/all/TheFrozenDoor.d.ts.map +1 -0
  707. package/dist/runescape/model/quest/all/TheFrozenDoor.js +41 -0
  708. package/dist/runescape/model/quest/all/TheFrozenDoor.js.map +1 -0
  709. package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts.map +1 -1
  710. package/dist/runescape/model/quest/all/TheGardenOfDeath.js +8 -5
  711. package/dist/runescape/model/quest/all/TheGardenOfDeath.js.map +1 -1
  712. package/dist/runescape/model/quest/all/TheGeneralsShadow.d.ts +3 -0
  713. package/dist/runescape/model/quest/all/TheGeneralsShadow.d.ts.map +1 -0
  714. package/dist/runescape/model/quest/all/TheGeneralsShadow.js +42 -0
  715. package/dist/runescape/model/quest/all/TheGeneralsShadow.js.map +1 -0
  716. package/dist/runescape/model/quest/all/TheGiantDwarf.d.ts.map +1 -1
  717. package/dist/runescape/model/quest/all/TheGiantDwarf.js +7 -6
  718. package/dist/runescape/model/quest/all/TheGiantDwarf.js.map +1 -1
  719. package/dist/runescape/model/quest/all/TheGolem.d.ts.map +1 -1
  720. package/dist/runescape/model/quest/all/TheGolem.js +16 -15
  721. package/dist/runescape/model/quest/all/TheGolem.js.map +1 -1
  722. package/dist/runescape/model/quest/all/TheGrandTree.d.ts.map +1 -1
  723. package/dist/runescape/model/quest/all/TheGrandTree.js +8 -4
  724. package/dist/runescape/model/quest/all/TheGrandTree.js.map +1 -1
  725. package/dist/runescape/model/quest/all/TheGreatBrainRobbery.d.ts.map +1 -1
  726. package/dist/runescape/model/quest/all/TheGreatBrainRobbery.js +10 -18
  727. package/dist/runescape/model/quest/all/TheGreatBrainRobbery.js.map +1 -1
  728. package/dist/runescape/model/quest/all/TheHandInTheSand.d.ts.map +1 -1
  729. package/dist/runescape/model/quest/all/TheHandInTheSand.js +19 -61
  730. package/dist/runescape/model/quest/all/TheHandInTheSand.js.map +1 -1
  731. package/dist/runescape/model/quest/all/TheHeartOfDarkness.js +4 -4
  732. package/dist/runescape/model/quest/all/TheHeartOfDarkness.js.map +1 -1
  733. package/dist/runescape/model/quest/all/TheIdesOfMilk.js +5 -5
  734. package/dist/runescape/model/quest/all/TheIdesOfMilk.js.map +1 -1
  735. package/dist/runescape/model/quest/all/TheKnightsSword.d.ts.map +1 -1
  736. package/dist/runescape/model/quest/all/TheKnightsSword.js +8 -4
  737. package/dist/runescape/model/quest/all/TheKnightsSword.js.map +1 -1
  738. package/dist/runescape/model/quest/all/TheLostTribe.js +3 -3
  739. package/dist/runescape/model/quest/all/TheLostTribe.js.map +1 -1
  740. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts.map +1 -1
  741. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js +14 -5
  742. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js.map +1 -1
  743. package/dist/runescape/model/quest/all/TheQueenOfThieves.d.ts.map +1 -1
  744. package/dist/runescape/model/quest/all/TheQueenOfThieves.js +5 -4
  745. package/dist/runescape/model/quest/all/TheQueenOfThieves.js.map +1 -1
  746. package/dist/runescape/model/quest/all/TheRedReef.d.ts +3 -0
  747. package/dist/runescape/model/quest/all/TheRedReef.d.ts.map +1 -0
  748. package/dist/runescape/model/quest/all/TheRedReef.js +43 -0
  749. package/dist/runescape/model/quest/all/TheRedReef.js.map +1 -0
  750. package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts.map +1 -1
  751. package/dist/runescape/model/quest/all/TheRestlessGhost.js +4 -4
  752. package/dist/runescape/model/quest/all/TheRestlessGhost.js.map +1 -1
  753. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js +4 -4
  754. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js.map +1 -1
  755. package/dist/runescape/model/quest/all/TheSlugMenace.d.ts.map +1 -1
  756. package/dist/runescape/model/quest/all/TheSlugMenace.js +9 -8
  757. package/dist/runescape/model/quest/all/TheSlugMenace.js.map +1 -1
  758. package/dist/runescape/model/quest/all/TheTaleOfTheRighteous.d.ts.map +1 -1
  759. package/dist/runescape/model/quest/all/TheTaleOfTheRighteous.js +5 -13
  760. package/dist/runescape/model/quest/all/TheTaleOfTheRighteous.js.map +1 -1
  761. package/dist/runescape/model/quest/all/TheTempleOfIkov.d.ts.map +1 -1
  762. package/dist/runescape/model/quest/all/TheTempleOfIkov.js +5 -4
  763. package/dist/runescape/model/quest/all/TheTempleOfIkov.js.map +1 -1
  764. package/dist/runescape/model/quest/all/TheTouristTrap.d.ts.map +1 -1
  765. package/dist/runescape/model/quest/all/TheTouristTrap.js +5 -4
  766. package/dist/runescape/model/quest/all/TheTouristTrap.js.map +1 -1
  767. package/dist/runescape/model/quest/all/ThroneOfMiscellania.d.ts.map +1 -1
  768. package/dist/runescape/model/quest/all/ThroneOfMiscellania.js +9 -22
  769. package/dist/runescape/model/quest/all/ThroneOfMiscellania.js.map +1 -1
  770. package/dist/runescape/model/quest/all/TowerOfLife.d.ts.map +1 -1
  771. package/dist/runescape/model/quest/all/TowerOfLife.js +11 -15
  772. package/dist/runescape/model/quest/all/TowerOfLife.js.map +1 -1
  773. package/dist/runescape/model/quest/all/TreeGnomeVillage.d.ts.map +1 -1
  774. package/dist/runescape/model/quest/all/TreeGnomeVillage.js +4 -10
  775. package/dist/runescape/model/quest/all/TreeGnomeVillage.js.map +1 -1
  776. package/dist/runescape/model/quest/all/TribalTotem.d.ts +1 -1
  777. package/dist/runescape/model/quest/all/TribalTotem.d.ts.map +1 -1
  778. package/dist/runescape/model/quest/all/TribalTotem.js +15 -18
  779. package/dist/runescape/model/quest/all/TribalTotem.js.map +1 -1
  780. package/dist/runescape/model/quest/all/TrollRomance.d.ts.map +1 -1
  781. package/dist/runescape/model/quest/all/TrollRomance.js +5 -4
  782. package/dist/runescape/model/quest/all/TrollRomance.js.map +1 -1
  783. package/dist/runescape/model/quest/all/TrollStronghold.js +3 -3
  784. package/dist/runescape/model/quest/all/TrollStronghold.js.map +1 -1
  785. package/dist/runescape/model/quest/all/TroubledTortugans.d.ts +3 -63
  786. package/dist/runescape/model/quest/all/TroubledTortugans.d.ts.map +1 -1
  787. package/dist/runescape/model/quest/all/TroubledTortugans.js +12 -38
  788. package/dist/runescape/model/quest/all/TroubledTortugans.js.map +1 -1
  789. package/dist/runescape/model/quest/all/TwilightsPromise.d.ts.map +1 -1
  790. package/dist/runescape/model/quest/all/TwilightsPromise.js +9 -6
  791. package/dist/runescape/model/quest/all/TwilightsPromise.js.map +1 -1
  792. package/dist/runescape/model/quest/all/UndergroundPass.d.ts.map +1 -1
  793. package/dist/runescape/model/quest/all/UndergroundPass.js +14 -31
  794. package/dist/runescape/model/quest/all/UndergroundPass.js.map +1 -1
  795. package/dist/runescape/model/quest/all/ValeTotems.d.ts +3 -0
  796. package/dist/runescape/model/quest/all/ValeTotems.d.ts.map +1 -0
  797. package/dist/runescape/model/quest/all/ValeTotems.js +39 -0
  798. package/dist/runescape/model/quest/all/ValeTotems.js.map +1 -0
  799. package/dist/runescape/model/quest/all/VampyreSlayer.d.ts.map +1 -1
  800. package/dist/runescape/model/quest/all/VampyreSlayer.js +4 -10
  801. package/dist/runescape/model/quest/all/VampyreSlayer.js.map +1 -1
  802. package/dist/runescape/model/quest/all/Wanted.d.ts +1 -64
  803. package/dist/runescape/model/quest/all/Wanted.d.ts.map +1 -1
  804. package/dist/runescape/model/quest/all/Wanted.js +7 -69
  805. package/dist/runescape/model/quest/all/Wanted.js.map +1 -1
  806. package/dist/runescape/model/quest/all/Watchtower.d.ts.map +1 -1
  807. package/dist/runescape/model/quest/all/Watchtower.js +7 -11
  808. package/dist/runescape/model/quest/all/Watchtower.js.map +1 -1
  809. package/dist/runescape/model/quest/all/WaterfallQuest.d.ts.map +1 -1
  810. package/dist/runescape/model/quest/all/WaterfallQuest.js +5 -11
  811. package/dist/runescape/model/quest/all/WaterfallQuest.js.map +1 -1
  812. package/dist/runescape/model/quest/all/WhatLiesBelow.d.ts +1 -25
  813. package/dist/runescape/model/quest/all/WhatLiesBelow.d.ts.map +1 -1
  814. package/dist/runescape/model/quest/all/WhatLiesBelow.js +4 -28
  815. package/dist/runescape/model/quest/all/WhatLiesBelow.js.map +1 -1
  816. package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts.map +1 -1
  817. package/dist/runescape/model/quest/all/WhileGuthixSleeps.js +26 -6
  818. package/dist/runescape/model/quest/all/WhileGuthixSleeps.js.map +1 -1
  819. package/dist/runescape/model/quest/all/WitchesPotion.d.ts.map +1 -1
  820. package/dist/runescape/model/quest/all/WitchesPotion.js +2 -11
  821. package/dist/runescape/model/quest/all/WitchesPotion.js.map +1 -1
  822. package/dist/runescape/model/quest/all/WitchsHouse.d.ts.map +1 -1
  823. package/dist/runescape/model/quest/all/WitchsHouse.js +3 -3
  824. package/dist/runescape/model/quest/all/WitchsHouse.js.map +1 -1
  825. package/dist/runescape/model/quest/all/WitchsPotion.d.ts +1 -0
  826. package/dist/runescape/model/quest/all/WitchsPotion.js +1 -0
  827. package/dist/runescape/model/quest/all/XMarksTheSpot.js +4 -4
  828. package/dist/runescape/model/quest/all/XMarksTheSpot.js.map +1 -1
  829. package/dist/runescape/model/quest/all/ZogreFleshEaters.d.ts.map +1 -1
  830. package/dist/runescape/model/quest/all/ZogreFleshEaters.js +8 -7
  831. package/dist/runescape/model/quest/all/ZogreFleshEaters.js.map +1 -1
  832. package/dist/runescape/model/quest/all/index.d.ts +22 -8
  833. package/dist/runescape/model/quest/all/index.d.ts.map +1 -1
  834. package/dist/runescape/model/quest/all/index.js +22 -8
  835. package/dist/runescape/model/quest/all/index.js.map +1 -1
  836. package/dist/runescape/model/quest/enums.d.ts +3 -3
  837. package/dist/runescape/model/quest/enums.d.ts.map +1 -1
  838. package/dist/runescape/model/quest/enums.js +2 -2
  839. package/dist/runescape/model/quest/enums.js.map +1 -1
  840. package/dist/runescape/model/skills/SkillBoosts.d.ts +7 -0
  841. package/dist/runescape/model/skills/SkillBoosts.d.ts.map +1 -0
  842. package/dist/runescape/model/skills/SkillBoosts.js +43 -0
  843. package/dist/runescape/model/skills/SkillBoosts.js.map +1 -0
  844. package/dist/runescape/model/skills/attack/Attack.d.ts +2 -1
  845. package/dist/runescape/model/skills/attack/Attack.d.ts.map +1 -1
  846. package/dist/runescape/model/skills/attack/Attack.js.map +1 -1
  847. package/dist/runescape/model/skills/attack/AttackLevelUnlocks.d.ts +1 -0
  848. package/dist/runescape/model/skills/attack/AttackLevelUnlocks.d.ts.map +1 -1
  849. package/dist/runescape/model/skills/attack/AttackLevelUnlocks.js +23 -8
  850. package/dist/runescape/model/skills/attack/AttackLevelUnlocks.js.map +1 -1
  851. package/dist/runescape/model/slayer/Task.d.ts +1 -0
  852. package/dist/runescape/model/slayer/Task.js +1 -0
  853. package/dist/runescape/model/slayer/core/Mortifier.d.ts.map +1 -0
  854. package/dist/runescape/model/slayer/core/Mortifier.js.map +1 -0
  855. package/dist/runescape/model/slayer/core/MortimerSlayerMaster.d.ts +30 -6
  856. package/dist/runescape/model/slayer/core/MortimerSlayerMaster.d.ts.map +1 -0
  857. package/dist/runescape/model/slayer/core/MortimerSlayerMaster.js +39 -9
  858. package/dist/runescape/model/slayer/core/MortimerSlayerMaster.js.map +1 -0
  859. package/dist/runescape/model/slayer/core/SlayerMaster.d.ts +37 -7
  860. package/dist/runescape/model/slayer/core/SlayerMaster.d.ts.map +1 -1
  861. package/dist/runescape/model/slayer/core/SlayerMaster.js +69 -17
  862. package/dist/runescape/model/slayer/core/SlayerMaster.js.map +1 -1
  863. package/dist/runescape/model/slayer/core/Task.js +1 -1
  864. package/dist/runescape/model/slayer/core/eligibility.d.ts +7 -0
  865. package/dist/runescape/model/slayer/core/eligibility.d.ts.map +1 -0
  866. package/dist/runescape/model/slayer/core/eligibility.js +41 -0
  867. package/dist/runescape/model/slayer/core/eligibility.js.map +1 -0
  868. package/dist/runescape/model/slayer/core/index.d.ts +1 -1
  869. package/dist/runescape/model/slayer/core/index.d.ts.map +1 -1
  870. package/dist/runescape/model/slayer/core/index.js.map +1 -1
  871. package/dist/runescape/model/slayer/core/types.d.ts +30 -14
  872. package/dist/runescape/model/slayer/core/types.d.ts.map +1 -1
  873. package/dist/runescape/model/slayer/core/types.js +11 -24
  874. package/dist/runescape/model/slayer/core/types.js.map +1 -1
  875. package/dist/runescape/model/slayer/index.d.ts +1 -1
  876. package/dist/runescape/model/slayer/index.d.ts.map +1 -1
  877. package/dist/runescape/model/slayer/index.js.map +1 -1
  878. package/dist/runescape/model/slayer/masters/Chaeldar.d.ts +4 -1
  879. package/dist/runescape/model/slayer/masters/Chaeldar.d.ts.map +1 -1
  880. package/dist/runescape/model/slayer/masters/Chaeldar.js +12 -11
  881. package/dist/runescape/model/slayer/masters/Chaeldar.js.map +1 -1
  882. package/dist/runescape/model/slayer/masters/Duradel.d.ts +8 -2
  883. package/dist/runescape/model/slayer/masters/Duradel.d.ts.map +1 -1
  884. package/dist/runescape/model/slayer/masters/Duradel.js +25 -12
  885. package/dist/runescape/model/slayer/masters/Duradel.js.map +1 -1
  886. package/dist/runescape/model/slayer/masters/KonarQuoMaten.d.ts +1 -1
  887. package/dist/runescape/model/slayer/masters/KonarQuoMaten.d.ts.map +1 -1
  888. package/dist/runescape/model/slayer/masters/KonarQuoMaten.js +15 -10
  889. package/dist/runescape/model/slayer/masters/KonarQuoMaten.js.map +1 -1
  890. package/dist/runescape/model/slayer/masters/Krystilia.d.ts +5 -2
  891. package/dist/runescape/model/slayer/masters/Krystilia.d.ts.map +1 -1
  892. package/dist/runescape/model/slayer/masters/Krystilia.js +13 -12
  893. package/dist/runescape/model/slayer/masters/Krystilia.js.map +1 -1
  894. package/dist/runescape/model/slayer/masters/Mazchna.d.ts +4 -1
  895. package/dist/runescape/model/slayer/masters/Mazchna.d.ts.map +1 -1
  896. package/dist/runescape/model/slayer/masters/Mazchna.js +12 -11
  897. package/dist/runescape/model/slayer/masters/Mazchna.js.map +1 -1
  898. package/dist/runescape/model/slayer/masters/Mortimer.d.ts.map +1 -0
  899. package/dist/runescape/model/slayer/masters/Mortimer.js.map +1 -0
  900. package/dist/runescape/model/slayer/masters/Nieve.d.ts.map +1 -1
  901. package/dist/runescape/model/slayer/masters/Nieve.js.map +1 -1
  902. package/dist/runescape/model/slayer/masters/Spria.d.ts +3 -1
  903. package/dist/runescape/model/slayer/masters/Spria.d.ts.map +1 -1
  904. package/dist/runescape/model/slayer/masters/Spria.js +4 -11
  905. package/dist/runescape/model/slayer/masters/Spria.js.map +1 -1
  906. package/dist/runescape/model/slayer/masters/Turael.d.ts +4 -2
  907. package/dist/runescape/model/slayer/masters/Turael.d.ts.map +1 -1
  908. package/dist/runescape/model/slayer/masters/Turael.js +6 -13
  909. package/dist/runescape/model/slayer/masters/Turael.js.map +1 -1
  910. package/dist/runescape/model/slayer/masters/Vannaka.d.ts +4 -1
  911. package/dist/runescape/model/slayer/masters/Vannaka.d.ts.map +1 -1
  912. package/dist/runescape/model/slayer/masters/Vannaka.js +12 -11
  913. package/dist/runescape/model/slayer/masters/Vannaka.js.map +1 -1
  914. package/dist/runescape/model/slayer/masters/index.d.ts.map +1 -1
  915. package/dist/runescape/model/slayer/masters/index.js +1 -1
  916. package/dist/runescape/model/slayer/masters/index.js.map +1 -1
  917. package/dist/runescape/model/slayer/masters/registry.d.ts +10 -5
  918. package/dist/runescape/model/slayer/masters/registry.d.ts.map +1 -1
  919. package/dist/runescape/model/slayer/masters/registry.js +12 -6
  920. package/dist/runescape/model/slayer/masters/registry.js.map +1 -1
  921. package/dist/runescape/model/slayer/masters.d.ts.map +1 -1
  922. package/dist/runescape/model/slayer/masters.js.map +1 -1
  923. package/dist/runescape/model/slayer/rewards/SlayerUnlock.d.ts +0 -1
  924. package/dist/runescape/model/slayer/rewards/SlayerUnlock.d.ts.map +1 -1
  925. package/dist/runescape/model/slayer/rewards/SlayerUnlock.js +0 -56
  926. package/dist/runescape/model/slayer/rewards/SlayerUnlock.js.map +1 -1
  927. package/dist/runescape/model/slayer/rewards/buys.data.js +12 -12
  928. package/dist/runescape/model/slayer/rewards/buys.data.js.map +1 -1
  929. package/dist/runescape/model/slayer/rewards/extends.data.js +9 -9
  930. package/dist/runescape/model/slayer/rewards/extends.data.js.map +1 -1
  931. package/dist/runescape/model/slayer/rewards/unlocks.data.d.ts +2 -2
  932. package/dist/runescape/model/slayer/rewards/unlocks.data.d.ts.map +1 -1
  933. package/dist/runescape/model/slayer/rewards/unlocks.data.js +128 -27
  934. package/dist/runescape/model/slayer/rewards/unlocks.data.js.map +1 -1
  935. package/dist/runescape/model/slayer/task/ChaelderTasks.d.ts +1 -1
  936. package/dist/runescape/model/slayer/task/ChaelderTasks.d.ts.map +1 -1
  937. package/dist/runescape/model/slayer/task/ChaelderTasks.js +35 -35
  938. package/dist/runescape/model/slayer/task/ChaelderTasks.js.map +1 -1
  939. package/dist/runescape/model/slayer/task/DuradelTasks.d.ts +1 -1
  940. package/dist/runescape/model/slayer/task/DuradelTasks.d.ts.map +1 -1
  941. package/dist/runescape/model/slayer/task/DuradelTasks.js +44 -56
  942. package/dist/runescape/model/slayer/task/DuradelTasks.js.map +1 -1
  943. package/dist/runescape/model/slayer/task/KonarTasks.d.ts +1 -1
  944. package/dist/runescape/model/slayer/task/KonarTasks.d.ts.map +1 -1
  945. package/dist/runescape/model/slayer/task/KonarTasks.js +40 -40
  946. package/dist/runescape/model/slayer/task/KonarTasks.js.map +1 -1
  947. package/dist/runescape/model/slayer/task/KrystiliaTasks.d.ts +1 -1
  948. package/dist/runescape/model/slayer/task/KrystiliaTasks.d.ts.map +1 -1
  949. package/dist/runescape/model/slayer/task/KrystiliaTasks.js +29 -29
  950. package/dist/runescape/model/slayer/task/KrystiliaTasks.js.map +1 -1
  951. package/dist/runescape/model/slayer/task/MazchnaTasks.d.ts +1 -1
  952. package/dist/runescape/model/slayer/task/MazchnaTasks.d.ts.map +1 -1
  953. package/dist/runescape/model/slayer/task/MazchnaTasks.js +31 -35
  954. package/dist/runescape/model/slayer/task/MazchnaTasks.js.map +1 -1
  955. package/dist/runescape/model/slayer/task/MortimerTasks.d.ts.map +1 -0
  956. package/dist/runescape/model/slayer/task/MortimerTasks.js +4 -4
  957. package/dist/runescape/model/slayer/task/MortimerTasks.js.map +1 -0
  958. package/dist/runescape/model/slayer/task/NieveTasks.d.ts +1 -1
  959. package/dist/runescape/model/slayer/task/NieveTasks.d.ts.map +1 -1
  960. package/dist/runescape/model/slayer/task/NieveTasks.js +43 -58
  961. package/dist/runescape/model/slayer/task/NieveTasks.js.map +1 -1
  962. package/dist/runescape/model/slayer/task/SpriaTasks.d.ts +1 -1
  963. package/dist/runescape/model/slayer/task/SpriaTasks.d.ts.map +1 -1
  964. package/dist/runescape/model/slayer/task/SpriaTasks.js +26 -25
  965. package/dist/runescape/model/slayer/task/SpriaTasks.js.map +1 -1
  966. package/dist/runescape/model/slayer/task/TurealTasks.d.ts +1 -1
  967. package/dist/runescape/model/slayer/task/TurealTasks.d.ts.map +1 -1
  968. package/dist/runescape/model/slayer/task/TurealTasks.js +25 -25
  969. package/dist/runescape/model/slayer/task/TurealTasks.js.map +1 -1
  970. package/dist/runescape/model/slayer/task/VannakaTasks.d.ts +1 -1
  971. package/dist/runescape/model/slayer/task/VannakaTasks.d.ts.map +1 -1
  972. package/dist/runescape/model/slayer/task/VannakaTasks.js +46 -52
  973. package/dist/runescape/model/slayer/task/VannakaTasks.js.map +1 -1
  974. package/dist/runescape/model/slayer/tasks/constants.d.ts +1 -10
  975. package/dist/runescape/model/slayer/tasks/constants.d.ts.map +1 -1
  976. package/dist/runescape/model/slayer/tasks/constants.js +6 -25
  977. package/dist/runescape/model/slayer/tasks/constants.js.map +1 -1
  978. package/dist/runescape/model/slayer/tasks/index.d.ts +1 -1
  979. package/dist/runescape/model/slayer/tasks/index.d.ts.map +1 -1
  980. package/dist/runescape/model/slayer/tasks/index.js +1 -1
  981. package/dist/runescape/model/slayer/tasks/index.js.map +1 -1
  982. package/dist/runescape/tools/experience.d.ts +3 -1
  983. package/dist/runescape/tools/experience.d.ts.map +1 -1
  984. package/dist/runescape/tools/experience.js +85 -83
  985. package/dist/runescape/tools/experience.js.map +1 -1
  986. package/dist/runescape/tools/getAccount.d.ts +1 -0
  987. package/dist/runescape/tools/getAccount.js +1 -0
  988. package/dist/runescape/utils/validation.d.ts.map +1 -1
  989. package/dist/runescape/utils/validation.js +4 -3
  990. package/dist/runescape/utils/validation.js.map +1 -1
  991. package/package.json +21 -1
@@ -1,7 +1,7 @@
1
1
  import { Mortifier } from './Mortifier';
2
2
  import { SlayerMaster } from './SlayerMaster';
3
3
  import { Task } from './Task';
4
- import { SlayerMasterConfig } from './types';
4
+ import { SlayerAssignmentContext, SlayerMasterConfig } from './types';
5
5
  /**
6
6
  * Configuration for Mortimer, extending the standard SlayerMaster config with the
7
7
  * quirks that make him behave differently to every other Slayer Master.
@@ -18,6 +18,8 @@ export interface MortimerSlayerMasterConfig extends SlayerMasterConfig {
18
18
  baseTaskChoiceCount?: number;
19
19
  /** Number of task choices offered once the "Third Task Choice" Mortifier is unlocked. */
20
20
  extendedTaskChoiceCount?: number;
21
+ /** Number of Slayer tasks already completed with Mortimer (default 0). Drives which Mortifiers are unlocked. */
22
+ completedTasks?: number;
21
23
  }
22
24
  /**
23
25
  * Mortimer - a planned Slayer Master for the upcoming Wyrmscraig island.
@@ -39,7 +41,25 @@ declare class MortimerSlayerMaster extends SlayerMaster {
39
41
  blockSlotCost: number;
40
42
  baseTaskChoiceCount: number;
41
43
  extendedTaskChoiceCount: number;
44
+ /** Number of Slayer tasks completed with Mortimer so far. Mutable - drives which Mortifiers are unlocked. */
45
+ completedTasks: number;
42
46
  constructor(config: MortimerSlayerMasterConfig);
47
+ /**
48
+ * Get the number of tasks completed with Mortimer so far.
49
+ */
50
+ getCompletedTasks(): number;
51
+ /**
52
+ * Set the number of tasks completed with Mortimer, e.g. to simulate a player at a given
53
+ * point in their Mortimer progression. Clamped to a minimum of 0.
54
+ * @param {number} count - The new completed task count.
55
+ */
56
+ setCompletedTasks(count: number): void;
57
+ /**
58
+ * Increment the number of tasks completed with Mortimer, e.g. after simulating a completed task.
59
+ * @param {number} [amount] - Amount to increment by (default 1).
60
+ * @returns {number} The new completed task count.
61
+ */
62
+ incrementCompletedTasks(amount?: number): number;
43
63
  /**
44
64
  * All creatures Mortimer assigns have superior variants - this is his defining trait.
45
65
  */
@@ -52,20 +72,24 @@ declare class MortimerSlayerMaster extends SlayerMaster {
52
72
  getBlockSlots(): number;
53
73
  getBlockSlotCost(): number;
54
74
  /**
55
- * Get the Mortifiers currently unlocked for a player, based on tasks completed with Mortimer.
75
+ * Get the Mortifiers currently unlocked, based on the number of tasks completed with
76
+ * Mortimer so far (see {@link completedTasks}, {@link setCompletedTasks}).
56
77
  */
57
- getAvailableMortifiers(completedTasks: number): Mortifier[];
78
+ getAvailableMortifiers(): Mortifier[];
58
79
  /**
59
80
  * Number of task choices offered on a given visit: 2 by default, 3 once the
60
81
  * "Third Task Choice" Mortifier is unlocked at 50 completed tasks.
61
82
  */
62
- getTaskChoiceCount(completedTasks: number): number;
83
+ getTaskChoiceCount(): number;
63
84
  /**
64
85
  * Get a set of distinct, weighted-random task choices for a Mortimer visit.
65
86
  * The number of choices scales with completedTasks (see getTaskChoiceCount()).
66
87
  * Mortimer never offers the same task twice in a single set of choices.
67
- * @returns {Task[]} The offered tasks. May be shorter than requested if there aren't enough distinct unblocked tasks.
88
+ * @param {SlayerAssignmentContext} [context] - The requesting player's Slayer level, completed
89
+ * quests, and unlocked rewards; tasks the player doesn't qualify for are excluded (see
90
+ * {@link SlayerMaster.getAvailableTasks}).
91
+ * @returns {Task[]} The offered tasks. May be shorter than requested if there aren't enough distinct eligible tasks.
68
92
  */
69
- getTaskChoices(completedTasks?: number): Task[];
93
+ getTaskChoices(context?: SlayerAssignmentContext): Task[];
70
94
  }
71
95
  export { MortimerSlayerMaster };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MortimerSlayerMaster.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/MortimerSlayerMaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gHAAgH;IAChH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,cAAM,oBAAqB,SAAQ,YAAY;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,6GAA6G;IAC7G,cAAc,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,0BAA0B;IAU9C;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAItC;;;;OAIG;IACH,uBAAuB,CAAC,MAAM,GAAE,MAAU,GAAG,MAAM;IAKnD;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAIlC,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAIvB,gBAAgB,IAAI,MAAM;IAI1B;;;OAGG;IACH,sBAAsB,IAAI,SAAS,EAAE;IAIrC;;;OAGG;IACH,kBAAkB,IAAI,MAAM;IAK5B;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,IAAI,EAAE;CA6B1D;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -20,6 +20,8 @@ class MortimerSlayerMaster extends SlayerMaster {
20
20
  blockSlotCost;
21
21
  baseTaskChoiceCount;
22
22
  extendedTaskChoiceCount;
23
+ /** Number of Slayer tasks completed with Mortimer so far. Mutable - drives which Mortifiers are unlocked. */
24
+ completedTasks;
23
25
  constructor(config) {
24
26
  super(config);
25
27
  this.skipCost = config.skipCost ?? 100;
@@ -27,6 +29,30 @@ class MortimerSlayerMaster extends SlayerMaster {
27
29
  this.blockSlotCost = config.blockSlotCost ?? 120;
28
30
  this.baseTaskChoiceCount = config.baseTaskChoiceCount ?? 2;
29
31
  this.extendedTaskChoiceCount = config.extendedTaskChoiceCount ?? 3;
32
+ this.completedTasks = Math.max(0, config.completedTasks ?? 0);
33
+ }
34
+ /**
35
+ * Get the number of tasks completed with Mortimer so far.
36
+ */
37
+ getCompletedTasks() {
38
+ return this.completedTasks;
39
+ }
40
+ /**
41
+ * Set the number of tasks completed with Mortimer, e.g. to simulate a player at a given
42
+ * point in their Mortimer progression. Clamped to a minimum of 0.
43
+ * @param {number} count - The new completed task count.
44
+ */
45
+ setCompletedTasks(count) {
46
+ this.completedTasks = Math.max(0, count);
47
+ }
48
+ /**
49
+ * Increment the number of tasks completed with Mortimer, e.g. after simulating a completed task.
50
+ * @param {number} [amount] - Amount to increment by (default 1).
51
+ * @returns {number} The new completed task count.
52
+ */
53
+ incrementCompletedTasks(amount = 1) {
54
+ this.completedTasks = Math.max(0, this.completedTasks + amount);
55
+ return this.completedTasks;
30
56
  }
31
57
  /**
32
58
  * All creatures Mortimer assigns have superior variants - this is his defining trait.
@@ -50,28 +76,32 @@ class MortimerSlayerMaster extends SlayerMaster {
50
76
  return this.blockSlotCost;
51
77
  }
52
78
  /**
53
- * Get the Mortifiers currently unlocked for a player, based on tasks completed with Mortimer.
79
+ * Get the Mortifiers currently unlocked, based on the number of tasks completed with
80
+ * Mortimer so far (see {@link completedTasks}, {@link setCompletedTasks}).
54
81
  */
55
- getAvailableMortifiers(completedTasks) {
56
- return getAvailableMortifiers(completedTasks);
82
+ getAvailableMortifiers() {
83
+ return getAvailableMortifiers(this.completedTasks);
57
84
  }
58
85
  /**
59
86
  * Number of task choices offered on a given visit: 2 by default, 3 once the
60
87
  * "Third Task Choice" Mortifier is unlocked at 50 completed tasks.
61
88
  */
62
- getTaskChoiceCount(completedTasks) {
63
- const thirdChoiceUnlocked = this.getAvailableMortifiers(completedTasks).some(mortifier => mortifier.name === 'Third Task Choice');
89
+ getTaskChoiceCount() {
90
+ const thirdChoiceUnlocked = this.getAvailableMortifiers().some(mortifier => mortifier.name === 'Third Task Choice');
64
91
  return thirdChoiceUnlocked ? this.extendedTaskChoiceCount : this.baseTaskChoiceCount;
65
92
  }
66
93
  /**
67
94
  * Get a set of distinct, weighted-random task choices for a Mortimer visit.
68
95
  * The number of choices scales with completedTasks (see getTaskChoiceCount()).
69
96
  * Mortimer never offers the same task twice in a single set of choices.
70
- * @returns {Task[]} The offered tasks. May be shorter than requested if there aren't enough distinct unblocked tasks.
97
+ * @param {SlayerAssignmentContext} [context] - The requesting player's Slayer level, completed
98
+ * quests, and unlocked rewards; tasks the player doesn't qualify for are excluded (see
99
+ * {@link SlayerMaster.getAvailableTasks}).
100
+ * @returns {Task[]} The offered tasks. May be shorter than requested if there aren't enough distinct eligible tasks.
71
101
  */
72
- getTaskChoices(completedTasks = 0) {
73
- const choiceCount = this.getTaskChoiceCount(completedTasks);
74
- const remainingTasks = this.getAvailableTasks().slice();
102
+ getTaskChoices(context) {
103
+ const choiceCount = this.getTaskChoiceCount();
104
+ const remainingTasks = this.getAvailableTasks(context).slice();
75
105
  const choices = [];
76
106
  while (choices.length < choiceCount && remainingTasks.length > 0) {
77
107
  const totalWeight = remainingTasks.reduce((total, task) => total + (task.weight || 0), 0);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MortimerSlayerMaster.js","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/MortimerSlayerMaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAa,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAwB9C;;;;;;;;;;;;;GAaG;AACH,MAAM,oBAAqB,SAAQ,YAAY;IAC7C,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,aAAa,CAAS;IACtB,mBAAmB,CAAS;IAC5B,uBAAuB,CAAS;IAChC,6GAA6G;IAC7G,cAAc,CAAS;IAEvB,YAAY,MAAkC;QAC5C,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,KAAa;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,SAAiB,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,sBAAsB;QACpB,OAAO,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;QACpH,OAAO,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACvF,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAiC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAW,EAAE,CAAC;QAE3B,OAAO,OAAO,CAAC,MAAM,GAAG,WAAW,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1F,IAAI,WAAW,IAAI,CAAC;gBAAE,MAAM;YAE5B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;YACjD,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;YAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,gBAAgB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBAClD,IAAI,YAAY,IAAI,gBAAgB,EAAE,CAAC;oBACrC,aAAa,GAAG,CAAC,CAAC;oBAClB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,aAAa,KAAK,CAAC,CAAC;gBAAE,MAAM;YAEhC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5C,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Task } from './Task';
2
- import { SlayerMasterConfig } from './types';
2
+ import { SlayerAssignmentContext, SlayerMasterConfig } from './types';
3
3
  /**
4
4
  * SlayerMaster class represents a Slayer Master in the game.
5
5
  * It encapsulates the properties and methods related to a Slayer Master,
@@ -13,6 +13,7 @@ declare class SlayerMaster {
13
13
  totalWeight: number;
14
14
  location: string;
15
15
  minimumCombatLevel: number;
16
+ minimumSlayerLevel: number;
16
17
  tasks: Task[];
17
18
  wikiUrl: string;
18
19
  imageUrl: string;
@@ -40,6 +41,10 @@ declare class SlayerMaster {
40
41
  * Get the minimum combat level of the Slayer Master
41
42
  */
42
43
  getMinimumCombatLevel(): number;
44
+ /**
45
+ * Get the minimum Slayer level required to use this Slayer Master (0 = no requirement).
46
+ */
47
+ getMinimumSlayerLevel(): number;
43
48
  /**
44
49
  * Get the wiki URL of the Slayer Master
45
50
  */
@@ -51,9 +56,32 @@ declare class SlayerMaster {
51
56
  /**
52
57
  * Get a random task based on the weighting system of the tasks.
53
58
  * Tasks with higher weights have a higher chance of being selected.
59
+ * @param {SlayerAssignmentContext} [context] - The requesting player's Slayer level, completed
60
+ * quests, and unlocked rewards. When provided, tasks the player doesn't qualify for are
61
+ * excluded from both the candidate pool and the weight sum, per the task weighting formula
62
+ * (see https://oldschool.runescape.wiki/w/Slayer#Task_weighting). When omitted, only blocked
63
+ * tasks are excluded.
54
64
  * @returns {Task | null} A randomly selected task or null if no tasks are available.
55
65
  */
56
- getRandomTask(): Task | null;
66
+ getRandomTask(context?: SlayerAssignmentContext): Task | null;
67
+ /**
68
+ * Get the percentage chance of being assigned each currently available task:
69
+ * (w / S) * 100, where w is a task's weight and S is the sum of weights of every task
70
+ * the player currently qualifies for (blocked, toggled-off, and requirement-locked tasks
71
+ * excluded from S). Reference: https://oldschool.runescape.wiki/w/Slayer#Task_weighting
72
+ * @param {SlayerAssignmentContext} [context] - The requesting player's Slayer level, completed
73
+ * quests, and unlocked rewards. When omitted, only blocked tasks are excluded from S.
74
+ * @returns {Map<string, number>} Task name to percentage chance (0-100), for eligible tasks only.
75
+ */
76
+ getTaskChances(context?: SlayerAssignmentContext): Map<string, number>;
77
+ /**
78
+ * Get the percentage chance of being assigned a specific task, by name (case insensitive).
79
+ * @param {string} taskName - Name of the task to check.
80
+ * @param {SlayerAssignmentContext} [context] - See {@link getTaskChances}.
81
+ * @returns {number} The percentage chance (0-100) of being assigned this task, or 0 if the
82
+ * task doesn't exist or isn't currently available to the player.
83
+ */
84
+ getTaskChance(taskName: string, context?: SlayerAssignmentContext): number;
57
85
  /**
58
86
  * Block a task so it will no longer be returned by getRandomTask().
59
87
  * Mirrors the in-game block list: only tasks this master actually assigns can be blocked.
@@ -76,9 +104,14 @@ declare class SlayerMaster {
76
104
  */
77
105
  getBlockedTasks(): string[];
78
106
  /**
79
- * Get the tasks this master can currently assign, excluding blocked ones.
107
+ * Get the tasks this master can currently assign: excludes blocked tasks, and - when a
108
+ * player context is given - also excludes tasks whose Slayer level, combat level, skill,
109
+ * quest, or unlock requirements the player doesn't yet meet. A boosted Slayer level never
110
+ * unlocks a task; pass the player's base level.
111
+ * @param {SlayerAssignmentContext} [context] - The requesting player's stats/unlocks. When
112
+ * omitted, requirement eligibility isn't checked (only the block list is applied).
80
113
  */
81
- getAvailableTasks(): Task[];
114
+ getAvailableTasks(context?: SlayerAssignmentContext): Task[];
82
115
  /**
83
116
  * Get the total weight of tasks
84
117
  */
@@ -91,9 +124,6 @@ declare class SlayerMaster {
91
124
  * Get Tasks
92
125
  */
93
126
  getTasks(): Task[];
94
- /**
95
- * toString function
96
- */
97
127
  toString(): string;
98
128
  }
99
129
  export { SlayerMaster };
@@ -1 +1 @@
1
- {"version":3,"file":"SlayerMaster.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/SlayerMaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;GAOG;AACH,cAAM,YAAY;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAM;IACtB,kBAAkB,EAAE,MAAM,CAAK;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAM;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAG1B,OAAO,EAAE,kBAAkB;gBAErC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAyC/C;;;OAGG;IACH,oBAAoB,IAAI,MAAM;IAQ9B;;;;OAIG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAItD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,aAAa,IAAI,IAAI,GAAG,IAAI;IAoB5B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASpC;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,iBAAiB,IAAI,IAAI,EAAE;IAI3B;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAIlB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGnB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"SlayerMaster.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/SlayerMaster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEtE;;;;;;;GAOG;AACH,cAAM,YAAY;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAM;IACtB,kBAAkB,EAAE,MAAM,CAAK;IAC/B,kBAAkB,EAAE,MAAM,CAAK;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAM;IACrB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAG1B,OAAO,EAAE,kBAAkB;gBAErC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7C,QAAQ,CAAC,EAAE,MAAM;IAyCnB;;;OAGG;IACH,oBAAoB,IAAI,MAAM;IAO9B;;;;OAIG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAItD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;;;;;OASG;IACH,aAAa,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,IAAI,GAAG,IAAI;IAoB7D;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAatE;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM;IAQ1E;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASpC;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,IAAI,EAAE;IAQ5D;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAIlB,QAAQ,IAAI,MAAM;CAGnB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { meetsRequirements } from './eligibility';
1
2
  /**
2
3
  * SlayerMaster class represents a Slayer Master in the game.
3
4
  * It encapsulates the properties and methods related to a Slayer Master,
@@ -10,7 +11,8 @@ class SlayerMaster {
10
11
  name; // Name of the Slayer Master
11
12
  totalWeight; // Total weight of the tasks assigned to this Slayer Master. This is used to determine the likelihood of each task being assigned.
12
13
  location = ''; // Location of the Slayer Master (optional, can be set later if needed)
13
- minimumCombatLevel = 0; // Level requirement to access this Slayer Master (optional, can be set later if needed)
14
+ minimumCombatLevel = 0; // Minimum combat level required to use this Slayer Master
15
+ minimumSlayerLevel = 0; // Minimum Slayer level required to use this Slayer Master (0 = no requirement)
14
16
  tasks; // Array of tasks assigned to this Slayer Master. This holds the actual tasks that players can be assigned to kill.
15
17
  wikiUrl = ''; // URL for the Slayer Master (optional, can be set later if needed)
16
18
  imageUrl = ''; // URL of the Slayer Master's portrait image, sourced from the OSRS Wiki (optional, can be set later if needed)
@@ -26,6 +28,7 @@ class SlayerMaster {
26
28
  this.tasks = options.tasks;
27
29
  this.location = options.location || '';
28
30
  this.minimumCombatLevel = options.minimumCombatLevel || 0;
31
+ this.minimumSlayerLevel = options.minimumSlayerLevel || 0;
29
32
  this.wikiUrl = options.wikiUrl || '';
30
33
  this.imageUrl = options.imageUrl || '';
31
34
  this.taskPoints = options.pointsTable || {};
@@ -42,10 +45,6 @@ class SlayerMaster {
42
45
  this.taskPoints = taskPoints || {};
43
46
  this.eliteDiaryTaskPoints = eliteDiaryTaskPoints;
44
47
  }
45
- // Initialize tasks
46
- this.tasks.forEach(task => {
47
- task.weight = task.weight || 0; // Default weight to 0 if not provided
48
- });
49
48
  this.totalWeight = this.calculateTotalWeight();
50
49
  }
51
50
  /**
@@ -58,7 +57,6 @@ class SlayerMaster {
58
57
  return this.tasks.reduce((total, task) => {
59
58
  return total + (task.weight || 0); // Sum up the weights of all tasks
60
59
  }, 0);
61
- throw new Error('Method not implemented.');
62
60
  }
63
61
  /**
64
62
  * Get the points awarded for completing a task based on the interval.
@@ -80,6 +78,12 @@ class SlayerMaster {
80
78
  getMinimumCombatLevel() {
81
79
  return this.minimumCombatLevel;
82
80
  }
81
+ /**
82
+ * Get the minimum Slayer level required to use this Slayer Master (0 = no requirement).
83
+ */
84
+ getMinimumSlayerLevel() {
85
+ return this.minimumSlayerLevel;
86
+ }
83
87
  /**
84
88
  * Get the wiki URL of the Slayer Master
85
89
  */
@@ -95,12 +99,17 @@ class SlayerMaster {
95
99
  /**
96
100
  * Get a random task based on the weighting system of the tasks.
97
101
  * Tasks with higher weights have a higher chance of being selected.
102
+ * @param {SlayerAssignmentContext} [context] - The requesting player's Slayer level, completed
103
+ * quests, and unlocked rewards. When provided, tasks the player doesn't qualify for are
104
+ * excluded from both the candidate pool and the weight sum, per the task weighting formula
105
+ * (see https://oldschool.runescape.wiki/w/Slayer#Task_weighting). When omitted, only blocked
106
+ * tasks are excluded.
98
107
  * @returns {Task | null} A randomly selected task or null if no tasks are available.
99
108
  */
100
- getRandomTask() {
101
- const availableTasks = this.getAvailableTasks();
109
+ getRandomTask(context) {
110
+ const availableTasks = this.getAvailableTasks(context);
102
111
  if (availableTasks.length === 0)
103
- return null; // Return null if there are no unblocked tasks
112
+ return null; // Return null if there are no eligible tasks
104
113
  const availableWeight = availableTasks.reduce((total, task) => total + (task.weight || 0), 0);
105
114
  if (availableWeight <= 0)
106
115
  return null;
@@ -114,6 +123,41 @@ class SlayerMaster {
114
123
  }
115
124
  return null; // Fallback in case no task is selected (shouldn't happen if weights are correct)
116
125
  }
126
+ /**
127
+ * Get the percentage chance of being assigned each currently available task:
128
+ * (w / S) * 100, where w is a task's weight and S is the sum of weights of every task
129
+ * the player currently qualifies for (blocked, toggled-off, and requirement-locked tasks
130
+ * excluded from S). Reference: https://oldschool.runescape.wiki/w/Slayer#Task_weighting
131
+ * @param {SlayerAssignmentContext} [context] - The requesting player's Slayer level, completed
132
+ * quests, and unlocked rewards. When omitted, only blocked tasks are excluded from S.
133
+ * @returns {Map<string, number>} Task name to percentage chance (0-100), for eligible tasks only.
134
+ */
135
+ getTaskChances(context) {
136
+ const availableTasks = this.getAvailableTasks(context);
137
+ const availableWeight = availableTasks.reduce((total, task) => total + (task.weight || 0), 0);
138
+ const chances = new Map();
139
+ if (availableWeight <= 0)
140
+ return chances;
141
+ for (const task of availableTasks) {
142
+ chances.set(task.getName(), ((task.weight || 0) / availableWeight) * 100);
143
+ }
144
+ return chances;
145
+ }
146
+ /**
147
+ * Get the percentage chance of being assigned a specific task, by name (case insensitive).
148
+ * @param {string} taskName - Name of the task to check.
149
+ * @param {SlayerAssignmentContext} [context] - See {@link getTaskChances}.
150
+ * @returns {number} The percentage chance (0-100) of being assigned this task, or 0 if the
151
+ * task doesn't exist or isn't currently available to the player.
152
+ */
153
+ getTaskChance(taskName, context) {
154
+ const normalized = taskName.toLowerCase();
155
+ for (const [name, chance] of this.getTaskChances(context)) {
156
+ if (name.toLowerCase() === normalized)
157
+ return chance;
158
+ }
159
+ return 0;
160
+ }
117
161
  /**
118
162
  * Block a task so it will no longer be returned by getRandomTask().
119
163
  * Mirrors the in-game block list: only tasks this master actually assigns can be blocked.
@@ -149,10 +193,21 @@ class SlayerMaster {
149
193
  return Array.from(this.blockedTasks);
150
194
  }
151
195
  /**
152
- * Get the tasks this master can currently assign, excluding blocked ones.
153
- */
154
- getAvailableTasks() {
155
- return this.tasks.filter(task => !this.isTaskBlocked(task.getName()));
196
+ * Get the tasks this master can currently assign: excludes blocked tasks, and - when a
197
+ * player context is given - also excludes tasks whose Slayer level, combat level, skill,
198
+ * quest, or unlock requirements the player doesn't yet meet. A boosted Slayer level never
199
+ * unlocks a task; pass the player's base level.
200
+ * @param {SlayerAssignmentContext} [context] - The requesting player's stats/unlocks. When
201
+ * omitted, requirement eligibility isn't checked (only the block list is applied).
202
+ */
203
+ getAvailableTasks(context) {
204
+ return this.tasks.filter(task => {
205
+ if (this.isTaskBlocked(task.getName()))
206
+ return false;
207
+ if (!context)
208
+ return true;
209
+ return meetsRequirements(task.getRequirements(), context);
210
+ });
156
211
  }
157
212
  /**
158
213
  * Get the total weight of tasks
@@ -172,11 +227,8 @@ class SlayerMaster {
172
227
  getTasks() {
173
228
  return this.tasks;
174
229
  }
175
- /**
176
- * toString function
177
- */
178
230
  toString() {
179
- return `SlayerMaster :) WIP SlayerMaster:{\nname: ${this.name}\n}`;
231
+ return `SlayerMaster { name: ${this.name}, location: ${this.location}, tasks: ${this.tasks.length}, totalWeight: ${this.totalWeight} }`;
180
232
  }
181
233
  }
182
234
  export { SlayerMaster };
@@ -1 +1 @@
1
- {"version":3,"file":"SlayerMaster.js","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/SlayerMaster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SlayerMaster.js","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/SlayerMaster.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,7 @@ class Task {
68
68
  */
69
69
  static create(options) {
70
70
  // Use default weight and slayer exp if not provided
71
- const defaultWeight = 8;
71
+ const defaultWeight = 1;
72
72
  const defaultSlayerExp = 0;
73
73
  return new Task(options.name, options.quantity.min, options.quantity.max, options.requirements, options.extended?.min ?? null, options.extended?.max ?? null, options.alternatives || [], options.weight ?? defaultWeight, options.combatLevels || [], options.slayerExp ?? defaultSlayerExp, (options.locations || []), options.wildernessLevels || [], (options.bosses || []));
74
74
  }
@@ -0,0 +1,7 @@
1
+ import { Requirement } from '../../Requirement';
2
+ import { SlayerAssignmentContext } from './types';
3
+ /**
4
+ * Checks whether every requirement in the list is satisfied by the given player context.
5
+ * A task with no requirements is always eligible.
6
+ */
7
+ export declare function meetsRequirements(requirements: Requirement[], context: SlayerAssignmentContext): boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAmClD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAExG"}
@@ -0,0 +1,41 @@
1
+ import { RequirementType, } from '../../Requirement';
2
+ function toLowerCaseSet(values) {
3
+ const result = new Set();
4
+ if (!values)
5
+ return result;
6
+ for (const value of values)
7
+ result.add(value.toLowerCase());
8
+ return result;
9
+ }
10
+ /**
11
+ * Checks whether a single requirement is satisfied by the given player context.
12
+ * Requirement types that don't gate task assignment (e.g. items to bring) are
13
+ * always treated as satisfied - only Slayer level, combat level, skill level,
14
+ * quest, and Slayer unlock requirements can block an assignment.
15
+ */
16
+ function meetsRequirement(requirement, context) {
17
+ switch (requirement.type) {
18
+ case RequirementType.SlayerLevel:
19
+ return (context.slayerLevel ?? 0) >= requirement.level;
20
+ case RequirementType.CombatLevel:
21
+ return (context.combatLevel ?? 0) >= requirement.level;
22
+ case RequirementType.Level: {
23
+ const levelRequirement = requirement;
24
+ const playerLevel = context.skillLevels?.[levelRequirement.skillName] ?? 0;
25
+ return playerLevel >= levelRequirement.level;
26
+ }
27
+ case RequirementType.Quest:
28
+ return toLowerCaseSet(context.completedQuests).has(requirement.questName.toLowerCase());
29
+ case RequirementType.SlayerUnlock:
30
+ return toLowerCaseSet(context.unlockedRewards).has(requirement.name.toLowerCase());
31
+ default:
32
+ return true;
33
+ }
34
+ }
35
+ /**
36
+ * Checks whether every requirement in the list is satisfied by the given player context.
37
+ * A task with no requirements is always eligible.
38
+ */
39
+ export function meetsRequirements(requirements, context) {
40
+ return requirements.every(requirement => meetsRequirement(requirement, context));
41
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAG3B,SAAS,cAAc,CAAC,MAAyB;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,WAAwB,EAAE,OAAgC;IAClF,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,eAAe,CAAC,WAAW;YAC9B,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,IAAK,WAAsC,CAAC,KAAK,CAAC;QACrF,KAAK,eAAe,CAAC,WAAW;YAC9B,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,IAAK,WAAsC,CAAC,KAAK,CAAC;QACrF,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,MAAM,gBAAgB,GAAG,WAA+B,CAAC;YACzD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3E,OAAO,WAAW,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAC/C,CAAC;QACD,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAE,WAAgC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAChH,KAAK,eAAe,CAAC,YAAY;YAC/B,OAAO,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAE,WAAuC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAClH;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAA2B,EAAE,OAAgC;IAC7F,OAAO,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACnF,CAAC"}
@@ -10,5 +10,5 @@ export { MortimerSlayerMaster } from './MortimerSlayerMaster';
10
10
  export { SlayerMaster } from './SlayerMaster';
11
11
  export type { TaskJson } from './Task';
12
12
  export { Task } from './Task';
13
- export type { SlayerMasterConfig, TaskDefinition, TaskOptions, TaskQuantity } from './types';
13
+ export type { SlayerAssignmentContext, SlayerMasterConfig, TaskDefinition, TaskOptions, TaskQuantity } from './types';
14
14
  export { POINTS_TABLE, SlayerBoss, SlayerLocation, TASK_DEFAULTS } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChG,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Provides centralized definitions for locations, bosses, and task defaults
4
4
  */
5
5
  import { Requirement } from '../../Requirement';
6
+ import type { Task } from './Task';
6
7
  /**
7
8
  * Slayer task locations (from OSRS Wiki)
8
9
  * Reference: https://oldschool.runescape.wiki/w/Slayer
@@ -94,6 +95,24 @@ export interface TaskDefinition {
94
95
  * Builder options for creating tasks (alias for TaskDefinition)
95
96
  */
96
97
  export type TaskOptions = TaskDefinition;
98
+ /**
99
+ * Describes what a specific player currently has access to, for the purposes of
100
+ * filtering which Slayer tasks a master is allowed to assign them.
101
+ * All fields are optional; an omitted field is treated as "player has none of these"
102
+ * (e.g. no completed quests), which is the conservative/safe default for eligibility checks.
103
+ */
104
+ export interface SlayerAssignmentContext {
105
+ /** The player's base (unboosted) Slayer level. Boosts never unlock higher-tier tasks. */
106
+ slayerLevel?: number;
107
+ /** The player's combat level. */
108
+ combatLevel?: number;
109
+ /** Names of quests the player has completed (case-insensitive). */
110
+ completedQuests?: Iterable<string>;
111
+ /** Names of Slayer unlocks the player has purchased with reward points (case-insensitive). */
112
+ unlockedRewards?: Iterable<string>;
113
+ /** Base skill levels keyed by skill name, for tasks with non-Slayer skill requirements. */
114
+ skillLevels?: Partial<Record<string, number>>;
115
+ }
97
116
  /**
98
117
  * Slayer Master configuration interface
99
118
  */
@@ -104,13 +123,23 @@ export interface SlayerMasterConfig {
104
123
  /** URL of the master's portrait image, sourced from the OSRS Wiki. */
105
124
  imageUrl?: string;
106
125
  minimumCombatLevel: number;
107
- tasks: any[];
126
+ /** Minimum base Slayer level required to use this master (e.g. Duradel requires 50). */
127
+ minimumSlayerLevel?: number;
128
+ tasks: Task[];
108
129
  pointsTable: Record<number, number>;
109
130
  eliteDiaryTaskPoints?: Record<number, number>;
110
131
  }
111
132
  /**
112
133
  * Slayer points table (standard progression)
113
134
  * Reference: https://oldschool.runescape.wiki/w/Slayer_point
135
+ *
136
+ * @deprecated POINTS_TABLE.STANDARD is no longer used internally. Each master now carries its
137
+ * own per-master pointsTable following the universal 5×/15×/25×/35×/50× milestone pattern.
138
+ * This export is kept for backwards compatibility only; do not rely on it for new code.
139
+ *
140
+ * The values below reflect Mazchna's base-2 table (the lowest non-zero point master):
141
+ * every task: 2, every 10th: 10, every 50th: 30, every 100th: 50,
142
+ * every 250th: 70, every 1000th: 100.
114
143
  */
115
144
  export declare const POINTS_TABLE: {
116
145
  STANDARD: Record<number, number>;
@@ -123,16 +152,3 @@ export declare const TASK_DEFAULTS: Record<string, {
123
152
  slayerExp: number;
124
153
  weight: number;
125
154
  }>;
126
- /**
127
- * Slayer unlock costs (in points)
128
- * Reference: https://oldschool.runescape.wiki/w/Slayer#Rewards
129
- */
130
- export declare const SLAYER_UNLOCK_COSTS: Record<string, number | string>;
131
- /**
132
- * Slayer extend costs and descriptions
133
- * Reference: https://oldschool.runescape.wiki/w/Slayer#Rewards
134
- */
135
- export declare const SLAYER_EXTEND_COSTS: Record<string, {
136
- cost: number;
137
- description: string;
138
- }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/runescape/model/slayer/core/types.ts"],"names":[],"mappings":"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"}