osrs-tools 2.5.4 → 2.7.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 (1155) hide show
  1. package/README.md +25 -38
  2. package/dist/runescape/errors.js +1 -1
  3. package/dist/runescape/model/account/OsrsAccount.d.ts +6 -1
  4. package/dist/runescape/model/account/OsrsAccount.d.ts.map +1 -1
  5. package/dist/runescape/model/account/OsrsAccount.js +7 -4
  6. package/dist/runescape/model/clue/ClueScrollHelper.d.ts +24 -34
  7. package/dist/runescape/model/clue/ClueScrollHelper.d.ts.map +1 -1
  8. package/dist/runescape/model/clue/ClueScrollHelper.js +316 -119
  9. package/dist/runescape/model/npc/ComplexDropSystems.d.ts +166 -0
  10. package/dist/runescape/model/npc/ComplexDropSystems.d.ts.map +1 -0
  11. package/dist/runescape/model/npc/ComplexDropSystems.js +381 -0
  12. package/dist/runescape/model/npc/Npc.d.ts +149 -48
  13. package/dist/runescape/model/npc/Npc.d.ts.map +1 -1
  14. package/dist/runescape/model/npc/Npc.js +157 -71
  15. package/dist/runescape/model/npc/NpcDropExample.d.ts +6 -0
  16. package/dist/runescape/model/npc/NpcDropExample.d.ts.map +1 -0
  17. package/dist/runescape/model/npc/NpcDropExample.js +47 -0
  18. package/dist/runescape/model/npc/examples/AbyssalDemonExample.d.ts +13 -0
  19. package/dist/runescape/model/npc/examples/AbyssalDemonExample.d.ts.map +1 -0
  20. package/dist/runescape/model/npc/examples/AbyssalDemonExample.js +57 -0
  21. package/dist/runescape/model/npc/index.d.ts +4 -0
  22. package/dist/runescape/model/npc/index.d.ts.map +1 -0
  23. package/dist/runescape/model/npc/index.js +3 -0
  24. package/dist/runescape/model/npc/npcs/AbyssalSire.d.ts +10 -0
  25. package/dist/runescape/model/npc/npcs/AbyssalSire.d.ts.map +1 -0
  26. package/dist/runescape/model/npc/npcs/AbyssalSire.js +65 -0
  27. package/dist/runescape/model/npc/npcs/AlbinoBat.d.ts +10 -0
  28. package/dist/runescape/model/npc/npcs/AlbinoBat.d.ts.map +1 -0
  29. package/dist/runescape/model/npc/npcs/AlbinoBat.js +61 -0
  30. package/dist/runescape/model/npc/npcs/Araxxor.d.ts +11 -0
  31. package/dist/runescape/model/npc/npcs/Araxxor.d.ts.map +1 -0
  32. package/dist/runescape/model/npc/npcs/Araxxor.js +93 -0
  33. package/dist/runescape/model/npc/npcs/Araxyte.d.ts +10 -0
  34. package/dist/runescape/model/npc/npcs/Araxyte.d.ts.map +1 -0
  35. package/dist/runescape/model/npc/npcs/Araxyte.js +61 -0
  36. package/dist/runescape/model/npc/npcs/ArmouredZombie.d.ts +10 -0
  37. package/dist/runescape/model/npc/npcs/ArmouredZombie.d.ts.map +1 -0
  38. package/dist/runescape/model/npc/npcs/ArmouredZombie.js +61 -0
  39. package/dist/runescape/model/npc/npcs/Artio.d.ts +9 -0
  40. package/dist/runescape/model/npc/npcs/Artio.d.ts.map +1 -0
  41. package/dist/runescape/model/npc/npcs/Artio.js +56 -0
  42. package/dist/runescape/model/npc/npcs/BATCH_BOSS_IMPLEMENTATIONS.d.ts +186 -0
  43. package/dist/runescape/model/npc/npcs/BATCH_BOSS_IMPLEMENTATIONS.d.ts.map +1 -0
  44. package/dist/runescape/model/npc/npcs/BATCH_BOSS_IMPLEMENTATIONS.js +330 -0
  45. package/dist/runescape/model/npc/npcs/BabyBlackDragon.d.ts +10 -0
  46. package/dist/runescape/model/npc/npcs/BabyBlackDragon.d.ts.map +1 -0
  47. package/dist/runescape/model/npc/npcs/BabyBlackDragon.js +64 -0
  48. package/dist/runescape/model/npc/npcs/BabyBlueDragon.d.ts +10 -0
  49. package/dist/runescape/model/npc/npcs/BabyBlueDragon.d.ts.map +1 -0
  50. package/dist/runescape/model/npc/npcs/BabyBlueDragon.js +64 -0
  51. package/dist/runescape/model/npc/npcs/BabyGreenDragon.d.ts +10 -0
  52. package/dist/runescape/model/npc/npcs/BabyGreenDragon.d.ts.map +1 -0
  53. package/dist/runescape/model/npc/npcs/BabyGreenDragon.js +64 -0
  54. package/dist/runescape/model/npc/npcs/BasiliskKnight.d.ts +13 -0
  55. package/dist/runescape/model/npc/npcs/BasiliskKnight.d.ts.map +1 -0
  56. package/dist/runescape/model/npc/npcs/BasiliskKnight.js +110 -0
  57. package/dist/runescape/model/npc/npcs/BearCub.d.ts +10 -0
  58. package/dist/runescape/model/npc/npcs/BearCub.d.ts.map +1 -0
  59. package/dist/runescape/model/npc/npcs/BearCub.js +61 -0
  60. package/dist/runescape/model/npc/npcs/BigWolf.d.ts +10 -0
  61. package/dist/runescape/model/npc/npcs/BigWolf.d.ts.map +1 -0
  62. package/dist/runescape/model/npc/npcs/BigWolf.js +61 -0
  63. package/dist/runescape/model/npc/npcs/BlackGuard.d.ts +10 -0
  64. package/dist/runescape/model/npc/npcs/BlackGuard.d.ts.map +1 -0
  65. package/dist/runescape/model/npc/npcs/BlackGuard.js +61 -0
  66. package/dist/runescape/model/npc/npcs/BrineRat.d.ts +10 -0
  67. package/dist/runescape/model/npc/npcs/BrineRat.d.ts.map +1 -0
  68. package/dist/runescape/model/npc/npcs/BrineRat.js +61 -0
  69. package/dist/runescape/model/npc/npcs/Buffalo.d.ts +10 -0
  70. package/dist/runescape/model/npc/npcs/Buffalo.d.ts.map +1 -0
  71. package/dist/runescape/model/npc/npcs/Buffalo.js +61 -0
  72. package/dist/runescape/model/npc/npcs/Callisto.d.ts +10 -0
  73. package/dist/runescape/model/npc/npcs/Callisto.d.ts.map +1 -0
  74. package/dist/runescape/model/npc/npcs/Callisto.js +64 -0
  75. package/dist/runescape/model/npc/npcs/CalvarIon.d.ts +10 -0
  76. package/dist/runescape/model/npc/npcs/CalvarIon.d.ts.map +1 -0
  77. package/dist/runescape/model/npc/npcs/CalvarIon.js +64 -0
  78. package/dist/runescape/model/npc/npcs/CaveGoblinGuards.d.ts +10 -0
  79. package/dist/runescape/model/npc/npcs/CaveGoblinGuards.d.ts.map +1 -0
  80. package/dist/runescape/model/npc/npcs/CaveGoblinGuards.js +61 -0
  81. package/dist/runescape/model/npc/npcs/Cerberus.d.ts +11 -0
  82. package/dist/runescape/model/npc/npcs/Cerberus.d.ts.map +1 -0
  83. package/dist/runescape/model/npc/npcs/Cerberus.js +94 -0
  84. package/dist/runescape/model/npc/npcs/ChaosDwarf.d.ts +10 -0
  85. package/dist/runescape/model/npc/npcs/ChaosDwarf.d.ts.map +1 -0
  86. package/dist/runescape/model/npc/npcs/ChaosDwarf.js +61 -0
  87. package/dist/runescape/model/npc/npcs/Chicken.d.ts +11 -0
  88. package/dist/runescape/model/npc/npcs/Chicken.d.ts.map +1 -0
  89. package/dist/runescape/model/npc/npcs/Chicken.js +75 -0
  90. package/dist/runescape/model/npc/npcs/ChompyBird.d.ts +10 -0
  91. package/dist/runescape/model/npc/npcs/ChompyBird.d.ts.map +1 -0
  92. package/dist/runescape/model/npc/npcs/ChompyBird.js +64 -0
  93. package/dist/runescape/model/npc/npcs/CryptRat.d.ts +10 -0
  94. package/dist/runescape/model/npc/npcs/CryptRat.d.ts.map +1 -0
  95. package/dist/runescape/model/npc/npcs/CryptRat.js +61 -0
  96. package/dist/runescape/model/npc/npcs/DeathWing.d.ts +10 -0
  97. package/dist/runescape/model/npc/npcs/DeathWing.d.ts.map +1 -0
  98. package/dist/runescape/model/npc/npcs/DeathWing.js +61 -0
  99. package/dist/runescape/model/npc/npcs/DemonicGorilla.d.ts +12 -0
  100. package/dist/runescape/model/npc/npcs/DemonicGorilla.d.ts.map +1 -0
  101. package/dist/runescape/model/npc/npcs/DemonicGorilla.js +92 -0
  102. package/dist/runescape/model/npc/npcs/DesertLizard.d.ts +10 -0
  103. package/dist/runescape/model/npc/npcs/DesertLizard.d.ts.map +1 -0
  104. package/dist/runescape/model/npc/npcs/DesertLizard.js +61 -0
  105. package/dist/runescape/model/npc/npcs/DesertWolf.d.ts +10 -0
  106. package/dist/runescape/model/npc/npcs/DesertWolf.d.ts.map +1 -0
  107. package/dist/runescape/model/npc/npcs/DesertWolf.js +61 -0
  108. package/dist/runescape/model/npc/npcs/DeviantSpectres.d.ts +10 -0
  109. package/dist/runescape/model/npc/npcs/DeviantSpectres.d.ts.map +1 -0
  110. package/dist/runescape/model/npc/npcs/DeviantSpectres.js +64 -0
  111. package/dist/runescape/model/npc/npcs/DireWolf.d.ts +10 -0
  112. package/dist/runescape/model/npc/npcs/DireWolf.d.ts.map +1 -0
  113. package/dist/runescape/model/npc/npcs/DireWolf.js +61 -0
  114. package/dist/runescape/model/npc/npcs/DropImplementationUtils.d.ts +223 -0
  115. package/dist/runescape/model/npc/npcs/DropImplementationUtils.d.ts.map +1 -0
  116. package/dist/runescape/model/npc/npcs/DropImplementationUtils.js +364 -0
  117. package/dist/runescape/model/npc/npcs/Duck.d.ts +10 -0
  118. package/dist/runescape/model/npc/npcs/Duck.d.ts.map +1 -0
  119. package/dist/runescape/model/npc/npcs/Duck.js +64 -0
  120. package/dist/runescape/model/npc/npcs/Duckling.d.ts +10 -0
  121. package/dist/runescape/model/npc/npcs/Duckling.d.ts.map +1 -0
  122. package/dist/runescape/model/npc/npcs/Duckling.js +61 -0
  123. package/dist/runescape/model/npc/npcs/DungeonRat.d.ts +10 -0
  124. package/dist/runescape/model/npc/npcs/DungeonRat.d.ts.map +1 -0
  125. package/dist/runescape/model/npc/npcs/DungeonRat.js +61 -0
  126. package/dist/runescape/model/npc/npcs/DwarfGangMember.d.ts +10 -0
  127. package/dist/runescape/model/npc/npcs/DwarfGangMember.d.ts.map +1 -0
  128. package/dist/runescape/model/npc/npcs/DwarfGangMember.js +61 -0
  129. package/dist/runescape/model/npc/npcs/ForgottenSoul.d.ts +10 -0
  130. package/dist/runescape/model/npc/npcs/ForgottenSoul.d.ts.map +1 -0
  131. package/dist/runescape/model/npc/npcs/ForgottenSoul.js +61 -0
  132. package/dist/runescape/model/npc/npcs/GiantBat.d.ts +10 -0
  133. package/dist/runescape/model/npc/npcs/GiantBat.d.ts.map +1 -0
  134. package/dist/runescape/model/npc/npcs/GiantBat.js +61 -0
  135. package/dist/runescape/model/npc/npcs/GiantCryptRat.d.ts +9 -0
  136. package/dist/runescape/model/npc/npcs/GiantCryptRat.d.ts.map +1 -0
  137. package/dist/runescape/model/npc/npcs/GiantCryptRat.js +62 -0
  138. package/dist/runescape/model/npc/npcs/GiantCryptSpider.d.ts +8 -0
  139. package/dist/runescape/model/npc/npcs/GiantCryptSpider.d.ts.map +1 -0
  140. package/dist/runescape/model/npc/npcs/GiantCryptSpider.js +66 -0
  141. package/dist/runescape/model/npc/npcs/GiantRat.d.ts +10 -0
  142. package/dist/runescape/model/npc/npcs/GiantRat.d.ts.map +1 -0
  143. package/dist/runescape/model/npc/npcs/GiantRat.js +61 -0
  144. package/dist/runescape/model/npc/npcs/GiantSpider.d.ts +10 -0
  145. package/dist/runescape/model/npc/npcs/GiantSpider.d.ts.map +1 -0
  146. package/dist/runescape/model/npc/npcs/GiantSpider.js +61 -0
  147. package/dist/runescape/model/npc/npcs/GrimyLizard.d.ts +10 -0
  148. package/dist/runescape/model/npc/npcs/GrimyLizard.d.ts.map +1 -0
  149. package/dist/runescape/model/npc/npcs/GrimyLizard.js +61 -0
  150. package/dist/runescape/model/npc/npcs/GrizzlyBear.d.ts +10 -0
  151. package/dist/runescape/model/npc/npcs/GrizzlyBear.d.ts.map +1 -0
  152. package/dist/runescape/model/npc/npcs/GrizzlyBear.js +61 -0
  153. package/dist/runescape/model/npc/npcs/GrizzlyBearCub.d.ts +8 -0
  154. package/dist/runescape/model/npc/npcs/GrizzlyBearCub.d.ts.map +1 -0
  155. package/dist/runescape/model/npc/npcs/GrizzlyBearCub.js +66 -0
  156. package/dist/runescape/model/npc/npcs/GuardDog.d.ts +10 -0
  157. package/dist/runescape/model/npc/npcs/GuardDog.d.ts.map +1 -0
  158. package/dist/runescape/model/npc/npcs/GuardDog.js +61 -0
  159. package/dist/runescape/model/npc/npcs/Hans.d.ts +9 -5
  160. package/dist/runescape/model/npc/npcs/Hans.d.ts.map +1 -1
  161. package/dist/runescape/model/npc/npcs/Hans.js +56 -21
  162. package/dist/runescape/model/npc/npcs/HellRatBehemoth.d.ts +8 -0
  163. package/dist/runescape/model/npc/npcs/HellRatBehemoth.d.ts.map +1 -0
  164. package/dist/runescape/model/npc/npcs/HellRatBehemoth.js +66 -0
  165. package/dist/runescape/model/npc/npcs/IMPLEMENTATION_EXAMPLES.d.ts +143 -0
  166. package/dist/runescape/model/npc/npcs/IMPLEMENTATION_EXAMPLES.d.ts.map +1 -0
  167. package/dist/runescape/model/npc/npcs/IMPLEMENTATION_EXAMPLES.js +218 -0
  168. package/dist/runescape/model/npc/npcs/IceTroll.d.ts +9 -0
  169. package/dist/runescape/model/npc/npcs/IceTroll.d.ts.map +1 -0
  170. package/dist/runescape/model/npc/npcs/IceTroll.js +56 -0
  171. package/dist/runescape/model/npc/npcs/IceWolf.d.ts +8 -0
  172. package/dist/runescape/model/npc/npcs/IceWolf.d.ts.map +1 -0
  173. package/dist/runescape/model/npc/npcs/IceWolf.js +66 -0
  174. package/dist/runescape/model/npc/npcs/Jackal.d.ts +8 -0
  175. package/dist/runescape/model/npc/npcs/Jackal.d.ts.map +1 -0
  176. package/dist/runescape/model/npc/npcs/Jackal.js +66 -0
  177. package/dist/runescape/model/npc/npcs/JungleWolf.d.ts +8 -0
  178. package/dist/runescape/model/npc/npcs/JungleWolf.d.ts.map +1 -0
  179. package/dist/runescape/model/npc/npcs/JungleWolf.js +66 -0
  180. package/dist/runescape/model/npc/npcs/KalphiteGuardian.d.ts +9 -0
  181. package/dist/runescape/model/npc/npcs/KalphiteGuardian.d.ts.map +1 -0
  182. package/dist/runescape/model/npc/npcs/KalphiteGuardian.js +56 -0
  183. package/dist/runescape/model/npc/npcs/KalphiteQueen.d.ts +14 -0
  184. package/dist/runescape/model/npc/npcs/KalphiteQueen.d.ts.map +1 -0
  185. package/dist/runescape/model/npc/npcs/KalphiteQueen.js +99 -0
  186. package/dist/runescape/model/npc/npcs/KalphiteSoldier.d.ts +8 -0
  187. package/dist/runescape/model/npc/npcs/KalphiteSoldier.d.ts.map +1 -0
  188. package/dist/runescape/model/npc/npcs/KalphiteSoldier.js +66 -0
  189. package/dist/runescape/model/npc/npcs/KalphiteWorker.d.ts +8 -0
  190. package/dist/runescape/model/npc/npcs/KalphiteWorker.d.ts.map +1 -0
  191. package/dist/runescape/model/npc/npcs/KalphiteWorker.js +66 -0
  192. package/dist/runescape/model/npc/npcs/KaramjanMonkey.d.ts +8 -0
  193. package/dist/runescape/model/npc/npcs/KaramjanMonkey.d.ts.map +1 -0
  194. package/dist/runescape/model/npc/npcs/KaramjanMonkey.js +66 -0
  195. package/dist/runescape/model/npc/npcs/KingBlackDragon.d.ts +11 -0
  196. package/dist/runescape/model/npc/npcs/KingBlackDragon.d.ts.map +1 -0
  197. package/dist/runescape/model/npc/npcs/KingBlackDragon.js +98 -0
  198. package/dist/runescape/model/npc/npcs/KingScorpion.d.ts +8 -0
  199. package/dist/runescape/model/npc/npcs/KingScorpion.d.ts.map +1 -0
  200. package/dist/runescape/model/npc/npcs/KingScorpion.js +66 -0
  201. package/dist/runescape/model/npc/npcs/Kraken.d.ts +11 -0
  202. package/dist/runescape/model/npc/npcs/Kraken.d.ts.map +1 -0
  203. package/dist/runescape/model/npc/npcs/Kraken.js +91 -0
  204. package/dist/runescape/model/npc/npcs/Lobstrosity.d.ts +9 -0
  205. package/dist/runescape/model/npc/npcs/Lobstrosity.d.ts.map +1 -0
  206. package/dist/runescape/model/npc/npcs/Lobstrosity.js +59 -0
  207. package/dist/runescape/model/npc/npcs/Man.d.ts +3 -2
  208. package/dist/runescape/model/npc/npcs/Man.d.ts.map +1 -1
  209. package/dist/runescape/model/npc/npcs/Man.js +93 -60
  210. package/dist/runescape/model/npc/npcs/ManiacalMonkey.d.ts +8 -0
  211. package/dist/runescape/model/npc/npcs/ManiacalMonkey.d.ts.map +1 -0
  212. package/dist/runescape/model/npc/npcs/ManiacalMonkey.js +66 -0
  213. package/dist/runescape/model/npc/npcs/MonkeyArcher.d.ts +8 -0
  214. package/dist/runescape/model/npc/npcs/MonkeyArcher.d.ts.map +1 -0
  215. package/dist/runescape/model/npc/npcs/MonkeyArcher.js +66 -0
  216. package/dist/runescape/model/npc/npcs/MonkeyGuard.d.ts +8 -0
  217. package/dist/runescape/model/npc/npcs/MonkeyGuard.d.ts.map +1 -0
  218. package/dist/runescape/model/npc/npcs/MonkeyGuard.js +66 -0
  219. package/dist/runescape/model/npc/npcs/MonkeyZombie.d.ts +8 -0
  220. package/dist/runescape/model/npc/npcs/MonkeyZombie.d.ts.map +1 -0
  221. package/dist/runescape/model/npc/npcs/MonkeyZombie.js +66 -0
  222. package/dist/runescape/model/npc/npcs/MountainTroll.d.ts +8 -0
  223. package/dist/runescape/model/npc/npcs/MountainTroll.d.ts.map +1 -0
  224. package/dist/runescape/model/npc/npcs/MountainTroll.js +66 -0
  225. package/dist/runescape/model/npc/npcs/MountedTerrorbird.d.ts +8 -0
  226. package/dist/runescape/model/npc/npcs/MountedTerrorbird.d.ts.map +1 -0
  227. package/dist/runescape/model/npc/npcs/MountedTerrorbird.js +66 -0
  228. package/dist/runescape/model/npc/npcs/MutatedBloodveld.d.ts +12 -0
  229. package/dist/runescape/model/npc/npcs/MutatedBloodveld.d.ts.map +1 -0
  230. package/dist/runescape/model/npc/npcs/MutatedBloodveld.js +94 -0
  231. package/dist/runescape/model/npc/npcs/Nechryarch.d.ts +12 -0
  232. package/dist/runescape/model/npc/npcs/Nechryarch.d.ts.map +1 -0
  233. package/dist/runescape/model/npc/npcs/Nechryarch.js +96 -0
  234. package/dist/runescape/model/npc/npcs/OgresShaman.d.ts +8 -0
  235. package/dist/runescape/model/npc/npcs/OgresShaman.d.ts.map +1 -0
  236. package/dist/runescape/model/npc/npcs/OgresShaman.js +66 -0
  237. package/dist/runescape/model/npc/npcs/OgresWarrior.d.ts +8 -0
  238. package/dist/runescape/model/npc/npcs/OgresWarrior.d.ts.map +1 -0
  239. package/dist/runescape/model/npc/npcs/OgresWarrior.js +66 -0
  240. package/dist/runescape/model/npc/npcs/PeerTheSeer.d.ts +6 -6
  241. package/dist/runescape/model/npc/npcs/PeerTheSeer.d.ts.map +1 -1
  242. package/dist/runescape/model/npc/npcs/PeerTheSeer.js +57 -50
  243. package/dist/runescape/model/npc/npcs/Penguin.d.ts +10 -0
  244. package/dist/runescape/model/npc/npcs/Penguin.d.ts.map +1 -0
  245. package/dist/runescape/model/npc/npcs/Penguin.js +63 -0
  246. package/dist/runescape/model/npc/npcs/PitScorpion.d.ts +8 -0
  247. package/dist/runescape/model/npc/npcs/PitScorpion.d.ts.map +1 -0
  248. package/dist/runescape/model/npc/npcs/PitScorpion.js +66 -0
  249. package/dist/runescape/model/npc/npcs/PoisonScorpion.d.ts +8 -0
  250. package/dist/runescape/model/npc/npcs/PoisonScorpion.d.ts.map +1 -0
  251. package/dist/runescape/model/npc/npcs/PoisonScorpion.js +66 -0
  252. package/dist/runescape/model/npc/npcs/QUICK_REFERENCE.d.ts +140 -0
  253. package/dist/runescape/model/npc/npcs/QUICK_REFERENCE.d.ts.map +1 -0
  254. package/dist/runescape/model/npc/npcs/QUICK_REFERENCE.js +207 -0
  255. package/dist/runescape/model/npc/npcs/ReanimatedBear.d.ts +8 -0
  256. package/dist/runescape/model/npc/npcs/ReanimatedBear.d.ts.map +1 -0
  257. package/dist/runescape/model/npc/npcs/ReanimatedBear.js +66 -0
  258. package/dist/runescape/model/npc/npcs/ReanimatedDog.d.ts +8 -0
  259. package/dist/runescape/model/npc/npcs/ReanimatedDog.d.ts.map +1 -0
  260. package/dist/runescape/model/npc/npcs/ReanimatedDog.js +66 -0
  261. package/dist/runescape/model/npc/npcs/ReanimatedScorpion.d.ts +8 -0
  262. package/dist/runescape/model/npc/npcs/ReanimatedScorpion.d.ts.map +1 -0
  263. package/dist/runescape/model/npc/npcs/ReanimatedScorpion.js +66 -0
  264. package/dist/runescape/model/npc/npcs/Revenants.d.ts +8 -0
  265. package/dist/runescape/model/npc/npcs/Revenants.d.ts.map +1 -0
  266. package/dist/runescape/model/npc/npcs/Revenants.js +66 -0
  267. package/dist/runescape/model/npc/npcs/Rooster.d.ts +10 -0
  268. package/dist/runescape/model/npc/npcs/Rooster.d.ts.map +1 -0
  269. package/dist/runescape/model/npc/npcs/Rooster.js +65 -0
  270. package/dist/runescape/model/npc/npcs/Sarachnis.d.ts +9 -0
  271. package/dist/runescape/model/npc/npcs/Sarachnis.d.ts.map +1 -0
  272. package/dist/runescape/model/npc/npcs/Sarachnis.js +64 -0
  273. package/dist/runescape/model/npc/npcs/Scorpia.d.ts +9 -0
  274. package/dist/runescape/model/npc/npcs/Scorpia.d.ts.map +1 -0
  275. package/dist/runescape/model/npc/npcs/Scorpia.js +66 -0
  276. package/dist/runescape/model/npc/npcs/ScorpiasGuardian.d.ts +9 -0
  277. package/dist/runescape/model/npc/npcs/ScorpiasGuardian.d.ts.map +1 -0
  278. package/dist/runescape/model/npc/npcs/ScorpiasGuardian.js +62 -0
  279. package/dist/runescape/model/npc/npcs/ScorpiasOffspring.d.ts +9 -0
  280. package/dist/runescape/model/npc/npcs/ScorpiasOffspring.d.ts.map +1 -0
  281. package/dist/runescape/model/npc/npcs/ScorpiasOffspring.js +56 -0
  282. package/dist/runescape/model/npc/npcs/Scurrius.d.ts +8 -0
  283. package/dist/runescape/model/npc/npcs/Scurrius.d.ts.map +1 -0
  284. package/dist/runescape/model/npc/npcs/Scurrius.js +66 -0
  285. package/dist/runescape/model/npc/npcs/Seagull.d.ts +10 -0
  286. package/dist/runescape/model/npc/npcs/Seagull.d.ts.map +1 -0
  287. package/dist/runescape/model/npc/npcs/Seagull.js +63 -0
  288. package/dist/runescape/model/npc/npcs/SergeantGrimspike.d.ts +8 -0
  289. package/dist/runescape/model/npc/npcs/SergeantGrimspike.d.ts.map +1 -0
  290. package/dist/runescape/model/npc/npcs/SergeantGrimspike.js +66 -0
  291. package/dist/runescape/model/npc/npcs/SergeantSteelwill.d.ts +8 -0
  292. package/dist/runescape/model/npc/npcs/SergeantSteelwill.d.ts.map +1 -0
  293. package/dist/runescape/model/npc/npcs/SergeantSteelwill.js +66 -0
  294. package/dist/runescape/model/npc/npcs/SergeantStrongstack.d.ts +8 -0
  295. package/dist/runescape/model/npc/npcs/SergeantStrongstack.d.ts.map +1 -0
  296. package/dist/runescape/model/npc/npcs/SergeantStrongstack.js +66 -0
  297. package/dist/runescape/model/npc/npcs/ShadowSpider.d.ts +8 -0
  298. package/dist/runescape/model/npc/npcs/ShadowSpider.d.ts.map +1 -0
  299. package/dist/runescape/model/npc/npcs/ShadowSpider.js +66 -0
  300. package/dist/runescape/model/npc/npcs/ShayziernCryptsSkeletons.d.ts +8 -0
  301. package/dist/runescape/model/npc/npcs/ShayziernCryptsSkeletons.d.ts.map +1 -0
  302. package/dist/runescape/model/npc/npcs/ShayziernCryptsSkeletons.js +66 -0
  303. package/dist/runescape/model/npc/npcs/SkeletonFremennik.d.ts +8 -0
  304. package/dist/runescape/model/npc/npcs/SkeletonFremennik.d.ts.map +1 -0
  305. package/dist/runescape/model/npc/npcs/SkeletonFremennik.js +66 -0
  306. package/dist/runescape/model/npc/npcs/SkeletonMage.d.ts +8 -0
  307. package/dist/runescape/model/npc/npcs/SkeletonMage.d.ts.map +1 -0
  308. package/dist/runescape/model/npc/npcs/SkeletonMage.js +66 -0
  309. package/dist/runescape/model/npc/npcs/SkeletonsInTheStrongholdOfSecurityAndAncientCavern.d.ts +8 -0
  310. package/dist/runescape/model/npc/npcs/SkeletonsInTheStrongholdOfSecurityAndAncientCavern.d.ts.map +1 -0
  311. package/dist/runescape/model/npc/npcs/SkeletonsInTheStrongholdOfSecurityAndAncientCavern.js +66 -0
  312. package/dist/runescape/model/npc/npcs/Skogre.d.ts +8 -0
  313. package/dist/runescape/model/npc/npcs/Skogre.d.ts.map +1 -0
  314. package/dist/runescape/model/npc/npcs/Skogre.js +66 -0
  315. package/dist/runescape/model/npc/npcs/Skotizo.d.ts +8 -0
  316. package/dist/runescape/model/npc/npcs/Skotizo.d.ts.map +1 -0
  317. package/dist/runescape/model/npc/npcs/Skotizo.js +66 -0
  318. package/dist/runescape/model/npc/npcs/SmallLizard.d.ts +8 -0
  319. package/dist/runescape/model/npc/npcs/SmallLizard.d.ts.map +1 -0
  320. package/dist/runescape/model/npc/npcs/SmallLizard.js +66 -0
  321. package/dist/runescape/model/npc/npcs/Spindel.d.ts +8 -0
  322. package/dist/runescape/model/npc/npcs/Spindel.d.ts.map +1 -0
  323. package/dist/runescape/model/npc/npcs/Spindel.js +68 -0
  324. package/dist/runescape/model/npc/npcs/SpiritualMage.d.ts +8 -0
  325. package/dist/runescape/model/npc/npcs/SpiritualMage.d.ts.map +1 -0
  326. package/dist/runescape/model/npc/npcs/SpiritualMage.js +66 -0
  327. package/dist/runescape/model/npc/npcs/SpiritualRanger.d.ts +8 -0
  328. package/dist/runescape/model/npc/npcs/SpiritualRanger.d.ts.map +1 -0
  329. package/dist/runescape/model/npc/npcs/SpiritualRanger.js +66 -0
  330. package/dist/runescape/model/npc/npcs/SpiritualWarrior.d.ts +8 -0
  331. package/dist/runescape/model/npc/npcs/SpiritualWarrior.d.ts.map +1 -0
  332. package/dist/runescape/model/npc/npcs/SpiritualWarrior.js +66 -0
  333. package/dist/runescape/model/npc/npcs/SulphurLizard.d.ts +8 -0
  334. package/dist/runescape/model/npc/npcs/SulphurLizard.d.ts.map +1 -0
  335. package/dist/runescape/model/npc/npcs/SulphurLizard.js +66 -0
  336. package/dist/runescape/model/npc/npcs/TempleSpider.d.ts +8 -0
  337. package/dist/runescape/model/npc/npcs/TempleSpider.d.ts.map +1 -0
  338. package/dist/runescape/model/npc/npcs/TempleSpider.js +66 -0
  339. package/dist/runescape/model/npc/npcs/Terrorbird.d.ts +9 -0
  340. package/dist/runescape/model/npc/npcs/Terrorbird.d.ts.map +1 -0
  341. package/dist/runescape/model/npc/npcs/Terrorbird.js +62 -0
  342. package/dist/runescape/model/npc/npcs/ThermonuclearSmokDevil.d.ts +9 -0
  343. package/dist/runescape/model/npc/npcs/ThermonuclearSmokDevil.d.ts.map +1 -0
  344. package/dist/runescape/model/npc/npcs/ThermonuclearSmokDevil.js +66 -0
  345. package/dist/runescape/model/npc/npcs/ThrowerTroll.d.ts +8 -0
  346. package/dist/runescape/model/npc/npcs/ThrowerTroll.d.ts.map +1 -0
  347. package/dist/runescape/model/npc/npcs/ThrowerTroll.js +66 -0
  348. package/dist/runescape/model/npc/npcs/TorturedGorilla.d.ts +9 -0
  349. package/dist/runescape/model/npc/npcs/TorturedGorilla.d.ts.map +1 -0
  350. package/dist/runescape/model/npc/npcs/TorturedGorilla.js +62 -0
  351. package/dist/runescape/model/npc/npcs/TorturedSoul.d.ts +9 -0
  352. package/dist/runescape/model/npc/npcs/TorturedSoul.d.ts.map +1 -0
  353. package/dist/runescape/model/npc/npcs/TorturedSoul.js +62 -0
  354. package/dist/runescape/model/npc/npcs/TwistedBanshee.d.ts +8 -0
  355. package/dist/runescape/model/npc/npcs/TwistedBanshee.d.ts.map +1 -0
  356. package/dist/runescape/model/npc/npcs/TwistedBanshee.js +66 -0
  357. package/dist/runescape/model/npc/npcs/TzHaarHur.d.ts +10 -0
  358. package/dist/runescape/model/npc/npcs/TzHaarHur.d.ts.map +1 -0
  359. package/dist/runescape/model/npc/npcs/TzHaarHur.js +64 -0
  360. package/dist/runescape/model/npc/npcs/TzHaarKet.d.ts +10 -0
  361. package/dist/runescape/model/npc/npcs/TzHaarKet.d.ts.map +1 -0
  362. package/dist/runescape/model/npc/npcs/TzHaarKet.js +64 -0
  363. package/dist/runescape/model/npc/npcs/TzHaarMej.d.ts +10 -0
  364. package/dist/runescape/model/npc/npcs/TzHaarMej.d.ts.map +1 -0
  365. package/dist/runescape/model/npc/npcs/TzHaarMej.js +64 -0
  366. package/dist/runescape/model/npc/npcs/TzHaarXil.d.ts +10 -0
  367. package/dist/runescape/model/npc/npcs/TzHaarXil.d.ts.map +1 -0
  368. package/dist/runescape/model/npc/npcs/TzHaarXil.js +64 -0
  369. package/dist/runescape/model/npc/npcs/UndeadChicken.d.ts +9 -0
  370. package/dist/runescape/model/npc/npcs/UndeadChicken.d.ts.map +1 -0
  371. package/dist/runescape/model/npc/npcs/UndeadChicken.js +59 -0
  372. package/dist/runescape/model/npc/npcs/UndeadCow.d.ts +8 -0
  373. package/dist/runescape/model/npc/npcs/UndeadCow.d.ts.map +1 -0
  374. package/dist/runescape/model/npc/npcs/UndeadCow.js +66 -0
  375. package/dist/runescape/model/npc/npcs/UndeadDruid.d.ts +9 -0
  376. package/dist/runescape/model/npc/npcs/UndeadDruid.d.ts.map +1 -0
  377. package/dist/runescape/model/npc/npcs/UndeadDruid.js +62 -0
  378. package/dist/runescape/model/npc/npcs/UndeadOne.d.ts +8 -0
  379. package/dist/runescape/model/npc/npcs/UndeadOne.d.ts.map +1 -0
  380. package/dist/runescape/model/npc/npcs/UndeadOne.js +66 -0
  381. package/dist/runescape/model/npc/npcs/Venenatis.d.ts +9 -0
  382. package/dist/runescape/model/npc/npcs/Venenatis.d.ts.map +1 -0
  383. package/dist/runescape/model/npc/npcs/Venenatis.js +62 -0
  384. package/dist/runescape/model/npc/npcs/VetIon.d.ts +9 -0
  385. package/dist/runescape/model/npc/npcs/VetIon.d.ts.map +1 -0
  386. package/dist/runescape/model/npc/npcs/VetIon.js +56 -0
  387. package/dist/runescape/model/npc/npcs/Vorkath.d.ts +12 -0
  388. package/dist/runescape/model/npc/npcs/Vorkath.d.ts.map +1 -0
  389. package/dist/runescape/model/npc/npcs/Vorkath.js +104 -0
  390. package/dist/runescape/model/npc/npcs/WhiteWolf.d.ts +8 -0
  391. package/dist/runescape/model/npc/npcs/WhiteWolf.d.ts.map +1 -0
  392. package/dist/runescape/model/npc/npcs/WhiteWolf.js +66 -0
  393. package/dist/runescape/model/npc/npcs/WildDog.d.ts +9 -0
  394. package/dist/runescape/model/npc/npcs/WildDog.d.ts.map +1 -0
  395. package/dist/runescape/model/npc/npcs/WildDog.js +56 -0
  396. package/dist/runescape/model/npc/npcs/Zogre.d.ts +9 -0
  397. package/dist/runescape/model/npc/npcs/Zogre.d.ts.map +1 -0
  398. package/dist/runescape/model/npc/npcs/Zogre.js +55 -0
  399. package/dist/runescape/model/npc/npcs/ZombiePirate.d.ts +9 -0
  400. package/dist/runescape/model/npc/npcs/ZombiePirate.d.ts.map +1 -0
  401. package/dist/runescape/model/npc/npcs/ZombiePirate.js +62 -0
  402. package/dist/runescape/model/npc/npcs/ZombieRat.d.ts +9 -0
  403. package/dist/runescape/model/npc/npcs/ZombieRat.d.ts.map +1 -0
  404. package/dist/runescape/model/npc/npcs/ZombieRat.js +62 -0
  405. package/dist/runescape/model/quest/QuestList.d.ts.map +1 -1
  406. package/dist/runescape/model/quest/QuestList.js +7 -2
  407. package/dist/runescape/model/quest/QuestTool.d.ts.map +1 -1
  408. package/dist/runescape/model/quest/QuestTool.js +102 -4
  409. package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts +4 -0
  410. package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts.map +1 -0
  411. package/dist/runescape/model/quest/all/ANightAtTheTheatre.js +4 -0
  412. package/dist/runescape/model/quest/all/AtFirstLight.d.ts +4 -0
  413. package/dist/runescape/model/quest/all/AtFirstLight.d.ts.map +1 -0
  414. package/dist/runescape/model/quest/all/AtFirstLight.js +4 -0
  415. package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts +4 -0
  416. package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts.map +1 -0
  417. package/dist/runescape/model/quest/all/BeneathCursedSands.js +4 -0
  418. package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts +4 -0
  419. package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts.map +1 -0
  420. package/dist/runescape/model/quest/all/ChildrenOfTheSun.js +4 -0
  421. package/dist/runescape/model/quest/all/ColdWar.js +1 -1
  422. package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts +4 -0
  423. package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts.map +1 -0
  424. package/dist/runescape/model/quest/all/DeathOnTheIsle.js +4 -0
  425. package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts +4 -0
  426. package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts.map +1 -0
  427. package/dist/runescape/model/quest/all/DefenderOfVarrock.js +4 -0
  428. package/dist/runescape/model/quest/all/DesertTreasureI.d.ts +4 -0
  429. package/dist/runescape/model/quest/all/DesertTreasureI.d.ts.map +1 -0
  430. package/dist/runescape/model/quest/all/DesertTreasureI.js +4 -0
  431. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts +4 -0
  432. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts.map +1 -0
  433. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js +4 -0
  434. package/dist/runescape/model/quest/all/DragonSlayerI.js +1 -1
  435. package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts +4 -0
  436. package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts.map +1 -0
  437. package/dist/runescape/model/quest/all/ErnestTheChicken.js +38 -0
  438. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts +4 -0
  439. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts.map +1 -0
  440. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js +4 -0
  441. package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts +4 -0
  442. package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts.map +1 -0
  443. package/dist/runescape/model/quest/all/LandOfTheGoblins.js +4 -0
  444. package/dist/runescape/model/quest/all/LearningTheRopes.d.ts +4 -0
  445. package/dist/runescape/model/quest/all/LearningTheRopes.d.ts.map +1 -0
  446. package/dist/runescape/model/quest/all/LearningTheRopes.js +37 -0
  447. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts +4 -0
  448. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts.map +1 -0
  449. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js +25 -0
  450. package/dist/runescape/model/quest/all/MisthalinMystery.d.ts +4 -0
  451. package/dist/runescape/model/quest/all/MisthalinMystery.d.ts.map +1 -0
  452. package/dist/runescape/model/quest/all/MisthalinMystery.js +4 -0
  453. package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts +4 -0
  454. package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts.map +1 -0
  455. package/dist/runescape/model/quest/all/MonkeyMadnessI.js +4 -0
  456. package/dist/runescape/model/quest/all/MountainDaughter.d.ts +4 -0
  457. package/dist/runescape/model/quest/all/MountainDaughter.d.ts.map +1 -0
  458. package/dist/runescape/model/quest/all/MountainDaughter.js +25 -0
  459. package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts +4 -0
  460. package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts.map +1 -0
  461. package/dist/runescape/model/quest/all/MourningsEndPartI.js +4 -0
  462. package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts +4 -0
  463. package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts.map +1 -0
  464. package/dist/runescape/model/quest/all/MourningsEndPartII.js +4 -0
  465. package/dist/runescape/model/quest/all/PerilousMoons.d.ts +4 -0
  466. package/dist/runescape/model/quest/all/PerilousMoons.d.ts.map +1 -0
  467. package/dist/runescape/model/quest/all/PerilousMoons.js +4 -0
  468. package/dist/runescape/model/quest/all/PiratesTreasure.d.ts +4 -0
  469. package/dist/runescape/model/quest/all/PiratesTreasure.d.ts.map +1 -0
  470. package/dist/runescape/model/quest/all/PiratesTreasure.js +4 -0
  471. package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts +4 -0
  472. package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts.map +1 -0
  473. package/dist/runescape/model/quest/all/PrinceAliRescue.js +4 -0
  474. package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts +4 -0
  475. package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts.map +1 -0
  476. package/dist/runescape/model/quest/all/RagAndBoneManI.js +4 -0
  477. package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts +4 -0
  478. package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts.map +1 -0
  479. package/dist/runescape/model/quest/all/RagAndBoneManII.js +4 -0
  480. package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts +4 -0
  481. package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts.map +1 -0
  482. package/dist/runescape/model/quest/all/RomeoAndJuliet.js +25 -0
  483. package/dist/runescape/model/quest/all/RuneMysteries.d.ts +4 -0
  484. package/dist/runescape/model/quest/all/RuneMysteries.d.ts.map +1 -0
  485. package/dist/runescape/model/quest/all/RuneMysteries.js +4 -0
  486. package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts +4 -0
  487. package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts.map +1 -0
  488. package/dist/runescape/model/quest/all/SecretsOfTheNorth.js +4 -0
  489. package/dist/runescape/model/quest/all/SheepShearer.d.ts +4 -0
  490. package/dist/runescape/model/quest/all/SheepShearer.d.ts.map +1 -0
  491. package/dist/runescape/model/quest/all/SheepShearer.js +4 -0
  492. package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts +4 -0
  493. package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts.map +1 -0
  494. package/dist/runescape/model/quest/all/ShieldOfArrav.js +4 -0
  495. package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts +4 -0
  496. package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts.map +1 -0
  497. package/dist/runescape/model/quest/all/SinsOfTheFather.js +4 -0
  498. package/dist/runescape/model/quest/all/SleepingGiants.d.ts +4 -0
  499. package/dist/runescape/model/quest/all/SleepingGiants.d.ts.map +1 -0
  500. package/dist/runescape/model/quest/all/SleepingGiants.js +4 -0
  501. package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts +4 -0
  502. package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts.map +1 -0
  503. package/dist/runescape/model/quest/all/TaleOfTheRighteous.js +4 -0
  504. package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts +4 -0
  505. package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts.map +1 -0
  506. package/dist/runescape/model/quest/all/TearsOfGuthix.js +4 -0
  507. package/dist/runescape/model/quest/all/TempleOfIkov.d.ts +4 -0
  508. package/dist/runescape/model/quest/all/TempleOfIkov.d.ts.map +1 -0
  509. package/dist/runescape/model/quest/all/TempleOfIkov.js +4 -0
  510. package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts +4 -0
  511. package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts.map +1 -0
  512. package/dist/runescape/model/quest/all/TempleOfTheEye.js +4 -0
  513. package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts +4 -0
  514. package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts.map +1 -0
  515. package/dist/runescape/model/quest/all/TheCorsairCurse.js +25 -0
  516. package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts +4 -0
  517. package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts.map +1 -0
  518. package/dist/runescape/model/quest/all/TheCurseOfArrav.js +34 -0
  519. package/dist/runescape/model/quest/all/TheDigSite.d.ts +4 -0
  520. package/dist/runescape/model/quest/all/TheDigSite.d.ts.map +1 -0
  521. package/dist/runescape/model/quest/all/TheDigSite.js +4 -0
  522. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts +4 -0
  523. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts.map +1 -0
  524. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js +4 -0
  525. package/dist/runescape/model/quest/all/TheFeud.d.ts +4 -0
  526. package/dist/runescape/model/quest/all/TheFeud.d.ts.map +1 -0
  527. package/dist/runescape/model/quest/all/TheFeud.js +4 -0
  528. package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts +4 -0
  529. package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts.map +1 -0
  530. package/dist/runescape/model/quest/all/TheGardenOfDeath.js +4 -0
  531. package/dist/runescape/model/quest/all/TheHandInTheSand.js +1 -1
  532. package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts +4 -0
  533. package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts.map +1 -0
  534. package/dist/runescape/model/quest/all/TheHeartOfDarkness.js +4 -0
  535. package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts +4 -0
  536. package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts.map +1 -0
  537. package/dist/runescape/model/quest/all/TheIdesOfMilk.js +4 -0
  538. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts +4 -0
  539. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts.map +1 -0
  540. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js +4 -0
  541. package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts +4 -0
  542. package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts.map +1 -0
  543. package/dist/runescape/model/quest/all/TheRestlessGhost.js +4 -0
  544. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts +4 -0
  545. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts.map +1 -0
  546. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js +4 -0
  547. package/dist/runescape/model/quest/all/TwilightsPromise.d.ts +4 -0
  548. package/dist/runescape/model/quest/all/TwilightsPromise.d.ts.map +1 -0
  549. package/dist/runescape/model/quest/all/TwilightsPromise.js +4 -0
  550. package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts +4 -0
  551. package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts.map +1 -0
  552. package/dist/runescape/model/quest/all/WhileGuthixSleeps.js +4 -0
  553. package/dist/runescape/model/quest/all/WitchsPotion.d.ts +4 -0
  554. package/dist/runescape/model/quest/all/WitchsPotion.d.ts.map +1 -0
  555. package/dist/runescape/model/quest/all/WitchsPotion.js +4 -0
  556. package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts +4 -0
  557. package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts.map +1 -0
  558. package/dist/runescape/model/quest/all/XMarksTheSpot.js +4 -0
  559. package/dist/runescape/model/quest/all/index.d.ts +47 -0
  560. package/dist/runescape/model/quest/all/index.d.ts.map +1 -1
  561. package/dist/runescape/model/quest/all/index.js +47 -0
  562. package/dist/runescape/tools/experience.js +80 -79
  563. package/dist/runescape/utils/validation.d.ts +1 -1
  564. package/dist/runescape/utils/validation.d.ts.map +1 -1
  565. package/dist/runescape/utils/validation.js +23 -23
  566. package/package.json +1 -1
  567. package/public/assets/icons/diaries/Ardougne_Diary.png +0 -0
  568. package/public/assets/icons/diaries/Desert_Diary.png +0 -0
  569. package/public/assets/icons/diaries/Falador_Diary.png +0 -0
  570. package/public/assets/icons/diaries/Fremennik_Diary.png +0 -0
  571. package/public/assets/icons/diaries/Kandarin_Diary.png +0 -0
  572. package/public/assets/icons/diaries/Karamja_Diary.png +0 -0
  573. package/public/assets/icons/diaries/Morytania_Diary.png +0 -0
  574. package/public/assets/icons/diaries/Varrock_Diary.png +0 -0
  575. package/public/assets/icons/diaries/Wilderness_Diary.png +0 -0
  576. package/public/assets/icons/skills/Agility_icon.png +0 -0
  577. package/public/assets/icons/skills/Attack_icon.png +0 -0
  578. package/public/assets/icons/skills/Construction_icon.png +0 -0
  579. package/public/assets/icons/skills/Cooking_icon.png +0 -0
  580. package/public/assets/icons/skills/Crafting_icon.png +0 -0
  581. package/public/assets/icons/skills/Defence_icon.png +0 -0
  582. package/public/assets/icons/skills/Farming_icon.png +0 -0
  583. package/public/assets/icons/skills/Firemaking_icon.png +0 -0
  584. package/public/assets/icons/skills/Fishing_icon.png +0 -0
  585. package/public/assets/icons/skills/Fletching_icon.png +0 -0
  586. package/public/assets/icons/skills/Herblore_icon.png +0 -0
  587. package/public/assets/icons/skills/Hitpoints_icon.png +0 -0
  588. package/public/assets/icons/skills/Magic_icon.png +0 -0
  589. package/public/assets/icons/skills/Mining_icon.png +0 -0
  590. package/public/assets/icons/skills/Prayer_icon.png +0 -0
  591. package/public/assets/icons/skills/Ranged_icon.png +0 -0
  592. package/public/assets/icons/skills/Sailing_icon.png +0 -0
  593. package/public/assets/icons/skills/Slayer_icon.png +0 -0
  594. package/public/assets/icons/skills/Smithing_icon.png +0 -0
  595. package/public/assets/icons/skills/Strength_icon.png +0 -0
  596. package/public/assets/icons/skills/Thieving_icon.png +0 -0
  597. package/public/assets/icons/skills/Woodcutting_icon.png +0 -0
  598. package/public/assets/icons/tabs/Combat_Tab.png +0 -0
  599. package/public/assets/icons/tabs/Inventory_Tab.png +0 -0
  600. package/public/assets/icons/tabs/Magic_Tab.png +0 -0
  601. package/public/assets/icons/tabs/Prayer_Tab.png +0 -0
  602. package/public/assets/icons/tabs/Quest_Tab.png +0 -0
  603. package/public/assets/icons/tabs/Skills_Tab.png +0 -0
  604. package/public/assets/icons/ui/Bank.png +0 -0
  605. package/public/assets/icons/ui/Music.png +0 -0
  606. package/public/assets/icons/ui/Quest_Points.png +0 -0
  607. package/public/assets/icons/ui/Settings.png +0 -0
  608. package/public/assets/items/3rd-age-amulet.png +0 -0
  609. package/public/assets/items/3rd-age-axe.png +0 -0
  610. package/public/assets/items/3rd-age-bow.png +0 -0
  611. package/public/assets/items/3rd-age-cloak.png +0 -0
  612. package/public/assets/items/3rd-age-druidic-cloak.png +0 -0
  613. package/public/assets/items/3rd-age-druidic-robe-bottoms.png +0 -0
  614. package/public/assets/items/3rd-age-druidic-robe-top.png +0 -0
  615. package/public/assets/items/3rd-age-druidic-staff.png +0 -0
  616. package/public/assets/items/3rd-age-full-helmet.png +0 -0
  617. package/public/assets/items/3rd-age-kiteshield.png +0 -0
  618. package/public/assets/items/3rd-age-mage-hat.png +0 -0
  619. package/public/assets/items/3rd-age-pickaxe.png +0 -0
  620. package/public/assets/items/3rd-age-plateskirt.png +0 -0
  621. package/public/assets/items/3rd-age-range-coif.png +0 -0
  622. package/public/assets/items/3rd-age-range-legs.png +0 -0
  623. package/public/assets/items/3rd-age-range-top.png +0 -0
  624. package/public/assets/items/3rd-age-robe-top.png +0 -0
  625. package/public/assets/items/3rd-age-robe.png +0 -0
  626. package/public/assets/items/3rd-age-vambraces.png +0 -0
  627. package/public/assets/items/3rd-age-wand.png +0 -0
  628. package/public/assets/items/a-powdered-wig.png +0 -0
  629. package/public/assets/items/adamant-axe.png +0 -0
  630. package/public/assets/items/adamant-battleaxe.png +0 -0
  631. package/public/assets/items/adamant-cane.png +0 -0
  632. package/public/assets/items/adamant-dagger.png +0 -0
  633. package/public/assets/items/adamant-dragon-mask.png +0 -0
  634. package/public/assets/items/adamant-full-helm-g.png +0 -0
  635. package/public/assets/items/adamant-full-helm-t.png +0 -0
  636. package/public/assets/items/adamant-full-helm.png +0 -0
  637. package/public/assets/items/adamant-helm-h1.png +0 -0
  638. package/public/assets/items/adamant-helm-h2.png +0 -0
  639. package/public/assets/items/adamant-helm-h3.png +0 -0
  640. package/public/assets/items/adamant-helm-h4.png +0 -0
  641. package/public/assets/items/adamant-helm-h5.png +0 -0
  642. package/public/assets/items/adamant-kiteshield-g.png +0 -0
  643. package/public/assets/items/adamant-kiteshield-t.png +0 -0
  644. package/public/assets/items/adamant-longsword.png +0 -0
  645. package/public/assets/items/adamant-pickaxe.png +0 -0
  646. package/public/assets/items/adamant-platebody-g.png +0 -0
  647. package/public/assets/items/adamant-platebody-h1.png +0 -0
  648. package/public/assets/items/adamant-platebody-h2.png +0 -0
  649. package/public/assets/items/adamant-platebody-h3.png +0 -0
  650. package/public/assets/items/adamant-platebody-h4.png +0 -0
  651. package/public/assets/items/adamant-platebody-h5.png +0 -0
  652. package/public/assets/items/adamant-platebody-t.png +0 -0
  653. package/public/assets/items/adamant-platelegs-g.png +0 -0
  654. package/public/assets/items/adamant-platelegs-t.png +0 -0
  655. package/public/assets/items/adamant-plateskirt-g.png +0 -0
  656. package/public/assets/items/adamant-plateskirt-t.png +0 -0
  657. package/public/assets/items/adamant-shield-h1.png +0 -0
  658. package/public/assets/items/adamant-shield-h2.png +0 -0
  659. package/public/assets/items/adamant-shield-h3.png +0 -0
  660. package/public/assets/items/adamant-shield-h4.png +0 -0
  661. package/public/assets/items/adamant-shield-h5.png +0 -0
  662. package/public/assets/items/afro.png +0 -0
  663. package/public/assets/items/ale-of-the-gods.png +0 -0
  664. package/public/assets/items/amulet-of-defence-t.png +0 -0
  665. package/public/assets/items/amulet-of-glory-t4.png +0 -0
  666. package/public/assets/items/amulet-of-power.png +0 -0
  667. package/public/assets/items/ancient-blessing.png +0 -0
  668. package/public/assets/items/ancient-bracers.png +0 -0
  669. package/public/assets/items/ancient-chaps.png +0 -0
  670. package/public/assets/items/ancient-cloak.png +0 -0
  671. package/public/assets/items/ancient-coif.png +0 -0
  672. package/public/assets/items/ancient-crozier.png +0 -0
  673. package/public/assets/items/ancient-full-helm.png +0 -0
  674. package/public/assets/items/ancient-kiteshield.png +0 -0
  675. package/public/assets/items/ancient-mitre.png +0 -0
  676. package/public/assets/items/ancient-page-1.png +0 -0
  677. package/public/assets/items/ancient-page-2.png +0 -0
  678. package/public/assets/items/ancient-platebody.png +0 -0
  679. package/public/assets/items/ancient-platelegs.png +0 -0
  680. package/public/assets/items/ancient-robe-top.png +0 -0
  681. package/public/assets/items/ancient-stole.png +0 -0
  682. package/public/assets/items/anguish-ornament-kit.png +0 -0
  683. package/public/assets/items/ankou-gloves.png +0 -0
  684. package/public/assets/items/ankou-mask.png +0 -0
  685. package/public/assets/items/ankou-socks.png +0 -0
  686. package/public/assets/items/ankou-top.png +0 -0
  687. package/public/assets/items/anti-venom-4.png +0 -0
  688. package/public/assets/items/arceuus-banner.png +0 -0
  689. package/public/assets/items/arceuus-hood.png +0 -0
  690. package/public/assets/items/armadyl-bracers.png +0 -0
  691. package/public/assets/items/armadyl-chaps.png +0 -0
  692. package/public/assets/items/armadyl-cloak.png +0 -0
  693. package/public/assets/items/armadyl-coif.png +0 -0
  694. package/public/assets/items/armadyl-crozier.png +0 -0
  695. package/public/assets/items/armadyl-full-helm.png +0 -0
  696. package/public/assets/items/armadyl-godsword-ornament-kit.png +0 -0
  697. package/public/assets/items/armadyl-kiteshield.png +0 -0
  698. package/public/assets/items/armadyl-mitre.png +0 -0
  699. package/public/assets/items/armadyl-page-1.png +0 -0
  700. package/public/assets/items/armadyl-page-2.png +0 -0
  701. package/public/assets/items/armadyl-page-3.png +0 -0
  702. package/public/assets/items/armadyl-page-4.png +0 -0
  703. package/public/assets/items/armadyl-platebody.png +0 -0
  704. package/public/assets/items/armadyl-platelegs.png +0 -0
  705. package/public/assets/items/armadyl-robe-top.png +0 -0
  706. package/public/assets/items/armadyl-stole.png +0 -0
  707. package/public/assets/items/bandos-bracers.png +0 -0
  708. package/public/assets/items/bandos-chaps.png +0 -0
  709. package/public/assets/items/bandos-cloak.png +0 -0
  710. package/public/assets/items/bandos-coif.png +0 -0
  711. package/public/assets/items/bandos-crozier.png +0 -0
  712. package/public/assets/items/bandos-full-helm.png +0 -0
  713. package/public/assets/items/bandos-godsword-ornament-kit.png +0 -0
  714. package/public/assets/items/bandos-kiteshield.png +0 -0
  715. package/public/assets/items/bandos-mitre.png +0 -0
  716. package/public/assets/items/bandos-page-1.png +0 -0
  717. package/public/assets/items/bandos-page-2.png +0 -0
  718. package/public/assets/items/bandos-page-3.png +0 -0
  719. package/public/assets/items/bandos-page-4.png +0 -0
  720. package/public/assets/items/bandos-platebody.png +0 -0
  721. package/public/assets/items/bandos-platelegs.png +0 -0
  722. package/public/assets/items/bandos-robe-top.png +0 -0
  723. package/public/assets/items/bandos-stole.png +0 -0
  724. package/public/assets/items/battlestaff.png +0 -0
  725. package/public/assets/items/beanie.png +0 -0
  726. package/public/assets/items/bear-feet.png +0 -0
  727. package/public/assets/items/big-pirate-hat.png +0 -0
  728. package/public/assets/items/black-2h-sword.png +0 -0
  729. package/public/assets/items/black-beret.png +0 -0
  730. package/public/assets/items/black-boater.png +0 -0
  731. package/public/assets/items/black-cane.png +0 -0
  732. package/public/assets/items/black-cavalier.png +0 -0
  733. package/public/assets/items/black-chainbody.png +0 -0
  734. package/public/assets/items/black-demon-mask.png +0 -0
  735. package/public/assets/items/black-dragon-mask.png +0 -0
  736. package/public/assets/items/black-dragonhide.png +0 -0
  737. package/public/assets/items/black-full-helm-g.png +0 -0
  738. package/public/assets/items/black-headband.png +0 -0
  739. package/public/assets/items/black-helm-h1.png +0 -0
  740. package/public/assets/items/black-kiteshield.png +0 -0
  741. package/public/assets/items/black-leprechaun-hat.png +0 -0
  742. package/public/assets/items/black-mace.png +0 -0
  743. package/public/assets/items/black-med-helm.png +0 -0
  744. package/public/assets/items/black-platebody-g.png +0 -0
  745. package/public/assets/items/black-platelegs-g.png +0 -0
  746. package/public/assets/items/black-plateskirt.png +0 -0
  747. package/public/assets/items/black-robe.png +0 -0
  748. package/public/assets/items/black-scimitar.png +0 -0
  749. package/public/assets/items/black-shield-h1.png +0 -0
  750. package/public/assets/items/black-sq-shield.png +0 -0
  751. package/public/assets/items/black-sword.png +0 -0
  752. package/public/assets/items/black-unicorn-mask.png +0 -0
  753. package/public/assets/items/black-warhammer.png +0 -0
  754. package/public/assets/items/black-wizard-hat-g.png +0 -0
  755. package/public/assets/items/black-wizard-robe-g.png +0 -0
  756. package/public/assets/items/blue-beret.png +0 -0
  757. package/public/assets/items/blue-boater.png +0 -0
  758. package/public/assets/items/blue-dragon-mask.png +0 -0
  759. package/public/assets/items/blue-firelighter.png +0 -0
  760. package/public/assets/items/blue-headband.png +0 -0
  761. package/public/assets/items/blue-wizard-hat-g.png +0 -0
  762. package/public/assets/items/blue-wizard-hat.png +0 -0
  763. package/public/assets/items/blue-wizard-robe-g.png +0 -0
  764. package/public/assets/items/blue-wizard-robe.png +0 -0
  765. package/public/assets/items/boots-of-darkness.png +0 -0
  766. package/public/assets/items/bowl-wig.png +0 -0
  767. package/public/assets/items/briefcase.png +0 -0
  768. package/public/assets/items/bronze-arrow.png +0 -0
  769. package/public/assets/items/bronze-dragon-mask.png +0 -0
  770. package/public/assets/items/brown-headband.png +0 -0
  771. package/public/assets/items/bucket-helm-g.png +0 -0
  772. package/public/assets/items/bucket-helm.png +0 -0
  773. package/public/assets/items/cabbage-round-shield.png +0 -0
  774. package/public/assets/items/cabbage.png +0 -0
  775. package/public/assets/items/cat-mask.png +0 -0
  776. package/public/assets/items/charge-dragonstone-jewellery-scroll.png +0 -0
  777. package/public/assets/items/climbing-boots-g.png +0 -0
  778. package/public/assets/items/crier-bell.png +0 -0
  779. package/public/assets/items/crier-coat.png +0 -0
  780. package/public/assets/items/crier-hat.png +0 -0
  781. package/public/assets/items/dark-bow-tie.png +0 -0
  782. package/public/assets/items/dark-cavalier.png +0 -0
  783. package/public/assets/items/dark-infinity-colour-kit.png +0 -0
  784. package/public/assets/items/dark-trousers.png +0 -0
  785. package/public/assets/items/dark-tuxedo-cuffs.png +0 -0
  786. package/public/assets/items/dark-tuxedo-jacket.png +0 -0
  787. package/public/assets/items/dark-tuxedo-shoes.png +0 -0
  788. package/public/assets/items/death-rune.png +0 -0
  789. package/public/assets/items/deerstalker.png +0 -0
  790. package/public/assets/items/demon-feet.png +0 -0
  791. package/public/assets/items/digsite-teleport.png +0 -0
  792. package/public/assets/items/dragon-battleaxe.png +0 -0
  793. package/public/assets/items/dragon-boots-ornament-kit.png +0 -0
  794. package/public/assets/items/dragon-cane.png +0 -0
  795. package/public/assets/items/dragon-chainbody-ornament-kit.png +0 -0
  796. package/public/assets/items/dragon-dagger.png +0 -0
  797. package/public/assets/items/dragon-defender-ornament-kit.png +0 -0
  798. package/public/assets/items/dragon-full-helm-ornament-kit.png +0 -0
  799. package/public/assets/items/dragon-halberd.png +0 -0
  800. package/public/assets/items/dragon-kiteshield-ornament-kit.png +0 -0
  801. package/public/assets/items/dragon-legs-skirt-ornament-kit.png +0 -0
  802. package/public/assets/items/dragon-longsword.png +0 -0
  803. package/public/assets/items/dragon-mace.png +0 -0
  804. package/public/assets/items/dragon-necklace.png +0 -0
  805. package/public/assets/items/dragon-platebody-ornament-kit.png +0 -0
  806. package/public/assets/items/dragon-scimitar-ornament-kit.png +0 -0
  807. package/public/assets/items/dragon-scimitar.png +0 -0
  808. package/public/assets/items/dragon-sq-shield-ornament-kit.png +0 -0
  809. package/public/assets/items/dragonstone-bracelet.png +0 -0
  810. package/public/assets/items/dragonstone-ring.png +0 -0
  811. package/public/assets/items/enchanted-hat.png +0 -0
  812. package/public/assets/items/enchanted-robe.png +0 -0
  813. package/public/assets/items/enchanted-top.png +0 -0
  814. package/public/assets/items/extended-antifire4.png +0 -0
  815. package/public/assets/items/fancy-tiara.png +0 -0
  816. package/public/assets/items/feldip-hills-teleport.png +0 -0
  817. package/public/assets/items/fire-battlestaff.png +0 -0
  818. package/public/assets/items/fremennik-kilt.png +0 -0
  819. package/public/assets/items/frog-slippers.png +0 -0
  820. package/public/assets/items/fury-ornament-kit.png +0 -0
  821. package/public/assets/items/giant-boot.png +0 -0
  822. package/public/assets/items/gilded-2h-sword.png +0 -0
  823. package/public/assets/items/gilded-axe.png +0 -0
  824. package/public/assets/items/gilded-boots.png +0 -0
  825. package/public/assets/items/gilded-chainbody.png +0 -0
  826. package/public/assets/items/gilded-coif.png +0 -0
  827. package/public/assets/items/gilded-hasta.png +0 -0
  828. package/public/assets/items/gilded-kiteshield.png +0 -0
  829. package/public/assets/items/gilded-med-helm.png +0 -0
  830. package/public/assets/items/gilded-pickaxe.png +0 -0
  831. package/public/assets/items/gilded-platelegs.png +0 -0
  832. package/public/assets/items/gilded-plateskirt.png +0 -0
  833. package/public/assets/items/gilded-scimitar.png +0 -0
  834. package/public/assets/items/gilded-spade.png +0 -0
  835. package/public/assets/items/gilded-spear.png +0 -0
  836. package/public/assets/items/gilded-sq-shield.png +0 -0
  837. package/public/assets/items/gloves-of-darkness.png +0 -0
  838. package/public/assets/items/gnomish-firelighter.png +0 -0
  839. package/public/assets/items/goblin-mask.png +0 -0
  840. package/public/assets/items/gold-headband.png +0 -0
  841. package/public/assets/items/greater-demon-mask.png +0 -0
  842. package/public/assets/items/green-boater.png +0 -0
  843. package/public/assets/items/green-dragon-mask.png +0 -0
  844. package/public/assets/items/green-firelighter.png +0 -0
  845. package/public/assets/items/green-headband.png +0 -0
  846. package/public/assets/items/grimy-ranarr-weed.png +0 -0
  847. package/public/assets/items/grimy-snapdragon.png +0 -0
  848. package/public/assets/items/grimy-toadflax.png +0 -0
  849. package/public/assets/items/guthix-bracers.png +0 -0
  850. package/public/assets/items/guthix-chaps.png +0 -0
  851. package/public/assets/items/guthix-cloak.png +0 -0
  852. package/public/assets/items/guthix-coif.png +0 -0
  853. package/public/assets/items/guthix-full-helm.png +0 -0
  854. package/public/assets/items/guthix-kiteshield.png +0 -0
  855. package/public/assets/items/guthix-mitre.png +0 -0
  856. package/public/assets/items/guthix-page-1.png +0 -0
  857. package/public/assets/items/guthix-page-2.png +0 -0
  858. package/public/assets/items/guthix-page-3.png +0 -0
  859. package/public/assets/items/guthix-page-4.png +0 -0
  860. package/public/assets/items/guthix-platebody.png +0 -0
  861. package/public/assets/items/guthix-platelegs.png +0 -0
  862. package/public/assets/items/guthix-robe-top.png +0 -0
  863. package/public/assets/items/half-moon-spectacles.png +0 -0
  864. package/public/assets/items/ham-joint.png +0 -0
  865. package/public/assets/items/hardleather-body.png +0 -0
  866. package/public/assets/items/harmless-teleport.png +0 -0
  867. package/public/assets/items/herring.png +0 -0
  868. package/public/assets/items/hide-body-g.png +0 -0
  869. package/public/assets/items/hide-body-t.png +0 -0
  870. package/public/assets/items/hide-body.png +0 -0
  871. package/public/assets/items/hide-boots.png +0 -0
  872. package/public/assets/items/hide-chaps-g.png +0 -0
  873. package/public/assets/items/hide-chaps-t.png +0 -0
  874. package/public/assets/items/hide-chaps.png +0 -0
  875. package/public/assets/items/hide-shield.png +0 -0
  876. package/public/assets/items/hide-vambraces.png +0 -0
  877. package/public/assets/items/highwayman-mask.png +0 -0
  878. package/public/assets/items/holy-blessing.png +0 -0
  879. package/public/assets/items/holy-sandals.png +0 -0
  880. package/public/assets/items/holy-wraps.png +0 -0
  881. package/public/assets/items/honourable-blessing.png +0 -0
  882. package/public/assets/items/hood-of-darkness.png +0 -0
  883. package/public/assets/items/hosidius-banner.png +0 -0
  884. package/public/assets/items/hosidius-hood.png +0 -0
  885. package/public/assets/items/imp-mask.png +0 -0
  886. package/public/assets/items/iorwerth-camp-teleport.png +0 -0
  887. package/public/assets/items/iron-arrow.png +0 -0
  888. package/public/assets/items/iron-dragon-mask.png +0 -0
  889. package/public/assets/items/iron-full-helm-t.png +0 -0
  890. package/public/assets/items/iron-pickaxe.png +0 -0
  891. package/public/assets/items/iron-platebody-t.png +0 -0
  892. package/public/assets/items/jester-cape.png +0 -0
  893. package/public/assets/items/jungle-demon-mask.png +0 -0
  894. package/public/assets/items/katana.png +0 -0
  895. package/public/assets/items/lava-dragon-mask.png +0 -0
  896. package/public/assets/items/law-rune.png +0 -0
  897. package/public/assets/items/leather-body-g.png +0 -0
  898. package/public/assets/items/leather-body.png +0 -0
  899. package/public/assets/items/leather-chaps.png +0 -0
  900. package/public/assets/items/leather-cowl.png +0 -0
  901. package/public/assets/items/leather-vambraces.png +0 -0
  902. package/public/assets/items/left-eye-patch.png +0 -0
  903. package/public/assets/items/leprechaun-hat.png +0 -0
  904. package/public/assets/items/lesser-demon-mask.png +0 -0
  905. package/public/assets/items/light-bow-tie.png +0 -0
  906. package/public/assets/items/light-infinity-colour-kit.png +0 -0
  907. package/public/assets/items/light-trousers.png +0 -0
  908. package/public/assets/items/light-tuxedo-cuffs.png +0 -0
  909. package/public/assets/items/light-tuxedo-jacket.png +0 -0
  910. package/public/assets/items/light-tuxedo-shoes.png +0 -0
  911. package/public/assets/items/limpwurt-root.png +0 -0
  912. package/public/assets/items/lobster.png +0 -0
  913. package/public/assets/items/longbow.png +0 -0
  914. package/public/assets/items/loop-half-of-key.png +0 -0
  915. package/public/assets/items/lovakengj-banner.png +0 -0
  916. package/public/assets/items/lovakengj-hood.png +0 -0
  917. package/public/assets/items/lumberyard-teleport.png +0 -0
  918. package/public/assets/items/lunar-isle-teleport.png +0 -0
  919. package/public/assets/items/magic-comp-bow.png +0 -0
  920. package/public/assets/items/magic-longbow.png +0 -0
  921. package/public/assets/items/magic-seed.png +0 -0
  922. package/public/assets/items/magic-shortbow.png +0 -0
  923. package/public/assets/items/mahogany-plank.png +0 -0
  924. package/public/assets/items/manta-ray.png +0 -0
  925. package/public/assets/items/master-scroll-book-empty.png +0 -0
  926. package/public/assets/items/mind-rune.png +0 -0
  927. package/public/assets/items/mithril-dragon-mask.png +0 -0
  928. package/public/assets/items/mithril-full-helm-g.png +0 -0
  929. package/public/assets/items/mithril-full-helm-t.png +0 -0
  930. package/public/assets/items/mithril-kiteshield-g.png +0 -0
  931. package/public/assets/items/mithril-kiteshield-t.png +0 -0
  932. package/public/assets/items/mithril-platebody-g.png +0 -0
  933. package/public/assets/items/mithril-platebody-t.png +0 -0
  934. package/public/assets/items/mithril-platelegs-g.png +0 -0
  935. package/public/assets/items/mithril-platelegs-t.png +0 -0
  936. package/public/assets/items/mithril-plateskirt-g.png +0 -0
  937. package/public/assets/items/mithril-plateskirt-t.png +0 -0
  938. package/public/assets/items/mole-slippers.png +0 -0
  939. package/public/assets/items/monocle.png +0 -0
  940. package/public/assets/items/musketeer-hat.png +0 -0
  941. package/public/assets/items/musketeer-pants.png +0 -0
  942. package/public/assets/items/musketeer-tabard.png +0 -0
  943. package/public/assets/items/nardah-teleport.png +0 -0
  944. package/public/assets/items/nature-rune.png +0 -0
  945. package/public/assets/items/navy-cavalier.png +0 -0
  946. package/public/assets/items/oak-longbow.png +0 -0
  947. package/public/assets/items/oak-plank.png +0 -0
  948. package/public/assets/items/oak-shortbow.png +0 -0
  949. package/public/assets/items/obsidian-cape-r.png +0 -0
  950. package/public/assets/items/occult-ornament-kit.png +0 -0
  951. package/public/assets/items/old-demon-mask.png +0 -0
  952. package/public/assets/items/onyx-bolt-tips.png +0 -0
  953. package/public/assets/items/onyx-bolts-e.png +0 -0
  954. package/public/assets/items/orange-boater.png +0 -0
  955. package/public/assets/items/palm-tree-seed.png +0 -0
  956. package/public/assets/items/peaceful-blessing.png +0 -0
  957. package/public/assets/items/penguin-mask.png +0 -0
  958. package/public/assets/items/pest-control-teleport.png +0 -0
  959. package/public/assets/items/pink-boater.png +0 -0
  960. package/public/assets/items/pink-headband.png +0 -0
  961. package/public/assets/items/piscarilius-banner.png +0 -0
  962. package/public/assets/items/piscarilius-hood.png +0 -0
  963. package/public/assets/items/piscatoris-teleport.png +0 -0
  964. package/public/assets/items/purple-boater.png +0 -0
  965. package/public/assets/items/purple-firelighter.png +0 -0
  966. package/public/assets/items/purple-sweets.png +0 -0
  967. package/public/assets/items/rain-bow.png +0 -0
  968. package/public/assets/items/ranger-boots.png +0 -0
  969. package/public/assets/items/ranger-gloves.png +0 -0
  970. package/public/assets/items/ranging-potion4.png +0 -0
  971. package/public/assets/items/red-boater.png +0 -0
  972. package/public/assets/items/red-cavalier.png +0 -0
  973. package/public/assets/items/red-dragon-mask.png +0 -0
  974. package/public/assets/items/red-elegant-shirt.png +0 -0
  975. package/public/assets/items/red-firelighter.png +0 -0
  976. package/public/assets/items/red-headband.png +0 -0
  977. package/public/assets/items/ring-of-coins.png +0 -0
  978. package/public/assets/items/ring-of-nature.png +0 -0
  979. package/public/assets/items/robe-bottom-of-darkness.png +0 -0
  980. package/public/assets/items/robe-top-of-darkness.png +0 -0
  981. package/public/assets/items/robin-hood-hat.png +0 -0
  982. package/public/assets/items/royal-crown.png +0 -0
  983. package/public/assets/items/royal-gown-bottom.png +0 -0
  984. package/public/assets/items/royal-gown-top.png +0 -0
  985. package/public/assets/items/royal-sceptre.png +0 -0
  986. package/public/assets/items/rune-axe.png +0 -0
  987. package/public/assets/items/rune-battleaxe.png +0 -0
  988. package/public/assets/items/rune-crossbow.png +0 -0
  989. package/public/assets/items/rune-dagger.png +0 -0
  990. package/public/assets/items/rune-dragon-mask.png +0 -0
  991. package/public/assets/items/rune-full-helm-g.png +0 -0
  992. package/public/assets/items/rune-full-helm-t.png +0 -0
  993. package/public/assets/items/rune-full-helm.png +0 -0
  994. package/public/assets/items/rune-helm-h1.png +0 -0
  995. package/public/assets/items/rune-helm-h2.png +0 -0
  996. package/public/assets/items/rune-helm-h3.png +0 -0
  997. package/public/assets/items/rune-helm-h4.png +0 -0
  998. package/public/assets/items/rune-helm-h5.png +0 -0
  999. package/public/assets/items/rune-kiteshield-g.png +0 -0
  1000. package/public/assets/items/rune-kiteshield-t.png +0 -0
  1001. package/public/assets/items/rune-kiteshield.png +0 -0
  1002. package/public/assets/items/rune-longsword.png +0 -0
  1003. package/public/assets/items/rune-pickaxe.png +0 -0
  1004. package/public/assets/items/rune-platebody-g.png +0 -0
  1005. package/public/assets/items/rune-platebody-h1.png +0 -0
  1006. package/public/assets/items/rune-platebody-h2.png +0 -0
  1007. package/public/assets/items/rune-platebody-h3.png +0 -0
  1008. package/public/assets/items/rune-platebody-h4.png +0 -0
  1009. package/public/assets/items/rune-platebody-h5.png +0 -0
  1010. package/public/assets/items/rune-platebody-t.png +0 -0
  1011. package/public/assets/items/rune-platebody.png +0 -0
  1012. package/public/assets/items/rune-platelegs-g.png +0 -0
  1013. package/public/assets/items/rune-platelegs-t.png +0 -0
  1014. package/public/assets/items/rune-platelegs.png +0 -0
  1015. package/public/assets/items/rune-plateskirt-g.png +0 -0
  1016. package/public/assets/items/rune-plateskirt-t.png +0 -0
  1017. package/public/assets/items/rune-plateskirt.png +0 -0
  1018. package/public/assets/items/rune-scimitar-ornament-kit-guthix.png +0 -0
  1019. package/public/assets/items/rune-scimitar-ornament-kit-saradomin.png +0 -0
  1020. package/public/assets/items/rune-scimitar-ornament-kit-zamorak.png +0 -0
  1021. package/public/assets/items/rune-shield-h1.png +0 -0
  1022. package/public/assets/items/rune-shield-h2.png +0 -0
  1023. package/public/assets/items/rune-shield-h3.png +0 -0
  1024. package/public/assets/items/rune-shield-h4.png +0 -0
  1025. package/public/assets/items/rune-shield-h5.png +0 -0
  1026. package/public/assets/items/runite-bar.png +0 -0
  1027. package/public/assets/items/runite-ore.png +0 -0
  1028. package/public/assets/items/s-body.png +0 -0
  1029. package/public/assets/items/s-feet.png +0 -0
  1030. package/public/assets/items/s-hands.png +0 -0
  1031. package/public/assets/items/s-hat.png +0 -0
  1032. package/public/assets/items/s-head.png +0 -0
  1033. package/public/assets/items/s-helm.png +0 -0
  1034. package/public/assets/items/s-leggings.png +0 -0
  1035. package/public/assets/items/s-legs.png +0 -0
  1036. package/public/assets/items/s-red-shirt.png +0 -0
  1037. package/public/assets/items/s-robe-g.png +0 -0
  1038. package/public/assets/items/s-robe-top-g.png +0 -0
  1039. package/public/assets/items/s-tights.png +0 -0
  1040. package/public/assets/items/s-tunic.png +0 -0
  1041. package/public/assets/items/sagacious-spectacles.png +0 -0
  1042. package/public/assets/items/salmon.png +0 -0
  1043. package/public/assets/items/samurai-boots.png +0 -0
  1044. package/public/assets/items/samurai-gloves.png +0 -0
  1045. package/public/assets/items/samurai-greaves.png +0 -0
  1046. package/public/assets/items/samurai-kasa.png +0 -0
  1047. package/public/assets/items/samurai-shirt.png +0 -0
  1048. package/public/assets/items/sandwich-lady-bottom.png +0 -0
  1049. package/public/assets/items/sandwich-lady-hat.png +0 -0
  1050. package/public/assets/items/sandwich-lady-top.png +0 -0
  1051. package/public/assets/items/saradomin-bracers.png +0 -0
  1052. package/public/assets/items/saradomin-brew4.png +0 -0
  1053. package/public/assets/items/saradomin-chaps.png +0 -0
  1054. package/public/assets/items/saradomin-cloak.png +0 -0
  1055. package/public/assets/items/saradomin-coif.png +0 -0
  1056. package/public/assets/items/saradomin-full-helm.png +0 -0
  1057. package/public/assets/items/saradomin-godsword-ornament-kit.png +0 -0
  1058. package/public/assets/items/saradomin-kiteshield.png +0 -0
  1059. package/public/assets/items/saradomin-mitre.png +0 -0
  1060. package/public/assets/items/saradomin-page-1.png +0 -0
  1061. package/public/assets/items/saradomin-page-2.png +0 -0
  1062. package/public/assets/items/saradomin-page-3.png +0 -0
  1063. package/public/assets/items/saradomin-page-4.png +0 -0
  1064. package/public/assets/items/saradomin-platebody.png +0 -0
  1065. package/public/assets/items/saradomin-platelegs.png +0 -0
  1066. package/public/assets/items/saradomin-robe-top.png +0 -0
  1067. package/public/assets/items/sardine.png +0 -0
  1068. package/public/assets/items/shark.png +0 -0
  1069. package/public/assets/items/shayzien-banner.png +0 -0
  1070. package/public/assets/items/shayzien-hood.png +0 -0
  1071. package/public/assets/items/shortbow.png +0 -0
  1072. package/public/assets/items/shoulder-parrot.png +0 -0
  1073. package/public/assets/items/shrimps.png +0 -0
  1074. package/public/assets/items/sleeping-cap.png +0 -0
  1075. package/public/assets/items/soul-rune.png +0 -0
  1076. package/public/assets/items/spiked-manacles.png +0 -0
  1077. package/public/assets/items/staff-of-air.png +0 -0
  1078. package/public/assets/items/staff-of-bob-the-cat.png +0 -0
  1079. package/public/assets/items/staff-of-earth.png +0 -0
  1080. package/public/assets/items/staff-of-fire.png +0 -0
  1081. package/public/assets/items/staff-of-water.png +0 -0
  1082. package/public/assets/items/steel-axe.png +0 -0
  1083. package/public/assets/items/steel-battleaxe.png +0 -0
  1084. package/public/assets/items/steel-dagger.png +0 -0
  1085. package/public/assets/items/steel-dragon-mask.png +0 -0
  1086. package/public/assets/items/steel-full-helm-t.png +0 -0
  1087. package/public/assets/items/steel-full-helm.png +0 -0
  1088. package/public/assets/items/steel-longsword.png +0 -0
  1089. package/public/assets/items/steel-pickaxe.png +0 -0
  1090. package/public/assets/items/steel-platebody-t.png +0 -0
  1091. package/public/assets/items/steel-platebody.png +0 -0
  1092. package/public/assets/items/steel-platelegs.png +0 -0
  1093. package/public/assets/items/steel-plateskirt.png +0 -0
  1094. package/public/assets/items/strength-amulet-t.png +0 -0
  1095. package/public/assets/items/studded-body.png +0 -0
  1096. package/public/assets/items/studded-chaps.png +0 -0
  1097. package/public/assets/items/summer-pie.png +0 -0
  1098. package/public/assets/items/super-restore4.png +0 -0
  1099. package/public/assets/items/swordfish.png +0 -0
  1100. package/public/assets/items/tai-bwo-wannai-teleport.png +0 -0
  1101. package/public/assets/items/tan-cavalier.png +0 -0
  1102. package/public/assets/items/teak-plank.png +0 -0
  1103. package/public/assets/items/team-cape-i.png +0 -0
  1104. package/public/assets/items/team-cape-x.png +0 -0
  1105. package/public/assets/items/team-cape-zero.png +0 -0
  1106. package/public/assets/items/ton-teleport.png +0 -0
  1107. package/public/assets/items/tooth-half-of-key.png +0 -0
  1108. package/public/assets/items/top-hat.png +0 -0
  1109. package/public/assets/items/tormented-ornament-kit.png +0 -0
  1110. package/public/assets/items/torstol.png +0 -0
  1111. package/public/assets/items/torture-ornament-kit.png +0 -0
  1112. package/public/assets/items/trout.png +0 -0
  1113. package/public/assets/items/tuna-potato.png +0 -0
  1114. package/public/assets/items/unholy-blessing.png +0 -0
  1115. package/public/assets/items/war-blessing.png +0 -0
  1116. package/public/assets/items/water-rune.png +0 -0
  1117. package/public/assets/items/white-boater.png +0 -0
  1118. package/public/assets/items/white-cavalier.png +0 -0
  1119. package/public/assets/items/white-firelighter.png +0 -0
  1120. package/public/assets/items/white-headband.png +0 -0
  1121. package/public/assets/items/white-unicorn-mask.png +0 -0
  1122. package/public/assets/items/willow-comp-bow.png +0 -0
  1123. package/public/assets/items/willow-longbow.png +0 -0
  1124. package/public/assets/items/willow-shortbow.png +0 -0
  1125. package/public/assets/items/wine-of-zamorak.png +0 -0
  1126. package/public/assets/items/wizard-boots.png +0 -0
  1127. package/public/assets/items/wizard-hat.png +0 -0
  1128. package/public/assets/items/wolf-cloak.png +0 -0
  1129. package/public/assets/items/wolf-mask.png +0 -0
  1130. package/public/assets/items/wooden-shield-g.png +0 -0
  1131. package/public/assets/items/yew-comp-bow.png +0 -0
  1132. package/public/assets/items/yew-longbow.png +0 -0
  1133. package/public/assets/items/yew-seed.png +0 -0
  1134. package/public/assets/items/yew-shortbow.png +0 -0
  1135. package/public/assets/items/zamorak-bracers.png +0 -0
  1136. package/public/assets/items/zamorak-chaps.png +0 -0
  1137. package/public/assets/items/zamorak-cloak.png +0 -0
  1138. package/public/assets/items/zamorak-coif.png +0 -0
  1139. package/public/assets/items/zamorak-full-helm.png +0 -0
  1140. package/public/assets/items/zamorak-godsword-ornament-kit.png +0 -0
  1141. package/public/assets/items/zamorak-kiteshield.png +0 -0
  1142. package/public/assets/items/zamorak-mitre.png +0 -0
  1143. package/public/assets/items/zamorak-page-1.png +0 -0
  1144. package/public/assets/items/zamorak-page-2.png +0 -0
  1145. package/public/assets/items/zamorak-page-3.png +0 -0
  1146. package/public/assets/items/zamorak-page-4.png +0 -0
  1147. package/public/assets/items/zamorak-platebody.png +0 -0
  1148. package/public/assets/items/zamorak-platelegs.png +0 -0
  1149. package/public/assets/items/zamorak-robe-top.png +0 -0
  1150. package/dist/runescape/model/Item/ClueScrollRewards.js +0 -286
  1151. package/dist/runescape/model/Item/all/StudiedChaps.js +0 -35
  1152. package/dist/runescape/model/Item/models/YellowPartyhat.obj +0 -149
  1153. package/dist/runescape/tools/ClueScrollHelper.js +0 -103
  1154. package/dist/runescape/utils/cache.js +0 -124
  1155. /package/dist/runescape/model/slayer/{Masters.js → masters.js} +0 -0
