azeroth-shell 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +26 -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 +126 -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,709 @@
1
+ // The Barrens ScriptDev IR ports. Source: scripts/kalimdor/the_barrens.cpp — Gilthares, Fizzule,
2
+ // Twiggy Flathead, the shredder escort, the Venture Co. tower NPCs and Regthar Deathgate.
3
+
4
+ import type { ScriptDevIR } from './types.ts';
5
+
6
+ // Shared factions / tempfaction / stand / emote
7
+
8
+ /** FACTION_ESCORT_H_NEUTRAL_ACTIVE. Cite: ScriptDevAIMgr.h:49 = 232; the_barrens.cpp:132 */
9
+ export const FACTION_ESCORT_H_NEUTRAL_ACTIVE = 232;
10
+
11
+ /** FACTION_FRIENDLY_F (Fizzule friendly after 2nd flare / whistle). Cite: the_barrens.cpp:149 = 35 */
12
+ export const FACTION_FRIENDLY_F = 35;
13
+
14
+ /** FACTION_RATCHET (Wizzlecrank escort). Cite: the_barrens.cpp:525 = 637 */
15
+ export const FACTION_RATCHET = 637;
16
+
17
+ /** FACTION_FRIENDLY (Twiggy summons start friendly). Cite: the_barrens.cpp:291 = 35 */
18
+ export const FACTION_FRIENDLY = 35;
19
+
20
+ /** FACTION_HOSTILE_WILL / FACTION_HOSTILE_CHALLENGER. Cite: the_barrens.cpp:292–293 */
21
+ export const FACTION_HOSTILE_WILL = 32;
22
+ export const FACTION_HOSTILE_CHALLENGER = 14;
23
+
24
+ /** TEMPFACTION_RESTORE_RESPAWN. Cite: Creature.h = 0x01; the_barrens.cpp:132 */
25
+ export const TEMPFACTION_RESTORE_RESPAWN = 0x01;
26
+ /** TEMPFACTION_RESTORE_REACH_HOME. Cite: Creature.h; the_barrens.cpp:239 */
27
+ export const TEMPFACTION_RESTORE_REACH_HOME = 0x04;
28
+ /** TEMPFACTION_TOGGLE_IMMUNE_TO_NPC. Cite: Creature.h:582 = 0x20; the_barrens.cpp:132 */
29
+ export const TEMPFACTION_TOGGLE_IMMUNE_TO_NPC = 0x20;
30
+
31
+ /** UNIT_STAND_STATE_STAND. Cite: Unit.h; the_barrens.cpp:133 */
32
+ export const UNIT_STAND_STATE_STAND = 0;
33
+ /** UNIT_STAND_STATE_DEAD. Cite: Unit.h; the_barrens.cpp:549 */
34
+ export const UNIT_STAND_STATE_DEAD = 7;
35
+
36
+ /** TEXTEMOTE_SALUTE. Cite: SharedDefines.h:650 = 78; the_barrens.cpp:257 */
37
+ export const TEXTEMOTE_SALUTE = 78;
38
+
39
+ // Constants — npc_gilthares
40
+
41
+ // the_barrens.cpp:43–57
42
+ /** Cite: the_barrens.cpp:43 SAY_GIL_START = -1000370 */
43
+ export const SAY_GIL_START = -1_000_370;
44
+ /** Cite: the_barrens.cpp:44 SAY_GIL_AT_LAST = -1000371 */
45
+ export const SAY_GIL_AT_LAST = -1_000_371;
46
+ /** Cite: the_barrens.cpp:45 SAY_GIL_PROCEED = -1000372 */
47
+ export const SAY_GIL_PROCEED = -1_000_372;
48
+ /** Cite: the_barrens.cpp:46 SAY_GIL_FREEBOOTERS = -1000373 */
49
+ export const SAY_GIL_FREEBOOTERS = -1_000_373;
50
+ /** Cite: the_barrens.cpp:47 SAY_GIL_AGGRO_1 = -1000374 */
51
+ export const SAY_GIL_AGGRO_1 = -1_000_374;
52
+ /** Cite: the_barrens.cpp:48 SAY_GIL_AGGRO_2 = -1000375 */
53
+ export const SAY_GIL_AGGRO_2 = -1_000_375;
54
+ /** Cite: the_barrens.cpp:49 SAY_GIL_AGGRO_3 = -1000376 */
55
+ export const SAY_GIL_AGGRO_3 = -1_000_376;
56
+ /** Cite: the_barrens.cpp:50 SAY_GIL_AGGRO_4 = -1000377 */
57
+ export const SAY_GIL_AGGRO_4 = -1_000_377;
58
+ /** Cite: the_barrens.cpp:51 SAY_GIL_ALMOST = -1000378 */
59
+ export const SAY_GIL_ALMOST = -1_000_378;
60
+ /** Cite: the_barrens.cpp:52 SAY_GIL_SWEET = -1000379 */
61
+ export const SAY_GIL_SWEET = -1_000_379;
62
+ /** Cite: the_barrens.cpp:53 SAY_GIL_FREED = -1000380 */
63
+ export const SAY_GIL_FREED = -1_000_380;
64
+
65
+ /** Cite: the_barrens.cpp:55 QUEST_FREE_FROM_HOLD = 898 */
66
+ export const QUEST_FREE_FROM_HOLD = 898;
67
+ /** Cite: the_barrens.cpp:56 AREA_MERCHANT_COAST = 391 */
68
+ export const AREA_MERCHANT_COAST = 391;
69
+
70
+ /** Bound creature. Cite: scriptdev-corpus / the_barrens.cpp npc_gilthares */
71
+ export const NPC_GILTHARES = 3465;
72
+
73
+ /** Gilthares escort waypoint dialogue + credit. Cite: the_barrens.cpp:80–98 */
74
+ export const GILTHARES_WAYPOINTS = [
75
+ { pointId: 17, textId: SAY_GIL_AT_LAST, questCredit: false, cite: 'the_barrens.cpp:80-82' },
76
+ { pointId: 18, textId: SAY_GIL_PROCEED, questCredit: false, cite: 'the_barrens.cpp:83-85' },
77
+ { pointId: 19, textId: SAY_GIL_FREEBOOTERS, questCredit: false, cite: 'the_barrens.cpp:86-88' },
78
+ { pointId: 38, textId: SAY_GIL_ALMOST, questCredit: false, cite: 'the_barrens.cpp:89-91' },
79
+ { pointId: 48, textId: SAY_GIL_SWEET, questCredit: false, cite: 'the_barrens.cpp:92-94' },
80
+ { pointId: 54, textId: SAY_GIL_FREED, questCredit: true, cite: 'the_barrens.cpp:95-98 explore 898' },
81
+ ] as const;
82
+
83
+ // Constants — npc_taskmaster_fizzule
84
+
85
+ // the_barrens.cpp:149–157
86
+ /** Cite: the_barrens.cpp:150 SPELL_FLARE = 10113 */
87
+ export const SPELL_FLARE = 10113;
88
+ /** Cite: the_barrens.cpp:151 SPELL_FOLLY = 10137 */
89
+ export const SPELL_FOLLY = 10137;
90
+
91
+ /** Cite: the_barrens.cpp:153–156 FIZZULE_* step ids */
92
+ export const FIZZULE_FLARE_1 = 1;
93
+ export const FIZZULE_FLARE_2 = 2;
94
+ export const FIZZULE_SALUTE = 3;
95
+ export const FIZZULE_WHISTLE = 4;
96
+
97
+ /** Bound creature. Cite: scriptdev-corpus entry 7233 */
98
+ export const NPC_TASKMASTER_FIZZULE = 7233;
99
+
100
+ // Deep Cover quest (turn-in Fizzule after friendly). Cite: the_barrens.cpp SDComment Quest support: 2458;
101
+ // bake ender 7233
102
+ export const QUEST_DEEP_COVER = 2458;
103
+
104
+ /** resetTimer after first flare / whistle. Cite: the_barrens.cpp:235,246 resetTimer = 120000 */
105
+ export const FIZZULE_RESET_TIMER_MS = 120_000;
106
+
107
+ // Constants — npc_twiggy_flathead + at_twiggy_flathead
108
+
109
+ // the_barrens.cpp:279–296
110
+ /** Cite: the_barrens.cpp:279 SAY_BIG_WILL_READY = -1000123 */
111
+ export const SAY_BIG_WILL_READY = -1_000_123;
112
+ /** Cite: the_barrens.cpp:280 SAY_TWIGGY_BEGIN = -1000124 */
113
+ export const SAY_TWIGGY_BEGIN = -1_000_124;
114
+ /** Cite: the_barrens.cpp:281 SAY_TWIGGY_FRAY = -1000125 */
115
+ export const SAY_TWIGGY_FRAY = -1_000_125;
116
+ /** Cite: the_barrens.cpp:282 SAY_TWIGGY_DOWN = -1000126 */
117
+ export const SAY_TWIGGY_DOWN = -1_000_126;
118
+ /** Cite: the_barrens.cpp:283 SAY_TWIGGY_OVER = -1000127 */
119
+ export const SAY_TWIGGY_OVER = -1_000_127;
120
+
121
+ /** Cite: the_barrens.cpp:285 NPC_TWIGGY = 6248 */
122
+ export const NPC_TWIGGY = 6248;
123
+ /** Cite: the_barrens.cpp:286 NPC_BIG_WILL = 6238 */
124
+ export const NPC_BIG_WILL = 6238;
125
+ /** Cite: the_barrens.cpp:287 NPC_AFFRAY_CHALLENGER = 6240 */
126
+ export const NPC_AFFRAY_CHALLENGER = 6240;
127
+
128
+ /** Cite: the_barrens.cpp:289 QUEST_AFFRAY = 1719 */
129
+ export const QUEST_AFFRAY = 1719;
130
+
131
+ /** Cite: the_barrens.cpp:295 MAX_CHALLENGERS = 6 */
132
+ export const MAX_CHALLENGERS = 6;
133
+
134
+ /** Affray challenger + Big Will spawn coords (8 rows). Cite: the_barrens.cpp:298–308 */
135
+ export const AFFRAY_CHALLENGER_LOCS = [
136
+ { x: -1683.0, y: -4326.0, z: 2.79, o: 0.0, cite: 'the_barrens.cpp:300' },
137
+ { x: -1682.0, y: -4329.0, z: 2.79, o: 0.0, cite: 'the_barrens.cpp:301' },
138
+ { x: -1683.0, y: -4330.0, z: 2.79, o: 0.0, cite: 'the_barrens.cpp:302' },
139
+ { x: -1680.0, y: -4334.0, z: 2.79, o: 1.49, cite: 'the_barrens.cpp:303' },
140
+ { x: -1674.0, y: -4326.0, z: 2.79, o: 3.49, cite: 'the_barrens.cpp:304' },
141
+ { x: -1677.0, y: -4334.0, z: 2.79, o: 1.66, cite: 'the_barrens.cpp:305' },
142
+ { x: -1713.79, y: -4342.09, z: 6.05, o: 6.15, cite: 'the_barrens.cpp:306 Big Will spawn' },
143
+ { x: -1682.31, y: -4329.68, z: 2.78, o: 0.0, cite: 'the_barrens.cpp:307 Big Will move' },
144
+ ] as const;
145
+
146
+ /** Initial event timer on Reset / after start. Cite: the_barrens.cpp:328 m_uiEventTimer = 1000 */
147
+ export const TWIGGY_EVENT_TIMER_INIT_MS = 1000;
148
+ /** After SetChallengers (step 0 → 1). Cite: the_barrens.cpp:449 m_uiEventTimer = 5000 */
149
+ export const TWIGGY_AFTER_SUMMON_MS = 5000;
150
+ /** Between challenger activations while count < MAX. Cite: the_barrens.cpp:468 m_uiEventTimer = 25000 */
151
+ export const TWIGGY_CHALLENGER_GAP_MS = 25_000;
152
+ /** After last challenger ready → Big Will spawn arm. Cite: the_barrens.cpp:465 m_uiEventTimer = 5000 */
153
+ export const TWIGGY_AFTER_LAST_CHALLENGER_MS = 5000;
154
+ /** After Big Will summon before default poll. Cite: the_barrens.cpp:472 m_uiEventTimer = 15000 */
155
+ export const TWIGGY_AFTER_BIG_WILL_SUMMON_MS = 15_000;
156
+ /** On challenger death re-arm. Cite: the_barrens.cpp:426 m_uiEventTimer = 15000 */
157
+ export const TWIGGY_AFTER_CHALLENGER_DEATH_MS = 15_000;
158
+ /** AT search radius for Twiggy. Cite: the_barrens.cpp:494 GetClosestCreatureWithEntry(..., 30.0f) */
159
+ export const TWIGGY_AT_SEARCH_YD = 30;
160
+ /** Challenger TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN. Cite: the_barrens.cpp:372 600000 */
161
+ export const TWIGGY_CHALLENGER_DESPAWN_MS = 600_000;
162
+ /** Big Will TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN. Cite: the_barrens.cpp:471 300000 */
163
+ export const TWIGGY_BIG_WILL_DESPAWN_MS = 300_000;
164
+
165
+ // Constants — npc_wizzlecranks_shredder
166
+
167
+ // the_barrens.cpp:515–528
168
+ /** Cite: the_barrens.cpp:515 SAY_START = -1000298 */
169
+ export const SAY_WIZZ_START = -1_000_298;
170
+ /** Cite: the_barrens.cpp:516 SAY_STARTUP1 = -1000299 */
171
+ export const SAY_WIZZ_STARTUP1 = -1_000_299;
172
+ /** Cite: the_barrens.cpp:517 SAY_STARTUP2 = -1000300 */
173
+ export const SAY_WIZZ_STARTUP2 = -1_000_300;
174
+ /** Cite: the_barrens.cpp:518 SAY_MERCENARY = -1000301 */
175
+ export const SAY_WIZZ_MERCENARY = -1_000_301;
176
+ /** Cite: the_barrens.cpp:519 SAY_PROGRESS_1 = -1000302 */
177
+ export const SAY_WIZZ_PROGRESS_1 = -1_000_302;
178
+ /** Cite: the_barrens.cpp:520 SAY_PROGRESS_2 = -1000303 */
179
+ export const SAY_WIZZ_PROGRESS_2 = -1_000_303;
180
+ /** Cite: the_barrens.cpp:521 SAY_PROGRESS_3 = -1000304 */
181
+ export const SAY_WIZZ_PROGRESS_3 = -1_000_304;
182
+ /** Cite: the_barrens.cpp:522 SAY_END = -1000305 */
183
+ export const SAY_WIZZ_END = -1_000_305;
184
+
185
+ /** Cite: the_barrens.cpp:524 QUEST_ESCAPE = 863 */
186
+ export const QUEST_ESCAPE = 863;
187
+ /** Cite: the_barrens.cpp:526 NPC_PILOT_WIZZ = 3451 */
188
+ export const NPC_PILOT_WIZZ = 3451;
189
+ /** Cite: the_barrens.cpp:527 NPC_MERCENARY = 3282 */
190
+ export const NPC_MERCENARY = 3282;
191
+
192
+ /** Bound creature. Cite: corpus entry 3439 */
193
+ export const NPC_WIZZLECRANKS_SHREDDER = 3439;
194
+
195
+ /** Post-event step delay. Cite: the_barrens.cpp:636 m_uiPostEventTimer = 5000 */
196
+ export const WIZZ_POST_EVENT_STEP_MS = 5000;
197
+ /** Initial post-event timer / Reset OOC. Cite: the_barrens.cpp:535,552 m_uiPostEventTimer = 1000 */
198
+ export const WIZZ_POST_EVENT_INIT_MS = 1000;
199
+ /** Mercenary TEMPSPAWN_TIMED_OOC_DESPAWN. Cite: the_barrens.cpp:569 120000 */
200
+ export const WIZZ_MERCENARY_DESPAWN_MS = 120_000;
201
+ /** Pilot TEMPSPAWN_TIMED_DESPAWN. Cite: the_barrens.cpp:630 180000 */
202
+ export const WIZZ_PILOT_DESPAWN_MS = 180_000;
203
+
204
+ /** Mercenary ambush coords at WP18. Cite: the_barrens.cpp:569-572 */
205
+ export const WIZZ_MERCENARY_SPAWNS = [
206
+ {
207
+ x: 1128.489,
208
+ y: -3037.611,
209
+ z: 92.701,
210
+ o: 1.472,
211
+ cite: 'the_barrens.cpp:569',
212
+ },
213
+ {
214
+ x: 1160.172,
215
+ y: -2980.168,
216
+ z: 97.313,
217
+ o: 3.69,
218
+ cite: 'the_barrens.cpp:572',
219
+ },
220
+ ] as const;
221
+
222
+ // Constants — npc_gallywix / silixiz / lookout (Tower of the Venture Co.)
223
+
224
+ // the_barrens.cpp:669–675
225
+ /** Cite: the_barrens.cpp:669 SPELL_DECIMATE = 10268 */
226
+ export const SPELL_DECIMATE = 10268;
227
+ /** Cite: the_barrens.cpp:670 SPELL_SLUSH = 10267 */
228
+ export const SPELL_SLUSH = 10267;
229
+
230
+ /** Cite: the_barrens.cpp:672 SAY_STEALTH_ALERT_GALLYWIX = -1010005 */
231
+ export const SAY_STEALTH_ALERT_GALLYWIX = -1_010_005;
232
+ /** Cite: the_barrens.cpp:673 SAY_STEALTH_ALERT_SILIXIZ = -1010006 */
233
+ export const SAY_STEALTH_ALERT_SILIXIZ = -1_010_006;
234
+ /** Cite: the_barrens.cpp:674 SAY_STEALTH_ALERT_LOOKOUT_1 = -1010007 */
235
+ export const SAY_STEALTH_ALERT_LOOKOUT_1 = -1_010_007;
236
+ /** Cite: the_barrens.cpp:675 SAY_STEALTH_ALERT_LOOKOUT_2 = -1010008 */
237
+ export const SAY_STEALTH_ALERT_LOOKOUT_2 = -1_010_008;
238
+
239
+ /** Bound creatures. Cite: scriptdev-corpus */
240
+ export const NPC_GALLYWIX = 7288;
241
+ export const NPC_FOREMAN_SILIXIZ = 7287;
242
+ export const NPC_VENTURE_CO_LOOKOUT = 7307;
243
+
244
+ /** Rogue Ambush family mask (IsFitToFamilyMask). Cite: the_barrens.cpp:694 0x0000000000800200 */
245
+ export const ROGUE_AMBUSH_FAMILY_MASK = 0x0000_0000_0080_0200n;
246
+ /** Rogue Eviscerate family mask. Cite: the_barrens.cpp:715 0x0000000000820000 */
247
+ export const ROGUE_EVISCERATE_FAMILY_MASK = 0x0000_0000_0082_0000n;
248
+
249
+ // Constants — npc_regthar_deathgate
250
+
251
+ // the_barrens.cpp:756–769
252
+ /** Cite: the_barrens.cpp:756 QUEST_COUNTERATTACK = 4021 */
253
+ export const QUEST_COUNTERATTACK = 4021;
254
+ /** Cite: the_barrens.cpp:758 SAY_START_REGTHAR = -1010001 */
255
+ export const SAY_START_REGTHAR = -1_010_001;
256
+ /** Cite: the_barrens.cpp:759 SAY_DEFENDER = -1010002 */
257
+ export const SAY_DEFENDER = -1_010_002;
258
+ /** Cite: the_barrens.cpp:760 YELL_RETREAT = -1010003 */
259
+ export const YELL_RETREAT = -1_010_003;
260
+
261
+ /** Cite: the_barrens.cpp:762 NPC_REGTHAR_DEATHGATE = 3389 */
262
+ export const NPC_REGTHAR_DEATHGATE = 3389;
263
+ /** Cite: the_barrens.cpp:763 NPC_WARLORD_KROMZAR = 9456 */
264
+ export const NPC_WARLORD_KROMZAR = 9456;
265
+ /** Cite: the_barrens.cpp:764 NPC_HORDE_DEFENDER = 9457 */
266
+ export const NPC_HORDE_DEFENDER = 9457;
267
+ /** Cite: the_barrens.cpp:765 NPC_HORDE_AXE_THROWER = 9458 */
268
+ export const NPC_HORDE_AXE_THROWER = 9458;
269
+ /** Cite: the_barrens.cpp:766 NPC_KOLKAR_INVADER = 9524 */
270
+ export const NPC_KOLKAR_INVADER = 9524;
271
+ /** Cite: the_barrens.cpp:767 NPC_KOLKAR_STORMSEER = 9523 */
272
+ export const NPC_KOLKAR_STORMSEER = 9523;
273
+
274
+ /** Cite: the_barrens.cpp:769 KILL_LIMIT = 20 */
275
+ export const KILL_LIMIT = 20;
276
+
277
+ /** Respawn times (seconds). Cite: the_barrens.cpp:773–775 */
278
+ export const COUNTERATTACK_RESPAWN_TIME_HORDE_S = 12;
279
+ export const COUNTERATTACK_RESPAWN_TIME_HORDE_INC_S = 1;
280
+ export const COUNTERATTACK_RESPAWN_TIME_KOLKAR_S = 10;
281
+
282
+ /** Event duration. Cite: the_barrens.cpp:954 m_eventTimer = 20 * MINUTE * IN_MILLISECONDS */
283
+ export const REGTHAR_EVENT_DURATION_MS = 20 * 60 * 1000;
284
+
285
+ /** Corpse despawn for summons. Cite: the_barrens.cpp:871 40 * IN_MILLISECONDS */
286
+ export const REGTHAR_CORPSE_DESPAWN_MS = 40_000;
287
+
288
+ // ForceDespawn delay when still in combat at FinishEvent. Cite: the_barrens.cpp:918 MINUTE *
289
+ // IN_MILLISECONDS
290
+ export const REGTHAR_COMBAT_DESPAWN_MS = 60_000;
291
+
292
+ /** Horde spawn points (7). Cite: the_barrens.cpp:784–793 */
293
+ export const SPAWN_POINTS_HORDE = [
294
+ { x: -307.23, y: -1919.84, z: 91.66, o: 0.64, cite: 'the_barrens.cpp:786' },
295
+ { x: -281.15, y: -1906.39, z: 91.66, o: 1.88, cite: 'the_barrens.cpp:787' },
296
+ { x: -270.09, y: -1901.58, z: 91.66, o: 1.88, cite: 'the_barrens.cpp:788' },
297
+ { x: -275.24, y: -1901.96, z: 91.66, o: 1.9, cite: 'the_barrens.cpp:789' },
298
+ { x: -295.84, y: -1913.58, z: 91.66, o: 1.86, cite: 'the_barrens.cpp:790' },
299
+ { x: -221.61, y: -1936.54, z: 94.0, o: 0.41, cite: 'the_barrens.cpp:791' },
300
+ { x: -226.65, y: -1927.87, z: 93.24, o: 0.41, cite: 'the_barrens.cpp:792' },
301
+ ] as const;
302
+
303
+ /** Kromzar pack spawn points (3). Cite: the_barrens.cpp:795–800 */
304
+ export const SPAWN_POINTS_KROMZAR = [
305
+ { x: -281.19, y: -1855.54, z: 92.58, o: 4.85, cite: 'the_barrens.cpp:797' },
306
+ { x: -283.66, y: -1858.45, z: 92.47, o: 4.85, cite: 'the_barrens.cpp:798' },
307
+ { x: -286.5, y: -1856.18, z: 92.44, o: 4.85, cite: 'the_barrens.cpp:799' },
308
+ ] as const;
309
+
310
+ /** Kolkar spawn points (15). Cite: the_barrens.cpp:802–819 */
311
+ export const SPAWN_POINTS_KOLKAR = [
312
+ { x: -290.26, y: -1860.85, z: 92.48, o: 3.68, cite: 'the_barrens.cpp:804' },
313
+ { x: -311.46, y: -1871.16, z: 92.64, o: 6.06, cite: 'the_barrens.cpp:805' },
314
+ { x: -321.75, y: -1868.48, z: 93.73, o: 0.3, cite: 'the_barrens.cpp:806' },
315
+ { x: -338.12, y: -1852.1, z: 94.09, o: 0.01, cite: 'the_barrens.cpp:807' },
316
+ { x: -311.46, y: -1847.78, z: 94.93, o: 6.15, cite: 'the_barrens.cpp:808' },
317
+ { x: -292.02, y: -1840.0, z: 93.06, o: 3.51, cite: 'the_barrens.cpp:809' },
318
+ { x: -267.14, y: -1853.97, z: 93.24, o: 3.52, cite: 'the_barrens.cpp:810' },
319
+ { x: -267.68, y: -1832.77, z: 92.69, o: 3.52, cite: 'the_barrens.cpp:811' },
320
+ { x: -279.7, y: -1845.67, z: 92.81, o: 3.83, cite: 'the_barrens.cpp:812' },
321
+ { x: -338.99, y: -1868.68, z: 93.5, o: 0.17, cite: 'the_barrens.cpp:813' },
322
+ { x: -210.28, y: -1916.22, z: 92.87, o: 4.89, cite: 'the_barrens.cpp:814' },
323
+ { x: -209.09, y: -1922.44, z: 93.26, o: 3.87, cite: 'the_barrens.cpp:815' },
324
+ { x: -206.64, y: -1924.83, z: 93.78, o: 2.41, cite: 'the_barrens.cpp:816' },
325
+ { x: -283.57, y: -1883.91, z: 92.6, o: 3.53, cite: 'the_barrens.cpp:817' },
326
+ { x: -197.5, y: -1929.31, z: 94.03, o: 3.51, cite: 'the_barrens.cpp:818' },
327
+ ] as const;
328
+
329
+ // Pure helpers (re-exported for tests / host consumers)
330
+
331
+ export type {
332
+ GiltharesQuestAcceptResult,
333
+ GiltharesWaypointResult,
334
+ FizzuleState,
335
+ FizzuleSpellHitResult,
336
+ TwiggyEventState,
337
+ TwiggyCanStartResult,
338
+ TwiggyAreaTriggerResult,
339
+ TwiggyTimerTickResult,
340
+ TwiggySummonedDeathResult,
341
+ WizzleQuestAcceptResult,
342
+ WizzleWaypointResult,
343
+ WizzlePostEventResult,
344
+ RegtharEventState,
345
+ RegtharStartResult,
346
+ RegtharKolkarKillResult,
347
+ } from './theBarrensHelpers.ts';
348
+
349
+ export {
350
+ giltharesQuestAccept,
351
+ giltharesWaypointReached,
352
+ giltharesAggroText,
353
+ fizzuleInitialState,
354
+ fizzuleHandleFlareOrKneel,
355
+ fizzuleSpellHit,
356
+ fizzuleReceiveEmote,
357
+ fizzuleResetTimerTick,
358
+ twiggyReset,
359
+ twiggyCanStartEvent,
360
+ twiggyAreaTrigger,
361
+ twiggyEventTimerTick,
362
+ twiggySummonedJustDied,
363
+ twiggyBigWillArrived,
364
+ wizzleQuestAccept,
365
+ wizzleWaypointReached,
366
+ wizzleWaypointStart,
367
+ wizzlePostEventStep,
368
+ gallywixStealthAlert,
369
+ gallywixDamageTaken,
370
+ silixizStealthAlert,
371
+ lookoutStealthAlert,
372
+ lookoutDamageTaken,
373
+ regtharReset,
374
+ regtharStartEvent,
375
+ regtharKolkarKilled,
376
+ regtharFinishEvent,
377
+ regtharQuestAccept,
378
+ regtharDefenderDeathSay,
379
+ regtharHordeRespawnDelayS,
380
+ } from './theBarrensHelpers.ts';
381
+
382
+ // ScriptDev IR — npc_gilthares
383
+
384
+ // Cite: the_barrens.cpp npc_giltharesAI Binding: 3465 Gilthares Firebough (in bake). Escort 898; no combat
385
+ // cast timers.
386
+ export const NPC_GILTHARES_SCRIPT: ScriptDevIR = {
387
+ name: 'npc_gilthares',
388
+ boundCreatures: [NPC_GILTHARES],
389
+ sourceFile: 'kalimdor/the_barrens.cpp',
390
+ spellIds: [],
391
+ timers: [],
392
+ lifecycle: {
393
+ onAggro: [
394
+ {
395
+ kind: 'flavor',
396
+ text: '25% chance (urand 0..3==0) NPC-only in area 391 → random SAY_GIL_AGGRO_1..4',
397
+ cite: 'the_barrens.cpp:102-120; giltharesAggroText pure helper',
398
+ },
399
+ ],
400
+ onReset: [
401
+ {
402
+ kind: 'flavor',
403
+ text: 'Reset empty; JustReachedHome SetStandState STAND',
404
+ cite: 'the_barrens.cpp:63 Reset; :65-69 JustReachedHome STAND',
405
+ },
406
+ ],
407
+ },
408
+ cites: [
409
+ 'the_barrens.cpp:37-141 npc_gilthares',
410
+ 'the_barrens.cpp:43-57 SAY/QUEST/AREA constants',
411
+ 'the_barrens.cpp:71-100 WaypointReached 17/18/19/38/48/54 credit 898',
412
+ 'the_barrens.cpp:102-120 Aggro text gate',
413
+ 'the_barrens.cpp:128-141 QuestAccept 898 faction 232 + Start(false)',
414
+ ],
415
+ };
416
+
417
+ // ScriptDev IR — npc_taskmaster_fizzule
418
+
419
+ // Cite: the_barrens.cpp npc_taskmaster_fizzuleAI Binding: 7233 Taskmaster Fizzule (in bake). Deep Cover
420
+ // 2458 friendly transform via Flare×2+Salute or Folly whistle. Spells 10113/10137 present (SI4 dummy).
421
+ export const NPC_TASKMASTER_FIZZULE_SCRIPT: ScriptDevIR = {
422
+ name: 'npc_taskmaster_fizzule',
423
+ boundCreatures: [NPC_TASKMASTER_FIZZULE],
424
+ sourceFile: 'kalimdor/the_barrens.cpp',
425
+ spellIds: [SPELL_FLARE, SPELL_FOLLY],
426
+ timers: [],
427
+ spellHits: [
428
+ {
429
+ spellId: SPELL_FLARE,
430
+ playerCaster: true,
431
+ actions: [
432
+ {
433
+ kind: 'flavor',
434
+ text: `if flareCount<2 → ++count; FLARE_1 immune+resetTimer ${FIZZULE_RESET_TIMER_MS}; FLARE_2 faction ${FACTION_FRIENDLY_F}`,
435
+ cite: 'the_barrens.cpp:190-197,234-240; fizzuleSpellHit pure helper',
436
+ },
437
+ ],
438
+ cite: 'the_barrens.cpp:190-197 SpellHit SPELL_FLARE 10113',
439
+ },
440
+ {
441
+ spellId: SPELL_FOLLY,
442
+ playerCaster: true,
443
+ actions: [
444
+ {
445
+ kind: 'flavor',
446
+ text: `flareCount=4 whistle: resetTimer ${FIZZULE_RESET_TIMER_MS} + immune + faction ${FACTION_FRIENDLY_F} + questgiver + salute`,
447
+ cite: 'the_barrens.cpp:199-203,245-251; fizzuleSpellHit pure helper',
448
+ },
449
+ ],
450
+ cite: 'the_barrens.cpp:199-203 SpellHit SPELL_FOLLY 10137',
451
+ },
452
+ ],
453
+ receiveEmotes: [
454
+ {
455
+ emote: TEXTEMOTE_SALUTE,
456
+ actions: [
457
+ {
458
+ kind: 'flavor',
459
+ text: 'if flareCount==2 → count 3 questgiver flag + EMOTE_ONESHOT_SALUTE',
460
+ cite: 'the_barrens.cpp:255-265; fizzuleReceiveEmote pure helper',
461
+ },
462
+ ],
463
+ cite: 'the_barrens.cpp:255-265 ReceiveEmote TEXTEMOTE_SALUTE=78',
464
+ },
465
+ ],
466
+ lifecycle: {
467
+ onEvade: [
468
+ {
469
+ kind: 'flavor',
470
+ text: 'if resetTimer active: RemoveAllAurasOnEvade + CombatStop; else ScriptedAI evade',
471
+ cite: 'the_barrens.cpp:172-181 EnterEvadeMode',
472
+ },
473
+ ],
474
+ onReset: [
475
+ {
476
+ kind: 'flavor',
477
+ text: 'Reset empty; ctor resetTimer=0 flareCount=0',
478
+ cite: 'the_barrens.cpp:161-170',
479
+ },
480
+ ],
481
+ },
482
+ cites: [
483
+ 'the_barrens.cpp:143-271 npc_taskmaster_fizzule',
484
+ 'the_barrens.cpp:149-157 FACTION/SPELL/FIZZULE_*',
485
+ 'the_barrens.cpp:183-265 SpellHit + HandleFlareOrKneel + ReceiveEmote',
486
+ 'the_barrens.cpp:208-222 resetTimer 120000 expiry',
487
+ ],
488
+ };
489
+
490
+ // ScriptDev IR — npc_twiggy_flathead
491
+
492
+ // Cite: the_barrens.cpp npc_twiggy_flatheadAI Binding: 6248 Twiggy Flathead (in bake). Affray 1719 event
493
+ // controller. Challenger 6240 ABSENT bake → unused-binding; Big Will 6238 present.
494
+ export const NPC_TWIGGY_FLATHEAD_SCRIPT: ScriptDevIR = {
495
+ name: 'npc_twiggy_flathead',
496
+ boundCreatures: [NPC_TWIGGY],
497
+ sourceFile: 'kalimdor/the_barrens.cpp',
498
+ spellIds: [],
499
+ timers: [],
500
+ lifecycle: {
501
+ onReset: [
502
+ {
503
+ kind: 'flavor',
504
+ text: `event off; timer ${TWIGGY_EVENT_TIMER_INIT_MS}; challengerCount=0 step=0 clear guids`,
505
+ cite: 'the_barrens.cpp:324-336 Reset',
506
+ },
507
+ ],
508
+ },
509
+ unusedBindings: [
510
+ {
511
+ entry: NPC_AFFRAY_CHALLENGER,
512
+ kind: 'creature',
513
+ reason:
514
+ 'NPC 6240 Affray Challenger is summoned by SetChallengers (MAX=6) but absent from product bake - IR + pure helpers ported; product cannot spawn wave until rebake. Big Will 6238 is present.',
515
+ cite: 'the_barrens.cpp:287,367-373; loadRealBundle missing 6240',
516
+ },
517
+ ],
518
+ cites: [
519
+ 'the_barrens.cpp:273-488 npc_twiggy_flathead',
520
+ 'the_barrens.cpp:279-308 SAY/NPC/QUEST/FACTION/locs',
521
+ 'the_barrens.cpp:324-482 Reset CanStart SetChallengers UpdateAI steps',
522
+ 'the_barrens.cpp:416-428 SummonedCreatureJustDied OVER/DOWN',
523
+ ],
524
+ };
525
+
526
+ // ScriptDev IR — at_twiggy_flathead
527
+
528
+ // Cite: the_barrens.cpp AreaTrigger_at_twiggy_flathead No creature ScriptName — area trigger residual for
529
+ // quest 1719.
530
+ export const AT_TWIGGY_FLATHEAD: ScriptDevIR = {
531
+ name: 'at_twiggy_flathead',
532
+ boundCreatures: [],
533
+ sourceFile: 'kalimdor/the_barrens.cpp',
534
+ spellIds: [],
535
+ timers: [],
536
+ lifecycle: {
537
+ onReset: [
538
+ {
539
+ kind: 'flavor',
540
+ text: `AT: alive + incomplete ${QUEST_AFFRAY} → closest Twiggy ≤${TWIGGY_AT_SEARCH_YD}yd CanStartEvent`,
541
+ cite: 'the_barrens.cpp:490-507; twiggyAreaTrigger pure helper',
542
+ },
543
+ ],
544
+ },
545
+ cites: [
546
+ 'the_barrens.cpp:490-507 at_twiggy_flathead',
547
+ 'the_barrens.cpp:492-501 incomplete 1719 + Twiggy 30yd',
548
+ ],
549
+ };
550
+
551
+ // ScriptDev IR — npc_wizzlecranks_shredder
552
+
553
+ // Cite: the_barrens.cpp npc_wizzlecranks_shredderAI Binding: 3439 Wizzlecrank's Shredder (in bake). Escort
554
+ // 863; mercenary 3282 present; Pilot Wizz 3451 ABSENT → unused-binding.
555
+ export const NPC_WIZZLECRANKS_SHREDDER_SCRIPT: ScriptDevIR = {
556
+ name: 'npc_wizzlecranks_shredder',
557
+ boundCreatures: [NPC_WIZZLECRANKS_SHREDDER],
558
+ sourceFile: 'kalimdor/the_barrens.cpp',
559
+ spellIds: [],
560
+ timers: [],
561
+ lifecycle: {
562
+ onReset: [
563
+ {
564
+ kind: 'flavor',
565
+ text: `if not escorting: STAND if DEAD; postEvent false; timer ${WIZZ_POST_EVENT_INIT_MS}; count 0`,
566
+ cite: 'the_barrens.cpp:544-555 Reset OOC',
567
+ },
568
+ ],
569
+ },
570
+ unusedBindings: [
571
+ {
572
+ entry: NPC_PILOT_WIZZ,
573
+ kind: 'creature',
574
+ reason:
575
+ 'NPC 3451 Pilot Wizzlecrank is post-event summon (case 3) and forces shredder stand-state DEAD on JustSummoned - absent from product bake. Escort credit 863 still modeled; pilot chrome blocked until rebake.',
576
+ cite: 'the_barrens.cpp:526,597-600,626-631; loadRealBundle missing 3451',
577
+ },
578
+ ],
579
+ cites: [
580
+ 'the_barrens.cpp:509-665 npc_wizzlecranks_shredder',
581
+ 'the_barrens.cpp:515-528 SAY/QUEST/FACTION/NPC',
582
+ 'the_barrens.cpp:557-595 WaypointReached/Start',
583
+ 'the_barrens.cpp:606-646 UpdateEscortAI post-event 5s steps credit 863',
584
+ 'the_barrens.cpp:649-660 QuestAccept 863',
585
+ ],
586
+ };
587
+
588
+ // ScriptDev IR — npc_gallywix
589
+
590
+ // Cite: the_barrens.cpp npc_gallywixAI Binding: 7288 Grand Foreman Puzik Gallywix (in bake). Stealth alert
591
+ // + Ambush → Decimate 10268 (resolves). No combat cast schedule.
592
+ export const NPC_GALLYWIX_SCRIPT: ScriptDevIR = {
593
+ name: 'npc_gallywix',
594
+ boundCreatures: [NPC_GALLYWIX],
595
+ sourceFile: 'kalimdor/the_barrens.cpp',
596
+ spellIds: [SPELL_DECIMATE],
597
+ timers: [],
598
+ lifecycle: {
599
+ onReset: [
600
+ {
601
+ kind: 'flavor',
602
+ text: 'Reset empty; OnStealthAlert SAY; DamageTaken Ambush family → Decimate 10268 self',
603
+ cite: 'the_barrens.cpp:685-696; gallywixDamageTaken pure helper',
604
+ },
605
+ ],
606
+ },
607
+ cites: [
608
+ 'the_barrens.cpp:678-697 npc_gallywix',
609
+ 'the_barrens.cpp:669 SPELL_DECIMATE=10268',
610
+ 'the_barrens.cpp:672 SAY_STEALTH_ALERT_GALLYWIX',
611
+ 'the_barrens.cpp:687-696 OnStealthAlert + DamageTaken Ambush',
612
+ ],
613
+ };
614
+
615
+ // ScriptDev IR — npc_foreman_silixiz
616
+
617
+ // Cite: the_barrens.cpp npc_foreman_silixizAI Binding: 7287 Foreman Silixiz (in bake). OnStealthAlert only.
618
+ export const NPC_FOREMAN_SILIXIZ_SCRIPT: ScriptDevIR = {
619
+ name: 'npc_foreman_silixiz',
620
+ boundCreatures: [NPC_FOREMAN_SILIXIZ],
621
+ sourceFile: 'kalimdor/the_barrens.cpp',
622
+ spellIds: [],
623
+ timers: [],
624
+ lifecycle: {
625
+ onReset: [
626
+ {
627
+ kind: 'flavor',
628
+ text: 'Reset empty; OnStealthAlert SAY_STEALTH_ALERT_SILIXIZ only',
629
+ cite: 'the_barrens.cpp:727-732',
630
+ },
631
+ ],
632
+ },
633
+ cites: [
634
+ 'the_barrens.cpp:720-733 npc_foreman_silixiz',
635
+ 'the_barrens.cpp:673 SAY_STEALTH_ALERT_SILIXIZ',
636
+ 'the_barrens.cpp:729-732 OnStealthAlert',
637
+ ],
638
+ };
639
+
640
+ // ScriptDev IR — npc_venture_co_lookout
641
+
642
+ // Cite: the_barrens.cpp npc_venture_co_lookoutAI Binding: 7307 Venture Co. Lookout (in bake). Stealth alert
643
+ // + Eviscerate → Slush 10267 (resolves). No combat cast schedule.
644
+ export const NPC_VENTURE_CO_LOOKOUT_SCRIPT: ScriptDevIR = {
645
+ name: 'npc_venture_co_lookout',
646
+ boundCreatures: [NPC_VENTURE_CO_LOOKOUT],
647
+ sourceFile: 'kalimdor/the_barrens.cpp',
648
+ spellIds: [SPELL_SLUSH],
649
+ timers: [],
650
+ lifecycle: {
651
+ onReset: [
652
+ {
653
+ kind: 'flavor',
654
+ text: 'Reset empty; OnStealthAlert urand LOOKOUT_1/2; DamageTaken Eviscerate → Slush 10267 self',
655
+ cite: 'the_barrens.cpp:706-717; lookoutDamageTaken pure helper',
656
+ },
657
+ ],
658
+ },
659
+ cites: [
660
+ 'the_barrens.cpp:699-718 npc_venture_co_lookout',
661
+ 'the_barrens.cpp:670 SPELL_SLUSH=10267',
662
+ 'the_barrens.cpp:674-675 SAY_STEALTH_ALERT_LOOKOUT_1/2',
663
+ 'the_barrens.cpp:708-717 OnStealthAlert + DamageTaken Eviscerate',
664
+ ],
665
+ };
666
+
667
+ // ScriptDev IR — npc_regthar_deathgate
668
+
669
+ // npc_regthar_deathgateAI, creature 3389 — the Counterattack 4021 wave event. Horde defender 9457
670
+ // and axe thrower 9458 are absent from bake; Krom'zar 9456 and the Kolkar are present.
671
+ export const NPC_REGTHAR_DEATHGATE_SCRIPT: ScriptDevIR = {
672
+ name: 'npc_regthar_deathgate',
673
+ boundCreatures: [NPC_REGTHAR_DEATHGATE],
674
+ sourceFile: 'kalimdor/the_barrens.cpp',
675
+ spellIds: [],
676
+ timers: [],
677
+ lifecycle: {
678
+ onReset: [
679
+ {
680
+ kind: 'flavor',
681
+ text: `event off; killCount 0; timer 0; clear maps; StartEvent → ${REGTHAR_EVENT_DURATION_MS}ms + SpawnAllSlot`,
682
+ cite: 'the_barrens.cpp:928-959 Reset/StartEvent',
683
+ },
684
+ ],
685
+ },
686
+ unusedBindings: [
687
+ {
688
+ entry: NPC_HORDE_DEFENDER,
689
+ kind: 'creature',
690
+ reason:
691
+ 'NPC 9457 Horde Defender is a Counterattack wave summon (SpawnAllSlot horde) but absent from product bake - IR + pure helpers ported.',
692
+ cite: 'the_barrens.cpp:764,957; loadRealBundle missing 9457',
693
+ },
694
+ {
695
+ entry: NPC_HORDE_AXE_THROWER,
696
+ kind: 'creature',
697
+ reason:
698
+ 'NPC 9458 Horde Axe Thrower is a Counterattack wave summon (paired with 9457) but absent from product bake - IR + pure helpers ported.',
699
+ cite: 'the_barrens.cpp:765,957; loadRealBundle missing 9458',
700
+ },
701
+ ],
702
+ cites: [
703
+ 'the_barrens.cpp:750-1095 npc_regthar_deathgate',
704
+ 'the_barrens.cpp:756-819 QUEST/SAY/NPC/KILL_LIMIT/spawn points',
705
+ 'the_barrens.cpp:948-970 StartEvent/FinishEvent',
706
+ 'the_barrens.cpp:972-1049 SummonedCreatureJustDied + UpdateAI kill 20 → Kromzar',
707
+ 'the_barrens.cpp:1057-1095 Gossip/QuestAccept start',
708
+ ],
709
+ };