azeroth-shell 0.0.0-stage → 0.1.1

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 (1163) hide show
  1. package/README.md +138 -2
  2. package/bin/azsh.mjs +19 -0
  3. package/docs/aifid/eventai-texts.json +4414 -0
  4. package/docs/dungeons/atlas/atlas-rows-dungeons.json +8989 -0
  5. package/docs/dungeons/survey/pack-id-migration.json +2418 -0
  6. package/package.json +35 -4
  7. package/src/autopilot/bossSkip.ts +26 -0
  8. package/src/autopilot/combatRotation.ts +824 -0
  9. package/src/autopilot/config.ts +533 -0
  10. package/src/autopilot/consumables.ts +58 -0
  11. package/src/autopilot/encounterStand.ts +121 -0
  12. package/src/autopilot/objectGatePlan.ts +53 -0
  13. package/src/autopilot/pathEngage.ts +229 -0
  14. package/src/autopilot/plan.ts +1643 -0
  15. package/src/autopilot/questPolicy.ts +274 -0
  16. package/src/autopilot/routeStep.ts +69 -0
  17. package/src/autopilot/sessionReport.ts +88 -0
  18. package/src/autopilot/topOffPower.ts +26 -0
  19. package/src/autopilot/view.ts +476 -0
  20. package/src/cli/bootCheck.mjs +34 -0
  21. package/src/cli/bootData.mjs +57 -0
  22. package/src/cli/combatLogFilter.ts +153 -0
  23. package/src/cli/combatLogFormat.ts +613 -0
  24. package/src/cli/fileRepository.mjs +105 -0
  25. package/src/cli/gzLoader.mjs +31 -0
  26. package/src/cli/liveGauntletEscort.ts +978 -0
  27. package/src/cli/liveStratUndead.ts +305 -0
  28. package/src/cli/macroHostCombat.ts +545 -0
  29. package/src/cli/macroHostWorld.ts +330 -0
  30. package/src/cli/prefs.mjs +31 -0
  31. package/src/cli/register.mjs +4 -0
  32. package/src/cli/repl.mjs +693 -0
  33. package/src/cli/rotationText.mjs +226 -0
  34. package/src/cli/squad.mjs +105 -0
  35. package/src/cli/term.mjs +144 -0
  36. package/src/cli/text.mjs +122 -0
  37. package/src/cli/tui.mjs +626 -0
  38. package/src/cli/tuiArena.mjs +109 -0
  39. package/src/cli/tuiAutopilotSettings.mjs +93 -0
  40. package/src/cli/tuiBags.mjs +180 -0
  41. package/src/cli/tuiBars.mjs +133 -0
  42. package/src/cli/tuiBg.mjs +243 -0
  43. package/src/cli/tuiBulk.mjs +162 -0
  44. package/src/cli/tuiCheck.mjs +1882 -0
  45. package/src/cli/tuiCity.mjs +396 -0
  46. package/src/cli/tuiCompanionKit.mjs +300 -0
  47. package/src/cli/tuiCompanions.mjs +471 -0
  48. package/src/cli/tuiDev.mjs +62 -0
  49. package/src/cli/tuiDungeon.mjs +606 -0
  50. package/src/cli/tuiEnchantTarget.mjs +120 -0
  51. package/src/cli/tuiFight.mjs +577 -0
  52. package/src/cli/tuiFightPanes.mjs +228 -0
  53. package/src/cli/tuiFloor.mjs +506 -0
  54. package/src/cli/tuiGear.mjs +158 -0
  55. package/src/cli/tuiHonor.mjs +74 -0
  56. package/src/cli/tuiLoot.mjs +97 -0
  57. package/src/cli/tuiMacros.mjs +144 -0
  58. package/src/cli/tuiOutfitter.mjs +115 -0
  59. package/src/cli/tuiPet.mjs +116 -0
  60. package/src/cli/tuiProfessions.mjs +800 -0
  61. package/src/cli/tuiRaid.mjs +127 -0
  62. package/src/cli/tuiRep.mjs +65 -0
  63. package/src/cli/tuiSaves.mjs +69 -0
  64. package/src/cli/tuiSearch.mjs +363 -0
  65. package/src/cli/tuiSettings.mjs +151 -0
  66. package/src/cli/tuiSimLab.mjs +80 -0
  67. package/src/cli/tuiTalents.mjs +60 -0
  68. package/src/cli/tuiViews.mjs +1178 -0
  69. package/src/cli/tuiWiki.mjs +181 -0
  70. package/src/cli/tuiWorld.mjs +361 -0
  71. package/src/cli/wikiIndex.ts +259 -0
  72. package/src/cli/wikiSources.ts +355 -0
  73. package/src/data/alteracValley.ts +176 -0
  74. package/src/data/appearanceOptions.ts +534 -0
  75. package/src/data/applyLootChanceSanity.ts +21 -0
  76. package/src/data/createFlavor.ts +96 -0
  77. package/src/data/customItems.ts +33 -0
  78. package/src/data/dataStore.ts +1904 -0
  79. package/src/data/dungeonGameObjects.ts +84 -0
  80. package/src/data/dungeonPlateCover.ts +66 -0
  81. package/src/data/dungeonSpawns.ts +294 -0
  82. package/src/data/dungeons/alterac-valley.ts +135 -0
  83. package/src/data/dungeons/apply-dungeon-rooms.ts +29 -0
  84. package/src/data/dungeons/apply-encounter-outdoors.ts +72 -0
  85. package/src/data/dungeons/apply-instance-geometry.ts +65 -0
  86. package/src/data/dungeons/apply-spawn-placement.ts +171 -0
  87. package/src/data/dungeons/blackfathom-deeps.ts +539 -0
  88. package/src/data/dungeons/blackrock-depths.ts +1410 -0
  89. package/src/data/dungeons/blackwing-lair.ts +129 -0
  90. package/src/data/dungeons/boss-eventai.ts +8 -0
  91. package/src/data/dungeons/deadmines.ts +410 -0
  92. package/src/data/dungeons/dire-maul-east.ts +980 -0
  93. package/src/data/dungeons/dire-maul-north.ts +661 -0
  94. package/src/data/dungeons/dire-maul-west.ts +785 -0
  95. package/src/data/dungeons/dungeon-rooms.json +5479 -0
  96. package/src/data/dungeons/encounter-outdoors.json +359 -0
  97. package/src/data/dungeons/eventai/blackfathom-deeps.ts +308 -0
  98. package/src/data/dungeons/eventai/blackrock-depths.ts +1257 -0
  99. package/src/data/dungeons/eventai/deadmines.ts +264 -0
  100. package/src/data/dungeons/eventai/dire-maul-east.ts +320 -0
  101. package/src/data/dungeons/eventai/gnomeregan.ts +213 -0
  102. package/src/data/dungeons/eventai/helpers.ts +79 -0
  103. package/src/data/dungeons/eventai/index.ts +133 -0
  104. package/src/data/dungeons/eventai/lbrs.ts +372 -0
  105. package/src/data/dungeons/eventai/maraudon.ts +323 -0
  106. package/src/data/dungeons/eventai/ragefire-chasm.ts +108 -0
  107. package/src/data/dungeons/eventai/razorfen-downs.ts +207 -0
  108. package/src/data/dungeons/eventai/razorfen-kraul.ts +326 -0
  109. package/src/data/dungeons/eventai/scholomance.ts +680 -0
  110. package/src/data/dungeons/eventai/shadowfang-keep.ts +230 -0
  111. package/src/data/dungeons/eventai/sm-cathedral.ts +75 -0
  112. package/src/data/dungeons/eventai/sm-graveyard.ts +150 -0
  113. package/src/data/dungeons/eventai/sm-library.ts +55 -0
  114. package/src/data/dungeons/eventai/stratholme-undead.ts +127 -0
  115. package/src/data/dungeons/eventai/sunken-temple.ts +582 -0
  116. package/src/data/dungeons/eventai/the-stockade.ts +228 -0
  117. package/src/data/dungeons/eventai/ubrs.ts +225 -0
  118. package/src/data/dungeons/eventai/uldaman.ts +355 -0
  119. package/src/data/dungeons/eventai/wailing-caverns.ts +396 -0
  120. package/src/data/dungeons/eventai/zul-farrak.ts +591 -0
  121. package/src/data/dungeons/gnomeregan.ts +909 -0
  122. package/src/data/dungeons/index.ts +126 -0
  123. package/src/data/dungeons/instance-geometry.json +5233 -0
  124. package/src/data/dungeons/key-sources.json +169 -0
  125. package/src/data/dungeons/lbrs.ts +996 -0
  126. package/src/data/dungeons/maraudon.ts +786 -0
  127. package/src/data/dungeons/molten-core.ts +194 -0
  128. package/src/data/dungeons/naxxramas.ts +173 -0
  129. package/src/data/dungeons/onyxias-lair.ts +71 -0
  130. package/src/data/dungeons/pack-from-clusters.ts +1256 -0
  131. package/src/data/dungeons/ragefire-chasm.ts +238 -0
  132. package/src/data/dungeons/razorfen-downs.ts +698 -0
  133. package/src/data/dungeons/razorfen-kraul.ts +766 -0
  134. package/src/data/dungeons/ruins-of-ahnqiraj.ts +121 -0
  135. package/src/data/dungeons/scholomance.ts +1076 -0
  136. package/src/data/dungeons/shadowfang-keep.ts +740 -0
  137. package/src/data/dungeons/sm-armory.ts +266 -0
  138. package/src/data/dungeons/sm-cathedral.ts +430 -0
  139. package/src/data/dungeons/sm-graveyard.ts +482 -0
  140. package/src/data/dungeons/sm-library.ts +337 -0
  141. package/src/data/dungeons/stratholme-live.ts +808 -0
  142. package/src/data/dungeons/stratholme-undead.ts +1164 -0
  143. package/src/data/dungeons/sunken-temple.ts +931 -0
  144. package/src/data/dungeons/temple-of-ahnqiraj.ts +119 -0
  145. package/src/data/dungeons/the-stockade.ts +282 -0
  146. package/src/data/dungeons/ubrs.ts +1286 -0
  147. package/src/data/dungeons/uldaman.ts +685 -0
  148. package/src/data/dungeons/wailing-caverns.ts +356 -0
  149. package/src/data/dungeons/zul-farrak.ts +686 -0
  150. package/src/data/dungeons/zul-gurub.ts +142 -0
  151. package/src/data/dungeons.ts +42 -0
  152. package/src/data/fixtures.ts +446 -0
  153. package/src/data/gameobject-data.json.gz +0 -0
  154. package/src/data/item-data.json.gz +0 -0
  155. package/src/data/loot-data.json.gz +0 -0
  156. package/src/data/maps/atlas-approach-maps.json +1425 -0
  157. package/src/data/maps/atlas-landmarks.json +1711 -0
  158. package/src/data/maps/dungeon-viewports.json +392 -0
  159. package/src/data/materializeModDamagePercentTaken.ts +70 -0
  160. package/src/data/materializeModHealthRegen.ts +89 -0
  161. package/src/data/materializeSpellReputation.ts +26 -0
  162. package/src/data/pageTexts.ts +19 -0
  163. package/src/data/profession-data.json.gz +0 -0
  164. package/src/data/raid-plans/blackfathom-deeps.json +86 -0
  165. package/src/data/raid-plans/blackrock-depths.json +419 -0
  166. package/src/data/raid-plans/blackwing-lair.json +328 -0
  167. package/src/data/raid-plans/deadmines.json +55 -0
  168. package/src/data/raid-plans/dire-maul-east.json +94 -0
  169. package/src/data/raid-plans/dire-maul-north.json +70 -0
  170. package/src/data/raid-plans/dire-maul-west.json +75 -0
  171. package/src/data/raid-plans/gnomeregan.json +131 -0
  172. package/src/data/raid-plans/lbrs.json +176 -0
  173. package/src/data/raid-plans/maraudon.json +102 -0
  174. package/src/data/raid-plans/molten-core.json +169 -0
  175. package/src/data/raid-plans/naxxramas.json +354 -0
  176. package/src/data/raid-plans/onyxias-lair.json +18 -0
  177. package/src/data/raid-plans/ragefire-chasm.json +30 -0
  178. package/src/data/raid-plans/razorfen-downs.json +75 -0
  179. package/src/data/raid-plans/razorfen-kraul.json +53 -0
  180. package/src/data/raid-plans/ruins-of-ahnqiraj.json +110 -0
  181. package/src/data/raid-plans/scholomance.json +170 -0
  182. package/src/data/raid-plans/shadowfang-keep.json +87 -0
  183. package/src/data/raid-plans/sm-armory.json +53 -0
  184. package/src/data/raid-plans/sm-cathedral.json +72 -0
  185. package/src/data/raid-plans/sm-graveyard.json +63 -0
  186. package/src/data/raid-plans/sm-library.json +23 -0
  187. package/src/data/raid-plans/stratholme-live.json +129 -0
  188. package/src/data/raid-plans/stratholme-undead.json +73 -0
  189. package/src/data/raid-plans/sunken-temple.json +159 -0
  190. package/src/data/raid-plans/temple-of-ahnqiraj.json +163 -0
  191. package/src/data/raid-plans/the-stockade.json +42 -0
  192. package/src/data/raid-plans/ubrs.json +53 -0
  193. package/src/data/raid-plans/uldaman.json +131 -0
  194. package/src/data/raid-plans/wailing-caverns.json +90 -0
  195. package/src/data/raid-plans/zul-farrak.json +156 -0
  196. package/src/data/raid-plans/zul-gurub.json +307 -0
  197. package/src/data/raidInstanceCreatures.mjs +473 -0
  198. package/src/data/rotations/index.ts +152 -0
  199. package/src/data/rotations/layout.mjs +72 -0
  200. package/src/data/rotations/pve/druid/balance.json +754 -0
  201. package/src/data/rotations/pve/druid/feral-tank.json +2448 -0
  202. package/src/data/rotations/pve/druid/feral.json +2660 -0
  203. package/src/data/rotations/pve/druid/restoration.json +424 -0
  204. package/src/data/rotations/pve/hunter/beast-mastery.json +1288 -0
  205. package/src/data/rotations/pve/hunter/marksmanship.json +1260 -0
  206. package/src/data/rotations/pve/hunter/survival.json +1373 -0
  207. package/src/data/rotations/pve/mage/arcane-leveling.json +1798 -0
  208. package/src/data/rotations/pve/mage/fire-leveling.json +2003 -0
  209. package/src/data/rotations/pve/mage/frost-leveling.json +1912 -0
  210. package/src/data/rotations/pve/paladin/holy.json +755 -0
  211. package/src/data/rotations/pve/paladin/protection.json +962 -0
  212. package/src/data/rotations/pve/paladin/retribution.json +924 -0
  213. package/src/data/rotations/pve/priest/discipline.json +772 -0
  214. package/src/data/rotations/pve/priest/holy.json +707 -0
  215. package/src/data/rotations/pve/priest/shadow.json +787 -0
  216. package/src/data/rotations/pve/rogue/assassination.json +2477 -0
  217. package/src/data/rotations/pve/rogue/combat.json +2483 -0
  218. package/src/data/rotations/pve/rogue/subtlety.json +2523 -0
  219. package/src/data/rotations/pve/shaman/elemental.json +1157 -0
  220. package/src/data/rotations/pve/shaman/enhancement.json +1085 -0
  221. package/src/data/rotations/pve/shaman/restoration.json +592 -0
  222. package/src/data/rotations/pve/warlock/affliction.json +1185 -0
  223. package/src/data/rotations/pve/warlock/demonology.json +1165 -0
  224. package/src/data/rotations/pve/warlock/destruction.json +1177 -0
  225. package/src/data/rotations/pve/warrior/arms.json +3020 -0
  226. package/src/data/rotations/pve/warrior/fury.json +2996 -0
  227. package/src/data/rotations/pve/warrior/protection.json +2509 -0
  228. package/src/data/rotations/pvp/druid/balance.json +593 -0
  229. package/src/data/rotations/pvp/druid/feral.json +3276 -0
  230. package/src/data/rotations/pvp/druid/restoration.json +662 -0
  231. package/src/data/rotations/pvp/hunter/beast-mastery.json +665 -0
  232. package/src/data/rotations/pvp/hunter/marksmanship.json +2406 -0
  233. package/src/data/rotations/pvp/hunter/survival.json +635 -0
  234. package/src/data/rotations/pvp/mage/arcane.json +574 -0
  235. package/src/data/rotations/pvp/mage/fire.json +570 -0
  236. package/src/data/rotations/pvp/mage/frost.json +4048 -0
  237. package/src/data/rotations/pvp/paladin/holy.json +1498 -0
  238. package/src/data/rotations/pvp/paladin/protection.json +567 -0
  239. package/src/data/rotations/pvp/paladin/retribution.json +1110 -0
  240. package/src/data/rotations/pvp/priest/discipline.json +1848 -0
  241. package/src/data/rotations/pvp/priest/holy.json +6340 -0
  242. package/src/data/rotations/pvp/priest/shadow.json +2329 -0
  243. package/src/data/rotations/pvp/rogue/assassination.json +1322 -0
  244. package/src/data/rotations/pvp/rogue/combat.json +5258 -0
  245. package/src/data/rotations/pvp/rogue/subtlety.json +586 -0
  246. package/src/data/rotations/pvp/shaman/elemental.json +1404 -0
  247. package/src/data/rotations/pvp/shaman/enhancement.json +1277 -0
  248. package/src/data/rotations/pvp/shaman/restoration.json +2490 -0
  249. package/src/data/rotations/pvp/warlock/affliction.json +1017 -0
  250. package/src/data/rotations/pvp/warlock/demonology.json +1503 -0
  251. package/src/data/rotations/pvp/warlock/destruction.json +638 -0
  252. package/src/data/rotations/pvp/warrior/arms.json +5665 -0
  253. package/src/data/rotations/pvp/warrior/fury.json +850 -0
  254. package/src/data/rotations/pvp/warrior/protection.json +777 -0
  255. package/src/data/schema/bundle.ts +511 -0
  256. package/src/data/schema/constants.ts +49 -0
  257. package/src/data/schema/creature.ts +454 -0
  258. package/src/data/schema/encounter.ts +155 -0
  259. package/src/data/schema/faction.ts +48 -0
  260. package/src/data/schema/item.ts +297 -0
  261. package/src/data/schema/itemEnchant.ts +105 -0
  262. package/src/data/schema/npc.ts +44 -0
  263. package/src/data/schema/primitives.ts +295 -0
  264. package/src/data/schema/profession.ts +226 -0
  265. package/src/data/schema/quest.ts +154 -0
  266. package/src/data/schema/spell.ts +1149 -0
  267. package/src/data/schema/talent.ts +74 -0
  268. package/src/data/schema/world.ts +124 -0
  269. package/src/data/schema.ts +19 -0
  270. package/src/data/skinNodeGapFill.ts +68 -0
  271. package/src/data/spell-data.json.gz +0 -0
  272. package/src/data/spell-script-targets.json +1 -0
  273. package/src/data/tables/ahItemValues.json.gz +0 -0
  274. package/src/data/tables/alteracValley.json.gz +0 -0
  275. package/src/data/tables/areatriggerTeleports.json.gz +0 -0
  276. package/src/data/tables/botNames.json.gz +0 -0
  277. package/src/data/tables/botPopulation.json.gz +0 -0
  278. package/src/data/tables/botSpecs.json.gz +0 -0
  279. package/src/data/tables/classLevelStats.json.gz +0 -0
  280. package/src/data/tables/combatConditions.json.gz +0 -0
  281. package/src/data/tables/combatSkillMeta.json.gz +0 -0
  282. package/src/data/tables/conditions.json.gz +0 -0
  283. package/src/data/tables/createInfo.json.gz +0 -0
  284. package/src/data/tables/creatureAggroGroups.json.gz +0 -0
  285. package/src/data/tables/creatureClassLevelStats.json.gz +0 -0
  286. package/src/data/tables/creaturePatrolPacks.json.gz +0 -0
  287. package/src/data/tables/creatureWeapons.json.gz +0 -0
  288. package/src/data/tables/creatures.json.gz +0 -0
  289. package/src/data/tables/dbScripts.json.gz +0 -0
  290. package/src/data/tables/dungeonAuthoredRoutes.json.gz +0 -0
  291. package/src/data/tables/dungeonCensus.json.gz +0 -0
  292. package/src/data/tables/dungeonGameObjects.json.gz +0 -0
  293. package/src/data/tables/dungeonPacks.json.gz +0 -0
  294. package/src/data/tables/dungeonPlateCover.json.gz +0 -0
  295. package/src/data/tables/dungeonSpawns.json.gz +0 -0
  296. package/src/data/tables/dungeonSurvey.json.gz +0 -0
  297. package/src/data/tables/durabilityCosts.json.gz +0 -0
  298. package/src/data/tables/durabilityQuality.json.gz +0 -0
  299. package/src/data/tables/enchantApplicators.json.gz +0 -0
  300. package/src/data/tables/entranceYards.json.gz +0 -0
  301. package/src/data/tables/explorationBasexp.json.gz +0 -0
  302. package/src/data/tables/factionTemplates.json.gz +0 -0
  303. package/src/data/tables/factions.json.gz +0 -0
  304. package/src/data/tables/gameEvents.json.gz +0 -0
  305. package/src/data/tables/gameObjects.json.gz +0 -0
  306. package/src/data/tables/gossipMenus.json.gz +0 -0
  307. package/src/data/tables/graveyards.json.gz +0 -0
  308. package/src/data/tables/instanceMaps.json.gz +0 -0
  309. package/src/data/tables/itemEnchantmentTemplates.json.gz +0 -0
  310. package/src/data/tables/itemEnchants.json.gz +0 -0
  311. package/src/data/tables/itemRandomProperties.json.gz +0 -0
  312. package/src/data/tables/itemSets.json.gz +0 -0
  313. package/src/data/tables/items.json.gz +0 -0
  314. package/src/data/tables/levelStats.json.gz +0 -0
  315. package/src/data/tables/locks.json.gz +0 -0
  316. package/src/data/tables/map-pin-overrides.json.gz +0 -0
  317. package/src/data/tables/nonCombatTrash.json.gz +0 -0
  318. package/src/data/tables/npcTexts.json.gz +0 -0
  319. package/src/data/tables/pageTexts.json.gz +0 -0
  320. package/src/data/tables/petAbilityTP.json.gz +0 -0
  321. package/src/data/tables/petGenericSpells.json.gz +0 -0
  322. package/src/data/tables/petLevelStats.json.gz +0 -0
  323. package/src/data/tables/playerbot-weightscales.json.gz +0 -0
  324. package/src/data/tables/pools.json.gz +0 -0
  325. package/src/data/tables/quests.json.gz +0 -0
  326. package/src/data/tables/races.json.gz +0 -0
  327. package/src/data/tables/reputationRanks.json.gz +0 -0
  328. package/src/data/tables/reputationRates.json.gz +0 -0
  329. package/src/data/tables/reputationSpillover.json.gz +0 -0
  330. package/src/data/tables/ridingSpells.json.gz +0 -0
  331. package/src/data/tables/scriptTexts.json.gz +0 -0
  332. package/src/data/tables/soundClipVolume.json.gz +0 -0
  333. package/src/data/tables/spellChain.json.gz +0 -0
  334. package/src/data/tables/spellTeleports.json.gz +0 -0
  335. package/src/data/tables/spells.json.gz +0 -0
  336. package/src/data/tables/talents.json.gz +0 -0
  337. package/src/data/tables/tavernTriggers.json.gz +0 -0
  338. package/src/data/tables/taxiNodes.json.gz +0 -0
  339. package/src/data/tables/taxiRoutes.json.gz +0 -0
  340. package/src/data/tables/trainers.json.gz +0 -0
  341. package/src/data/tables/transports.json.gz +0 -0
  342. package/src/data/tables/travelAnchors.json.gz +0 -0
  343. package/src/data/tables/travelEdges.json.gz +0 -0
  344. package/src/data/tables/unitConditions.json.gz +0 -0
  345. package/src/data/tables/vendors.json.gz +0 -0
  346. package/src/data/tables/weaponEnchantProcs.json.gz +0 -0
  347. package/src/data/tables/xp.json.gz +0 -0
  348. package/src/data/tables/zoneWeather.json.gz +0 -0
  349. package/src/data/tables/zones.json.gz +0 -0
  350. package/src/data/world-data.ts +56 -0
  351. package/src/data/zone-music-sets.json +2751 -0
  352. package/src/dev/etl/lib/loot-chance-sanity.mjs +180 -0
  353. package/src/domain/audioQuality.mjs +145 -0
  354. package/src/domain/bg/ab.ts +433 -0
  355. package/src/domain/bg/arenaComps.ts +644 -0
  356. package/src/domain/bg/arenaLab.ts +695 -0
  357. package/src/domain/bg/arenaPace.ts +31 -0
  358. package/src/domain/bg/arenaRating.ts +110 -0
  359. package/src/domain/bg/av.ts +758 -0
  360. package/src/domain/bg/avEnemyPush.ts +219 -0
  361. package/src/domain/bg/avField.ts +283 -0
  362. package/src/domain/bg/avInstanceNodes.ts +197 -0
  363. package/src/domain/bg/avInstanceScore.ts +123 -0
  364. package/src/domain/bg/avQuestItems.ts +55 -0
  365. package/src/domain/bg/avQuests.ts +210 -0
  366. package/src/domain/bg/avSession.ts +196 -0
  367. package/src/domain/bg/bgConsumes.ts +269 -0
  368. package/src/domain/bg/bgPrebuff.ts +153 -0
  369. package/src/domain/bg/bgRest.ts +91 -0
  370. package/src/domain/bg/bgRoster.ts +305 -0
  371. package/src/domain/bg/bgTier.ts +61 -0
  372. package/src/domain/bg/bgWorld.ts +862 -0
  373. package/src/domain/bg/match.ts +215 -0
  374. package/src/domain/bg/strategies.ts +552 -0
  375. package/src/domain/bg/types.ts +291 -0
  376. package/src/domain/bg/wsg.ts +264 -0
  377. package/src/domain/bots/actionProviderSpec.ts +38 -0
  378. package/src/domain/bots/autoConsumables.ts +285 -0
  379. package/src/domain/bots/betweenPullRest.ts +239 -0
  380. package/src/domain/bots/botGear.ts +248 -0
  381. package/src/domain/bots/botInventory.ts +486 -0
  382. package/src/domain/bots/botPet.ts +535 -0
  383. package/src/domain/bots/botPool.ts +291 -0
  384. package/src/domain/bots/botProfessions.ts +334 -0
  385. package/src/domain/bots/companionActionBar.ts +209 -0
  386. package/src/domain/bots/companionHireCost.ts +236 -0
  387. package/src/domain/bots/companionMissions.ts +582 -0
  388. package/src/domain/bots/companionPrep.ts +254 -0
  389. package/src/domain/bots/companionQuests.ts +270 -0
  390. package/src/domain/bots/companionRep.ts +75 -0
  391. package/src/domain/bots/companionRotation.ts +708 -0
  392. package/src/domain/bots/companionXp.ts +66 -0
  393. package/src/domain/bots/consumableShare.ts +811 -0
  394. package/src/domain/bots/dpsMate.ts +1072 -0
  395. package/src/domain/bots/groupCompReport.ts +132 -0
  396. package/src/domain/bots/healthstoneSupply.ts +198 -0
  397. package/src/domain/bots/outfitter.ts +1056 -0
  398. package/src/domain/bots/paladinPrePull.ts +231 -0
  399. package/src/domain/bots/partyRole.ts +40 -0
  400. package/src/domain/bots/playerbotEquipCache.ts +412 -0
  401. package/src/domain/bots/playerbotItemEligibility.ts +60 -0
  402. package/src/domain/bots/playerbotStatWeight.ts +853 -0
  403. package/src/domain/bots/playerbotUnavailableItems.ts +147 -0
  404. package/src/domain/bots/prePullBuffs.ts +219 -0
  405. package/src/domain/bots/prePullStealth.ts +82 -0
  406. package/src/domain/bots/runSupply.ts +251 -0
  407. package/src/domain/bots/runSupplyPrefs.ts +28 -0
  408. package/src/domain/bots/sendTradeGoods.ts +394 -0
  409. package/src/domain/bots/soulShardCap.ts +35 -0
  410. package/src/domain/bots/squad.ts +842 -0
  411. package/src/domain/bots/squadRun.ts +81 -0
  412. package/src/domain/character/actionbar.ts +346 -0
  413. package/src/domain/character/appearance.ts +165 -0
  414. package/src/domain/character/buildCombatant.ts +1726 -0
  415. package/src/domain/character/character.ts +356 -0
  416. package/src/domain/character/characterName.ts +43 -0
  417. package/src/domain/character/characterRatings.ts +424 -0
  418. package/src/domain/character/characterSpells.ts +282 -0
  419. package/src/domain/character/characterStats.ts +1559 -0
  420. package/src/domain/character/characterTalents.ts +398 -0
  421. package/src/domain/character/combatSkills.ts +994 -0
  422. package/src/domain/character/displayForm.ts +72 -0
  423. package/src/domain/character/formTalentAuras.ts +171 -0
  424. package/src/domain/character/forms.ts +499 -0
  425. package/src/domain/character/races.ts +40 -0
  426. package/src/domain/character/resurrectionSickness.ts +49 -0
  427. package/src/domain/character/spellbook.ts +169 -0
  428. package/src/domain/character/stanceBar.ts +354 -0
  429. package/src/domain/character/stancePrereq.ts +70 -0
  430. package/src/domain/character/talentBuilds.ts +63 -0
  431. package/src/domain/character/talentImport.ts +130 -0
  432. package/src/domain/character/talentLink.ts +123 -0
  433. package/src/domain/character/talents.ts +201 -0
  434. package/src/domain/core/conditionSnapshot.ts +92 -0
  435. package/src/domain/core/hover.ts +14 -0
  436. package/src/domain/core/ids.ts +58 -0
  437. package/src/domain/core/internalNameTags.ts +5 -0
  438. package/src/domain/core/runtimeDataPatches.ts +357 -0
  439. package/src/domain/creature/aiTargeting.ts +588 -0
  440. package/src/domain/creature/combatCondition.ts +157 -0
  441. package/src/domain/creature/creatureAggro.ts +804 -0
  442. package/src/domain/creature/creatureAi.ts +206 -0
  443. package/src/domain/creature/creatureAiConstants.ts +661 -0
  444. package/src/domain/creature/creatureCastList.ts +1007 -0
  445. package/src/domain/creature/creatureEventAi.ts +1409 -0
  446. package/src/domain/creature/creatureGroups.ts +144 -0
  447. package/src/domain/creature/creatureLinking.ts +333 -0
  448. package/src/domain/creature/creatureScaling.ts +320 -0
  449. package/src/domain/creature/creatureTrigger.ts +53 -0
  450. package/src/domain/creature/creatureWander.ts +74 -0
  451. package/src/domain/creature/eventAiTexts.ts +145 -0
  452. package/src/domain/creature/faction.ts +287 -0
  453. package/src/domain/creature/forcedReaction.ts +48 -0
  454. package/src/domain/creature/outdoorHuntable.ts +74 -0
  455. package/src/domain/creature/patrolPacks.ts +210 -0
  456. package/src/domain/creature/reputation.ts +967 -0
  457. package/src/domain/creature/unitFlags.ts +74 -0
  458. package/src/domain/creature/worldBosses.ts +393 -0
  459. package/src/domain/dungeonMusic.mjs +48 -0
  460. package/src/domain/economy/auction.ts +282 -0
  461. package/src/domain/economy/auctionBot.ts +1060 -0
  462. package/src/domain/economy/honorPrice.ts +100 -0
  463. package/src/domain/economy/mail.ts +958 -0
  464. package/src/domain/economy/money.ts +42 -0
  465. package/src/domain/economy/syntheticClassTrainers.ts +62 -0
  466. package/src/domain/economy/trading.ts +296 -0
  467. package/src/domain/economy/vendorSellAll.ts +252 -0
  468. package/src/domain/economy/vendorStock.ts +146 -0
  469. package/src/domain/items/ammo.ts +817 -0
  470. package/src/domain/items/bank.ts +162 -0
  471. package/src/domain/items/consumableFamily.ts +205 -0
  472. package/src/domain/items/craftUpgrades.ts +83 -0
  473. package/src/domain/items/createItem.ts +93 -0
  474. package/src/domain/items/durability.ts +581 -0
  475. package/src/domain/items/equipment.ts +441 -0
  476. package/src/domain/items/equipmentHelper.ts +767 -0
  477. package/src/domain/items/inventory.ts +561 -0
  478. package/src/domain/items/itemBonding.ts +93 -0
  479. package/src/domain/items/itemContainer.ts +245 -0
  480. package/src/domain/items/itemDisplayName.ts +33 -0
  481. package/src/domain/items/itemInstance.ts +181 -0
  482. package/src/domain/items/itemRandomEnchantOutcomes.ts +315 -0
  483. package/src/domain/items/itemRandomProps.ts +77 -0
  484. package/src/domain/items/itemRestrictions.ts +329 -0
  485. package/src/domain/items/itemTeaches.ts +82 -0
  486. package/src/domain/items/itemUseCooldown.ts +52 -0
  487. package/src/domain/items/itemUseTarget.ts +90 -0
  488. package/src/domain/items/junkCategories.ts +174 -0
  489. package/src/domain/items/junkFilter.ts +368 -0
  490. package/src/domain/items/keyring.ts +131 -0
  491. package/src/domain/items/loot.ts +221 -0
  492. package/src/domain/items/mounts.ts +190 -0
  493. package/src/domain/items/onUsePayload.ts +102 -0
  494. package/src/domain/items/pendingLoot.ts +107 -0
  495. package/src/domain/items/relic.ts +105 -0
  496. package/src/domain/items/rocketBoots.ts +36 -0
  497. package/src/domain/items/sortContainer.ts +139 -0
  498. package/src/domain/items/spareContainers.ts +71 -0
  499. package/src/domain/items/spellReagentIndex.ts +131 -0
  500. package/src/domain/items/staleConsumables.ts +66 -0
  501. package/src/domain/items/weaponSpender.ts +110 -0
  502. package/src/domain/listDungeonIds.mjs +28 -0
  503. package/src/domain/macro/compose.ts +239 -0
  504. package/src/domain/macro/conditions.ts +260 -0
  505. package/src/domain/macro/creatureTypes.ts +40 -0
  506. package/src/domain/macro/describe.ts +169 -0
  507. package/src/domain/macro/icon.ts +60 -0
  508. package/src/domain/macro/index.ts +20 -0
  509. package/src/domain/macro/normalize.ts +112 -0
  510. package/src/domain/macro/parse.ts +316 -0
  511. package/src/domain/macro/plan.ts +288 -0
  512. package/src/domain/macro/rotation.ts +590 -0
  513. package/src/domain/macro/rotationEnv.ts +173 -0
  514. package/src/domain/macro/slots.ts +101 -0
  515. package/src/domain/macro/snapshot.ts +114 -0
  516. package/src/domain/macro/templates.ts +446 -0
  517. package/src/domain/macro/types.ts +70 -0
  518. package/src/domain/macro/units.ts +93 -0
  519. package/src/domain/macro/weaponTypes.ts +83 -0
  520. package/src/domain/nav/cityTeleports.ts +10 -0
  521. package/src/domain/nav/mounting.ts +113 -0
  522. package/src/domain/nav/nav.ts +43 -0
  523. package/src/domain/nav/navCollision.ts +606 -0
  524. package/src/domain/nav/navOutdoors.ts +91 -0
  525. package/src/domain/nav/navRegistry.ts +179 -0
  526. package/src/domain/nav/navRoomGraph.ts +302 -0
  527. package/src/domain/nav/navTypes.ts +43 -0
  528. package/src/domain/nav/navmesh.ts +1715 -0
  529. package/src/domain/nav/speed.ts +200 -0
  530. package/src/domain/nav/storey.ts +10 -0
  531. package/src/domain/nav/travel.ts +725 -0
  532. package/src/domain/nav/travelTypes.ts +75 -0
  533. package/src/domain/pet/pet.ts +1150 -0
  534. package/src/domain/pet/petActionBar.ts +180 -0
  535. package/src/domain/pet/petSpellbook.ts +39 -0
  536. package/src/domain/pet/petStable.ts +81 -0
  537. package/src/domain/professions/autoDisenchant.ts +236 -0
  538. package/src/domain/professions/characterEnchants.ts +176 -0
  539. package/src/domain/professions/craftCooldown.ts +52 -0
  540. package/src/domain/professions/enchantApply.ts +62 -0
  541. package/src/domain/professions/enchantTargets.ts +114 -0
  542. package/src/domain/professions/enchanting.ts +236 -0
  543. package/src/domain/professions/gatherFilter.ts +149 -0
  544. package/src/domain/professions/gearEnchant.ts +137 -0
  545. package/src/domain/professions/heldTools.ts +29 -0
  546. package/src/domain/professions/learnAllRecipes.ts +146 -0
  547. package/src/domain/professions/miningHarvest.ts +69 -0
  548. package/src/domain/professions/partyDisenchant.ts +294 -0
  549. package/src/domain/professions/partyWork.ts +83 -0
  550. package/src/domain/professions/pickpocket.ts +172 -0
  551. package/src/domain/professions/poisons.ts +240 -0
  552. package/src/domain/professions/professions.ts +677 -0
  553. package/src/domain/professions/rareNodes.ts +45 -0
  554. package/src/domain/professions/skinLoot.ts +27 -0
  555. package/src/domain/professions/vendorReagents.ts +152 -0
  556. package/src/domain/professions/weaponImbueHand.ts +171 -0
  557. package/src/domain/questFarmFilter.mjs +42 -0
  558. package/src/domain/quests/doQuest.ts +1204 -0
  559. package/src/domain/quests/gossip.ts +308 -0
  560. package/src/domain/quests/gossipTalk.ts +298 -0
  561. package/src/domain/quests/interpreter/canComplete.ts +150 -0
  562. package/src/domain/quests/interpreter/claim.ts +137 -0
  563. package/src/domain/quests/interpreter/dbscript/handlers.ts +1371 -0
  564. package/src/domain/quests/interpreter/dbscript/handlersBatch.ts +1251 -0
  565. package/src/domain/quests/interpreter/dbscript/hooks.ts +331 -0
  566. package/src/domain/quests/interpreter/dbscript/index.ts +212 -0
  567. package/src/domain/quests/interpreter/dbscript/opcodes.ts +257 -0
  568. package/src/domain/quests/interpreter/dbscript/registry.ts +1194 -0
  569. package/src/domain/quests/interpreter/dbscript/registryAreatriggerScripts.ts +539 -0
  570. package/src/domain/quests/interpreter/dbscript/registryAshenvale.ts +553 -0
  571. package/src/domain/quests/interpreter/dbscript/registryAzshara.ts +272 -0
  572. package/src/domain/quests/interpreter/dbscript/registryDarkshore.ts +637 -0
  573. package/src/domain/quests/interpreter/dbscript/registryDesolace.ts +501 -0
  574. package/src/domain/quests/interpreter/dbscript/registryDustwallowMarsh.ts +735 -0
  575. package/src/domain/quests/interpreter/dbscript/registryFelwood.ts +493 -0
  576. package/src/domain/quests/interpreter/dbscript/registryFeralas.ts +485 -0
  577. package/src/domain/quests/interpreter/dbscript/registryGoScripts.ts +203 -0
  578. package/src/domain/quests/interpreter/dbscript/registryMoonglade.ts +288 -0
  579. package/src/domain/quests/interpreter/dbscript/registryNpcProfessions.ts +230 -0
  580. package/src/domain/quests/interpreter/dbscript/registryNpcsSpecial.ts +545 -0
  581. package/src/domain/quests/interpreter/dbscript/registryRazorfenDowns.ts +293 -0
  582. package/src/domain/quests/interpreter/dbscript/registryRazorfenKraul.ts +221 -0
  583. package/src/domain/quests/interpreter/dbscript/registryRedridge.ts +112 -0
  584. package/src/domain/quests/interpreter/dbscript/registrySearingGorge.ts +125 -0
  585. package/src/domain/quests/interpreter/dbscript/registrySiblings.ts +51 -0
  586. package/src/domain/quests/interpreter/dbscript/registrySilverpineForest.ts +172 -0
  587. package/src/domain/quests/interpreter/dbscript/registryStonetalonMountains.ts +180 -0
  588. package/src/domain/quests/interpreter/dbscript/registryStormwindCity.ts +369 -0
  589. package/src/domain/quests/interpreter/dbscript/registryStranglethornVale.ts +115 -0
  590. package/src/domain/quests/interpreter/dbscript/registryStratholme.ts +146 -0
  591. package/src/domain/quests/interpreter/dbscript/registrySunkenTemple.ts +149 -0
  592. package/src/domain/quests/interpreter/dbscript/registrySwampOfSorrows.ts +163 -0
  593. package/src/domain/quests/interpreter/dbscript/registryTanaris.ts +318 -0
  594. package/src/domain/quests/interpreter/dbscript/registryTeldrassil.ts +120 -0
  595. package/src/domain/quests/interpreter/dbscript/registryTheBarrens.ts +603 -0
  596. package/src/domain/quests/interpreter/dbscript/registryThousandNeedles.ts +499 -0
  597. package/src/domain/quests/interpreter/dbscript/registryTirisfalGlades.ts +222 -0
  598. package/src/domain/quests/interpreter/dbscript/registryUngoroCrater.ts +291 -0
  599. package/src/domain/quests/interpreter/dbscript/registryWarEffort.ts +773 -0
  600. package/src/domain/quests/interpreter/dbscript/registryWesternPlaguelands.ts +206 -0
  601. package/src/domain/quests/interpreter/dbscript/registryWestfall.ts +190 -0
  602. package/src/domain/quests/interpreter/dbscript/registryWetlands.ts +186 -0
  603. package/src/domain/quests/interpreter/dbscript/registryWinterspring.ts +235 -0
  604. package/src/domain/quests/interpreter/dbscript/types.ts +817 -0
  605. package/src/domain/quests/interpreter/dbscript/vm.ts +171 -0
  606. package/src/domain/quests/interpreter/diff.ts +349 -0
  607. package/src/domain/quests/interpreter/fixtures/oracle-questlog-qi2.json +2417 -0
  608. package/src/domain/quests/interpreter/flags.ts +101 -0
  609. package/src/domain/quests/interpreter/index.ts +113 -0
  610. package/src/domain/quests/interpreter/live.ts +178 -0
  611. package/src/domain/quests/interpreter/types.ts +81 -0
  612. package/src/domain/quests/interpreter/updaters.ts +412 -0
  613. package/src/domain/quests/questCorpseUse.ts +155 -0
  614. package/src/domain/quests/questDialog.ts +43 -0
  615. package/src/domain/quests/questFight.ts +34 -0
  616. package/src/domain/quests/questObjectiveLabel.ts +39 -0
  617. package/src/domain/quests/questRewardChoice.ts +85 -0
  618. package/src/domain/quests/questScriptCredit.ts +26 -0
  619. package/src/domain/quests/questScriptItemUse.ts +74 -0
  620. package/src/domain/quests/questTameRods.ts +79 -0
  621. package/src/domain/quests/questlog.ts +1545 -0
  622. package/src/domain/quests/talkDeliver.ts +170 -0
  623. package/src/domain/raid/globalActionBar.ts +195 -0
  624. package/src/domain/raid/instanceRoster.ts +194 -0
  625. package/src/domain/raid/partySummon.ts +198 -0
  626. package/src/domain/raid/partyVault.ts +320 -0
  627. package/src/domain/raid/raidBossAbilities.ts +268 -0
  628. package/src/domain/raid/raidComp.ts +335 -0
  629. package/src/domain/raid/raidCustomRows.ts +453 -0
  630. package/src/domain/raid/raidEncounterGear.ts +298 -0
  631. package/src/domain/raid/raidEncounterTactics.ts +412 -0
  632. package/src/domain/raid/raidPlan.ts +509 -0
  633. package/src/domain/raid/raidPlanEdits.ts +98 -0
  634. package/src/domain/raid/raidPlanPacks.ts +480 -0
  635. package/src/domain/raid/raidRecovery.ts +183 -0
  636. package/src/domain/raid/raidRosterTemplate.ts +138 -0
  637. package/src/domain/rotation/auraSide.ts +68 -0
  638. package/src/domain/rotation/build.ts +3031 -0
  639. package/src/domain/rotation/classes/druid.ts +58 -0
  640. package/src/domain/rotation/classes/hooks.ts +59 -0
  641. package/src/domain/rotation/classes/hunter.ts +156 -0
  642. package/src/domain/rotation/classes/index.ts +104 -0
  643. package/src/domain/rotation/classes/mage.ts +99 -0
  644. package/src/domain/rotation/classes/paladin.ts +296 -0
  645. package/src/domain/rotation/classes/priest.ts +94 -0
  646. package/src/domain/rotation/classes/pullOpener.ts +92 -0
  647. package/src/domain/rotation/classes/rogue.ts +69 -0
  648. package/src/domain/rotation/classes/shaman.ts +29 -0
  649. package/src/domain/rotation/classes/supportSpec.ts +94 -0
  650. package/src/domain/rotation/classes/warlock.ts +81 -0
  651. package/src/domain/rotation/classes/warrior.ts +402 -0
  652. package/src/domain/rotation/classify.ts +1381 -0
  653. package/src/domain/rotation/condMetricPicker.ts +379 -0
  654. package/src/domain/rotation/consumables.ts +242 -0
  655. package/src/domain/rotation/evaluate.ts +1115 -0
  656. package/src/domain/rotation/finisherLadder.ts +145 -0
  657. package/src/domain/rotation/invent.ts +938 -0
  658. package/src/domain/rotation/killOrder.ts +30 -0
  659. package/src/domain/rotation/openerForm.ts +22 -0
  660. package/src/domain/rotation/paladinBuffs.ts +568 -0
  661. package/src/domain/rotation/prebuff.ts +283 -0
  662. package/src/domain/rotation/raidRowTuning.ts +34 -0
  663. package/src/domain/rotation/rotation.ts +11 -0
  664. package/src/domain/rotation/rotationProfiles.ts +180 -0
  665. package/src/domain/rotation/rotationSuggestions.ts +851 -0
  666. package/src/domain/rotation/ruleAfterChain.ts +49 -0
  667. package/src/domain/rotation/spec.ts +70 -0
  668. package/src/domain/rotation/spellPicker.ts +140 -0
  669. package/src/domain/rotation/stand.ts +143 -0
  670. package/src/domain/rotation/types.ts +718 -0
  671. package/src/domain/run/battlegroundRun.ts +111 -0
  672. package/src/domain/run/canEnterContext.ts +32 -0
  673. package/src/domain/run/death.ts +561 -0
  674. package/src/domain/run/deathRecovery.ts +289 -0
  675. package/src/domain/run/duel.ts +141 -0
  676. package/src/domain/run/dungeonRun.ts +344 -0
  677. package/src/domain/run/floorRest.ts +159 -0
  678. package/src/domain/run/honor.ts +557 -0
  679. package/src/domain/run/honorWeek.ts +180 -0
  680. package/src/domain/run/whenMap.ts +977 -0
  681. package/src/domain/scriptdev/arathiHighlands.ts +445 -0
  682. package/src/domain/scriptdev/ashenvale.ts +635 -0
  683. package/src/domain/scriptdev/ashenvaleHelpers.ts +1215 -0
  684. package/src/domain/scriptdev/azshara.ts +892 -0
  685. package/src/domain/scriptdev/blackfathomDeeps.ts +212 -0
  686. package/src/domain/scriptdev/blackrockDepths.ts +1434 -0
  687. package/src/domain/scriptdev/blackrockSpire.ts +730 -0
  688. package/src/domain/scriptdev/blackwingLair.ts +521 -0
  689. package/src/domain/scriptdev/burningSteppes.ts +62 -0
  690. package/src/domain/scriptdev/classFilter.ts +43 -0
  691. package/src/domain/scriptdev/darkshore.ts +817 -0
  692. package/src/domain/scriptdev/darkshoreHelpers.ts +853 -0
  693. package/src/domain/scriptdev/deadmines.ts +331 -0
  694. package/src/domain/scriptdev/desolace.ts +1239 -0
  695. package/src/domain/scriptdev/direMaul.ts +859 -0
  696. package/src/domain/scriptdev/durotar.ts +532 -0
  697. package/src/domain/scriptdev/dustwallowMarsh.ts +758 -0
  698. package/src/domain/scriptdev/dustwallowMarshHelpers.ts +994 -0
  699. package/src/domain/scriptdev/easternPlaguelands.ts +21 -0
  700. package/src/domain/scriptdev/felwood.ts +1055 -0
  701. package/src/domain/scriptdev/feralas.ts +571 -0
  702. package/src/domain/scriptdev/feralasHelpers.ts +838 -0
  703. package/src/domain/scriptdev/gnomeregan.ts +466 -0
  704. package/src/domain/scriptdev/guards.ts +616 -0
  705. package/src/domain/scriptdev/hinterlands.ts +693 -0
  706. package/src/domain/scriptdev/host.ts +1134 -0
  707. package/src/domain/scriptdev/index.ts +123 -0
  708. package/src/domain/scriptdev/instanceRaids.ts +136 -0
  709. package/src/domain/scriptdev/itemScripts.ts +37 -0
  710. package/src/domain/scriptdev/lochModan.ts +283 -0
  711. package/src/domain/scriptdev/maraudon.ts +232 -0
  712. package/src/domain/scriptdev/moltenCore.ts +831 -0
  713. package/src/domain/scriptdev/moonglade.ts +659 -0
  714. package/src/domain/scriptdev/moongladeHelpers.ts +933 -0
  715. package/src/domain/scriptdev/naxxramas.ts +577 -0
  716. package/src/domain/scriptdev/naxxramasConstruct.ts +364 -0
  717. package/src/domain/scriptdev/naxxramasFrostwyrm.ts +378 -0
  718. package/src/domain/scriptdev/naxxramasMilitary.ts +276 -0
  719. package/src/domain/scriptdev/npcProfessions.ts +1025 -0
  720. package/src/domain/scriptdev/npcsSpecial.ts +1379 -0
  721. package/src/domain/scriptdev/onyxiasLair.ts +313 -0
  722. package/src/domain/scriptdev/orgrimmar.ts +147 -0
  723. package/src/domain/scriptdev/professionSpecConsumer.ts +481 -0
  724. package/src/domain/scriptdev/razorfenDowns.ts +468 -0
  725. package/src/domain/scriptdev/razorfenKraul.ts +410 -0
  726. package/src/domain/scriptdev/redridgeMountains.ts +163 -0
  727. package/src/domain/scriptdev/registry.ts +945 -0
  728. package/src/domain/scriptdev/ruinsOfAhnqiraj.ts +356 -0
  729. package/src/domain/scriptdev/scarletMonastery.ts +713 -0
  730. package/src/domain/scriptdev/scholomance.ts +682 -0
  731. package/src/domain/scriptdev/searingGorge.ts +295 -0
  732. package/src/domain/scriptdev/shadowfangKeep.ts +181 -0
  733. package/src/domain/scriptdev/silithus.ts +71 -0
  734. package/src/domain/scriptdev/silverpineForest.ts +662 -0
  735. package/src/domain/scriptdev/stonetalonMountains.ts +493 -0
  736. package/src/domain/scriptdev/stormwindCity.ts +1192 -0
  737. package/src/domain/scriptdev/stranglethornVale.ts +402 -0
  738. package/src/domain/scriptdev/stratholme.ts +650 -0
  739. package/src/domain/scriptdev/stratholmeScripts.ts +505 -0
  740. package/src/domain/scriptdev/sunkenTemple.ts +736 -0
  741. package/src/domain/scriptdev/swampOfSorrows.ts +22 -0
  742. package/src/domain/scriptdev/tanaris.ts +391 -0
  743. package/src/domain/scriptdev/tanarisHelpers.ts +661 -0
  744. package/src/domain/scriptdev/teldrassil.ts +143 -0
  745. package/src/domain/scriptdev/templeOfAhnqiraj.ts +1013 -0
  746. package/src/domain/scriptdev/theBarrens.ts +709 -0
  747. package/src/domain/scriptdev/theBarrensHelpers.ts +1026 -0
  748. package/src/domain/scriptdev/thousandNeedles.ts +426 -0
  749. package/src/domain/scriptdev/thousandNeedlesHelpers.ts +566 -0
  750. package/src/domain/scriptdev/tirisfalGlades.ts +533 -0
  751. package/src/domain/scriptdev/types.ts +1026 -0
  752. package/src/domain/scriptdev/uldaman.ts +437 -0
  753. package/src/domain/scriptdev/ungoroCrater.ts +549 -0
  754. package/src/domain/scriptdev/ungoroCraterHelpers.ts +1006 -0
  755. package/src/domain/scriptdev/wailingCaverns.ts +700 -0
  756. package/src/domain/scriptdev/warEffort.ts +371 -0
  757. package/src/domain/scriptdev/westernPlaguelands.ts +952 -0
  758. package/src/domain/scriptdev/westfall.ts +767 -0
  759. package/src/domain/scriptdev/wetlands.ts +660 -0
  760. package/src/domain/scriptdev/winterspring.ts +482 -0
  761. package/src/domain/scriptdev/winterspringHelpers.ts +801 -0
  762. package/src/domain/scriptdev/worldBosses.ts +605 -0
  763. package/src/domain/scriptdev/zulfarrak.ts +478 -0
  764. package/src/domain/scriptdev/zulgurub.ts +1152 -0
  765. package/src/domain/sim/dummySim.ts +408 -0
  766. package/src/domain/sim/targetDummy.ts +29 -0
  767. package/src/domain/social/guild.ts +148 -0
  768. package/src/domain/spells/areaAuraMembership.ts +93 -0
  769. package/src/domain/spells/breakableStunCc.ts +166 -0
  770. package/src/domain/spells/cancelAura.ts +80 -0
  771. package/src/domain/spells/diminishing.ts +167 -0
  772. package/src/domain/spells/dispel.ts +149 -0
  773. package/src/domain/spells/dispelMechanic.ts +105 -0
  774. package/src/domain/spells/equipSpells.ts +247 -0
  775. package/src/domain/spells/learnOnTargets.ts +260 -0
  776. package/src/domain/spells/mergeSchoolImmunityFromRaw.ts +66 -0
  777. package/src/domain/spells/resurrectSpell.ts +124 -0
  778. package/src/domain/spells/spellPushback.ts +39 -0
  779. package/src/domain/spells/spellReflect.ts +43 -0
  780. package/src/domain/spells/stealth.ts +183 -0
  781. package/src/domain/spells/totem.ts +394 -0
  782. package/src/domain/spells/worldCast.ts +187 -0
  783. package/src/domain/world/areaTriggerLocks.ts +177 -0
  784. package/src/domain/world/dungeonMusic.ts +108 -0
  785. package/src/domain/world/gameEvents.ts +119 -0
  786. package/src/domain/world/gameObjects.ts +1030 -0
  787. package/src/domain/world/goEventFire.ts +234 -0
  788. package/src/domain/world/goMoTransport.ts +74 -0
  789. package/src/domain/world/goTransport.ts +81 -0
  790. package/src/domain/world/hazards.ts +459 -0
  791. package/src/domain/world/openLock.ts +398 -0
  792. package/src/domain/world/pools.ts +470 -0
  793. package/src/domain/world/restArea.ts +37 -0
  794. package/src/domain/world/weather.ts +201 -0
  795. package/src/domain/zoneAmbience.mjs +87 -0
  796. package/src/domain/zoneMusic.mjs +62 -0
  797. package/src/domain/zoneMusicQueue.mjs +7 -0
  798. package/src/engine/combat/activeSeal.ts +39 -0
  799. package/src/engine/combat/aiTargetResolve.ts +64 -0
  800. package/src/engine/combat/aoeCast.ts +289 -0
  801. package/src/engine/combat/applyConsumeAura.ts +74 -0
  802. package/src/engine/combat/applyDemonicSacrifice.ts +70 -0
  803. package/src/engine/combat/applyDispelMechanic.ts +30 -0
  804. package/src/engine/combat/applyHealEffect.ts +301 -0
  805. package/src/engine/combat/applySchoolAbsorb.ts +114 -0
  806. package/src/engine/combat/applySpell.ts +3169 -0
  807. package/src/engine/combat/applySpellLate.ts +2026 -0
  808. package/src/engine/combat/applySpellLateBag.ts +144 -0
  809. package/src/engine/combat/areaAura.ts +283 -0
  810. package/src/engine/combat/attackTable.ts +508 -0
  811. package/src/engine/combat/battleRez.ts +87 -0
  812. package/src/engine/combat/castAction.ts +36 -0
  813. package/src/engine/combat/castTargetGates.ts +75 -0
  814. package/src/engine/combat/castableKit.ts +68 -0
  815. package/src/engine/combat/ccMirrorUpgrade.ts +39 -0
  816. package/src/engine/combat/chainFan.ts +210 -0
  817. package/src/engine/combat/channel.ts +423 -0
  818. package/src/engine/combat/chaseCloseness.ts +95 -0
  819. package/src/engine/combat/cmangosCastGates.ts +129 -0
  820. package/src/engine/combat/combatFlag.ts +77 -0
  821. package/src/engine/combat/combatGeometry.ts +1329 -0
  822. package/src/engine/combat/combustion.ts +68 -0
  823. package/src/engine/combat/context.ts +730 -0
  824. package/src/engine/combat/createSession.ts +1165 -0
  825. package/src/engine/combat/creatureLeash.ts +38 -0
  826. package/src/engine/combat/crowdControl.ts +1259 -0
  827. package/src/engine/combat/dispelDuty.ts +54 -0
  828. package/src/engine/combat/dispelReflect.ts +609 -0
  829. package/src/engine/combat/displaceFloor.ts +113 -0
  830. package/src/engine/combat/duelBounds.ts +47 -0
  831. package/src/engine/combat/equippedItemGate.ts +297 -0
  832. package/src/engine/combat/evadeLifecycle.ts +63 -0
  833. package/src/engine/combat/eventAi.ts +2220 -0
  834. package/src/engine/combat/facing.ts +74 -0
  835. package/src/engine/combat/fearFlee.ts +137 -0
  836. package/src/engine/combat/fighterFactory.ts +1144 -0
  837. package/src/engine/combat/forceDespawnAction.ts +51 -0
  838. package/src/engine/combat/formulas.ts +807 -0
  839. package/src/engine/combat/friendlyFan.ts +55 -0
  840. package/src/engine/combat/groundPoolTick.ts +210 -0
  841. package/src/engine/combat/hazards.ts +114 -0
  842. package/src/engine/combat/healTargets.ts +226 -0
  843. package/src/engine/combat/heartbeatResist.ts +49 -0
  844. package/src/engine/combat/hostileItemUse.ts +75 -0
  845. package/src/engine/combat/interruptAuras.ts +66 -0
  846. package/src/engine/combat/itemRescue.ts +49 -0
  847. package/src/engine/combat/itemUse.ts +260 -0
  848. package/src/engine/combat/kitById.ts +23 -0
  849. package/src/engine/combat/knockBack.ts +201 -0
  850. package/src/engine/combat/leap.ts +89 -0
  851. package/src/engine/combat/mitigation.ts +587 -0
  852. package/src/engine/combat/modTaunt.ts +43 -0
  853. package/src/engine/combat/motionClaim.ts +268 -0
  854. package/src/engine/combat/motionGate.ts +150 -0
  855. package/src/engine/combat/motionGenerator.ts +27 -0
  856. package/src/engine/combat/navSight.ts +138 -0
  857. package/src/engine/combat/perfSink.ts +28 -0
  858. package/src/engine/combat/periodicDue.ts +55 -0
  859. package/src/engine/combat/petAuras.ts +86 -0
  860. package/src/engine/combat/pickAction.ts +3449 -0
  861. package/src/engine/combat/powerForm.ts +735 -0
  862. package/src/engine/combat/powerPools.ts +49 -0
  863. package/src/engine/combat/predicates.ts +538 -0
  864. package/src/engine/combat/procsDamage.ts +1823 -0
  865. package/src/engine/combat/reactiveGates.ts +135 -0
  866. package/src/engine/combat/roles.ts +389 -0
  867. package/src/engine/combat/rotationSubject.ts +78 -0
  868. package/src/engine/combat/ruleAfter.ts +106 -0
  869. package/src/engine/combat/seedDisplayAuras.ts +203 -0
  870. package/src/engine/combat/seedOocEffects.ts +317 -0
  871. package/src/engine/combat/seedSchoolImmunities.ts +45 -0
  872. package/src/engine/combat/session-types.ts +458 -0
  873. package/src/engine/combat/sessionApi.ts +1785 -0
  874. package/src/engine/combat/sessionCharge.ts +124 -0
  875. package/src/engine/combat/sessionChase.ts +869 -0
  876. package/src/engine/combat/sessionDeaths.ts +469 -0
  877. package/src/engine/combat/sessionFocus.ts +506 -0
  878. package/src/engine/combat/sessionFollow.ts +167 -0
  879. package/src/engine/combat/sessionGeometry.ts +188 -0
  880. package/src/engine/combat/sessionHome.ts +75 -0
  881. package/src/engine/combat/sessionInject.ts +719 -0
  882. package/src/engine/combat/sessionMechanicMove.ts +555 -0
  883. package/src/engine/combat/sessionMotion.ts +1553 -0
  884. package/src/engine/combat/sessionMotionKit.ts +247 -0
  885. package/src/engine/combat/sessionMoveIntent.ts +49 -0
  886. package/src/engine/combat/sessionMoveOrder.ts +200 -0
  887. package/src/engine/combat/sessionPathTo.ts +657 -0
  888. package/src/engine/combat/sessionPools.ts +688 -0
  889. package/src/engine/combat/sessionSteer.ts +144 -0
  890. package/src/engine/combat/sessionStepBack.ts +151 -0
  891. package/src/engine/combat/sessionStepWrap.ts +116 -0
  892. package/src/engine/combat/sessionView.ts +442 -0
  893. package/src/engine/combat/simEffects.ts +32 -0
  894. package/src/engine/combat/simFacade.ts +620 -0
  895. package/src/engine/combat/simPump.ts +264 -0
  896. package/src/engine/combat/simSnapshot.ts +165 -0
  897. package/src/engine/combat/simThreadPool.ts +35 -0
  898. package/src/engine/combat/skeramImages.ts +57 -0
  899. package/src/engine/combat/slowUpdate.ts +178 -0
  900. package/src/engine/combat/snapToFloor.ts +42 -0
  901. package/src/engine/combat/speedAura.ts +29 -0
  902. package/src/engine/combat/spellReagents.ts +71 -0
  903. package/src/engine/combat/stealthDetect.ts +93 -0
  904. package/src/engine/combat/stepBackMotion.ts +171 -0
  905. package/src/engine/combat/stepSession.ts +3102 -0
  906. package/src/engine/combat/summonCast.ts +243 -0
  907. package/src/engine/combat/thaddiusPolarity.ts +97 -0
  908. package/src/engine/combat/threat.ts +388 -0
  909. package/src/engine/combat/threatOps.ts +272 -0
  910. package/src/engine/combat/tickWorkerBody.ts +211 -0
  911. package/src/engine/combat/totemAuras.ts +122 -0
  912. package/src/engine/combat/triggerPayload.ts +42 -0
  913. package/src/engine/combat/triggeredCompanion.ts +63 -0
  914. package/src/engine/combat/types.ts +1897 -0
  915. package/src/engine/combat/useObjectTrap.ts +140 -0
  916. package/src/engine/combat/walkSurface.ts +54 -0
  917. package/src/engine/combat/weapon.ts +1248 -0
  918. package/src/engine/combat/worldFrame.ts +43 -0
  919. package/src/engine/combat.solo-golden.json +2242 -0
  920. package/src/engine/combat.ts +84 -0
  921. package/src/engine/core/detMath.ts +289 -0
  922. package/src/engine/core/events.ts +357 -0
  923. package/src/engine/core/rng.ts +36 -0
  924. package/src/engine/game/actionBars.ts +124 -0
  925. package/src/engine/game/activateObjectFromSpell.ts +320 -0
  926. package/src/engine/game/applyActiveObjectFromDbScript.ts +98 -0
  927. package/src/engine/game/applyDeathAndSpellScripts.ts +268 -0
  928. package/src/engine/game/applyDoorFromDbScript.ts +388 -0
  929. package/src/engine/game/applyEscortFromDbScript.ts +290 -0
  930. package/src/engine/game/applyGoSpellcasterCast.ts +40 -0
  931. package/src/engine/game/applyHoverFromDbScript.ts +110 -0
  932. package/src/engine/game/applyOocResurrect.ts +71 -0
  933. package/src/engine/game/applySpellDurability.ts +115 -0
  934. package/src/engine/game/applyTailFromDbScript.ts +478 -0
  935. package/src/engine/game/applyTerminateFromDbScript.ts +95 -0
  936. package/src/engine/game/auctionMail.ts +269 -0
  937. package/src/engine/game/bagOverflow.ts +130 -0
  938. package/src/engine/game/bank.ts +110 -0
  939. package/src/engine/game/barAutofill.ts +26 -0
  940. package/src/engine/game/battleground.ts +369 -0
  941. package/src/engine/game/combatEnemySpec.ts +216 -0
  942. package/src/engine/game/combatObjectTraps.ts +167 -0
  943. package/src/engine/game/combatSeed.ts +320 -0
  944. package/src/engine/game/combatSession.ts +3241 -0
  945. package/src/engine/game/combatSessionClock.ts +62 -0
  946. package/src/engine/game/companionQuestActions.ts +242 -0
  947. package/src/engine/game/companionTraining.ts +40 -0
  948. package/src/engine/game/consumables.ts +624 -0
  949. package/src/engine/game/context.ts +53 -0
  950. package/src/engine/game/createHealthstone.ts +45 -0
  951. package/src/engine/game/deathFlow.ts +127 -0
  952. package/src/engine/game/devGrant.ts +117 -0
  953. package/src/engine/game/dynamicObject.ts +365 -0
  954. package/src/engine/game/enchantItem.ts +177 -0
  955. package/src/engine/game/equipmentHelper.ts +806 -0
  956. package/src/engine/game/factionState.ts +108 -0
  957. package/src/engine/game/garmentsOoc.ts +69 -0
  958. package/src/engine/game/globalActionBar.ts +179 -0
  959. package/src/engine/game/goInteractQuestCredit.ts +51 -0
  960. package/src/engine/game/goMoTransportUse.ts +61 -0
  961. package/src/engine/game/goTransportUse.ts +60 -0
  962. package/src/engine/game/healthstoneUpkeep.ts +59 -0
  963. package/src/engine/game/killSkin.ts +124 -0
  964. package/src/engine/game/learnFromItem.ts +118 -0
  965. package/src/engine/game/loadReconcile.ts +551 -0
  966. package/src/engine/game/loot.ts +294 -0
  967. package/src/engine/game/macros.ts +125 -0
  968. package/src/engine/game/mail.ts +293 -0
  969. package/src/engine/game/meetingStoneQueue.ts +75 -0
  970. package/src/engine/game/meetingStoneUse.ts +54 -0
  971. package/src/engine/game/newGameState.ts +363 -0
  972. package/src/engine/game/oocAuraInterrupt.ts +92 -0
  973. package/src/engine/game/oocCast.ts +241 -0
  974. package/src/engine/game/oocCastEffects.ts +803 -0
  975. package/src/engine/game/oocCastMethods.ts +1077 -0
  976. package/src/engine/game/openLockFromSpell.ts +174 -0
  977. package/src/engine/game/outdoorPvp.ts +187 -0
  978. package/src/engine/game/outfitter.ts +644 -0
  979. package/src/engine/game/paladinBoard.ts +393 -0
  980. package/src/engine/game/partyAuras.ts +121 -0
  981. package/src/engine/game/persistCombatAuras.ts +91 -0
  982. package/src/engine/game/pets.ts +459 -0
  983. package/src/engine/game/prePullHealthstones.ts +154 -0
  984. package/src/engine/game/professions.ts +2227 -0
  985. package/src/engine/game/pruneStaleRuntime.ts +39 -0
  986. package/src/engine/game/questFightCredit.ts +36 -0
  987. package/src/engine/game/questItemOnCorpse.ts +166 -0
  988. package/src/engine/game/questItemOnCreature.ts +103 -0
  989. package/src/engine/game/questLog.ts +879 -0
  990. package/src/engine/game/questSpellComplete.ts +21 -0
  991. package/src/engine/game/questTurnIn.ts +598 -0
  992. package/src/engine/game/raidParty.ts +32 -0
  993. package/src/engine/game/reagentBuyIn.ts +39 -0
  994. package/src/engine/game/regenRest.ts +186 -0
  995. package/src/engine/game/rotation.ts +425 -0
  996. package/src/engine/game/runFullDungeon.ts +611 -0
  997. package/src/engine/game/runSupply.ts +80 -0
  998. package/src/engine/game/sanitizeDriftedItems.ts +135 -0
  999. package/src/engine/game/scriptDevGoUse.ts +397 -0
  1000. package/src/engine/game/scriptDevInnkeeper.ts +150 -0
  1001. package/src/engine/game/scriptDevProfessionSpec.ts +99 -0
  1002. package/src/engine/game/sendEventFromSpell.ts +87 -0
  1003. package/src/engine/game/sortContainers.ts +85 -0
  1004. package/src/engine/game/spellReputation.ts +69 -0
  1005. package/src/engine/game/squad/squadDungeonSeating.ts +197 -0
  1006. package/src/engine/game/squadDungeon.ts +4222 -0
  1007. package/src/engine/game/squadQuestShare.ts +260 -0
  1008. package/src/engine/game/summonObjectSlot.ts +69 -0
  1009. package/src/engine/game/summonObjectWild.ts +73 -0
  1010. package/src/engine/game/summoningRitualUse.ts +141 -0
  1011. package/src/engine/game/talents.ts +356 -0
  1012. package/src/engine/game/tamingRodUse.ts +66 -0
  1013. package/src/engine/game/tempSpawnCreature.ts +136 -0
  1014. package/src/engine/game/tickDungeonPatrolScripts.ts +205 -0
  1015. package/src/engine/game/tickTimedQuests.ts +28 -0
  1016. package/src/engine/game/trade.ts +586 -0
  1017. package/src/engine/game/travel.ts +1155 -0
  1018. package/src/engine/game/types.ts +1855 -0
  1019. package/src/engine/game/vendorOffers.ts +244 -0
  1020. package/src/engine/game/weaponImbueItem.ts +281 -0
  1021. package/src/engine/game/worldSession.ts +183 -0
  1022. package/src/engine/game/worldState.ts +166 -0
  1023. package/src/engine/game.ts +968 -0
  1024. package/src/engine/spells/GAP.md +67 -0
  1025. package/src/engine/spells/absorbs.ts +376 -0
  1026. package/src/engine/spells/addTargetTrigger.ts +53 -0
  1027. package/src/engine/spells/auraPerSecondCost.ts +50 -0
  1028. package/src/engine/spells/auraStacking.ts +497 -0
  1029. package/src/engine/spells/cmangos-special-cases-combustion.ts +13 -0
  1030. package/src/engine/spells/cmangos-special-cases-s18.ts +445 -0
  1031. package/src/engine/spells/cmangos-special-cases-s19.ts +324 -0
  1032. package/src/engine/spells/cmangos-special-cases-s20.ts +385 -0
  1033. package/src/engine/spells/cmangos-special-cases-s21.ts +116 -0
  1034. package/src/engine/spells/cmangos-special-cases-s22.ts +24 -0
  1035. package/src/engine/spells/cmangos-special-cases-s23.ts +52 -0
  1036. package/src/engine/spells/cmangos-special-cases.ts +1570 -0
  1037. package/src/engine/spells/conditions.ts +718 -0
  1038. package/src/engine/spells/effects.ts +203 -0
  1039. package/src/engine/spells/fixtures/oracle-effects-lock9a.json +1 -0
  1040. package/src/engine/spells/immunity.ts +942 -0
  1041. package/src/engine/spells/intentEffects.ts +351 -0
  1042. package/src/engine/spells/interpreter/GAPS.md +21 -0
  1043. package/src/engine/spells/interpreter/amount.ts +109 -0
  1044. package/src/engine/spells/interpreter/class-scripts-kit.ts +478 -0
  1045. package/src/engine/spells/interpreter/diff.ts +246 -0
  1046. package/src/engine/spells/interpreter/duration.ts +90 -0
  1047. package/src/engine/spells/interpreter/form-attrs.json +1 -0
  1048. package/src/engine/spells/interpreter/form-attrs.ts +95 -0
  1049. package/src/engine/spells/interpreter/handlers/aura-remove.ts +113 -0
  1050. package/src/engine/spells/interpreter/handlers/auras-control.ts +1547 -0
  1051. package/src/engine/spells/interpreter/handlers/auras-core.ts +1583 -0
  1052. package/src/engine/spells/interpreter/handlers/auras-misc.ts +1774 -0
  1053. package/src/engine/spells/interpreter/handlers/effect-disenchant.ts +17 -0
  1054. package/src/engine/spells/interpreter/handlers/effect-skinning.ts +20 -0
  1055. package/src/engine/spells/interpreter/handlers/effects-action-utility.ts +1455 -0
  1056. package/src/engine/spells/interpreter/handlers/effects-core.ts +432 -0
  1057. package/src/engine/spells/interpreter/handlers/effects-remainder.ts +105 -0
  1058. package/src/engine/spells/interpreter/handlers/effects-summon-item.ts +687 -0
  1059. package/src/engine/spells/interpreter/handlers/mod-increase-energy-percent.ts +36 -0
  1060. package/src/engine/spells/interpreter/handlers/mod-increase-energy.ts +36 -0
  1061. package/src/engine/spells/interpreter/handlers/periodic-trigger-zero.ts +327 -0
  1062. package/src/engine/spells/interpreter/handlers/procs.ts +131 -0
  1063. package/src/engine/spells/interpreter/handlers/registry.ts +975 -0
  1064. package/src/engine/spells/interpreter/handlers/shared.ts +667 -0
  1065. package/src/engine/spells/interpreter/handlers.ts +9 -0
  1066. package/src/engine/spells/interpreter/hunter-kit.ts +202 -0
  1067. package/src/engine/spells/interpreter/index.ts +525 -0
  1068. package/src/engine/spells/interpreter/item-triggers.ts +1121 -0
  1069. package/src/engine/spells/interpreter/lift-consume-energy.ts +37 -0
  1070. package/src/engine/spells/interpreter/mage-portals.ts +37 -0
  1071. package/src/engine/spells/interpreter/materialize-charm.ts +88 -0
  1072. package/src/engine/spells/interpreter/materialize-dispel-mechanic.ts +25 -0
  1073. package/src/engine/spells/interpreter/materialize-rating-buffs.ts +81 -0
  1074. package/src/engine/spells/interpreter/materialize-speed.ts +109 -0
  1075. package/src/engine/spells/interpreter/materialize-spell-magnet.ts +22 -0
  1076. package/src/engine/spells/interpreter/opcodes.ts +789 -0
  1077. package/src/engine/spells/interpreter/paladin-kit.ts +95 -0
  1078. package/src/engine/spells/interpreter/paladin-seals.ts +499 -0
  1079. package/src/engine/spells/interpreter/priest-warlock-kit.ts +135 -0
  1080. package/src/engine/spells/interpreter/proc.ts +443 -0
  1081. package/src/engine/spells/interpreter/registry/helpers.ts +16 -0
  1082. package/src/engine/spells/interpreter/registry/index.ts +216 -0
  1083. package/src/engine/spells/interpreter/registry/packs/class-abilities.ts +304 -0
  1084. package/src/engine/spells/interpreter/registry/packs/dire-maul.ts +44 -0
  1085. package/src/engine/spells/interpreter/registry/packs/dummy-script-tail.ts +1065 -0
  1086. package/src/engine/spells/interpreter/registry/packs/ex-wave-m.ts +70 -0
  1087. package/src/engine/spells/interpreter/registry/packs/life-tap.ts +107 -0
  1088. package/src/engine/spells/interpreter/registry/packs/paladin.ts +246 -0
  1089. package/src/engine/spells/interpreter/registry/packs/raid-script-summons.ts +26 -0
  1090. package/src/engine/spells/interpreter/registry/packs/raid-threat-wipe.ts +22 -0
  1091. package/src/engine/spells/interpreter/registry/packs/shaman.ts +214 -0
  1092. package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-a.ts +269 -0
  1093. package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-b.ts +370 -0
  1094. package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-c.ts +172 -0
  1095. package/src/engine/spells/interpreter/registry/packs/si4-dummy-hunter.ts +60 -0
  1096. package/src/engine/spells/interpreter/registry/packs/si4-dummy-warrior.ts +31 -0
  1097. package/src/engine/spells/interpreter/registry/packs/si4-script-generic-a.ts +114 -0
  1098. package/src/engine/spells/interpreter/registry/packs/si4-script-generic-b.ts +249 -0
  1099. package/src/engine/spells/interpreter/registry/packs/si4-script-generic-c.ts +233 -0
  1100. package/src/engine/spells/interpreter/registry/types.ts +48 -0
  1101. package/src/engine/spells/interpreter/talent-scripted.ts +329 -0
  1102. package/src/engine/spells/interpreter/targeting.ts +90 -0
  1103. package/src/engine/spells/interpreter/types-intent.ts +1501 -0
  1104. package/src/engine/spells/interpreter/types.ts +419 -0
  1105. package/src/engine/spells/interpreter/warrior-druid-kit.ts +314 -0
  1106. package/src/engine/spells/interpreter/weapon-imbue-kit.ts +384 -0
  1107. package/src/engine/spells/interrupt.ts +217 -0
  1108. package/src/engine/spells/meleeAttackReset.ts +60 -0
  1109. package/src/engine/spells/oocTriggerSpell.ts +49 -0
  1110. package/src/engine/spells/overrideClassScripts.ts +319 -0
  1111. package/src/engine/spells/parryHaste.ts +20 -0
  1112. package/src/engine/spells/procs.ts +300 -0
  1113. package/src/engine/spells/recovery.ts +203 -0
  1114. package/src/engine/spells/scriptTargetDest.ts +76 -0
  1115. package/src/engine/spells/scriptTargets.ts +85 -0
  1116. package/src/engine/spells/singleTargetAura.ts +82 -0
  1117. package/src/engine/spells/specialCasePayloads.ts +57 -0
  1118. package/src/engine/spells/spellAttributes.ts +249 -0
  1119. package/src/engine/spells/spellBonus.ts +143 -0
  1120. package/src/engine/spells/spellModIntents.ts +419 -0
  1121. package/src/engine/spells/spellMods.ts +283 -0
  1122. package/src/engine/spells/spellRadius.ts +15 -0
  1123. package/src/engine/spells/trapObjects.ts +26 -0
  1124. package/src/json.d.ts +7 -0
  1125. package/src/persistence/memoryRepository.ts +23 -0
  1126. package/src/persistence/saveBackups.ts +162 -0
  1127. package/src/persistence/saveFile.ts +68 -0
  1128. package/src/persistence/saveRepository.ts +11 -0
  1129. package/src/persistence/saveShape.ts +668 -0
  1130. package/src/progression/leveling.ts +89 -0
  1131. package/src/progression/rest.ts +1434 -0
  1132. package/src/progression/training.ts +226 -0
  1133. package/src/progression/xpGain.ts +369 -0
  1134. package/src/quests/quests.ts +1580 -0
  1135. package/src/world/aoePull.ts +198 -0
  1136. package/src/world/areaTableDbc.ts +39 -0
  1137. package/src/world/areaTableMapIdPairs.ts +141 -0
  1138. package/src/world/bakeSlug.ts +43 -0
  1139. package/src/world/continuousDungeon.ts +1250 -0
  1140. package/src/world/dungeonBakeProjection.ts +190 -0
  1141. package/src/world/dungeonMapDensity.ts +342 -0
  1142. package/src/world/dungeonMapProjection.ts +135 -0
  1143. package/src/world/dungeonNav.ts +904 -0
  1144. package/src/world/dungeonNpcSim.ts +147 -0
  1145. package/src/world/dungeonObjectives.ts +234 -0
  1146. package/src/world/dungeonPreset.ts +35 -0
  1147. package/src/world/dungeonRoute.ts +311 -0
  1148. package/src/world/dungeonRouteGeometry.ts +732 -0
  1149. package/src/world/dungeonRouteOrder.ts +1037 -0
  1150. package/src/world/dungeonWingRooms.ts +426 -0
  1151. package/src/world/escort.ts +296 -0
  1152. package/src/world/goPoolRoll.ts +75 -0
  1153. package/src/world/instanceObjects.ts +785 -0
  1154. package/src/world/instances.ts +1572 -0
  1155. package/src/world/meetingStones.ts +56 -0
  1156. package/src/world/navmeshFloors.ts +145 -0
  1157. package/src/world/nearGrid.ts +167 -0
  1158. package/src/world/packBudget.ts +613 -0
  1159. package/src/world/rareRoll.ts +335 -0
  1160. package/src/world/routeAuthoring.ts +132 -0
  1161. package/src/world/routeEdit.ts +209 -0
  1162. package/src/world/world.ts +812 -0
  1163. package/src/world/zoneHazards.ts +47 -0