@@ -0,0 +1,381 @@
1
+ /**
2
+ * Enhanced NPC Drop System for Complex Drop Mechanics
3
+ * Handles drop tables, rare drops, secondary rolls, and weighted systems
4
+ * This file shows how to extend the basic NpcDrop model for scalability
5
+ */
6
+ import { NpcDrop } from './NpcDrop';
7
+ /**
8
+ * Weighted drop - An item with a weight in a weighted selection
9
+ * Useful for "rare drop table" mechanics where one of several items is chosen
10
+ */
11
+ export class WeightedDrop {
12
+ drop;
13
+ weight;
14
+ constructor(drop, weight) {
15
+ this.drop = drop;
16
+ this.weight = weight;
17
+ if (weight <= 0) {
18
+ throw new Error('Weight must be positive');
19
+ }
20
+ }
21
+ /**
22
+ * Calculate the probability of this drop being selected
23
+ * Only valid when used in a WeightedDropTable
24
+ */
25
+ getProbabilityInTable(totalWeight) {
26
+ return this.weight / totalWeight;
27
+ }
28
+ }
29
+ /**
30
+ * Weighted drop table - Roll a single drop from weighted options
31
+ * Example: Boss drops either Sword (weight 30), Shield (weight 15), or Helm (weight 5)
32
+ * Chance to get Sword = 30/50 = 60%
33
+ */
34
+ export class WeightedDropTable {
35
+ drops = [];
36
+ totalWeight = 0;
37
+ /**
38
+ * Add a drop to the weighted table
39
+ */
40
+ addDrop(drop, weight) {
41
+ const weighted = new WeightedDrop(drop, weight);
42
+ this.drops.push(weighted);
43
+ this.totalWeight += weight;
44
+ }
45
+ /**
46
+ * Get all drops in this table
47
+ */
48
+ getDrops() {
49
+ return [...this.drops];
50
+ }
51
+ /**
52
+ * Sort by weight (most common first)
53
+ */
54
+ sortByWeight(descending = true) {
55
+ this.drops.sort((a, b) => (descending ? b.weight - a.weight : a.weight - b.weight));
56
+ }
57
+ /**
58
+ * Calculate probability of each drop
59
+ */
60
+ getDropProbabilities() {
61
+ const probs = new Map();
62
+ for (const weighted of this.drops) {
63
+ probs.set(weighted.drop, weighted.getProbabilityInTable(this.totalWeight));
64
+ }
65
+ return probs;
66
+ }
67
+ /**
68
+ * Get the most likely drop
69
+ */
70
+ getMostLikelyDrop() {
71
+ return this.drops.length > 0
72
+ ? this.drops.reduce((max, curr) => (curr.weight > max.weight ? curr : max))
73
+ : undefined;
74
+ }
75
+ toString() {
76
+ return `WeightedDropTable(${this.drops.length} options, total weight: ${this.totalWeight})`;
77
+ }
78
+ }
79
+ /**
80
+ * Drop roll - Represents one "roll" in a multi-roll system
81
+ * Example: Zulrah drops coins (always) THEN rolls rare drop table
82
+ */
83
+ export class DropRoll {
84
+ name;
85
+ drops;
86
+ chanceString;
87
+ constructor(name, // e.g., "Primary", "Secondary", "Tertiary", "Rare"
88
+ drops, chanceString = 'Always') {
89
+ this.name = name;
90
+ this.drops = drops;
91
+ this.chanceString = chanceString;
92
+ }
93
+ /**
94
+ * Check if this roll is guaranteed
95
+ */
96
+ get isGuaranteed() {
97
+ return this.chanceString === 'Always';
98
+ }
99
+ /**
100
+ * Check if drops are weighted or a flat list
101
+ */
102
+ get isWeighted() {
103
+ return this.drops instanceof WeightedDropTable;
104
+ }
105
+ getDrop(itemId) {
106
+ if (this.isWeighted) {
107
+ return this.drops
108
+ .getDrops()
109
+ .find(w => w.drop.item === itemId)?.drop;
110
+ }
111
+ else {
112
+ return this.drops.find(d => d.item === itemId);
113
+ }
114
+ }
115
+ toString() {
116
+ const dropInfo = this.isWeighted
117
+ ? `Weighted(${this.drops.getDrops().length} options)`
118
+ : `${this.drops.length} drops`;
119
+ return `${this.name} Roll (${this.chanceString}): ${dropInfo}`;
120
+ }
121
+ }
122
+ /**
123
+ * Complete NPC drop table with multiple rolls
124
+ * Replaces the old flat drop array
125
+ *
126
+ * OSRS Example - Zulrah Boss:
127
+ * - Roll 1 (Always): 2-3 drops from primary table
128
+ * - Roll 2 (Always): 1 drop from secondary table
129
+ * - Roll 3 (4/128): 1 drop from rare table
130
+ *
131
+ * OSRS Example - Woman NPC:
132
+ * - Roll 1 (Always): Bones (100%)
133
+ * (Note: Woman only has one simple roll)
134
+ */
135
+ export class CompleteDropTable {
136
+ rolls = [];
137
+ name;
138
+ constructor(npcName = 'Unknown NPC') {
139
+ this.name = npcName;
140
+ }
141
+ /**
142
+ * Add a roll to the drop table
143
+ */
144
+ addRoll(roll) {
145
+ this.rolls.push(roll);
146
+ }
147
+ /**
148
+ * Add a simple guaranteed roll with flat drops
149
+ */
150
+ addSimpleRoll(name, drops) {
151
+ this.addRoll(new DropRoll(name, drops, 'Always'));
152
+ }
153
+ /**
154
+ * Add a weighted roll (e.g., rare drop table)
155
+ */
156
+ addWeightedRoll(name, table, chance = 'Always') {
157
+ const chanceStr = typeof chance === 'string' ? chance : `1/${chance}`;
158
+ this.addRoll(new DropRoll(name, table, chanceStr));
159
+ }
160
+ /**
161
+ * Get all rolls
162
+ */
163
+ getRolls() {
164
+ return [...this.rolls];
165
+ }
166
+ /**
167
+ * Get all possible drops (flattened)
168
+ */
169
+ getAllPossibleDrops() {
170
+ const allDrops = [];
171
+ for (const roll of this.rolls) {
172
+ if (roll.isWeighted) {
173
+ roll.drops
174
+ .getDrops()
175
+ .forEach((w) => {
176
+ if (!allDrops.find(d => d.item === w.drop.item)) {
177
+ allDrops.push(w.drop);
178
+ }
179
+ });
180
+ }
181
+ else {
182
+ roll.drops.forEach(drop => {
183
+ if (!allDrops.find(d => d.item === drop.item)) {
184
+ allDrops.push(drop);
185
+ }
186
+ });
187
+ }
188
+ }
189
+ return allDrops;
190
+ }
191
+ /**
192
+ * Find a specific drop by item ID
193
+ */
194
+ findDrop(itemId) {
195
+ for (const roll of this.rolls) {
196
+ const drop = roll.getDrop(itemId);
197
+ if (drop)
198
+ return drop;
199
+ }
200
+ return undefined;
201
+ }
202
+ /**
203
+ * Get conditional drops only
204
+ */
205
+ getConditionalDrops() {
206
+ return this.getAllPossibleDrops().filter(d => d.conditional);
207
+ }
208
+ /**
209
+ * Estimate average drops per kill (simplified)
210
+ */
211
+ estimateAverageDrops() {
212
+ let average = 0;
213
+ for (const roll of this.rolls) {
214
+ // Parse chance string to fraction
215
+ let rollChance = 1.0;
216
+ if (roll.chanceString !== 'Always') {
217
+ const parts = roll.chanceString.split('/');
218
+ if (parts.length === 2) {
219
+ rollChance = parseFloat(parts[0]) / parseFloat(parts[1]);
220
+ }
221
+ }
222
+ if (roll.isWeighted) {
223
+ // Average weighted item
224
+ const weighted = roll.drops;
225
+ const probs = weighted.getDropProbabilities();
226
+ let rollAverage = 0;
227
+ for (const [drop] of probs) {
228
+ const qty = drop.quantity;
229
+ const min = Array.isArray(qty) ? qty[0] : qty;
230
+ rollAverage += min; // Use min as estimate
231
+ }
232
+ average += rollAverage * rollChance;
233
+ }
234
+ else {
235
+ // Average flat drops
236
+ const flat = roll.drops;
237
+ let rollAverage = flat.reduce((sum, drop) => {
238
+ const qty = drop.quantity;
239
+ const min = Array.isArray(qty) ? qty[0] : qty;
240
+ return sum + min;
241
+ }, 0);
242
+ average += rollAverage * rollChance;
243
+ }
244
+ }
245
+ return average;
246
+ }
247
+ toString() {
248
+ return `${this.name} Drop Table\n${this.rolls.map(r => ` - ${r.toString()}`).join('\n')}`;
249
+ }
250
+ }
251
+ /**
252
+ * Shared rare drop table - Used by multiple NPCs
253
+ * OSRS Example: Many bosses share the same rare drop table
254
+ */
255
+ export class SharedRareDropTable {
256
+ rarities = new Map();
257
+ /**
258
+ * Add a weighted drop table for a specific rarity tier
259
+ * Example: tier 1 = very rare (1/512), tier 2 = rare (1/128), etc.
260
+ */
261
+ addTier(tier, table) {
262
+ this.rarities.set(tier, table);
263
+ }
264
+ /**
265
+ * Get a specific tier
266
+ */
267
+ getTier(tier) {
268
+ return this.rarities.get(tier);
269
+ }
270
+ /**
271
+ * Get all tiers
272
+ */
273
+ getAllTiers() {
274
+ return Array.from(this.rarities.keys()).sort();
275
+ }
276
+ toString() {
277
+ return `SharedRareDropTable(${this.rarities.size} tiers)`;
278
+ }
279
+ }
280
+ // ============================================================================
281
+ // PRACTICAL EXAMPLES
282
+ // ============================================================================
283
+ /**
284
+ * Example 1: Simple NPC (Woman)
285
+ * - Always drops Bones (100%)
286
+ */
287
+ export function createWomanDropTable() {
288
+ const table = new CompleteDropTable('Woman');
289
+ table.addSimpleRoll('Standard', [new NpcDrop('Bones', 1, 'Always')]);
290
+ return table;
291
+ }
292
+ /**
293
+ * Example 2: Boss with multiple rolls (Zulrah simplified)
294
+ * - Always get 2-3 primary drops
295
+ * - Always get 1 secondary drop
296
+ * - 4/128 chance for 1 rare drop
297
+ */
298
+ export function createZulrahDropTable() {
299
+ const table = new CompleteDropTable('Zulrah');
300
+ // Primary roll - always happens, multiple drops
301
+ const primaryDrops = [
302
+ new NpcDrop('Zulrah\'s Scales', [20, 40], 'Always'),
303
+ new NpcDrop('Snake Hides', [10, 20], 'Always'),
304
+ ];
305
+ table.addSimpleRoll('Primary', primaryDrops);
306
+ // Secondary roll - always happens, single drop
307
+ const secondaryDrops = [
308
+ new NpcDrop('Torstol', [2, 4], 'Always'),
309
+ new NpcDrop('Snapdragon', [3, 5], 'Always'),
310
+ ];
311
+ table.addSimpleRoll('Secondary', secondaryDrops);
312
+ // Rare roll - 4/128 chance, weighted drops
313
+ const rareTable = new WeightedDropTable();
314
+ rareTable.addDrop(new NpcDrop('Magic Fang', 1, 'Always'), 20); // Least rare
315
+ rareTable.addDrop(new NpcDrop('Tanzanite Fang', 1, 'Always'), 20);
316
+ rareTable.addDrop(new NpcDrop('Serpentine Helm', 1, 'Always'), 10); // Most rare
317
+ table.addWeightedRoll('Rare', rareTable, '4/128');
318
+ return table;
319
+ }
320
+ /**
321
+ * Example 3: Boss with shared rare drop table
322
+ * Many GWD bosses share a common rare table
323
+ */
324
+ export function createSharedGWDRareTable() {
325
+ const shared = new SharedRareDropTable();
326
+ // Very rare tier (1/512)
327
+ const veryRareTable = new WeightedDropTable();
328
+ veryRareTable.addDrop(new NpcDrop('Bandos Godsword', 1, 'Always'), 1);
329
+ veryRareTable.addDrop(new NpcDrop('Zaff Godsword', 1, 'Always'), 1);
330
+ shared.addTier(1, veryRareTable);
331
+ // Rare tier (1/128)
332
+ const rareTable = new WeightedDropTable();
333
+ rareTable.addDrop(new NpcDrop('Bandos Hilt', 1, 'Always'), 1);
334
+ rareTable.addDrop(new NpcDrop('Zaff Hilt', 1, 'Always'), 1);
335
+ shared.addTier(2, rareTable);
336
+ return shared;
337
+ }
338
+ /**
339
+ * Example 4: Using shared rare table in an NPC
340
+ */
341
+ export function createGeneralGraardorDropTable(sharedRareTable) {
342
+ const table = new CompleteDropTable('General Graardor');
343
+ // Standard drops
344
+ const standardDrops = [
345
+ new NpcDrop('Coins', [1000, 5000], 'Always'),
346
+ new NpcDrop('Bandos Boots', 1, '1/50'),
347
+ ];
348
+ table.addSimpleRoll('Standard', standardDrops);
349
+ // Share rare table (1/512 for unique)
350
+ const rareTable = sharedRareTable.getTier(1);
351
+ if (rareTable) {
352
+ table.addWeightedRoll('Rare', rareTable, '1/512');
353
+ }
354
+ return table;
355
+ }
356
+ // ============================================================================
357
+ // DEMONSTRATION
358
+ // ============================================================================
359
+ export function demonstrateComplexDropSystems() {
360
+ console.log('\n=== WOMAN (Simple) ===');
361
+ const woman = createWomanDropTable();
362
+ console.log(woman.toString());
363
+ console.log('Possible drops:', woman.getAllPossibleDrops().map(d => d.item));
364
+ console.log('\n=== ZULRAH (Complex Multi-Roll) ===');
365
+ const zulrah = createZulrahDropTable();
366
+ console.log(zulrah.toString());
367
+ console.log('Estimated drops per kill:', zulrah.estimateAverageDrops().toFixed(2));
368
+ console.log('\n=== SHARED RARE TABLE ===');
369
+ const sharedRare = createSharedGWDRareTable();
370
+ console.log(sharedRare.toString());
371
+ console.log('Tiers:', sharedRare.getAllTiers());
372
+ console.log('\n=== GENERAL GRAARDOR (Uses Shared Rare) ===');
373
+ const graardor = createGeneralGraardorDropTable(sharedRare);
374
+ console.log(graardor.toString());
375
+ console.log('Possible drops:', graardor.getAllPossibleDrops().map(d => d.item));
376
+ // Find a specific drop
377
+ const bandosHilt = graardor.findDrop('Bandos Hilt');
378
+ if (bandosHilt) {
379
+ console.log(`\nFound Bandos Hilt: ${bandosHilt.toString()}`);
380
+ }
381
+ }
@@ -1,56 +1,157 @@
1
- import { NpcDrop } from './NpcDrop';
2
- import { NpcProduct } from './NpcProduct';
3
- /**
4
- * Represents a non-player character (NPC) in the game.
5
- * @property {number} id - Unique identifier for the NPC.
6
- * @property {string} name - Name of the NPC.
7
- * @property {string} examine - Description of the NPC.
8
- * @property {boolean} members - Indicates if the NPC is a members-only NPC.
9
- * @property {number} combatLevel - Combat level of the NPC.
10
- * @property {string} officialWikiUrl - URL to the official wiki page for the NPC.
11
- * @property {string} [iconUrl] - Optional URL for the NPC's icon.
12
- * @property {number} hitpoints - Hitpoints of the NPC.
13
- * @property {boolean} aggressive - Indicates if the NPC is aggressive.
14
- * @property {string} attackType - The type of attack the NPC uses (e.g., "melee", "ranged", "magic").
15
- * @property {string[]} attackStyles - The primary attack style of the NPC (e.g., "melee", "ranged", "magic").
16
- * @property {number} maxHit - The maximum hit the NPC can deal.
17
- * @property {number} attackSpeed - The attack speed of the NPC in ticks.
18
- * @property {number} respawnTime - The time in seconds before the NPC respawns after being killed.
19
- * @property {string[]} location - Locations where the NPC can be found.
20
- * @property {NpcDrop[]} drops - List of items that the NPC can drop upon death.
21
- * @property {string[]} weaknesses - List of weaknesses of the NPC (e.g., "slash", "stab", "crush").
22
- * @property {string[]} [products] - List of products/services the NPC offers (e.g., runes, house teleport, etc.).
23
- * @property {string[]} [dialogue] - List of notable dialogue lines or dialogue options.
24
- * @property {string[]} [changes] - List of notable changes/updates to the NPC.
1
+ import { NpcDrop } from "./NpcDrop";
2
+ import { NpcProduct } from "./NpcProduct";
3
+ /**
4
+ * Represents the base stats of an NPC.
5
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Combat stats section)
25
6
  */
26
- export declare class Npc {
27
- id: number;
28
- name: string;
29
- examine: string;
30
- members: boolean;
31
- combatLevel: number;
32
- officialWikiUrl: string;
33
- iconUrl?: string;
7
+ export interface NpcCombatStats {
34
8
  hitpoints: number;
35
- aggressive: boolean;
36
- attackable: boolean;
37
- canPoison: boolean;
38
- poisonous: boolean;
39
- canCannon: boolean;
40
- canThrall: boolean;
41
- canVenom: boolean;
42
- attackStyles: string[];
9
+ attack: number;
10
+ strength: number;
11
+ defence: number;
12
+ magic: number;
13
+ ranged: number;
14
+ }
15
+ /**
16
+ * Represents the offensive bonuses (Aggressive stats section from wiki).
17
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Aggressive stats section)
18
+ *
19
+ * These are the modifiers that affect the NPC's offensive capabilities.
20
+ */
21
+ export interface NpcAggressiveStats {
22
+ attackBonus: number;
23
+ strengthBonus: number;
24
+ magicStrengthBonus: number;
25
+ rangedStrengthBonus: number;
26
+ }
27
+ /**
28
+ * Represents melee defence bonuses against different damage types.
29
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Melee defence section)
30
+ */
31
+ export interface NpcMeleeDefence {
32
+ stab: number;
33
+ slash: number;
34
+ crush: number;
35
+ }
36
+ /**
37
+ * Represents magic defence.
38
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Magic defence section)
39
+ */
40
+ export interface NpcMagicDefence {
41
+ bonus: number;
42
+ elementalWeakness?: string;
43
+ }
44
+ /**
45
+ * Represents ranged defence bonuses against different projectile types.
46
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Ranged defence section)
47
+ */
48
+ export interface NpcRangedDefence {
49
+ light: number;
50
+ standard: number;
51
+ heavy: number;
52
+ }
53
+ /**
54
+ * Represents all defensive bonuses for an NPC.
55
+ * Organized by damage type as shown in the wiki.
56
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Defence sections)
57
+ */
58
+ export interface NpcDefences {
59
+ melee: NpcMeleeDefence;
60
+ magic: NpcMagicDefence;
61
+ ranged: NpcRangedDefence;
62
+ }
63
+ /**
64
+ * Represents status effects and environmental resistances.
65
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Immunities section)
66
+ */
67
+ export interface NpcImmunities {
68
+ canBePoison: boolean;
69
+ isPoisonous: boolean;
70
+ canBeVenom: boolean;
71
+ canBeCannoned: boolean;
72
+ canBeThralled: boolean;
73
+ }
74
+ /**
75
+ * Represents combat interactions and mechanics.
76
+ * Wiki reference: https://oldschool.runescape.wiki/w/Non-player_character
77
+ */
78
+ export interface NpcCombatMechanics {
43
79
  maxHit: number;
44
80
  attackSpeed: number;
45
81
  respawnTime: number;
46
- locations: string[];
47
- drops: NpcDrop[];
82
+ isAggressive: boolean;
83
+ isAttackable: boolean;
84
+ attackStyles: string[];
85
+ isPoisonous: boolean;
86
+ hasWeaponVenom: boolean;
48
87
  weaknesses: string[];
49
- products?: NpcProduct[];
50
- dialogue?: string[];
51
- changes?: string[];
52
- trivia?: string[];
53
- constructor(id: number, name: string, examine: string, members: boolean, combatLevel: number, officialWikiUrl: string, hitpoints: number, aggressive: boolean, attackable: boolean, canPoison: boolean, poisonous: boolean, canCannon: boolean, canThrall: boolean, canVenom: boolean, attackStyles: string[], maxHit: number, attackSpeed: number, respawnTime: number, locations: string[], drops: NpcDrop[], weaknesses: string[], iconUrl?: string, products?: NpcProduct[], dialogue?: string[], changes?: string[], trivia?: string[]);
54
- static createBasicNpc(name: string): Npc;
88
+ }
89
+ /**
90
+ * Represents an NPC in the game with comprehensive combat and attribute data.
91
+ * All data is verified against the OSRS wiki.
92
+ *
93
+ * Wiki references:
94
+ * - https://oldschool.runescape.wiki/w/Abyssal_demon (Example NPC with full stats)
95
+ * - https://oldschool.runescape.wiki/w/Non-player_character (General NPC info)
96
+ * - https://oldschool.runescape.wiki/w/Character (Character mechanics)
97
+ */
98
+ export declare class Npc {
99
+ readonly id: number;
100
+ readonly name: string;
101
+ readonly examine: string;
102
+ readonly members: boolean;
103
+ readonly officialWikiUrl: string;
104
+ readonly combatLevel: number;
105
+ readonly slayerLevel?: number;
106
+ readonly slayerXp?: number;
107
+ readonly stats: NpcCombatStats;
108
+ readonly aggressiveStats: NpcAggressiveStats;
109
+ readonly defences: NpcDefences;
110
+ readonly combat: NpcCombatMechanics;
111
+ readonly immunities: NpcImmunities;
112
+ readonly locations: string[];
113
+ readonly drops: NpcDrop[];
114
+ readonly products?: NpcProduct[];
115
+ readonly dialogue?: string[];
116
+ readonly changes?: string[];
117
+ readonly trivia?: string[];
118
+ constructor(data: {
119
+ id: number;
120
+ name: string;
121
+ examine: string;
122
+ members: boolean;
123
+ officialWikiUrl: string;
124
+ combatLevel: number;
125
+ slayerLevel?: number;
126
+ slayerXp?: number;
127
+ stats: NpcCombatStats;
128
+ aggressiveStats: NpcAggressiveStats;
129
+ defences: NpcDefences;
130
+ combat: NpcCombatMechanics;
131
+ immunities: NpcImmunities;
132
+ locations: string[];
133
+ drops: NpcDrop[];
134
+ products?: NpcProduct[];
135
+ dialogue?: string[];
136
+ changes?: string[];
137
+ trivia?: string[];
138
+ });
139
+ /**
140
+ * Get the NPC's defense roll against a specific attack type.
141
+ * Used in hit chance calculations.
142
+ * Wiki reference: https://oldschool.runescape.wiki/w/Abyssal_demon (Defence sections)
143
+ * @param attackType - Type of attack ("stab", "slash", "crush", "magic", "ranged-light", "ranged-standard", "ranged-heavy")
144
+ */
145
+ getDefenseAgainst(attackType: "stab" | "slash" | "crush" | "magic" | "ranged-light" | "ranged-standard" | "ranged-heavy"): number;
146
+ /**
147
+ * Check if this NPC can be harmed by a specific type of damage or effect.
148
+ * @param damageType - Type of damage/effect to check
149
+ */
150
+ canBeDamagedBy(damageType: "poison" | "venom" | "cannon" | "thrall"): boolean;
151
+ /**
152
+ * Create a minimal NPC with default values for quick testing.
153
+ * Not intended for actual game use - always verify with wiki.
154
+ */
155
+ static createBasicNpc(id: number, name: string): Npc;
55
156
  }
56
157
  //# sourceMappingURL=Npc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Npc.d.ts","sourceRoot":"","sources":["../../../../source/runescape/model/npc/Npc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;gBAGhB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,MAAM,CAAC,EAAE,MAAM,EAAE;IA8BnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;CA6BzC"}
1
+ {"version":3,"file":"Npc.d.ts","sourceRoot":"","sources":["../../../../source/runescape/model/npc/Npc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,qBAAa,GAAG;IAEd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAGjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAG/B,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAG7C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAG/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAGpC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IAGnC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAG1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEf,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAGlB,KAAK,EAAE,cAAc,CAAC;QAGtB,eAAe,EAAE,kBAAkB,CAAC;QAGpC,QAAQ,EAAE,WAAW,CAAC;QAGtB,MAAM,EAAE,kBAAkB,CAAC;QAG3B,UAAU,EAAE,aAAa,CAAC;QAG1B,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,EAAE,OAAO,EAAE,CAAC;QAGjB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB;IAyBD;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,MAAM;IAqBjI;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO;IAe7E;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG;CAiErD"}