@@ -0,0 +1,354 @@
1
+ {
2
+ "raid": "naxxramas",
3
+ "bosses": [
4
+ {
5
+ "entry": 15956,
6
+ "name": "Anub'Rekhan",
7
+ "kinds": [
8
+ "flee"
9
+ ],
10
+ "cite": "boss_anubrekhan.cpp:44 LOCUSTSWARM 28785 is a 20 s self buff on him (naxxramas.ts:199 schedules it every 90 s); the raid leaves melee range until it drops",
11
+ "encounterRows": [
12
+ {
13
+ "kind": "flee",
14
+ "label": "Leave the Locust Swarm (30 yd)",
15
+ "cite": "boss_anubrekhan.cpp:44 SPELL_LOCUSTSWARM 28785 is a 20 s self buff on him (naxxramas.ts:199 schedules it every 90 s) whose proc_trigger fires 28786 every 2 s - aoe radiusYd 30, 875 nature and a 6 s silence, so it is a disc on HIM and not an aura on a raider. 35 is that 30 plus FLEE_CLEAR_MARGIN_YD. keep_range names the entry rather than the focus so a raider on an add still leaves, and its executor already stands the current victim down: nobody out-walks the mob that is on them",
16
+ "rule": {
17
+ "id": "raid_enc_15956_keep_28786",
18
+ "action": {
19
+ "kind": "move",
20
+ "move": {
21
+ "kind": "keep_range",
22
+ "minYd": 35,
23
+ "entry": 15956
24
+ }
25
+ },
26
+ "conditions": [
27
+ {
28
+ "subject": "target",
29
+ "metric": "buffPresent",
30
+ "op": "==",
31
+ "value": 1,
32
+ "ref": 28785
33
+ }
34
+ ],
35
+ "enabled": true
36
+ }
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ "entry": 15952,
42
+ "name": "Maexxna",
43
+ "kinds": [
44
+ "kill-order"
45
+ ],
46
+ "cite": "boss_maexxna.cpp:41,47-53 WEB_WRAP_INIT 28617 pins a raider to the wall behind a wrap NPC that has to be killed to free them - the one add whose order matters",
47
+ "blockedBy": {
48
+ "kill-order": "28627 Summon Web Wrap DOES resolve summon_wild + cc, so the wrap body exists once something casts it - and nothing does: 28617 resolves script_handled_noop, and naxxramas.ts:378 names the real gap, HandleVictimCheck has the VICTIM cast 28627 and there is no cast-as-player verb. dungeonSpawns map 533 also carries no 17055 Spiderling"
49
+ }
50
+ },
51
+ {
52
+ "entry": 15954,
53
+ "name": "Noth the Plaguebringer",
54
+ "kinds": [],
55
+ "cite": "boss_noth.cpp:38-80 the balcony teleport plus CURSE_PLAGUEBRINGER 29213 and Plagued Warriors/Champions. The curse is a decurse call and the adds are unordered, so no kind in this vocabulary applies - naxxramas.ts:84-86 already owns the balcony phase gap"
56
+ },
57
+ {
58
+ "entry": 15953,
59
+ "name": "Grand Widow Faerlina",
60
+ "kinds": [
61
+ "mc",
62
+ "spread"
63
+ ],
64
+ "cite": "boss_faerlina.cpp Worshipper 16506 Widow's Embrace 28732; Rain of Fire 28794",
65
+ "mcEntries": [
66
+ {
67
+ "entry": 16506,
68
+ "cite": "boss_faerlina.cpp:47,89-109 28732 is cast onto her by a MIND CONTROLLED Worshipper; naxxramas.ts FAERLINA_ADDS puts 4 of them on the floor",
69
+ "requireTargetBuff": 28798
70
+ }
71
+ ],
72
+ "encounterRows": [
73
+ {
74
+ "kind": "spread",
75
+ "label": "Step out of Rain of Fire (10 yd pool)",
76
+ "cite": "creature_spell_list 1595301:2 Rain of Fire 28794 bakes aoe ground radiusYd 10 with a 6 s fire dot (tickMs 2000); naxxramas.ts BOSS_FAERLINA schedules it every 16 s on hostile_random_player. isPersistentAreaEffect (aoe+dot) spawns the pool",
77
+ "rule": {
78
+ "id": "raid_enc_15953_avoid_28794",
79
+ "action": {
80
+ "kind": "move",
81
+ "move": {
82
+ "kind": "avoid_zone",
83
+ "id": "28794"
84
+ }
85
+ },
86
+ "conditions": [
87
+ {
88
+ "subject": "self",
89
+ "metric": "hazardProximityYd",
90
+ "op": "<=",
91
+ "value": 0
92
+ }
93
+ ],
94
+ "enabled": true
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "entry": 15936,
101
+ "name": "Heigan the Unclean",
102
+ "kinds": [
103
+ "flee"
104
+ ],
105
+ "cite": "boss_heigan.cpp:92,173-188 PlagueWaveController dance",
106
+ "encounterRows": [
107
+ {
108
+ "kind": "flee",
109
+ "label": "Run the dance - step off the erupting tile",
110
+ "cite": "boss_heigan.cpp:92,173-188 StartEruptions and :280-290 PlagueWaveController cycle {30116,30117,30118,30119,30118,30117}; each wave spell's three ACTIVATE_OBJECT slots light a third of its own Plague Fissures through spell_script_target, and every fissure is a gameobject_template type 6 whose trap.spellId is 29371 Eruption (direct_damage nature 3500-4500, radiusYd 6). The pools land at the fissures' own spawns through applySpell's activate_object arm; hazardProximityYd reads their edge the same way Magmadar's Conflagration row does. Driven by src/dev/smoke/heiganDance.mjs: 345 sites over the four waves, 88 live pools on a cast, a raider standing on one takes the hit",
111
+ "rule": {
112
+ "id": "raid_enc_15936_avoid_eruption",
113
+ "action": {
114
+ "kind": "move",
115
+ "move": {
116
+ "kind": "avoid_zone",
117
+ "id": "Eruption"
118
+ }
119
+ },
120
+ "conditions": [
121
+ {
122
+ "subject": "self",
123
+ "metric": "hazardProximityYd",
124
+ "op": "<=",
125
+ "value": 0
126
+ }
127
+ ],
128
+ "enabled": true
129
+ }
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "entry": 16011,
135
+ "name": "Loatheb",
136
+ "kinds": [],
137
+ "cite": "boss_loatheb.cpp Decurse / Corrupted Mind — healer rows after 29201 bake"
138
+ },
139
+ {
140
+ "entry": 16061,
141
+ "name": "Instructor Razuvious",
142
+ "kinds": [
143
+ "mc"
144
+ ],
145
+ "cite": "boss_razuvious.cpp Understudy 16803",
146
+ "mcEntries": [
147
+ {
148
+ "entry": 16803,
149
+ "cite": "boss_razuvious.cpp:20,46,72-81 a MCd Understudy taunts him with 29060; naxxramasMilitary.ts:32-34 keeps its baked list 1680305 in play"
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "entry": 16060,
155
+ "name": "Gothik the Harvester",
156
+ "kinds": [
157
+ "camp-split"
158
+ ],
159
+ "cite": "boss_gothik.cpp:49-63 live vs undead sides",
160
+ "blockedBy": {
161
+ "camp-split": "the adds are NOT the gap any more: 28007 / 28009 / 28011 bake proc_trigger and their triggers 27884 / 28008 / 28010 resolve summon_wild, and naxxramasMilitary.ts:198-200 arms all three on the sourced 4 s / 49 s / 104 s clock. What blocks the camps is the side state: boss_gothik.cpp:315 IsInRightSideGothikArea has no representation here (naxxramasMilitary.ts:37-43), so there is no live side and no gate for two camps to split across"
162
+ }
163
+ },
164
+ {
165
+ "entry": 16062,
166
+ "name": "The Four Horsemen",
167
+ "kinds": [
168
+ "camp-split"
169
+ ],
170
+ "cite": "boss_four_horsemen.cpp:64-67 markSpellList 28832/28833/28834/28835; four bodies via creatureLinking.ts:169-171"
171
+ },
172
+ {
173
+ "entry": 16028,
174
+ "name": "Patchwerk",
175
+ "kinds": [],
176
+ "cite": "boss_patchwerk.cpp Hateful Strike — OT melee stack after the target scheme"
177
+ },
178
+ {
179
+ "entry": 15931,
180
+ "name": "Grobbulus",
181
+ "kinds": [
182
+ "flee"
183
+ ],
184
+ "cite": "boss_grobbulus.cpp Mutating Injection",
185
+ "fleeAuras": [
186
+ {
187
+ "aura": 28169,
188
+ "radiusYd": 20,
189
+ "cite": "boss_grobbulus.cpp:119-140 MutatingInjection: dispel -> 28206 radiusYd 20, expire -> 28322 radiusYd 8, always 28240; 20 is the widest payload"
190
+ }
191
+ ]
192
+ },
193
+ {
194
+ "entry": 15932,
195
+ "name": "Gluth",
196
+ "kinds": [
197
+ "tank-swap",
198
+ "kill-order"
199
+ ],
200
+ "cite": "boss_gluth.cpp:36,68 SPELL_MORTALWOUND 25646 every 10 s on the victim; :42-46 the Zombie Chow heal him with 28238",
201
+ "tankSwapAura": 25646,
202
+ "encounterRows": [
203
+ {
204
+ "kind": "kill-order",
205
+ "label": "Kill the Zombie Chow before he eats one",
206
+ "cite": "naxxramas.h:79 NPC_ZOMBIE_CHOW 16360; boss_gluth.cpp:116-136 SUMMON_ZOMBIE_CHOW 28216 (naxxramasConstruct.ts:178 arms it on Gluth); 28216 resolves proc_trigger 28217 -> summon_wild 16360; :162-182 DEVOUR 28236 finds a 16360 and 28238 heals him 5 %",
207
+ "rule": {
208
+ "id": "raid_enc_15932_kill",
209
+ "action": {
210
+ "kind": "kill_order",
211
+ "entries": [
212
+ 16360
213
+ ]
214
+ },
215
+ "conditions": [],
216
+ "enabled": true
217
+ }
218
+ }
219
+ ]
220
+ },
221
+ {
222
+ "entry": 15990,
223
+ "name": "Kel'Thuzad",
224
+ "kinds": [
225
+ "spread"
226
+ ],
227
+ "cite": "boss_kelthuzad.cpp:92 MANA_DETONATION 27819 makes every mana user its own bomb, and the Shadow Fissure 27810 void zones are the other thing to stand out of",
228
+ "encounterRows": [
229
+ {
230
+ "kind": "spread",
231
+ "label": "Step out of the Shadow Fissure void zone",
232
+ "cite": "creature_spell_list 1599001:3 Shadow Fissure 27810 is scheduled on 15990 (targetId 100, 15-25 s) and its rawEffect 41 summons 16129; 16129 carries creatureCasts 27812 scriptId 1612901 eventType 1, so groundAoeOf publishes it. 27812 Void Blast bakes aoe ground radiusYd 5 direct_damage with rawEffects targetA 18 TARGET_LOCATION_CASTER_DEST, so the blast is centred on the fissure and persistentAreaFromSpell returns null (no dot). Measured by src/dev/capabilities/avoidZone.mjs: blastsTaken 0 with the row against blastsWithoutRow 5, ydFromFissure 6. Cite: boss_kelthuzad.cpp:92",
233
+ "note": "Detonate Mana 27819 is the OTHER half of this boss's spread and stays unauthorable: it resolves proc_trigger and its baked effects[] are empty, so it puts no aura on the raider for a buffPresent row to gate on.",
234
+ "rule": {
235
+ "id": "raid_enc_15990_avoid_27812",
236
+ "action": {
237
+ "kind": "move",
238
+ "move": {
239
+ "kind": "avoid_zone",
240
+ "id": "27812"
241
+ }
242
+ },
243
+ "conditions": [
244
+ {
245
+ "subject": "self",
246
+ "metric": "hazardProximityYd",
247
+ "op": "<=",
248
+ "value": 0
249
+ }
250
+ ],
251
+ "enabled": true
252
+ }
253
+ }
254
+ ]
255
+ },
256
+ {
257
+ "entry": 15928,
258
+ "name": "Thaddius",
259
+ "kinds": [
260
+ "camp-split"
261
+ ],
262
+ "cite": "boss_thaddius.cpp:363-468 Polarity Shift 28089 assigns 28059 / 28084, the charge payload 28062 / 28085 skips same-charge targets, and 29659 / 29660 stack once per same-charge ally inside 13 yd - so the raid answer is two camps, one per charge",
263
+ "encounterRows": [
264
+ {
265
+ "kind": "camp-split",
266
+ "label": "Stand with the positive charge",
267
+ "cite": "boss_thaddius.cpp:380-395 PolarityShift casts 28059; :453 range 13.f and spell 28062 bake radiusYd 13",
268
+ "rule": {
269
+ "id": "raid_enc_15928_polarity_28059",
270
+ "action": {
271
+ "kind": "move",
272
+ "move": {
273
+ "kind": "split_by_aura",
274
+ "aura": 28059,
275
+ "awayYd": 13
276
+ }
277
+ },
278
+ "conditions": [
279
+ {
280
+ "subject": "self",
281
+ "metric": "buffPresent",
282
+ "op": "==",
283
+ "value": 1,
284
+ "ref": 28059
285
+ },
286
+ {
287
+ "subject": "self",
288
+ "metric": "allyWithoutAuraNearYd",
289
+ "op": "<=",
290
+ "value": 13,
291
+ "ref": 28059
292
+ },
293
+ {
294
+ "subject": "self",
295
+ "metric": "targetAttackingMe",
296
+ "op": "==",
297
+ "value": 0
298
+ }
299
+ ],
300
+ "enabled": true
301
+ }
302
+ },
303
+ {
304
+ "kind": "camp-split",
305
+ "label": "Stand with the negative charge",
306
+ "cite": "boss_thaddius.cpp:380-395 PolarityShift casts 28084; :453 range 13.f and spell 28085 bake radiusYd 13",
307
+ "rule": {
308
+ "id": "raid_enc_15928_polarity_28084",
309
+ "action": {
310
+ "kind": "move",
311
+ "move": {
312
+ "kind": "split_by_aura",
313
+ "aura": 28084,
314
+ "awayYd": 13
315
+ }
316
+ },
317
+ "conditions": [
318
+ {
319
+ "subject": "self",
320
+ "metric": "buffPresent",
321
+ "op": "==",
322
+ "value": 1,
323
+ "ref": 28084
324
+ },
325
+ {
326
+ "subject": "self",
327
+ "metric": "allyWithoutAuraNearYd",
328
+ "op": "<=",
329
+ "value": 13,
330
+ "ref": 28084
331
+ },
332
+ {
333
+ "subject": "self",
334
+ "metric": "targetAttackingMe",
335
+ "op": "==",
336
+ "value": 0
337
+ }
338
+ ],
339
+ "enabled": true
340
+ }
341
+ }
342
+ ]
343
+ },
344
+ {
345
+ "entry": 15989,
346
+ "name": "Sapphiron",
347
+ "kinds": [
348
+ "resist"
349
+ ],
350
+ "cite": "boss_sapphiron.cpp Frost Aura / Ice Block LOS",
351
+ "resist": "frost"
352
+ }
353
+ ]
354
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "raid": "onyxias-lair",
3
+ "bosses": [
4
+ {
5
+ "entry": 10184,
6
+ "name": "Onyxia",
7
+ "kinds": [
8
+ "flee",
9
+ "resist"
10
+ ],
11
+ "cite": "boss_onyxia.cpp:55-64 breath arrays; :387-393 fireball threat wipe",
12
+ "resist": "fire",
13
+ "blockedBy": {
14
+ "flee": "onyxiasLair.ts:17-21 the 8 directional breath arrays (17086/18351/18576/18609/18564/18584/18596/18617, 7-20 spell_target_position rows each) plus HEATED_GROUND 22191 need the E5 avoid_zone CORRIDOR primitive and a spell_target_position bake; with no flight path the breath has no direction to run out of"
15
+ }
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "raid": "ragefire-chasm",
3
+ "note": "Reviewed for E5.4 against eventai/ragefire-chasm.ts and acid_classic.sql. All four bosses come back kinds: [] and that is the finding - none of them has a ScriptDev cpp, and between them the whole wing is six single-target script casts plus one 10 yd nova on Taragaman that the melee are inside because that is where melee happens. Level 16 content asks for nothing a move verb could deliver.",
4
+ "bosses": [
5
+ {
6
+ "entry": 11517,
7
+ "name": "Oggleflint",
8
+ "kinds": [],
9
+ "cite": "eventai/ragefire-chasm.ts:1151701, acid_classic.sql:15583 creature_id=11517. Cleave 15584 is his only script action and his only spell: Effect 58 WEAPON_DAMAGE basePoints 29, targetA 6, rangeIdx 2 melee, radiusYd 0.0 - no arc and no disc - on an 8.4-15.9 s timer. creature_linking_template puts Ragefire Trogg 11318 and Ragefire Shaman 11319 on him (master 11517, flag 3, search_range 15), but an aggro link is not a kill order: nothing ranks those bodies, and ragefire-chasm.ts:5-7 names the link as an unported residual the cluster packs already carry."
10
+ },
11
+ {
12
+ "entry": 11520,
13
+ "name": "Taragaman the Hungerer",
14
+ "kinds": [],
15
+ "cite": "eventai/ragefire-chasm.ts:1152001-1152002, acid_classic.sql:15591-15592 creature_id=11520, creature_template_spells 11520 spell1 11970 spell2 18072. Fire Nova 11970 is the wing's only area effect: targetA 22 then 15, radiusYd 10.0, Effect 2 SCHOOL_DAMAGE basePoints 99, instant with no cast to watch, every 10.4-18.1 s. It is a disc the melee have to stand in to swing at all, and the party's own back line already opens outside it at DEFAULT_OPEN_YD 18 (combatGeometry.ts:66) - the same reading the Stockade wing came back with. Uppercut 18072 is targetA 6, Effect 58 WEAPON_DAMAGE plus Effect 98 KNOCK_BACK miscValue 10 on the current victim only, so it displaces the tank and nobody else."
16
+ },
17
+ {
18
+ "entry": 11518,
19
+ "name": "Jergosh the Invoker",
20
+ "kinds": [],
21
+ "cite": "eventai/ragefire-chasm.ts:1151801-1151802, acid_classic.sql:15585-15586 creature_id=11518. Immolate 20800 is targetA 6, Effect 2 for 55 plus aura 3 periodic damage 15 every 3000 ms for 21 s, and Curse of Weakness 18267 is targetA 6, dispel 2 curse, aura 13 damage done -2 for 30 s. Both are single-target with no radius, and both are answered by a decurse or a dispel, which are class rows. Searing Cultist 11322 aggro-links to him (master 11518, flag 3, search_range 15) but nothing ranks that body either."
22
+ },
23
+ {
24
+ "entry": 11519,
25
+ "name": "Bazzalan",
26
+ "kinds": [],
27
+ "cite": "eventai/ragefire-chasm.ts:1151901-1151902, acid_classic.sql:15588-15589 creature_id=11519. Poison Proc 3616 is targetA 1 on spawn, aura 42 proc-trigger firing 744 Poison - a single-target 30 s DoT for 11 on whoever his weapon lands on. Sinister Strike 14873 is Effect 17 WEAPON_DAMAGE_NOSCHOOL, targetA 6, radiusYd 0.0, every 4.9-15.7 s. He has no area effect at all and no ACTION_T_CAST that leaves the tank - pure tank-and-spank."
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "raid": "razorfen-downs",
3
+ "note": "Reviewed for E5.4 against eventai/razorfen-downs.ts, acid_classic.sql and razorfen_downs.cpp. Five of the six come back kinds: []. CMaNGOS has no boss script for this wing either - razorfen_downs.cpp is the Belnistrasz escort - and every boss shape with a radius is an instant 10 yd disc centred on a melee boss, which the Stockade already answered: the melee are inside it because that is where melee happens, the 25 yd ranged stand is outside it, and an instant leaves no cast and no aura for a move row to trigger on. Tuten'kash is the exception and the only row in either Razorfen wing - Web Spray 12252 is a real 53 degree frontal cone, so rotating out of it costs nobody a swing.",
4
+ "bosses": [
5
+ {
6
+ "entry": 7355,
7
+ "name": "Tuten'kash",
8
+ "kinds": [
9
+ "position"
10
+ ],
11
+ "cite": "eventai/razorfen-downs.ts:735501-735503, acid_classic.sql:15671-15673 creature_id=7355. Web Spray 12252 is the one shape in either Razorfen wing a move verb clears: src_spell_cone Id 12252 ConeDegrees 53, radiusYd 20, a 10 s root (mechanic 7) every 6-8 s. Curse of Tuten'kash 12255 is aoeShape pbaoe radiusYd 30, dispel 2 curse, 900000 ms - it does reach past the 25 yd ranged stand, but it is castMs 0 with no aura on him to gate on and a decurse is a class row. Virulent Poison Proc 12254 is a passive that arms 12251, dispel 4 poison.",
12
+ "encounterRows": [
13
+ {
14
+ "kind": "position",
15
+ "label": "Rotate out of the web spray",
16
+ "cite": "spell 12252 Web Spray bakes aoeShape cone, coneDeg 53 (src_spell_cone Id 12252 ConeDegrees 53), radiusYd 20, castMs 0, root 10 s mechanic root, on a 6-8 s timer (acid_classic.sql:15672 event_param3/4). It is a wedge off Tuten'kash's own facing, and combatGeometry.ts:450 coneArcsOfKit reads it straight off his kit (creatures.json 7355 spells 12254/12252/12255), so inTargetCone is true only for a raider actually inside the 53 degree arc within 20 yd. behind_target is the melee answer: sessionMechanicMove.ts:419-427 walks melee to MELEE_REACH_YD past him on the far side of his victim, so clearing the cone costs no swing. targetAttackingMe == 0 keeps the tank out of the row - walking the aggro holder drags the boss across the party, the same reason the Vaelastrasz flank row carries it (blackwing-lair.json raid_enc_13020_behind). No isCaster gate: the arc stops at 20 yd and the 25 yd ranged stand (stand.ts:20) sits outside it, and a caster who is inside takes the ranged rotate branch at sessionMechanicMove.ts:385-410 rather than a walk.",
17
+ "rule": {
18
+ "id": "raid_enc_7355_behind_12252",
19
+ "action": {
20
+ "kind": "move",
21
+ "move": {
22
+ "kind": "behind_target"
23
+ }
24
+ },
25
+ "conditions": [
26
+ {
27
+ "subject": "self",
28
+ "metric": "targetAttackingMe",
29
+ "op": "==",
30
+ "value": 0
31
+ },
32
+ {
33
+ "subject": "self",
34
+ "metric": "inTargetCone",
35
+ "op": "==",
36
+ "value": 1
37
+ }
38
+ ],
39
+ "enabled": true
40
+ }
41
+ }
42
+ ]
43
+ },
44
+ {
45
+ "entry": 7357,
46
+ "name": "Mordresh Fire Eye",
47
+ "kinds": [],
48
+ "cite": "acid_classic.sql:15680-15681 creature_id=7357 - eventai/razorfen-downs.ts:735701-735702 ports only the ranged mode and the yells, and the kit array razorfen-downs.ts:347 is what carries both casts. Fire Nova 12470 is aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, 148-170 damage, castMs 0, every 11-16 s. Instant means there is no castingPresent to gate a walk-out on, and it leaves no aura on him for buffPresent, so keep_range has no trigger; the 25 yd ranged stand (stand.ts:20) is already outside 10 and the melee cannot leave 10 and still melee. Fireball 12466 is castMs 3000 interruptFlags 15, a kick, which is a class row."
49
+ },
50
+ {
51
+ "entry": 7356,
52
+ "name": "Plaguemaw the Rotting",
53
+ "kinds": [],
54
+ "cite": "eventai/razorfen-downs.ts:735601-735602, acid_classic.sql:15675-15676 creature_id=7356. Putrid Stench 12946 is aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, a 10 s silence (mechanic 9, aura 27) plus -51 strength and -51 agility, dispel 3 disease, castMs 0 every 15-23 s. Same wall as Fire Nova: instant, no caster aura, so nothing for keep_range to fire off - and the healer already stands at 25 yd (stand.ts:20), outside the disc, while a disease cleanse is a class row. Withered Touch 12947 is a passive proc arming 11442."
55
+ },
56
+ {
57
+ "entry": 7354,
58
+ "name": "Ragglesnout",
59
+ "kinds": [],
60
+ "cite": "eventai/razorfen-downs.ts:735401-735405, acid_classic.sql:15665-15669 creature_id=7354. Every cast is single target. Dominate Mind 7645 is mechanic 1 charm, castMs 2000, interruptFlags 13, dispel 1 magic on a random non-top hostile every 15-20 s; Heal 12039 is castMs 3000 interruptFlags 15; Shadow Word: Pain 11639 and Shadow Bolt 12471 are targetA 6. src_creature_template_spells 7354 adds 10892 and 11659, the higher ranks the razorfen-downs.ts:346 kit ships. A kick and a dispel, both class rows, and no radius anywhere in the kit."
61
+ },
62
+ {
63
+ "entry": 8567,
64
+ "name": "Glutton",
65
+ "kinds": [],
66
+ "cite": "acid_classic.sql:15696-15699 creature_id=8567 - there is no in-tree EventAI overlay for 8567, so the OOC Thrash swap and the 50%/15% rows are unported and razorfen-downs.ts:348 is what carries the kit. Disease Cloud 16345 and 12627 are self auras (aura 23, amplitude 3000) that pulse 16346 and 12626, and both payloads are aoeShape pbaoe radiusYd 5 for 16-30 damage - a disc exactly at MELEE_REACH_YD 5 (creatureAiConstants.ts:76), so keep_range 6 means no melee at all. Thrash 8876 and 12787 arm 3391 extra attacks, and Enrage 12795 is a self haste buff. All four are tank-and-healer problems, not party verbs."
67
+ },
68
+ {
69
+ "entry": 7358,
70
+ "name": "Amnennar the Coldbringer",
71
+ "kinds": [],
72
+ "cite": "eventai/razorfen-downs.ts:735807-735808, acid_classic.sql:15683-15693 creature_id=7358. There is no Blizzard in the 1.12 kit: the combat casts are Frost Nova 15531, Amnennar's Wrath 13009, Frostbolt 15530 and the spawn-time Frost Armor 12556, and razorfen-downs.ts:351 ships the first three. Frost Nova 15531 is aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, 111-129 plus an 8 s root, castMs 0 every 15 s - instant, no caster aura, so nothing to gate keep_range on, and the 25 yd ranged stand is outside it. Amnennar's Wrath 13009 is Effect 98 SPELL_EFFECT_KNOCK_BACK (SpellEffectDefines.h:124) on the current target at rangeMax 5, and the bake gives it an empty effects[], so today it lands nothing at all. Summon Frost Spectres 12642 puts 3x 8585 down at 66% and 33% with no order the DB names, and 858502 despawns them on his death."
73
+ }
74
+ ]
75
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "raid": "razorfen-kraul",
3
+ "note": "Reviewed for E5.4 against eventai/razorfen-kraul.ts, acid_classic.sql and razorfen_kraul.cpp. All seven bosses come back kinds: [] and that is the finding. CMaNGOS ships no boss script for this wing at all - razorfen_kraul.cpp is the Willix escort and the Snufflenose gopher - so every kit is EventAI plus creature_template. The only two shapes with a radius, Thunderclap 15548 and Rampage 8285, are instant 10 yd discs centred on a melee boss: the melee stand in them because that is where melee happens, the 25 yd ranged stand is already outside, and an instant leaves no cast and no aura for a move row to trigger on.",
4
+ "bosses": [
5
+ {
6
+ "entry": 6168,
7
+ "name": "Roogug",
8
+ "kinds": [],
9
+ "cite": "eventai/razorfen-kraul.ts:616801-616806, acid_classic.sql:15882-15887 creature_id=6168. Lightning Bolt 9532 is targetA 6 at rangeMax 40, castMs 3000, a single-target nuke. Summon Earth Rumbler 8270 is Effect 56 summon_pet miscValue 4528 on a TIMER_OOC, so the guardian is standing there before the pull and the DB never re-summons in combat; 616802 despawns guardians out of combat. Flees for assist at 15%. Nothing area, nothing to stand out of."
10
+ },
11
+ {
12
+ "entry": 4424,
13
+ "name": "Aggem Thorncurse",
14
+ "kinds": [],
15
+ "cite": "eventai/razorfen-kraul.ts:442401-442403, acid_classic.sql:15740-15742 creature_id=4424. Chain Heal 14900 is castMs 2500 interruptFlags 15, targetA 45 TARGET_UNIT_FRIEND_CHAIN_HEAL, every 13-18 s once he is below 75% - a kick or a purge, and both are class rows. Battle Shout 6192 is a 20 yd friendly buff, Summon Boar Spirit 8286 drops 6021 every 20-45 s with no order the DB names. No radius reaches the party."
16
+ },
17
+ {
18
+ "entry": 4428,
19
+ "name": "Death Speaker Jargba",
20
+ "kinds": [],
21
+ "cite": "eventai/razorfen-kraul.ts:442801-442804, acid_classic.sql:15748-15751 creature_id=4428. Dominate Mind 14515 is mechanic 1 charm, dispel 1 magic, 15 s, targetA 6 at rangeMax 20 with castMs 2000 and interruptFlags 13, thrown at a random non-top hostile every 10-15 s. A kick or a dispel answers it and both live in the class rotation. Shadow Bolt 9613 is targetA 6 at rangeMax 40. Ranged mode 35 yd on spawn, and nothing in the kit carries a radius."
22
+ },
23
+ {
24
+ "entry": 4420,
25
+ "name": "Overlord Ramtusk",
26
+ "kinds": [],
27
+ "cite": "eventai/razorfen-kraul.ts:442001-442004, acid_classic.sql:15718-15721 creature_id=4420. Thunderclap 15548 is the only shape: aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, 35-39 damage plus a 10 s melee-haste debuff, castMs 0 every 8-24 s. Instant leaves no castingPresent to gate on and it puts no aura on HIM for buffPresent, so keep_range has no trigger at all - and the 25 yd ranged stand (stand.ts:20 RANGED_STAND_DEFAULT_YD) already sits outside 10 while the melee cannot leave it and still melee. Battle Shout 9128 and Battle Stance 7165 are buffs; the CALL_FOR_HELP radius 15 on aggro is a pull problem, not a fight one."
28
+ },
29
+ {
30
+ "entry": 4422,
31
+ "name": "Agathelos the Raging",
32
+ "kinds": [
33
+ "tank-swap"
34
+ ],
35
+ "cite": "eventai/razorfen-kraul.ts:442201-442204, acid_classic.sql:15735-15738 creature_id=4422. Rampage 8285 is aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, weapon damage plus a 2.5 s stun (mechanic 12), castMs 0 every 24-32 s. Same shape the Stockade returned on Bazil Thredd: the melee are inside 10 yd because that is where melee happens, and a repeated melee stun is answered by a trinket or Berserker Rage in the class rotation. Rushing Charge 8260 and Enrage 8269 are self buffs. Left for Dead 8555 is 200 damage on the current victim, and its trigger is the one thing this fight asks for - see blockedBy.",
36
+ "blockedBy": {
37
+ "tank-swap": "razorfen_kraul.cpp:250-260 the LeftForDead SpellScript has 8555 cast 8359 on its target, and 8359 bakes as a 300000 ms silence cc - a five minute lockout on whoever Agathelos is hitting, which is the tank, every 30-60 s. Two things stop the row. The trigger is not wired: razorfenKraul.ts:176 exports SPELL_LEFT_FOR_DEAD_TRIGGER = 8359 as a constant and nothing casts it, so 8555 lands 200 damage and no aura. And even wired, the taunt row build.ts:2632-2636 needs isOffTank == 1, while raidPlan.ts:174 fills offTanks from the tank-role seats minus the main tank - a five-man with one tank has none."
38
+ }
39
+ },
40
+ {
41
+ "entry": 4425,
42
+ "name": "Blind Hunter",
43
+ "kinds": [],
44
+ "cite": "acid_classic.sql:15743 marks 4425 NSR and src_creature_ai_scripts holds zero rows for it. src_creature_template gives it AIName '' with Spell1-4 all null, and it has no src_creature_template_spells row; razorfen-kraul.ts:333 records the same null kit. A rank-2 rare with nothing but its melee swing - tank and spank."
45
+ },
46
+ {
47
+ "entry": 4421,
48
+ "name": "Charlga Razorflank",
49
+ "kinds": [],
50
+ "cite": "eventai/razorfen-kraul.ts:442101-442111, acid_classic.sql:15723-15733 creature_id=4421. Chain Bolt 8292 is the real mechanic: EffectChainTarget1 3 with DmgMultiplier1 1.0, so all three take the full 138-156, and the jump gate is CHAIN_SPELL_JUMP_RADIUS 10 (SharedDefines.h:1585, chainFan.ts:21). Breaking the chain needs spread minYd 11, and two melee on opposite sides of one boss are at most 10 yd apart (MELEE_REACH_YD 5, creatureAiConstants.ts:76) - the spread that stops the chain is the spread that ends melee. castMs 2500 interruptFlags 9 makes it a kick instead, which is a class row. Purity 8361 is a 2 s self school_immunity, Mana Spike 8358 a self energize at 25% mana, Renew 6077 a friendly heal. The 1.12 kit carries NO fear: no mechanic-5 spell on 4421 in src_creature_ai_scripts, in src_creature_template_spells, or in the razorfen-kraul.ts:340 kit."
51
+ }
52
+ ]
53
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "raid": "ruins-of-ahnqiraj",
3
+ "bosses": [
4
+ {
5
+ "entry": 15348,
6
+ "name": "Kurinnaxx",
7
+ "kinds": [
8
+ "tank-swap"
9
+ ],
10
+ "cite": "boss_kurinnaxx.cpp:35,99-102 SPELL_MORTAL_WOUND 25646 on victim",
11
+ "tankSwapAura": 25646
12
+ },
13
+ {
14
+ "entry": 15341,
15
+ "name": "General Rajaxx",
16
+ "kinds": [],
17
+ "cite": "boss_rajaxx.cpp:57-59 AURA_OF_COMMAND 25516 / BASH 25515 / STRIKE 22591; the fight is the Kaldorei wave escort (:196-228), which is trash sequencing, not a raid-side response"
18
+ },
19
+ {
20
+ "entry": 15340,
21
+ "name": "Moam",
22
+ "kinds": [
23
+ "kill-order"
24
+ ],
25
+ "cite": "boss_moam.cpp:40,158,176-183 SUMMON_MANAFIENDS 25684 fans out 3 Mana Fiends 15527 that must die before ENERGIZE 25685 refills him into ARCANE_ERUPTION 25672",
26
+ "encounterRows": [
27
+ {
28
+ "kind": "kill-order",
29
+ "label": "Kill the Mana Fiends before Moam refills",
30
+ "cite": "boss_moam.cpp:40,156-160 MOAM_MANA_FIENDS 25684 on a 90 s flat timer; :176-183 SummonManaFiendsMoam casts 25681 / 25682 / 25683, each effect 42 miscValue 15527 Mana Fiend on its own bearing. They drain the raid's mana into him, and boss_moam.cpp ENERGIZE 25685 turns that pool into ARCANE_ERUPTION 25672",
31
+ "rule": {
32
+ "id": "raid_enc_15340_kill",
33
+ "action": {
34
+ "kind": "kill_order",
35
+ "entries": [
36
+ 15527
37
+ ]
38
+ },
39
+ "conditions": [],
40
+ "enabled": true
41
+ }
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ "entry": 15370,
47
+ "name": "Buru the Gorger",
48
+ "kinds": [
49
+ "kill-order"
50
+ ],
51
+ "cite": "boss_buru.cpp BURU_NEW_TARGET chase-focus",
52
+ "encounterRows": [
53
+ {
54
+ "kind": "kill-order",
55
+ "label": "Buru Eggs first",
56
+ "cite": "boss_buru.cpp:50 NPC_BURU_EGG 15514; npc_buru_egg JustDied explode/hatch",
57
+ "rule": {
58
+ "id": "raid_enc_15370_kill",
59
+ "action": {
60
+ "kind": "kill_order",
61
+ "entries": [
62
+ 15514
63
+ ]
64
+ },
65
+ "conditions": [],
66
+ "enabled": true
67
+ }
68
+ }
69
+ ]
70
+ },
71
+ {
72
+ "entry": 15369,
73
+ "name": "Ayamiss the Hunter",
74
+ "kinds": [],
75
+ "cite": "boss_ayamiss.cpp air at 70% — boss-side GAP, no raid row until altitude exists"
76
+ },
77
+ {
78
+ "entry": 15339,
79
+ "name": "Ossirian the Unscarred",
80
+ "kinds": [
81
+ "use-object"
82
+ ],
83
+ "cite": "boss_ossirian.cpp GO 180619 crystal click",
84
+ "encounterRows": [
85
+ {
86
+ "kind": "use-object",
87
+ "label": "Click an Ossirian Crystal (strip Supreme)",
88
+ "cite": "ruins_of_ahnqiraj.h:40 GO_OSSIRIAN_CRYSTAL 180619; boss_ossirian.cpp:312-318 GOUse_go_ossirian_crystal; Supreme 25176",
89
+ "rule": {
90
+ "id": "raid_enc_15339_crystal",
91
+ "action": {
92
+ "kind": "use_object",
93
+ "goEntry": 180619
94
+ },
95
+ "conditions": [
96
+ {
97
+ "subject": "target",
98
+ "metric": "buffPresent",
99
+ "op": "==",
100
+ "value": 1,
101
+ "ref": 25176
102
+ }
103
+ ],
104
+ "enabled": true
105
+ }
106
+ }
107
+ ]
108
+ }
109
+ ]
110
+ }