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.
- package/README.md +138 -2
- package/bin/azsh.mjs +19 -0
- package/docs/aifid/eventai-texts.json +4414 -0
- package/docs/dungeons/atlas/atlas-rows-dungeons.json +8989 -0
- package/docs/dungeons/survey/pack-id-migration.json +2418 -0
- package/package.json +26 -4
- package/src/autopilot/bossSkip.ts +26 -0
- package/src/autopilot/combatRotation.ts +824 -0
- package/src/autopilot/config.ts +533 -0
- package/src/autopilot/consumables.ts +58 -0
- package/src/autopilot/encounterStand.ts +121 -0
- package/src/autopilot/objectGatePlan.ts +53 -0
- package/src/autopilot/pathEngage.ts +229 -0
- package/src/autopilot/plan.ts +1643 -0
- package/src/autopilot/questPolicy.ts +274 -0
- package/src/autopilot/routeStep.ts +69 -0
- package/src/autopilot/sessionReport.ts +88 -0
- package/src/autopilot/topOffPower.ts +26 -0
- package/src/autopilot/view.ts +476 -0
- package/src/cli/bootCheck.mjs +34 -0
- package/src/cli/bootData.mjs +57 -0
- package/src/cli/combatLogFilter.ts +153 -0
- package/src/cli/combatLogFormat.ts +613 -0
- package/src/cli/fileRepository.mjs +105 -0
- package/src/cli/gzLoader.mjs +31 -0
- package/src/cli/liveGauntletEscort.ts +978 -0
- package/src/cli/liveStratUndead.ts +305 -0
- package/src/cli/macroHostCombat.ts +545 -0
- package/src/cli/macroHostWorld.ts +330 -0
- package/src/cli/prefs.mjs +31 -0
- package/src/cli/register.mjs +4 -0
- package/src/cli/repl.mjs +693 -0
- package/src/cli/rotationText.mjs +226 -0
- package/src/cli/squad.mjs +105 -0
- package/src/cli/term.mjs +126 -0
- package/src/cli/text.mjs +122 -0
- package/src/cli/tui.mjs +626 -0
- package/src/cli/tuiArena.mjs +109 -0
- package/src/cli/tuiAutopilotSettings.mjs +93 -0
- package/src/cli/tuiBags.mjs +180 -0
- package/src/cli/tuiBars.mjs +133 -0
- package/src/cli/tuiBg.mjs +243 -0
- package/src/cli/tuiBulk.mjs +162 -0
- package/src/cli/tuiCheck.mjs +1882 -0
- package/src/cli/tuiCity.mjs +396 -0
- package/src/cli/tuiCompanionKit.mjs +300 -0
- package/src/cli/tuiCompanions.mjs +471 -0
- package/src/cli/tuiDev.mjs +62 -0
- package/src/cli/tuiDungeon.mjs +606 -0
- package/src/cli/tuiEnchantTarget.mjs +120 -0
- package/src/cli/tuiFight.mjs +577 -0
- package/src/cli/tuiFightPanes.mjs +228 -0
- package/src/cli/tuiFloor.mjs +506 -0
- package/src/cli/tuiGear.mjs +158 -0
- package/src/cli/tuiHonor.mjs +74 -0
- package/src/cli/tuiLoot.mjs +97 -0
- package/src/cli/tuiMacros.mjs +144 -0
- package/src/cli/tuiOutfitter.mjs +115 -0
- package/src/cli/tuiPet.mjs +116 -0
- package/src/cli/tuiProfessions.mjs +800 -0
- package/src/cli/tuiRaid.mjs +127 -0
- package/src/cli/tuiRep.mjs +65 -0
- package/src/cli/tuiSaves.mjs +69 -0
- package/src/cli/tuiSearch.mjs +363 -0
- package/src/cli/tuiSettings.mjs +151 -0
- package/src/cli/tuiSimLab.mjs +80 -0
- package/src/cli/tuiTalents.mjs +60 -0
- package/src/cli/tuiViews.mjs +1178 -0
- package/src/cli/tuiWiki.mjs +181 -0
- package/src/cli/tuiWorld.mjs +361 -0
- package/src/cli/wikiIndex.ts +259 -0
- package/src/cli/wikiSources.ts +355 -0
- package/src/data/alteracValley.ts +176 -0
- package/src/data/appearanceOptions.ts +534 -0
- package/src/data/applyLootChanceSanity.ts +21 -0
- package/src/data/createFlavor.ts +96 -0
- package/src/data/customItems.ts +33 -0
- package/src/data/dataStore.ts +1904 -0
- package/src/data/dungeonGameObjects.ts +84 -0
- package/src/data/dungeonPlateCover.ts +66 -0
- package/src/data/dungeonSpawns.ts +294 -0
- package/src/data/dungeons/alterac-valley.ts +135 -0
- package/src/data/dungeons/apply-dungeon-rooms.ts +29 -0
- package/src/data/dungeons/apply-encounter-outdoors.ts +72 -0
- package/src/data/dungeons/apply-instance-geometry.ts +65 -0
- package/src/data/dungeons/apply-spawn-placement.ts +171 -0
- package/src/data/dungeons/blackfathom-deeps.ts +539 -0
- package/src/data/dungeons/blackrock-depths.ts +1410 -0
- package/src/data/dungeons/blackwing-lair.ts +129 -0
- package/src/data/dungeons/boss-eventai.ts +8 -0
- package/src/data/dungeons/deadmines.ts +410 -0
- package/src/data/dungeons/dire-maul-east.ts +980 -0
- package/src/data/dungeons/dire-maul-north.ts +661 -0
- package/src/data/dungeons/dire-maul-west.ts +785 -0
- package/src/data/dungeons/dungeon-rooms.json +5479 -0
- package/src/data/dungeons/encounter-outdoors.json +359 -0
- package/src/data/dungeons/eventai/blackfathom-deeps.ts +308 -0
- package/src/data/dungeons/eventai/blackrock-depths.ts +1257 -0
- package/src/data/dungeons/eventai/deadmines.ts +264 -0
- package/src/data/dungeons/eventai/dire-maul-east.ts +320 -0
- package/src/data/dungeons/eventai/gnomeregan.ts +213 -0
- package/src/data/dungeons/eventai/helpers.ts +79 -0
- package/src/data/dungeons/eventai/index.ts +133 -0
- package/src/data/dungeons/eventai/lbrs.ts +372 -0
- package/src/data/dungeons/eventai/maraudon.ts +323 -0
- package/src/data/dungeons/eventai/ragefire-chasm.ts +108 -0
- package/src/data/dungeons/eventai/razorfen-downs.ts +207 -0
- package/src/data/dungeons/eventai/razorfen-kraul.ts +326 -0
- package/src/data/dungeons/eventai/scholomance.ts +680 -0
- package/src/data/dungeons/eventai/shadowfang-keep.ts +230 -0
- package/src/data/dungeons/eventai/sm-cathedral.ts +75 -0
- package/src/data/dungeons/eventai/sm-graveyard.ts +150 -0
- package/src/data/dungeons/eventai/sm-library.ts +55 -0
- package/src/data/dungeons/eventai/stratholme-undead.ts +127 -0
- package/src/data/dungeons/eventai/sunken-temple.ts +582 -0
- package/src/data/dungeons/eventai/the-stockade.ts +228 -0
- package/src/data/dungeons/eventai/ubrs.ts +225 -0
- package/src/data/dungeons/eventai/uldaman.ts +355 -0
- package/src/data/dungeons/eventai/wailing-caverns.ts +396 -0
- package/src/data/dungeons/eventai/zul-farrak.ts +591 -0
- package/src/data/dungeons/gnomeregan.ts +909 -0
- package/src/data/dungeons/index.ts +126 -0
- package/src/data/dungeons/instance-geometry.json +5233 -0
- package/src/data/dungeons/key-sources.json +169 -0
- package/src/data/dungeons/lbrs.ts +996 -0
- package/src/data/dungeons/maraudon.ts +786 -0
- package/src/data/dungeons/molten-core.ts +194 -0
- package/src/data/dungeons/naxxramas.ts +173 -0
- package/src/data/dungeons/onyxias-lair.ts +71 -0
- package/src/data/dungeons/pack-from-clusters.ts +1256 -0
- package/src/data/dungeons/ragefire-chasm.ts +238 -0
- package/src/data/dungeons/razorfen-downs.ts +698 -0
- package/src/data/dungeons/razorfen-kraul.ts +766 -0
- package/src/data/dungeons/ruins-of-ahnqiraj.ts +121 -0
- package/src/data/dungeons/scholomance.ts +1076 -0
- package/src/data/dungeons/shadowfang-keep.ts +740 -0
- package/src/data/dungeons/sm-armory.ts +266 -0
- package/src/data/dungeons/sm-cathedral.ts +430 -0
- package/src/data/dungeons/sm-graveyard.ts +482 -0
- package/src/data/dungeons/sm-library.ts +337 -0
- package/src/data/dungeons/stratholme-live.ts +808 -0
- package/src/data/dungeons/stratholme-undead.ts +1164 -0
- package/src/data/dungeons/sunken-temple.ts +931 -0
- package/src/data/dungeons/temple-of-ahnqiraj.ts +119 -0
- package/src/data/dungeons/the-stockade.ts +282 -0
- package/src/data/dungeons/ubrs.ts +1286 -0
- package/src/data/dungeons/uldaman.ts +685 -0
- package/src/data/dungeons/wailing-caverns.ts +356 -0
- package/src/data/dungeons/zul-farrak.ts +686 -0
- package/src/data/dungeons/zul-gurub.ts +142 -0
- package/src/data/dungeons.ts +42 -0
- package/src/data/fixtures.ts +446 -0
- package/src/data/gameobject-data.json.gz +0 -0
- package/src/data/item-data.json.gz +0 -0
- package/src/data/loot-data.json.gz +0 -0
- package/src/data/maps/atlas-approach-maps.json +1425 -0
- package/src/data/maps/atlas-landmarks.json +1711 -0
- package/src/data/maps/dungeon-viewports.json +392 -0
- package/src/data/materializeModDamagePercentTaken.ts +70 -0
- package/src/data/materializeModHealthRegen.ts +89 -0
- package/src/data/materializeSpellReputation.ts +26 -0
- package/src/data/pageTexts.ts +19 -0
- package/src/data/profession-data.json.gz +0 -0
- package/src/data/raid-plans/blackfathom-deeps.json +86 -0
- package/src/data/raid-plans/blackrock-depths.json +419 -0
- package/src/data/raid-plans/blackwing-lair.json +328 -0
- package/src/data/raid-plans/deadmines.json +55 -0
- package/src/data/raid-plans/dire-maul-east.json +94 -0
- package/src/data/raid-plans/dire-maul-north.json +70 -0
- package/src/data/raid-plans/dire-maul-west.json +75 -0
- package/src/data/raid-plans/gnomeregan.json +131 -0
- package/src/data/raid-plans/lbrs.json +176 -0
- package/src/data/raid-plans/maraudon.json +102 -0
- package/src/data/raid-plans/molten-core.json +169 -0
- package/src/data/raid-plans/naxxramas.json +354 -0
- package/src/data/raid-plans/onyxias-lair.json +18 -0
- package/src/data/raid-plans/ragefire-chasm.json +30 -0
- package/src/data/raid-plans/razorfen-downs.json +75 -0
- package/src/data/raid-plans/razorfen-kraul.json +53 -0
- package/src/data/raid-plans/ruins-of-ahnqiraj.json +110 -0
- package/src/data/raid-plans/scholomance.json +170 -0
- package/src/data/raid-plans/shadowfang-keep.json +87 -0
- package/src/data/raid-plans/sm-armory.json +53 -0
- package/src/data/raid-plans/sm-cathedral.json +72 -0
- package/src/data/raid-plans/sm-graveyard.json +63 -0
- package/src/data/raid-plans/sm-library.json +23 -0
- package/src/data/raid-plans/stratholme-live.json +129 -0
- package/src/data/raid-plans/stratholme-undead.json +73 -0
- package/src/data/raid-plans/sunken-temple.json +159 -0
- package/src/data/raid-plans/temple-of-ahnqiraj.json +163 -0
- package/src/data/raid-plans/the-stockade.json +42 -0
- package/src/data/raid-plans/ubrs.json +53 -0
- package/src/data/raid-plans/uldaman.json +131 -0
- package/src/data/raid-plans/wailing-caverns.json +90 -0
- package/src/data/raid-plans/zul-farrak.json +156 -0
- package/src/data/raid-plans/zul-gurub.json +307 -0
- package/src/data/raidInstanceCreatures.mjs +473 -0
- package/src/data/rotations/index.ts +152 -0
- package/src/data/rotations/layout.mjs +72 -0
- package/src/data/rotations/pve/druid/balance.json +754 -0
- package/src/data/rotations/pve/druid/feral-tank.json +2448 -0
- package/src/data/rotations/pve/druid/feral.json +2660 -0
- package/src/data/rotations/pve/druid/restoration.json +424 -0
- package/src/data/rotations/pve/hunter/beast-mastery.json +1288 -0
- package/src/data/rotations/pve/hunter/marksmanship.json +1260 -0
- package/src/data/rotations/pve/hunter/survival.json +1373 -0
- package/src/data/rotations/pve/mage/arcane-leveling.json +1798 -0
- package/src/data/rotations/pve/mage/fire-leveling.json +2003 -0
- package/src/data/rotations/pve/mage/frost-leveling.json +1912 -0
- package/src/data/rotations/pve/paladin/holy.json +755 -0
- package/src/data/rotations/pve/paladin/protection.json +962 -0
- package/src/data/rotations/pve/paladin/retribution.json +924 -0
- package/src/data/rotations/pve/priest/discipline.json +772 -0
- package/src/data/rotations/pve/priest/holy.json +707 -0
- package/src/data/rotations/pve/priest/shadow.json +787 -0
- package/src/data/rotations/pve/rogue/assassination.json +2477 -0
- package/src/data/rotations/pve/rogue/combat.json +2483 -0
- package/src/data/rotations/pve/rogue/subtlety.json +2523 -0
- package/src/data/rotations/pve/shaman/elemental.json +1157 -0
- package/src/data/rotations/pve/shaman/enhancement.json +1085 -0
- package/src/data/rotations/pve/shaman/restoration.json +592 -0
- package/src/data/rotations/pve/warlock/affliction.json +1185 -0
- package/src/data/rotations/pve/warlock/demonology.json +1165 -0
- package/src/data/rotations/pve/warlock/destruction.json +1177 -0
- package/src/data/rotations/pve/warrior/arms.json +3020 -0
- package/src/data/rotations/pve/warrior/fury.json +2996 -0
- package/src/data/rotations/pve/warrior/protection.json +2509 -0
- package/src/data/rotations/pvp/druid/balance.json +593 -0
- package/src/data/rotations/pvp/druid/feral.json +3276 -0
- package/src/data/rotations/pvp/druid/restoration.json +662 -0
- package/src/data/rotations/pvp/hunter/beast-mastery.json +665 -0
- package/src/data/rotations/pvp/hunter/marksmanship.json +2406 -0
- package/src/data/rotations/pvp/hunter/survival.json +635 -0
- package/src/data/rotations/pvp/mage/arcane.json +574 -0
- package/src/data/rotations/pvp/mage/fire.json +570 -0
- package/src/data/rotations/pvp/mage/frost.json +4048 -0
- package/src/data/rotations/pvp/paladin/holy.json +1498 -0
- package/src/data/rotations/pvp/paladin/protection.json +567 -0
- package/src/data/rotations/pvp/paladin/retribution.json +1110 -0
- package/src/data/rotations/pvp/priest/discipline.json +1848 -0
- package/src/data/rotations/pvp/priest/holy.json +6340 -0
- package/src/data/rotations/pvp/priest/shadow.json +2329 -0
- package/src/data/rotations/pvp/rogue/assassination.json +1322 -0
- package/src/data/rotations/pvp/rogue/combat.json +5258 -0
- package/src/data/rotations/pvp/rogue/subtlety.json +586 -0
- package/src/data/rotations/pvp/shaman/elemental.json +1404 -0
- package/src/data/rotations/pvp/shaman/enhancement.json +1277 -0
- package/src/data/rotations/pvp/shaman/restoration.json +2490 -0
- package/src/data/rotations/pvp/warlock/affliction.json +1017 -0
- package/src/data/rotations/pvp/warlock/demonology.json +1503 -0
- package/src/data/rotations/pvp/warlock/destruction.json +638 -0
- package/src/data/rotations/pvp/warrior/arms.json +5665 -0
- package/src/data/rotations/pvp/warrior/fury.json +850 -0
- package/src/data/rotations/pvp/warrior/protection.json +777 -0
- package/src/data/schema/bundle.ts +511 -0
- package/src/data/schema/constants.ts +49 -0
- package/src/data/schema/creature.ts +454 -0
- package/src/data/schema/encounter.ts +155 -0
- package/src/data/schema/faction.ts +48 -0
- package/src/data/schema/item.ts +297 -0
- package/src/data/schema/itemEnchant.ts +105 -0
- package/src/data/schema/npc.ts +44 -0
- package/src/data/schema/primitives.ts +295 -0
- package/src/data/schema/profession.ts +226 -0
- package/src/data/schema/quest.ts +154 -0
- package/src/data/schema/spell.ts +1149 -0
- package/src/data/schema/talent.ts +74 -0
- package/src/data/schema/world.ts +124 -0
- package/src/data/schema.ts +19 -0
- package/src/data/skinNodeGapFill.ts +68 -0
- package/src/data/spell-data.json.gz +0 -0
- package/src/data/spell-script-targets.json +1 -0
- package/src/data/tables/ahItemValues.json.gz +0 -0
- package/src/data/tables/alteracValley.json.gz +0 -0
- package/src/data/tables/areatriggerTeleports.json.gz +0 -0
- package/src/data/tables/botNames.json.gz +0 -0
- package/src/data/tables/botPopulation.json.gz +0 -0
- package/src/data/tables/botSpecs.json.gz +0 -0
- package/src/data/tables/classLevelStats.json.gz +0 -0
- package/src/data/tables/combatConditions.json.gz +0 -0
- package/src/data/tables/combatSkillMeta.json.gz +0 -0
- package/src/data/tables/conditions.json.gz +0 -0
- package/src/data/tables/createInfo.json.gz +0 -0
- package/src/data/tables/creatureAggroGroups.json.gz +0 -0
- package/src/data/tables/creatureClassLevelStats.json.gz +0 -0
- package/src/data/tables/creaturePatrolPacks.json.gz +0 -0
- package/src/data/tables/creatureWeapons.json.gz +0 -0
- package/src/data/tables/creatures.json.gz +0 -0
- package/src/data/tables/dbScripts.json.gz +0 -0
- package/src/data/tables/dungeonAuthoredRoutes.json.gz +0 -0
- package/src/data/tables/dungeonCensus.json.gz +0 -0
- package/src/data/tables/dungeonGameObjects.json.gz +0 -0
- package/src/data/tables/dungeonPacks.json.gz +0 -0
- package/src/data/tables/dungeonPlateCover.json.gz +0 -0
- package/src/data/tables/dungeonSpawns.json.gz +0 -0
- package/src/data/tables/dungeonSurvey.json.gz +0 -0
- package/src/data/tables/durabilityCosts.json.gz +0 -0
- package/src/data/tables/durabilityQuality.json.gz +0 -0
- package/src/data/tables/enchantApplicators.json.gz +0 -0
- package/src/data/tables/entranceYards.json.gz +0 -0
- package/src/data/tables/explorationBasexp.json.gz +0 -0
- package/src/data/tables/factionTemplates.json.gz +0 -0
- package/src/data/tables/factions.json.gz +0 -0
- package/src/data/tables/gameEvents.json.gz +0 -0
- package/src/data/tables/gameObjects.json.gz +0 -0
- package/src/data/tables/gossipMenus.json.gz +0 -0
- package/src/data/tables/graveyards.json.gz +0 -0
- package/src/data/tables/instanceMaps.json.gz +0 -0
- package/src/data/tables/itemEnchantmentTemplates.json.gz +0 -0
- package/src/data/tables/itemEnchants.json.gz +0 -0
- package/src/data/tables/itemRandomProperties.json.gz +0 -0
- package/src/data/tables/itemSets.json.gz +0 -0
- package/src/data/tables/items.json.gz +0 -0
- package/src/data/tables/levelStats.json.gz +0 -0
- package/src/data/tables/locks.json.gz +0 -0
- package/src/data/tables/map-pin-overrides.json.gz +0 -0
- package/src/data/tables/nonCombatTrash.json.gz +0 -0
- package/src/data/tables/npcTexts.json.gz +0 -0
- package/src/data/tables/pageTexts.json.gz +0 -0
- package/src/data/tables/petAbilityTP.json.gz +0 -0
- package/src/data/tables/petGenericSpells.json.gz +0 -0
- package/src/data/tables/petLevelStats.json.gz +0 -0
- package/src/data/tables/playerbot-weightscales.json.gz +0 -0
- package/src/data/tables/pools.json.gz +0 -0
- package/src/data/tables/quests.json.gz +0 -0
- package/src/data/tables/races.json.gz +0 -0
- package/src/data/tables/reputationRanks.json.gz +0 -0
- package/src/data/tables/reputationRates.json.gz +0 -0
- package/src/data/tables/reputationSpillover.json.gz +0 -0
- package/src/data/tables/ridingSpells.json.gz +0 -0
- package/src/data/tables/scriptTexts.json.gz +0 -0
- package/src/data/tables/soundClipVolume.json.gz +0 -0
- package/src/data/tables/spellChain.json.gz +0 -0
- package/src/data/tables/spellTeleports.json.gz +0 -0
- package/src/data/tables/spells.json.gz +0 -0
- package/src/data/tables/talents.json.gz +0 -0
- package/src/data/tables/tavernTriggers.json.gz +0 -0
- package/src/data/tables/taxiNodes.json.gz +0 -0
- package/src/data/tables/taxiRoutes.json.gz +0 -0
- package/src/data/tables/trainers.json.gz +0 -0
- package/src/data/tables/transports.json.gz +0 -0
- package/src/data/tables/travelAnchors.json.gz +0 -0
- package/src/data/tables/travelEdges.json.gz +0 -0
- package/src/data/tables/unitConditions.json.gz +0 -0
- package/src/data/tables/vendors.json.gz +0 -0
- package/src/data/tables/weaponEnchantProcs.json.gz +0 -0
- package/src/data/tables/xp.json.gz +0 -0
- package/src/data/tables/zoneWeather.json.gz +0 -0
- package/src/data/tables/zones.json.gz +0 -0
- package/src/data/world-data.ts +56 -0
- package/src/data/zone-music-sets.json +2751 -0
- package/src/dev/etl/lib/loot-chance-sanity.mjs +180 -0
- package/src/domain/audioQuality.mjs +145 -0
- package/src/domain/bg/ab.ts +433 -0
- package/src/domain/bg/arenaComps.ts +644 -0
- package/src/domain/bg/arenaLab.ts +695 -0
- package/src/domain/bg/arenaPace.ts +31 -0
- package/src/domain/bg/arenaRating.ts +110 -0
- package/src/domain/bg/av.ts +758 -0
- package/src/domain/bg/avEnemyPush.ts +219 -0
- package/src/domain/bg/avField.ts +283 -0
- package/src/domain/bg/avInstanceNodes.ts +197 -0
- package/src/domain/bg/avInstanceScore.ts +123 -0
- package/src/domain/bg/avQuestItems.ts +55 -0
- package/src/domain/bg/avQuests.ts +210 -0
- package/src/domain/bg/avSession.ts +196 -0
- package/src/domain/bg/bgConsumes.ts +269 -0
- package/src/domain/bg/bgPrebuff.ts +153 -0
- package/src/domain/bg/bgRest.ts +91 -0
- package/src/domain/bg/bgRoster.ts +305 -0
- package/src/domain/bg/bgTier.ts +61 -0
- package/src/domain/bg/bgWorld.ts +862 -0
- package/src/domain/bg/match.ts +215 -0
- package/src/domain/bg/strategies.ts +552 -0
- package/src/domain/bg/types.ts +291 -0
- package/src/domain/bg/wsg.ts +264 -0
- package/src/domain/bots/actionProviderSpec.ts +38 -0
- package/src/domain/bots/autoConsumables.ts +285 -0
- package/src/domain/bots/betweenPullRest.ts +239 -0
- package/src/domain/bots/botGear.ts +248 -0
- package/src/domain/bots/botInventory.ts +486 -0
- package/src/domain/bots/botPet.ts +535 -0
- package/src/domain/bots/botPool.ts +291 -0
- package/src/domain/bots/botProfessions.ts +334 -0
- package/src/domain/bots/companionActionBar.ts +209 -0
- package/src/domain/bots/companionHireCost.ts +236 -0
- package/src/domain/bots/companionMissions.ts +582 -0
- package/src/domain/bots/companionPrep.ts +254 -0
- package/src/domain/bots/companionQuests.ts +270 -0
- package/src/domain/bots/companionRep.ts +75 -0
- package/src/domain/bots/companionRotation.ts +708 -0
- package/src/domain/bots/companionXp.ts +66 -0
- package/src/domain/bots/consumableShare.ts +811 -0
- package/src/domain/bots/dpsMate.ts +1072 -0
- package/src/domain/bots/groupCompReport.ts +132 -0
- package/src/domain/bots/healthstoneSupply.ts +198 -0
- package/src/domain/bots/outfitter.ts +1056 -0
- package/src/domain/bots/paladinPrePull.ts +231 -0
- package/src/domain/bots/partyRole.ts +40 -0
- package/src/domain/bots/playerbotEquipCache.ts +412 -0
- package/src/domain/bots/playerbotItemEligibility.ts +60 -0
- package/src/domain/bots/playerbotStatWeight.ts +853 -0
- package/src/domain/bots/playerbotUnavailableItems.ts +147 -0
- package/src/domain/bots/prePullBuffs.ts +219 -0
- package/src/domain/bots/prePullStealth.ts +82 -0
- package/src/domain/bots/runSupply.ts +251 -0
- package/src/domain/bots/runSupplyPrefs.ts +28 -0
- package/src/domain/bots/sendTradeGoods.ts +394 -0
- package/src/domain/bots/soulShardCap.ts +35 -0
- package/src/domain/bots/squad.ts +842 -0
- package/src/domain/bots/squadRun.ts +81 -0
- package/src/domain/character/actionbar.ts +346 -0
- package/src/domain/character/appearance.ts +165 -0
- package/src/domain/character/buildCombatant.ts +1726 -0
- package/src/domain/character/character.ts +356 -0
- package/src/domain/character/characterName.ts +43 -0
- package/src/domain/character/characterRatings.ts +424 -0
- package/src/domain/character/characterSpells.ts +282 -0
- package/src/domain/character/characterStats.ts +1559 -0
- package/src/domain/character/characterTalents.ts +398 -0
- package/src/domain/character/combatSkills.ts +994 -0
- package/src/domain/character/displayForm.ts +72 -0
- package/src/domain/character/formTalentAuras.ts +171 -0
- package/src/domain/character/forms.ts +499 -0
- package/src/domain/character/races.ts +40 -0
- package/src/domain/character/resurrectionSickness.ts +49 -0
- package/src/domain/character/spellbook.ts +169 -0
- package/src/domain/character/stanceBar.ts +354 -0
- package/src/domain/character/stancePrereq.ts +70 -0
- package/src/domain/character/talentBuilds.ts +63 -0
- package/src/domain/character/talentImport.ts +130 -0
- package/src/domain/character/talentLink.ts +123 -0
- package/src/domain/character/talents.ts +201 -0
- package/src/domain/core/conditionSnapshot.ts +92 -0
- package/src/domain/core/hover.ts +14 -0
- package/src/domain/core/ids.ts +58 -0
- package/src/domain/core/internalNameTags.ts +5 -0
- package/src/domain/core/runtimeDataPatches.ts +357 -0
- package/src/domain/creature/aiTargeting.ts +588 -0
- package/src/domain/creature/combatCondition.ts +157 -0
- package/src/domain/creature/creatureAggro.ts +804 -0
- package/src/domain/creature/creatureAi.ts +206 -0
- package/src/domain/creature/creatureAiConstants.ts +661 -0
- package/src/domain/creature/creatureCastList.ts +1007 -0
- package/src/domain/creature/creatureEventAi.ts +1409 -0
- package/src/domain/creature/creatureGroups.ts +144 -0
- package/src/domain/creature/creatureLinking.ts +333 -0
- package/src/domain/creature/creatureScaling.ts +320 -0
- package/src/domain/creature/creatureTrigger.ts +53 -0
- package/src/domain/creature/creatureWander.ts +74 -0
- package/src/domain/creature/eventAiTexts.ts +145 -0
- package/src/domain/creature/faction.ts +287 -0
- package/src/domain/creature/forcedReaction.ts +48 -0
- package/src/domain/creature/outdoorHuntable.ts +74 -0
- package/src/domain/creature/patrolPacks.ts +210 -0
- package/src/domain/creature/reputation.ts +967 -0
- package/src/domain/creature/unitFlags.ts +74 -0
- package/src/domain/creature/worldBosses.ts +393 -0
- package/src/domain/dungeonMusic.mjs +48 -0
- package/src/domain/economy/auction.ts +282 -0
- package/src/domain/economy/auctionBot.ts +1060 -0
- package/src/domain/economy/honorPrice.ts +100 -0
- package/src/domain/economy/mail.ts +958 -0
- package/src/domain/economy/money.ts +42 -0
- package/src/domain/economy/syntheticClassTrainers.ts +62 -0
- package/src/domain/economy/trading.ts +296 -0
- package/src/domain/economy/vendorSellAll.ts +252 -0
- package/src/domain/economy/vendorStock.ts +146 -0
- package/src/domain/items/ammo.ts +817 -0
- package/src/domain/items/bank.ts +162 -0
- package/src/domain/items/consumableFamily.ts +205 -0
- package/src/domain/items/craftUpgrades.ts +83 -0
- package/src/domain/items/createItem.ts +93 -0
- package/src/domain/items/durability.ts +581 -0
- package/src/domain/items/equipment.ts +441 -0
- package/src/domain/items/equipmentHelper.ts +767 -0
- package/src/domain/items/inventory.ts +561 -0
- package/src/domain/items/itemBonding.ts +93 -0
- package/src/domain/items/itemContainer.ts +245 -0
- package/src/domain/items/itemDisplayName.ts +33 -0
- package/src/domain/items/itemInstance.ts +181 -0
- package/src/domain/items/itemRandomEnchantOutcomes.ts +315 -0
- package/src/domain/items/itemRandomProps.ts +77 -0
- package/src/domain/items/itemRestrictions.ts +329 -0
- package/src/domain/items/itemTeaches.ts +82 -0
- package/src/domain/items/itemUseCooldown.ts +52 -0
- package/src/domain/items/itemUseTarget.ts +90 -0
- package/src/domain/items/junkCategories.ts +174 -0
- package/src/domain/items/junkFilter.ts +368 -0
- package/src/domain/items/keyring.ts +131 -0
- package/src/domain/items/loot.ts +221 -0
- package/src/domain/items/mounts.ts +190 -0
- package/src/domain/items/onUsePayload.ts +102 -0
- package/src/domain/items/pendingLoot.ts +107 -0
- package/src/domain/items/relic.ts +105 -0
- package/src/domain/items/rocketBoots.ts +36 -0
- package/src/domain/items/sortContainer.ts +139 -0
- package/src/domain/items/spareContainers.ts +71 -0
- package/src/domain/items/spellReagentIndex.ts +131 -0
- package/src/domain/items/staleConsumables.ts +66 -0
- package/src/domain/items/weaponSpender.ts +110 -0
- package/src/domain/listDungeonIds.mjs +28 -0
- package/src/domain/macro/compose.ts +239 -0
- package/src/domain/macro/conditions.ts +260 -0
- package/src/domain/macro/creatureTypes.ts +40 -0
- package/src/domain/macro/describe.ts +169 -0
- package/src/domain/macro/icon.ts +60 -0
- package/src/domain/macro/index.ts +20 -0
- package/src/domain/macro/normalize.ts +112 -0
- package/src/domain/macro/parse.ts +316 -0
- package/src/domain/macro/plan.ts +288 -0
- package/src/domain/macro/rotation.ts +590 -0
- package/src/domain/macro/rotationEnv.ts +173 -0
- package/src/domain/macro/slots.ts +101 -0
- package/src/domain/macro/snapshot.ts +114 -0
- package/src/domain/macro/templates.ts +446 -0
- package/src/domain/macro/types.ts +70 -0
- package/src/domain/macro/units.ts +93 -0
- package/src/domain/macro/weaponTypes.ts +83 -0
- package/src/domain/nav/cityTeleports.ts +10 -0
- package/src/domain/nav/mounting.ts +113 -0
- package/src/domain/nav/nav.ts +43 -0
- package/src/domain/nav/navCollision.ts +606 -0
- package/src/domain/nav/navOutdoors.ts +91 -0
- package/src/domain/nav/navRegistry.ts +179 -0
- package/src/domain/nav/navRoomGraph.ts +302 -0
- package/src/domain/nav/navTypes.ts +43 -0
- package/src/domain/nav/navmesh.ts +1715 -0
- package/src/domain/nav/speed.ts +200 -0
- package/src/domain/nav/storey.ts +10 -0
- package/src/domain/nav/travel.ts +725 -0
- package/src/domain/nav/travelTypes.ts +75 -0
- package/src/domain/pet/pet.ts +1150 -0
- package/src/domain/pet/petActionBar.ts +180 -0
- package/src/domain/pet/petSpellbook.ts +39 -0
- package/src/domain/pet/petStable.ts +81 -0
- package/src/domain/professions/autoDisenchant.ts +236 -0
- package/src/domain/professions/characterEnchants.ts +176 -0
- package/src/domain/professions/craftCooldown.ts +52 -0
- package/src/domain/professions/enchantApply.ts +62 -0
- package/src/domain/professions/enchantTargets.ts +114 -0
- package/src/domain/professions/enchanting.ts +236 -0
- package/src/domain/professions/gatherFilter.ts +149 -0
- package/src/domain/professions/gearEnchant.ts +137 -0
- package/src/domain/professions/heldTools.ts +29 -0
- package/src/domain/professions/learnAllRecipes.ts +146 -0
- package/src/domain/professions/miningHarvest.ts +69 -0
- package/src/domain/professions/partyDisenchant.ts +294 -0
- package/src/domain/professions/partyWork.ts +83 -0
- package/src/domain/professions/pickpocket.ts +172 -0
- package/src/domain/professions/poisons.ts +240 -0
- package/src/domain/professions/professions.ts +677 -0
- package/src/domain/professions/rareNodes.ts +45 -0
- package/src/domain/professions/skinLoot.ts +27 -0
- package/src/domain/professions/vendorReagents.ts +152 -0
- package/src/domain/professions/weaponImbueHand.ts +171 -0
- package/src/domain/questFarmFilter.mjs +42 -0
- package/src/domain/quests/doQuest.ts +1204 -0
- package/src/domain/quests/gossip.ts +308 -0
- package/src/domain/quests/gossipTalk.ts +298 -0
- package/src/domain/quests/interpreter/canComplete.ts +150 -0
- package/src/domain/quests/interpreter/claim.ts +137 -0
- package/src/domain/quests/interpreter/dbscript/handlers.ts +1371 -0
- package/src/domain/quests/interpreter/dbscript/handlersBatch.ts +1251 -0
- package/src/domain/quests/interpreter/dbscript/hooks.ts +331 -0
- package/src/domain/quests/interpreter/dbscript/index.ts +212 -0
- package/src/domain/quests/interpreter/dbscript/opcodes.ts +257 -0
- package/src/domain/quests/interpreter/dbscript/registry.ts +1194 -0
- package/src/domain/quests/interpreter/dbscript/registryAreatriggerScripts.ts +539 -0
- package/src/domain/quests/interpreter/dbscript/registryAshenvale.ts +553 -0
- package/src/domain/quests/interpreter/dbscript/registryAzshara.ts +272 -0
- package/src/domain/quests/interpreter/dbscript/registryDarkshore.ts +637 -0
- package/src/domain/quests/interpreter/dbscript/registryDesolace.ts +501 -0
- package/src/domain/quests/interpreter/dbscript/registryDustwallowMarsh.ts +735 -0
- package/src/domain/quests/interpreter/dbscript/registryFelwood.ts +493 -0
- package/src/domain/quests/interpreter/dbscript/registryFeralas.ts +485 -0
- package/src/domain/quests/interpreter/dbscript/registryGoScripts.ts +203 -0
- package/src/domain/quests/interpreter/dbscript/registryMoonglade.ts +288 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcProfessions.ts +230 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcsSpecial.ts +545 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenDowns.ts +293 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenKraul.ts +221 -0
- package/src/domain/quests/interpreter/dbscript/registryRedridge.ts +112 -0
- package/src/domain/quests/interpreter/dbscript/registrySearingGorge.ts +125 -0
- package/src/domain/quests/interpreter/dbscript/registrySiblings.ts +51 -0
- package/src/domain/quests/interpreter/dbscript/registrySilverpineForest.ts +172 -0
- package/src/domain/quests/interpreter/dbscript/registryStonetalonMountains.ts +180 -0
- package/src/domain/quests/interpreter/dbscript/registryStormwindCity.ts +369 -0
- package/src/domain/quests/interpreter/dbscript/registryStranglethornVale.ts +115 -0
- package/src/domain/quests/interpreter/dbscript/registryStratholme.ts +146 -0
- package/src/domain/quests/interpreter/dbscript/registrySunkenTemple.ts +149 -0
- package/src/domain/quests/interpreter/dbscript/registrySwampOfSorrows.ts +163 -0
- package/src/domain/quests/interpreter/dbscript/registryTanaris.ts +318 -0
- package/src/domain/quests/interpreter/dbscript/registryTeldrassil.ts +120 -0
- package/src/domain/quests/interpreter/dbscript/registryTheBarrens.ts +603 -0
- package/src/domain/quests/interpreter/dbscript/registryThousandNeedles.ts +499 -0
- package/src/domain/quests/interpreter/dbscript/registryTirisfalGlades.ts +222 -0
- package/src/domain/quests/interpreter/dbscript/registryUngoroCrater.ts +291 -0
- package/src/domain/quests/interpreter/dbscript/registryWarEffort.ts +773 -0
- package/src/domain/quests/interpreter/dbscript/registryWesternPlaguelands.ts +206 -0
- package/src/domain/quests/interpreter/dbscript/registryWestfall.ts +190 -0
- package/src/domain/quests/interpreter/dbscript/registryWetlands.ts +186 -0
- package/src/domain/quests/interpreter/dbscript/registryWinterspring.ts +235 -0
- package/src/domain/quests/interpreter/dbscript/types.ts +817 -0
- package/src/domain/quests/interpreter/dbscript/vm.ts +171 -0
- package/src/domain/quests/interpreter/diff.ts +349 -0
- package/src/domain/quests/interpreter/fixtures/oracle-questlog-qi2.json +2417 -0
- package/src/domain/quests/interpreter/flags.ts +101 -0
- package/src/domain/quests/interpreter/index.ts +113 -0
- package/src/domain/quests/interpreter/live.ts +178 -0
- package/src/domain/quests/interpreter/types.ts +81 -0
- package/src/domain/quests/interpreter/updaters.ts +412 -0
- package/src/domain/quests/questCorpseUse.ts +155 -0
- package/src/domain/quests/questDialog.ts +43 -0
- package/src/domain/quests/questFight.ts +34 -0
- package/src/domain/quests/questObjectiveLabel.ts +39 -0
- package/src/domain/quests/questRewardChoice.ts +85 -0
- package/src/domain/quests/questScriptCredit.ts +26 -0
- package/src/domain/quests/questScriptItemUse.ts +74 -0
- package/src/domain/quests/questTameRods.ts +79 -0
- package/src/domain/quests/questlog.ts +1545 -0
- package/src/domain/quests/talkDeliver.ts +170 -0
- package/src/domain/raid/globalActionBar.ts +195 -0
- package/src/domain/raid/instanceRoster.ts +194 -0
- package/src/domain/raid/partySummon.ts +198 -0
- package/src/domain/raid/partyVault.ts +320 -0
- package/src/domain/raid/raidBossAbilities.ts +268 -0
- package/src/domain/raid/raidComp.ts +335 -0
- package/src/domain/raid/raidCustomRows.ts +453 -0
- package/src/domain/raid/raidEncounterGear.ts +298 -0
- package/src/domain/raid/raidEncounterTactics.ts +412 -0
- package/src/domain/raid/raidPlan.ts +509 -0
- package/src/domain/raid/raidPlanEdits.ts +98 -0
- package/src/domain/raid/raidPlanPacks.ts +480 -0
- package/src/domain/raid/raidRecovery.ts +183 -0
- package/src/domain/raid/raidRosterTemplate.ts +138 -0
- package/src/domain/rotation/auraSide.ts +68 -0
- package/src/domain/rotation/build.ts +3031 -0
- package/src/domain/rotation/classes/druid.ts +58 -0
- package/src/domain/rotation/classes/hooks.ts +59 -0
- package/src/domain/rotation/classes/hunter.ts +156 -0
- package/src/domain/rotation/classes/index.ts +104 -0
- package/src/domain/rotation/classes/mage.ts +99 -0
- package/src/domain/rotation/classes/paladin.ts +296 -0
- package/src/domain/rotation/classes/priest.ts +94 -0
- package/src/domain/rotation/classes/pullOpener.ts +92 -0
- package/src/domain/rotation/classes/rogue.ts +69 -0
- package/src/domain/rotation/classes/shaman.ts +29 -0
- package/src/domain/rotation/classes/supportSpec.ts +94 -0
- package/src/domain/rotation/classes/warlock.ts +81 -0
- package/src/domain/rotation/classes/warrior.ts +402 -0
- package/src/domain/rotation/classify.ts +1381 -0
- package/src/domain/rotation/condMetricPicker.ts +379 -0
- package/src/domain/rotation/consumables.ts +242 -0
- package/src/domain/rotation/evaluate.ts +1115 -0
- package/src/domain/rotation/finisherLadder.ts +145 -0
- package/src/domain/rotation/invent.ts +938 -0
- package/src/domain/rotation/killOrder.ts +30 -0
- package/src/domain/rotation/openerForm.ts +22 -0
- package/src/domain/rotation/paladinBuffs.ts +568 -0
- package/src/domain/rotation/prebuff.ts +283 -0
- package/src/domain/rotation/raidRowTuning.ts +34 -0
- package/src/domain/rotation/rotation.ts +11 -0
- package/src/domain/rotation/rotationProfiles.ts +180 -0
- package/src/domain/rotation/rotationSuggestions.ts +851 -0
- package/src/domain/rotation/ruleAfterChain.ts +49 -0
- package/src/domain/rotation/spec.ts +70 -0
- package/src/domain/rotation/spellPicker.ts +140 -0
- package/src/domain/rotation/stand.ts +143 -0
- package/src/domain/rotation/types.ts +718 -0
- package/src/domain/run/battlegroundRun.ts +111 -0
- package/src/domain/run/canEnterContext.ts +32 -0
- package/src/domain/run/death.ts +561 -0
- package/src/domain/run/deathRecovery.ts +289 -0
- package/src/domain/run/duel.ts +141 -0
- package/src/domain/run/dungeonRun.ts +344 -0
- package/src/domain/run/floorRest.ts +159 -0
- package/src/domain/run/honor.ts +557 -0
- package/src/domain/run/honorWeek.ts +180 -0
- package/src/domain/run/whenMap.ts +977 -0
- package/src/domain/scriptdev/arathiHighlands.ts +445 -0
- package/src/domain/scriptdev/ashenvale.ts +635 -0
- package/src/domain/scriptdev/ashenvaleHelpers.ts +1215 -0
- package/src/domain/scriptdev/azshara.ts +892 -0
- package/src/domain/scriptdev/blackfathomDeeps.ts +212 -0
- package/src/domain/scriptdev/blackrockDepths.ts +1434 -0
- package/src/domain/scriptdev/blackrockSpire.ts +730 -0
- package/src/domain/scriptdev/blackwingLair.ts +521 -0
- package/src/domain/scriptdev/burningSteppes.ts +62 -0
- package/src/domain/scriptdev/classFilter.ts +43 -0
- package/src/domain/scriptdev/darkshore.ts +817 -0
- package/src/domain/scriptdev/darkshoreHelpers.ts +853 -0
- package/src/domain/scriptdev/deadmines.ts +331 -0
- package/src/domain/scriptdev/desolace.ts +1239 -0
- package/src/domain/scriptdev/direMaul.ts +859 -0
- package/src/domain/scriptdev/durotar.ts +532 -0
- package/src/domain/scriptdev/dustwallowMarsh.ts +758 -0
- package/src/domain/scriptdev/dustwallowMarshHelpers.ts +994 -0
- package/src/domain/scriptdev/easternPlaguelands.ts +21 -0
- package/src/domain/scriptdev/felwood.ts +1055 -0
- package/src/domain/scriptdev/feralas.ts +571 -0
- package/src/domain/scriptdev/feralasHelpers.ts +838 -0
- package/src/domain/scriptdev/gnomeregan.ts +466 -0
- package/src/domain/scriptdev/guards.ts +616 -0
- package/src/domain/scriptdev/hinterlands.ts +693 -0
- package/src/domain/scriptdev/host.ts +1134 -0
- package/src/domain/scriptdev/index.ts +123 -0
- package/src/domain/scriptdev/instanceRaids.ts +136 -0
- package/src/domain/scriptdev/itemScripts.ts +37 -0
- package/src/domain/scriptdev/lochModan.ts +283 -0
- package/src/domain/scriptdev/maraudon.ts +232 -0
- package/src/domain/scriptdev/moltenCore.ts +831 -0
- package/src/domain/scriptdev/moonglade.ts +659 -0
- package/src/domain/scriptdev/moongladeHelpers.ts +933 -0
- package/src/domain/scriptdev/naxxramas.ts +577 -0
- package/src/domain/scriptdev/naxxramasConstruct.ts +364 -0
- package/src/domain/scriptdev/naxxramasFrostwyrm.ts +378 -0
- package/src/domain/scriptdev/naxxramasMilitary.ts +276 -0
- package/src/domain/scriptdev/npcProfessions.ts +1025 -0
- package/src/domain/scriptdev/npcsSpecial.ts +1379 -0
- package/src/domain/scriptdev/onyxiasLair.ts +313 -0
- package/src/domain/scriptdev/orgrimmar.ts +147 -0
- package/src/domain/scriptdev/professionSpecConsumer.ts +481 -0
- package/src/domain/scriptdev/razorfenDowns.ts +468 -0
- package/src/domain/scriptdev/razorfenKraul.ts +410 -0
- package/src/domain/scriptdev/redridgeMountains.ts +163 -0
- package/src/domain/scriptdev/registry.ts +945 -0
- package/src/domain/scriptdev/ruinsOfAhnqiraj.ts +356 -0
- package/src/domain/scriptdev/scarletMonastery.ts +713 -0
- package/src/domain/scriptdev/scholomance.ts +682 -0
- package/src/domain/scriptdev/searingGorge.ts +295 -0
- package/src/domain/scriptdev/shadowfangKeep.ts +181 -0
- package/src/domain/scriptdev/silithus.ts +71 -0
- package/src/domain/scriptdev/silverpineForest.ts +662 -0
- package/src/domain/scriptdev/stonetalonMountains.ts +493 -0
- package/src/domain/scriptdev/stormwindCity.ts +1192 -0
- package/src/domain/scriptdev/stranglethornVale.ts +402 -0
- package/src/domain/scriptdev/stratholme.ts +650 -0
- package/src/domain/scriptdev/stratholmeScripts.ts +505 -0
- package/src/domain/scriptdev/sunkenTemple.ts +736 -0
- package/src/domain/scriptdev/swampOfSorrows.ts +22 -0
- package/src/domain/scriptdev/tanaris.ts +391 -0
- package/src/domain/scriptdev/tanarisHelpers.ts +661 -0
- package/src/domain/scriptdev/teldrassil.ts +143 -0
- package/src/domain/scriptdev/templeOfAhnqiraj.ts +1013 -0
- package/src/domain/scriptdev/theBarrens.ts +709 -0
- package/src/domain/scriptdev/theBarrensHelpers.ts +1026 -0
- package/src/domain/scriptdev/thousandNeedles.ts +426 -0
- package/src/domain/scriptdev/thousandNeedlesHelpers.ts +566 -0
- package/src/domain/scriptdev/tirisfalGlades.ts +533 -0
- package/src/domain/scriptdev/types.ts +1026 -0
- package/src/domain/scriptdev/uldaman.ts +437 -0
- package/src/domain/scriptdev/ungoroCrater.ts +549 -0
- package/src/domain/scriptdev/ungoroCraterHelpers.ts +1006 -0
- package/src/domain/scriptdev/wailingCaverns.ts +700 -0
- package/src/domain/scriptdev/warEffort.ts +371 -0
- package/src/domain/scriptdev/westernPlaguelands.ts +952 -0
- package/src/domain/scriptdev/westfall.ts +767 -0
- package/src/domain/scriptdev/wetlands.ts +660 -0
- package/src/domain/scriptdev/winterspring.ts +482 -0
- package/src/domain/scriptdev/winterspringHelpers.ts +801 -0
- package/src/domain/scriptdev/worldBosses.ts +605 -0
- package/src/domain/scriptdev/zulfarrak.ts +478 -0
- package/src/domain/scriptdev/zulgurub.ts +1152 -0
- package/src/domain/sim/dummySim.ts +408 -0
- package/src/domain/sim/targetDummy.ts +29 -0
- package/src/domain/social/guild.ts +148 -0
- package/src/domain/spells/areaAuraMembership.ts +93 -0
- package/src/domain/spells/breakableStunCc.ts +166 -0
- package/src/domain/spells/cancelAura.ts +80 -0
- package/src/domain/spells/diminishing.ts +167 -0
- package/src/domain/spells/dispel.ts +149 -0
- package/src/domain/spells/dispelMechanic.ts +105 -0
- package/src/domain/spells/equipSpells.ts +247 -0
- package/src/domain/spells/learnOnTargets.ts +260 -0
- package/src/domain/spells/mergeSchoolImmunityFromRaw.ts +66 -0
- package/src/domain/spells/resurrectSpell.ts +124 -0
- package/src/domain/spells/spellPushback.ts +39 -0
- package/src/domain/spells/spellReflect.ts +43 -0
- package/src/domain/spells/stealth.ts +183 -0
- package/src/domain/spells/totem.ts +394 -0
- package/src/domain/spells/worldCast.ts +187 -0
- package/src/domain/world/areaTriggerLocks.ts +177 -0
- package/src/domain/world/dungeonMusic.ts +108 -0
- package/src/domain/world/gameEvents.ts +119 -0
- package/src/domain/world/gameObjects.ts +1030 -0
- package/src/domain/world/goEventFire.ts +234 -0
- package/src/domain/world/goMoTransport.ts +74 -0
- package/src/domain/world/goTransport.ts +81 -0
- package/src/domain/world/hazards.ts +459 -0
- package/src/domain/world/openLock.ts +398 -0
- package/src/domain/world/pools.ts +470 -0
- package/src/domain/world/restArea.ts +37 -0
- package/src/domain/world/weather.ts +201 -0
- package/src/domain/zoneAmbience.mjs +87 -0
- package/src/domain/zoneMusic.mjs +62 -0
- package/src/domain/zoneMusicQueue.mjs +7 -0
- package/src/engine/combat/activeSeal.ts +39 -0
- package/src/engine/combat/aiTargetResolve.ts +64 -0
- package/src/engine/combat/aoeCast.ts +289 -0
- package/src/engine/combat/applyConsumeAura.ts +74 -0
- package/src/engine/combat/applyDemonicSacrifice.ts +70 -0
- package/src/engine/combat/applyDispelMechanic.ts +30 -0
- package/src/engine/combat/applyHealEffect.ts +301 -0
- package/src/engine/combat/applySchoolAbsorb.ts +114 -0
- package/src/engine/combat/applySpell.ts +3169 -0
- package/src/engine/combat/applySpellLate.ts +2026 -0
- package/src/engine/combat/applySpellLateBag.ts +144 -0
- package/src/engine/combat/areaAura.ts +283 -0
- package/src/engine/combat/attackTable.ts +508 -0
- package/src/engine/combat/battleRez.ts +87 -0
- package/src/engine/combat/castAction.ts +36 -0
- package/src/engine/combat/castTargetGates.ts +75 -0
- package/src/engine/combat/castableKit.ts +68 -0
- package/src/engine/combat/ccMirrorUpgrade.ts +39 -0
- package/src/engine/combat/chainFan.ts +210 -0
- package/src/engine/combat/channel.ts +423 -0
- package/src/engine/combat/chaseCloseness.ts +95 -0
- package/src/engine/combat/cmangosCastGates.ts +129 -0
- package/src/engine/combat/combatFlag.ts +77 -0
- package/src/engine/combat/combatGeometry.ts +1329 -0
- package/src/engine/combat/combustion.ts +68 -0
- package/src/engine/combat/context.ts +730 -0
- package/src/engine/combat/createSession.ts +1165 -0
- package/src/engine/combat/creatureLeash.ts +38 -0
- package/src/engine/combat/crowdControl.ts +1259 -0
- package/src/engine/combat/dispelDuty.ts +54 -0
- package/src/engine/combat/dispelReflect.ts +609 -0
- package/src/engine/combat/displaceFloor.ts +113 -0
- package/src/engine/combat/duelBounds.ts +47 -0
- package/src/engine/combat/equippedItemGate.ts +297 -0
- package/src/engine/combat/evadeLifecycle.ts +63 -0
- package/src/engine/combat/eventAi.ts +2220 -0
- package/src/engine/combat/facing.ts +74 -0
- package/src/engine/combat/fearFlee.ts +137 -0
- package/src/engine/combat/fighterFactory.ts +1144 -0
- package/src/engine/combat/forceDespawnAction.ts +51 -0
- package/src/engine/combat/formulas.ts +807 -0
- package/src/engine/combat/friendlyFan.ts +55 -0
- package/src/engine/combat/groundPoolTick.ts +210 -0
- package/src/engine/combat/hazards.ts +114 -0
- package/src/engine/combat/healTargets.ts +226 -0
- package/src/engine/combat/heartbeatResist.ts +49 -0
- package/src/engine/combat/hostileItemUse.ts +75 -0
- package/src/engine/combat/interruptAuras.ts +66 -0
- package/src/engine/combat/itemRescue.ts +49 -0
- package/src/engine/combat/itemUse.ts +260 -0
- package/src/engine/combat/kitById.ts +23 -0
- package/src/engine/combat/knockBack.ts +201 -0
- package/src/engine/combat/leap.ts +89 -0
- package/src/engine/combat/mitigation.ts +587 -0
- package/src/engine/combat/modTaunt.ts +43 -0
- package/src/engine/combat/motionClaim.ts +268 -0
- package/src/engine/combat/motionGate.ts +150 -0
- package/src/engine/combat/motionGenerator.ts +27 -0
- package/src/engine/combat/navSight.ts +138 -0
- package/src/engine/combat/perfSink.ts +28 -0
- package/src/engine/combat/periodicDue.ts +55 -0
- package/src/engine/combat/petAuras.ts +86 -0
- package/src/engine/combat/pickAction.ts +3449 -0
- package/src/engine/combat/powerForm.ts +735 -0
- package/src/engine/combat/powerPools.ts +49 -0
- package/src/engine/combat/predicates.ts +538 -0
- package/src/engine/combat/procsDamage.ts +1823 -0
- package/src/engine/combat/reactiveGates.ts +135 -0
- package/src/engine/combat/roles.ts +389 -0
- package/src/engine/combat/rotationSubject.ts +78 -0
- package/src/engine/combat/ruleAfter.ts +106 -0
- package/src/engine/combat/seedDisplayAuras.ts +203 -0
- package/src/engine/combat/seedOocEffects.ts +317 -0
- package/src/engine/combat/seedSchoolImmunities.ts +45 -0
- package/src/engine/combat/session-types.ts +458 -0
- package/src/engine/combat/sessionApi.ts +1785 -0
- package/src/engine/combat/sessionCharge.ts +124 -0
- package/src/engine/combat/sessionChase.ts +869 -0
- package/src/engine/combat/sessionDeaths.ts +469 -0
- package/src/engine/combat/sessionFocus.ts +506 -0
- package/src/engine/combat/sessionFollow.ts +167 -0
- package/src/engine/combat/sessionGeometry.ts +188 -0
- package/src/engine/combat/sessionHome.ts +75 -0
- package/src/engine/combat/sessionInject.ts +719 -0
- package/src/engine/combat/sessionMechanicMove.ts +555 -0
- package/src/engine/combat/sessionMotion.ts +1553 -0
- package/src/engine/combat/sessionMotionKit.ts +247 -0
- package/src/engine/combat/sessionMoveIntent.ts +49 -0
- package/src/engine/combat/sessionMoveOrder.ts +200 -0
- package/src/engine/combat/sessionPathTo.ts +657 -0
- package/src/engine/combat/sessionPools.ts +688 -0
- package/src/engine/combat/sessionSteer.ts +144 -0
- package/src/engine/combat/sessionStepBack.ts +151 -0
- package/src/engine/combat/sessionStepWrap.ts +116 -0
- package/src/engine/combat/sessionView.ts +442 -0
- package/src/engine/combat/simEffects.ts +32 -0
- package/src/engine/combat/simFacade.ts +620 -0
- package/src/engine/combat/simPump.ts +264 -0
- package/src/engine/combat/simSnapshot.ts +165 -0
- package/src/engine/combat/simThreadPool.ts +35 -0
- package/src/engine/combat/skeramImages.ts +57 -0
- package/src/engine/combat/slowUpdate.ts +178 -0
- package/src/engine/combat/snapToFloor.ts +42 -0
- package/src/engine/combat/speedAura.ts +29 -0
- package/src/engine/combat/spellReagents.ts +71 -0
- package/src/engine/combat/stealthDetect.ts +93 -0
- package/src/engine/combat/stepBackMotion.ts +171 -0
- package/src/engine/combat/stepSession.ts +3102 -0
- package/src/engine/combat/summonCast.ts +243 -0
- package/src/engine/combat/thaddiusPolarity.ts +97 -0
- package/src/engine/combat/threat.ts +388 -0
- package/src/engine/combat/threatOps.ts +272 -0
- package/src/engine/combat/tickWorkerBody.ts +211 -0
- package/src/engine/combat/totemAuras.ts +122 -0
- package/src/engine/combat/triggerPayload.ts +42 -0
- package/src/engine/combat/triggeredCompanion.ts +63 -0
- package/src/engine/combat/types.ts +1897 -0
- package/src/engine/combat/useObjectTrap.ts +140 -0
- package/src/engine/combat/walkSurface.ts +54 -0
- package/src/engine/combat/weapon.ts +1248 -0
- package/src/engine/combat/worldFrame.ts +43 -0
- package/src/engine/combat.solo-golden.json +2242 -0
- package/src/engine/combat.ts +84 -0
- package/src/engine/core/detMath.ts +289 -0
- package/src/engine/core/events.ts +357 -0
- package/src/engine/core/rng.ts +36 -0
- package/src/engine/game/actionBars.ts +124 -0
- package/src/engine/game/activateObjectFromSpell.ts +320 -0
- package/src/engine/game/applyActiveObjectFromDbScript.ts +98 -0
- package/src/engine/game/applyDeathAndSpellScripts.ts +268 -0
- package/src/engine/game/applyDoorFromDbScript.ts +388 -0
- package/src/engine/game/applyEscortFromDbScript.ts +290 -0
- package/src/engine/game/applyGoSpellcasterCast.ts +40 -0
- package/src/engine/game/applyHoverFromDbScript.ts +110 -0
- package/src/engine/game/applyOocResurrect.ts +71 -0
- package/src/engine/game/applySpellDurability.ts +115 -0
- package/src/engine/game/applyTailFromDbScript.ts +478 -0
- package/src/engine/game/applyTerminateFromDbScript.ts +95 -0
- package/src/engine/game/auctionMail.ts +269 -0
- package/src/engine/game/bagOverflow.ts +130 -0
- package/src/engine/game/bank.ts +110 -0
- package/src/engine/game/barAutofill.ts +26 -0
- package/src/engine/game/battleground.ts +369 -0
- package/src/engine/game/combatEnemySpec.ts +216 -0
- package/src/engine/game/combatObjectTraps.ts +167 -0
- package/src/engine/game/combatSeed.ts +320 -0
- package/src/engine/game/combatSession.ts +3241 -0
- package/src/engine/game/combatSessionClock.ts +62 -0
- package/src/engine/game/companionQuestActions.ts +242 -0
- package/src/engine/game/companionTraining.ts +40 -0
- package/src/engine/game/consumables.ts +624 -0
- package/src/engine/game/context.ts +53 -0
- package/src/engine/game/createHealthstone.ts +45 -0
- package/src/engine/game/deathFlow.ts +127 -0
- package/src/engine/game/devGrant.ts +117 -0
- package/src/engine/game/dynamicObject.ts +365 -0
- package/src/engine/game/enchantItem.ts +177 -0
- package/src/engine/game/equipmentHelper.ts +806 -0
- package/src/engine/game/factionState.ts +108 -0
- package/src/engine/game/garmentsOoc.ts +69 -0
- package/src/engine/game/globalActionBar.ts +179 -0
- package/src/engine/game/goInteractQuestCredit.ts +51 -0
- package/src/engine/game/goMoTransportUse.ts +61 -0
- package/src/engine/game/goTransportUse.ts +60 -0
- package/src/engine/game/healthstoneUpkeep.ts +59 -0
- package/src/engine/game/killSkin.ts +124 -0
- package/src/engine/game/learnFromItem.ts +118 -0
- package/src/engine/game/loadReconcile.ts +551 -0
- package/src/engine/game/loot.ts +294 -0
- package/src/engine/game/macros.ts +125 -0
- package/src/engine/game/mail.ts +293 -0
- package/src/engine/game/meetingStoneQueue.ts +75 -0
- package/src/engine/game/meetingStoneUse.ts +54 -0
- package/src/engine/game/newGameState.ts +363 -0
- package/src/engine/game/oocAuraInterrupt.ts +92 -0
- package/src/engine/game/oocCast.ts +241 -0
- package/src/engine/game/oocCastEffects.ts +803 -0
- package/src/engine/game/oocCastMethods.ts +1077 -0
- package/src/engine/game/openLockFromSpell.ts +174 -0
- package/src/engine/game/outdoorPvp.ts +187 -0
- package/src/engine/game/outfitter.ts +644 -0
- package/src/engine/game/paladinBoard.ts +393 -0
- package/src/engine/game/partyAuras.ts +121 -0
- package/src/engine/game/persistCombatAuras.ts +91 -0
- package/src/engine/game/pets.ts +459 -0
- package/src/engine/game/prePullHealthstones.ts +154 -0
- package/src/engine/game/professions.ts +2227 -0
- package/src/engine/game/pruneStaleRuntime.ts +39 -0
- package/src/engine/game/questFightCredit.ts +36 -0
- package/src/engine/game/questItemOnCorpse.ts +166 -0
- package/src/engine/game/questItemOnCreature.ts +103 -0
- package/src/engine/game/questLog.ts +879 -0
- package/src/engine/game/questSpellComplete.ts +21 -0
- package/src/engine/game/questTurnIn.ts +598 -0
- package/src/engine/game/raidParty.ts +32 -0
- package/src/engine/game/reagentBuyIn.ts +39 -0
- package/src/engine/game/regenRest.ts +186 -0
- package/src/engine/game/rotation.ts +425 -0
- package/src/engine/game/runFullDungeon.ts +611 -0
- package/src/engine/game/runSupply.ts +80 -0
- package/src/engine/game/sanitizeDriftedItems.ts +135 -0
- package/src/engine/game/scriptDevGoUse.ts +397 -0
- package/src/engine/game/scriptDevInnkeeper.ts +150 -0
- package/src/engine/game/scriptDevProfessionSpec.ts +99 -0
- package/src/engine/game/sendEventFromSpell.ts +87 -0
- package/src/engine/game/sortContainers.ts +85 -0
- package/src/engine/game/spellReputation.ts +69 -0
- package/src/engine/game/squad/squadDungeonSeating.ts +197 -0
- package/src/engine/game/squadDungeon.ts +4222 -0
- package/src/engine/game/squadQuestShare.ts +260 -0
- package/src/engine/game/summonObjectSlot.ts +69 -0
- package/src/engine/game/summonObjectWild.ts +73 -0
- package/src/engine/game/summoningRitualUse.ts +141 -0
- package/src/engine/game/talents.ts +356 -0
- package/src/engine/game/tamingRodUse.ts +66 -0
- package/src/engine/game/tempSpawnCreature.ts +136 -0
- package/src/engine/game/tickDungeonPatrolScripts.ts +205 -0
- package/src/engine/game/tickTimedQuests.ts +28 -0
- package/src/engine/game/trade.ts +586 -0
- package/src/engine/game/travel.ts +1155 -0
- package/src/engine/game/types.ts +1855 -0
- package/src/engine/game/vendorOffers.ts +244 -0
- package/src/engine/game/weaponImbueItem.ts +281 -0
- package/src/engine/game/worldSession.ts +183 -0
- package/src/engine/game/worldState.ts +166 -0
- package/src/engine/game.ts +968 -0
- package/src/engine/spells/GAP.md +67 -0
- package/src/engine/spells/absorbs.ts +376 -0
- package/src/engine/spells/addTargetTrigger.ts +53 -0
- package/src/engine/spells/auraPerSecondCost.ts +50 -0
- package/src/engine/spells/auraStacking.ts +497 -0
- package/src/engine/spells/cmangos-special-cases-combustion.ts +13 -0
- package/src/engine/spells/cmangos-special-cases-s18.ts +445 -0
- package/src/engine/spells/cmangos-special-cases-s19.ts +324 -0
- package/src/engine/spells/cmangos-special-cases-s20.ts +385 -0
- package/src/engine/spells/cmangos-special-cases-s21.ts +116 -0
- package/src/engine/spells/cmangos-special-cases-s22.ts +24 -0
- package/src/engine/spells/cmangos-special-cases-s23.ts +52 -0
- package/src/engine/spells/cmangos-special-cases.ts +1570 -0
- package/src/engine/spells/conditions.ts +718 -0
- package/src/engine/spells/effects.ts +203 -0
- package/src/engine/spells/fixtures/oracle-effects-lock9a.json +1 -0
- package/src/engine/spells/immunity.ts +942 -0
- package/src/engine/spells/intentEffects.ts +351 -0
- package/src/engine/spells/interpreter/GAPS.md +21 -0
- package/src/engine/spells/interpreter/amount.ts +109 -0
- package/src/engine/spells/interpreter/class-scripts-kit.ts +478 -0
- package/src/engine/spells/interpreter/diff.ts +246 -0
- package/src/engine/spells/interpreter/duration.ts +90 -0
- package/src/engine/spells/interpreter/form-attrs.json +1 -0
- package/src/engine/spells/interpreter/form-attrs.ts +95 -0
- package/src/engine/spells/interpreter/handlers/aura-remove.ts +113 -0
- package/src/engine/spells/interpreter/handlers/auras-control.ts +1547 -0
- package/src/engine/spells/interpreter/handlers/auras-core.ts +1583 -0
- package/src/engine/spells/interpreter/handlers/auras-misc.ts +1774 -0
- package/src/engine/spells/interpreter/handlers/effect-disenchant.ts +17 -0
- package/src/engine/spells/interpreter/handlers/effect-skinning.ts +20 -0
- package/src/engine/spells/interpreter/handlers/effects-action-utility.ts +1455 -0
- package/src/engine/spells/interpreter/handlers/effects-core.ts +432 -0
- package/src/engine/spells/interpreter/handlers/effects-remainder.ts +105 -0
- package/src/engine/spells/interpreter/handlers/effects-summon-item.ts +687 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy-percent.ts +36 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy.ts +36 -0
- package/src/engine/spells/interpreter/handlers/periodic-trigger-zero.ts +327 -0
- package/src/engine/spells/interpreter/handlers/procs.ts +131 -0
- package/src/engine/spells/interpreter/handlers/registry.ts +975 -0
- package/src/engine/spells/interpreter/handlers/shared.ts +667 -0
- package/src/engine/spells/interpreter/handlers.ts +9 -0
- package/src/engine/spells/interpreter/hunter-kit.ts +202 -0
- package/src/engine/spells/interpreter/index.ts +525 -0
- package/src/engine/spells/interpreter/item-triggers.ts +1121 -0
- package/src/engine/spells/interpreter/lift-consume-energy.ts +37 -0
- package/src/engine/spells/interpreter/mage-portals.ts +37 -0
- package/src/engine/spells/interpreter/materialize-charm.ts +88 -0
- package/src/engine/spells/interpreter/materialize-dispel-mechanic.ts +25 -0
- package/src/engine/spells/interpreter/materialize-rating-buffs.ts +81 -0
- package/src/engine/spells/interpreter/materialize-speed.ts +109 -0
- package/src/engine/spells/interpreter/materialize-spell-magnet.ts +22 -0
- package/src/engine/spells/interpreter/opcodes.ts +789 -0
- package/src/engine/spells/interpreter/paladin-kit.ts +95 -0
- package/src/engine/spells/interpreter/paladin-seals.ts +499 -0
- package/src/engine/spells/interpreter/priest-warlock-kit.ts +135 -0
- package/src/engine/spells/interpreter/proc.ts +443 -0
- package/src/engine/spells/interpreter/registry/helpers.ts +16 -0
- package/src/engine/spells/interpreter/registry/index.ts +216 -0
- package/src/engine/spells/interpreter/registry/packs/class-abilities.ts +304 -0
- package/src/engine/spells/interpreter/registry/packs/dire-maul.ts +44 -0
- package/src/engine/spells/interpreter/registry/packs/dummy-script-tail.ts +1065 -0
- package/src/engine/spells/interpreter/registry/packs/ex-wave-m.ts +70 -0
- package/src/engine/spells/interpreter/registry/packs/life-tap.ts +107 -0
- package/src/engine/spells/interpreter/registry/packs/paladin.ts +246 -0
- package/src/engine/spells/interpreter/registry/packs/raid-script-summons.ts +26 -0
- package/src/engine/spells/interpreter/registry/packs/raid-threat-wipe.ts +22 -0
- package/src/engine/spells/interpreter/registry/packs/shaman.ts +214 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-a.ts +269 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-b.ts +370 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-c.ts +172 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-hunter.ts +60 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-warrior.ts +31 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-a.ts +114 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-b.ts +249 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-c.ts +233 -0
- package/src/engine/spells/interpreter/registry/types.ts +48 -0
- package/src/engine/spells/interpreter/talent-scripted.ts +329 -0
- package/src/engine/spells/interpreter/targeting.ts +90 -0
- package/src/engine/spells/interpreter/types-intent.ts +1501 -0
- package/src/engine/spells/interpreter/types.ts +419 -0
- package/src/engine/spells/interpreter/warrior-druid-kit.ts +314 -0
- package/src/engine/spells/interpreter/weapon-imbue-kit.ts +384 -0
- package/src/engine/spells/interrupt.ts +217 -0
- package/src/engine/spells/meleeAttackReset.ts +60 -0
- package/src/engine/spells/oocTriggerSpell.ts +49 -0
- package/src/engine/spells/overrideClassScripts.ts +319 -0
- package/src/engine/spells/parryHaste.ts +20 -0
- package/src/engine/spells/procs.ts +300 -0
- package/src/engine/spells/recovery.ts +203 -0
- package/src/engine/spells/scriptTargetDest.ts +76 -0
- package/src/engine/spells/scriptTargets.ts +85 -0
- package/src/engine/spells/singleTargetAura.ts +82 -0
- package/src/engine/spells/specialCasePayloads.ts +57 -0
- package/src/engine/spells/spellAttributes.ts +249 -0
- package/src/engine/spells/spellBonus.ts +143 -0
- package/src/engine/spells/spellModIntents.ts +419 -0
- package/src/engine/spells/spellMods.ts +283 -0
- package/src/engine/spells/spellRadius.ts +15 -0
- package/src/engine/spells/trapObjects.ts +26 -0
- package/src/json.d.ts +7 -0
- package/src/persistence/memoryRepository.ts +23 -0
- package/src/persistence/saveBackups.ts +162 -0
- package/src/persistence/saveFile.ts +68 -0
- package/src/persistence/saveRepository.ts +11 -0
- package/src/persistence/saveShape.ts +668 -0
- package/src/progression/leveling.ts +89 -0
- package/src/progression/rest.ts +1434 -0
- package/src/progression/training.ts +226 -0
- package/src/progression/xpGain.ts +369 -0
- package/src/quests/quests.ts +1580 -0
- package/src/world/aoePull.ts +198 -0
- package/src/world/areaTableDbc.ts +39 -0
- package/src/world/areaTableMapIdPairs.ts +141 -0
- package/src/world/bakeSlug.ts +43 -0
- package/src/world/continuousDungeon.ts +1250 -0
- package/src/world/dungeonBakeProjection.ts +190 -0
- package/src/world/dungeonMapDensity.ts +342 -0
- package/src/world/dungeonMapProjection.ts +135 -0
- package/src/world/dungeonNav.ts +904 -0
- package/src/world/dungeonNpcSim.ts +147 -0
- package/src/world/dungeonObjectives.ts +234 -0
- package/src/world/dungeonPreset.ts +35 -0
- package/src/world/dungeonRoute.ts +311 -0
- package/src/world/dungeonRouteGeometry.ts +732 -0
- package/src/world/dungeonRouteOrder.ts +1037 -0
- package/src/world/dungeonWingRooms.ts +426 -0
- package/src/world/escort.ts +296 -0
- package/src/world/goPoolRoll.ts +75 -0
- package/src/world/instanceObjects.ts +785 -0
- package/src/world/instances.ts +1572 -0
- package/src/world/meetingStones.ts +56 -0
- package/src/world/navmeshFloors.ts +145 -0
- package/src/world/nearGrid.ts +167 -0
- package/src/world/packBudget.ts +613 -0
- package/src/world/rareRoll.ts +335 -0
- package/src/world/routeAuthoring.ts +132 -0
- package/src/world/routeEdit.ts +209 -0
- package/src/world/world.ts +812 -0
- package/src/world/zoneHazards.ts +47 -0
|
@@ -0,0 +1,1434 @@
|
|
|
1
|
+
// Blackrock Depths ScriptDev IR ports. Source: the boss_* files, blackrock_depths.cpp and its
|
|
2
|
+
// header under scripts/eastern_kingdoms/blackrock_depths. Every value cites file:line below.
|
|
3
|
+
|
|
4
|
+
import type { ScriptDevIR } from './types.ts';
|
|
5
|
+
import { INSTANCE_DATA } from './types.ts';
|
|
6
|
+
import { CAST_FLAG } from '../creature/creatureAi.ts';
|
|
7
|
+
|
|
8
|
+
// Constants — blackrock_depths.h + boss/zone enums
|
|
9
|
+
|
|
10
|
+
// blackrock_depths.h:10–28
|
|
11
|
+
export const BRD_MAX_ENCOUNTER = 13;
|
|
12
|
+
export const MAX_RELIC_DOORS = 12;
|
|
13
|
+
export const MAX_DWARFS = 7;
|
|
14
|
+
export const MAX_DWARF_RUNES = 7;
|
|
15
|
+
export const MAX_CRONIES = 3;
|
|
16
|
+
|
|
17
|
+
export const TYPE_RING_OF_LAW = 1;
|
|
18
|
+
export const TYPE_VAULT = 2;
|
|
19
|
+
export const TYPE_ROCKNOT = 3;
|
|
20
|
+
export const TYPE_TOMB_OF_SEVEN = 4;
|
|
21
|
+
export const TYPE_LYCEUM = 5;
|
|
22
|
+
export const TYPE_IRON_HALL = 6;
|
|
23
|
+
export const TYPE_QUEST_JAIL_BREAK = 7;
|
|
24
|
+
export const TYPE_FLAMELASH = 8;
|
|
25
|
+
export const TYPE_HURLEY = 9;
|
|
26
|
+
export const TYPE_BRIDGE = 10;
|
|
27
|
+
export const TYPE_BAR = 11;
|
|
28
|
+
export const TYPE_PLUGGER = 12;
|
|
29
|
+
export const TYPE_NAGMARA = 13;
|
|
30
|
+
|
|
31
|
+
// blackrock_depths.h:30–76 NPCs
|
|
32
|
+
export const NPC_EMPEROR = 9019;
|
|
33
|
+
export const NPC_PRINCESS = 8929;
|
|
34
|
+
export const NPC_PRIESTESS = 10076;
|
|
35
|
+
export const NPC_HATEREL = 9034;
|
|
36
|
+
export const NPC_ANGERREL = 9035;
|
|
37
|
+
export const NPC_VILEREL = 9036;
|
|
38
|
+
export const NPC_GLOOMREL = 9037;
|
|
39
|
+
export const NPC_SEETHREL = 9038;
|
|
40
|
+
export const NPC_DOOMREL = 9039;
|
|
41
|
+
export const NPC_DOPEREL = 9040;
|
|
42
|
+
export const NPC_MAGMUS = 9938;
|
|
43
|
+
export const NPC_WATCHER_DOOMGRIP = 9476;
|
|
44
|
+
export const NPC_WARBRINGER_CONST = 8905;
|
|
45
|
+
export const NPC_LOREGRAIN = 9024;
|
|
46
|
+
export const NPC_FIREGUARD_DESTROYER = 8911;
|
|
47
|
+
export const NPC_OGRABISI = 9677;
|
|
48
|
+
export const NPC_SHILL = 9678;
|
|
49
|
+
export const NPC_CREST = 9680;
|
|
50
|
+
export const NPC_JAZ = 9681;
|
|
51
|
+
export const NPC_TOBIAS = 9679;
|
|
52
|
+
export const NPC_DUGHAL = 9022;
|
|
53
|
+
export const NPC_PHALANX = 9502;
|
|
54
|
+
export const NPC_HURLEY_BLACKBREATH = 9537;
|
|
55
|
+
export const NPC_BLACKBREATH_CRONY = 9541;
|
|
56
|
+
export const NPC_PLUGGER_SPAZZRING = 9499;
|
|
57
|
+
export const NPC_PRIVATE_ROCKNOT = 9503;
|
|
58
|
+
export const NPC_MISTRESS_NAGMARA = 9500;
|
|
59
|
+
export const NPC_RIBBLY_SCREWSPIGGOT = 9543;
|
|
60
|
+
export const NPC_ANVILRAGE_GUARDMAN = 8891;
|
|
61
|
+
export const NPC_ANVILRAGE_MEDIC = 8894;
|
|
62
|
+
export const NPC_ANVILRAGE_RESERVIST = 8901;
|
|
63
|
+
export const NPC_GRIMSTONE = 10096;
|
|
64
|
+
export const NPC_MARSHAL_WINDSOR = 9023;
|
|
65
|
+
export const NPC_IRONHAND_GUARDIAN = 8982;
|
|
66
|
+
export const NPC_BURNING_SPIRIT = 9178;
|
|
67
|
+
export const NPC_HIGH_INTERROGATOR_GERSTAHN = 9018;
|
|
68
|
+
export const NPC_GENERAL_ANGERFORGE = 9033;
|
|
69
|
+
export const NPC_AMBASSADOR_FLAMELASH = 9156;
|
|
70
|
+
|
|
71
|
+
// GOs — survey + blackrock_depths.h + InstanceDef
|
|
72
|
+
export const GO_BAR_DOOR = 170571;
|
|
73
|
+
export const GO_TOMB_ENTER = 170576;
|
|
74
|
+
export const GO_TOMB_EXIT = 170577;
|
|
75
|
+
export const GO_GOLEM_ROOM_N = 170573;
|
|
76
|
+
export const GO_GOLEM_ROOM_S = 170574;
|
|
77
|
+
export const GO_THRONE_ROOM = 170575;
|
|
78
|
+
export const GO_SECRET_DOOR = 174553;
|
|
79
|
+
export const GO_CHEST_SEVEN = 169243;
|
|
80
|
+
export const GO_ARENA_SPOILS = 181074;
|
|
81
|
+
/** Cite: survey E5d; go_bar_beer_keg */
|
|
82
|
+
export const GO_THUNDERBREW_LAGER_KEG = 164911;
|
|
83
|
+
/** Cite: survey E10; go_shadowforge_brazier pair */
|
|
84
|
+
export const GO_SHADOWFORGE_BRAZIER_A = 174744;
|
|
85
|
+
export const GO_SHADOWFORGE_BRAZIER_B = 174745;
|
|
86
|
+
/** Cite: survey E7; go_relic_coffer_door range 174554–174564 + 174566 */
|
|
87
|
+
export const GO_RELIC_COFFER_DOOR = 174554;
|
|
88
|
+
/** Cite: survey E5c; go_bar_ale_mug */
|
|
89
|
+
export const GO_DARK_IRON_ALE_MUG = 165738;
|
|
90
|
+
export const GO_GRIM_GUZZLER_BOAR = 165739;
|
|
91
|
+
/** Cite: blackrock_depths.h:107–113 GO_DWARFRUNE_A01..G01; DoSummonSpirit A01+index */
|
|
92
|
+
export const GO_DWARFRUNE_A01 = 170578;
|
|
93
|
+
export const GO_DWARFRUNE_B01 = 170579;
|
|
94
|
+
export const GO_DWARFRUNE_C01 = 170580;
|
|
95
|
+
export const GO_DWARFRUNE_D01 = 170581;
|
|
96
|
+
export const GO_DWARFRUNE_E01 = 170582;
|
|
97
|
+
export const GO_DWARFRUNE_F01 = 170583;
|
|
98
|
+
export const GO_DWARFRUNE_G01 = 170584;
|
|
99
|
+
/** Ordered A01..G01 — index matches DoSummonSpirit uiIndex. */
|
|
100
|
+
export const GO_DWARF_RUNES = [
|
|
101
|
+
GO_DWARFRUNE_A01,
|
|
102
|
+
GO_DWARFRUNE_B01,
|
|
103
|
+
GO_DWARFRUNE_C01,
|
|
104
|
+
GO_DWARFRUNE_D01,
|
|
105
|
+
GO_DWARFRUNE_E01,
|
|
106
|
+
GO_DWARFRUNE_F01,
|
|
107
|
+
GO_DWARFRUNE_G01,
|
|
108
|
+
] as const;
|
|
109
|
+
|
|
110
|
+
// boss_high_interrogator_gerstahn.cpp:30–33
|
|
111
|
+
export const SPELL_SHADOWWORDPAIN_GERSTAHN = 14032;
|
|
112
|
+
export const SPELL_MANABURN = 14033;
|
|
113
|
+
export const SPELL_PSYCHICSCREAM = 13704;
|
|
114
|
+
export const SPELL_SHADOWSHIELD = 12040;
|
|
115
|
+
|
|
116
|
+
// boss_general_angerforge.cpp:30–40
|
|
117
|
+
export const EMOTE_ALARM = -1230035;
|
|
118
|
+
export const SPELL_FLURRY = 15088;
|
|
119
|
+
export const SPELL_ENRAGE = 15097;
|
|
120
|
+
export const SPELL_SUNDER_ARMOR = 15572;
|
|
121
|
+
export const NPC_ELITE_AMOUNT = 2;
|
|
122
|
+
export const NPC_NORMAL_AMOUNT = 8;
|
|
123
|
+
/** Cite: boss_general_angerforge.cpp:93 GetHealthPercent() < 30.0f */
|
|
124
|
+
export const ANGERFORGE_HP_ALARM = 30;
|
|
125
|
+
/** Cite: boss_general_angerforge.cpp:104 m_uiAlarmTimer = 3 * MINUTE * IN_MILLISECONDS */
|
|
126
|
+
export const ANGERFORGE_ALARM_REPEAT_MS = 180_000;
|
|
127
|
+
// Cite: boss_general_angerforge.cpp:43 aAlarmPoint; :67 GetRandomPoint(..., 1.0f). Leftover:
|
|
128
|
+
// ScriptDevSummonWave / summon_count have no xyz (types.ts out of scope).
|
|
129
|
+
export const ANGERFORGE_ALARM_POINT = {
|
|
130
|
+
x: 717.343,
|
|
131
|
+
y: 22.116,
|
|
132
|
+
z: -45.4321,
|
|
133
|
+
o: 3.1415,
|
|
134
|
+
} as const;
|
|
135
|
+
|
|
136
|
+
// boss_ambassador_flamelash.cpp:31–35
|
|
137
|
+
export const SPELL_FIREBLAST = 15573;
|
|
138
|
+
export const SPELL_BURNING_SPIRIT = 13489;
|
|
139
|
+
// Buff applied by EffectDummy 13489: unitTarget casts 14744 on self. Cite: SpellEffects.cpp:497-502; bake
|
|
140
|
+
// +30 spell_power, stackAmount 50, 180000 ms.
|
|
141
|
+
export const SPELL_BURNING_SPIRIT_BUFF = 14744;
|
|
142
|
+
/** Cite: blackrock_depths.h:13 MAX_DWARF_RUNES = 7 */
|
|
143
|
+
export const FLAMELASH_RUNE_COUNT = 7;
|
|
144
|
+
/** Cite: boss_ambassador_flamelash.cpp:53–54 Reset m_uiSpiritTimer[i] = urand(0, 1000) */
|
|
145
|
+
export const FLAMELASH_SPIRIT_INITIAL_MAX_MS = 1_000;
|
|
146
|
+
/** Cite: boss_ambassador_flamelash.cpp:133 re-arm urand(15000, 30000) */
|
|
147
|
+
export const FLAMELASH_SPIRIT_REPEAT_MIN_MS = 15_000;
|
|
148
|
+
export const FLAMELASH_SPIRIT_REPEAT_MAX_MS = 30_000;
|
|
149
|
+
// ObjectDefines.h CONTACT_DISTANCE 1.f — MoveInLineOfSight uses 2×CONTACT. Cite:
|
|
150
|
+
// boss_ambassador_flamelash.cpp:74; ObjectDefines.h CONTACT_DISTANCE.
|
|
151
|
+
export const FLAMELASH_SPIRIT_REACH_YD = 2;
|
|
152
|
+
/** TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN on DoSummonSpirit. Cite: boss_ambassador_flamelash.cpp:66. */
|
|
153
|
+
export const FLAMELASH_SPIRIT_DESPAWN_MS = 60_000;
|
|
154
|
+
|
|
155
|
+
// boss_emperor_dagran_thaurissan.cpp:31–38, 135–142
|
|
156
|
+
export const YELL_AGGRO_1 = -1230001;
|
|
157
|
+
export const YELL_AGGRO_2 = -1230064;
|
|
158
|
+
export const YELL_AGGRO_3 = -1230065;
|
|
159
|
+
export const YELL_SLAY = -1230002;
|
|
160
|
+
export const SPELL_HANDOFTHAURISSAN = 17492;
|
|
161
|
+
export const SPELL_AVATAROFFLAME = 15636;
|
|
162
|
+
export const SPELL_HEAL = 15586;
|
|
163
|
+
export const SPELL_RENEW = 10929;
|
|
164
|
+
export const SPELL_SHIELD = 10901;
|
|
165
|
+
export const SPELL_MINDBLAST = 15587;
|
|
166
|
+
export const SPELL_SHADOWWORDPAIN_MOIRA = 15654;
|
|
167
|
+
export const SPELL_SMITE = 10934;
|
|
168
|
+
export const SPELL_SHADOW_BOLT_MOIRA = 15537;
|
|
169
|
+
export const SPELL_OPEN_PORTAL = 13912;
|
|
170
|
+
|
|
171
|
+
// blackrock_depths.cpp Phalanx 552–554
|
|
172
|
+
export const YELL_PHALANX_AGGRO = -1230040;
|
|
173
|
+
export const SPELL_THUNDERCLAP = 15588;
|
|
174
|
+
export const SPELL_MIGHTY_BLOW = 14099;
|
|
175
|
+
export const SPELL_FIREBALL_VOLLEY = 15285;
|
|
176
|
+
/** Cite: blackrock_depths.cpp:666 GetHealthPercent() < 51.0f */
|
|
177
|
+
export const PHALANX_HP_VOLLEY = 51;
|
|
178
|
+
|
|
179
|
+
// blackrock_depths.cpp Hurley 1450–1451
|
|
180
|
+
export const SPELL_DRUNKEN_RAGE = 14872;
|
|
181
|
+
export const SPELL_FLAME_BREATH = 9573;
|
|
182
|
+
/** Cite: blackrock_depths.cpp:1545 GetHealthPercent() < 31.0f */
|
|
183
|
+
export const HURLEY_HP_ENRAGE = 31;
|
|
184
|
+
|
|
185
|
+
// blackrock_depths.cpp Plugger 1633–1638
|
|
186
|
+
export const SPELL_BANISH = 8994;
|
|
187
|
+
export const SPELL_CURSE_OF_TONGUES = 13338;
|
|
188
|
+
export const SPELL_DEMON_ARMOR = 13787;
|
|
189
|
+
export const SPELL_IMMOLATE = 12742;
|
|
190
|
+
export const SPELL_SHADOW_BOLT = 12739;
|
|
191
|
+
export const SPELL_PICKPOCKET = 921;
|
|
192
|
+
|
|
193
|
+
// blackrock_depths.cpp Ironhand 1844–1845
|
|
194
|
+
export const SPELL_GOUT_OF_FLAME = 15529;
|
|
195
|
+
export const SPELL_STONED_VISUAL = 15533;
|
|
196
|
+
|
|
197
|
+
// blackrock_depths.cpp Nagmara / Rocknot / Windsor / Grimstone spells
|
|
198
|
+
export const SPELL_POTION_LOVE = 14928;
|
|
199
|
+
export const SPELL_NAGMARA_ROCKNOT = 15064;
|
|
200
|
+
export const SPELL_WINDSORS_FRENZY = 15167;
|
|
201
|
+
export const SPELL_SUMMON_THELRIN_DND = 27517;
|
|
202
|
+
export const SPELL_ASHCROMBES_TELEPORT_A = 15742;
|
|
203
|
+
/** Cite: blackrock_depths.cpp:172 — visual teleport; ABSENT from spell bake (GAPS). */
|
|
204
|
+
export const SPELL_ASHCROMBES_TELEPORT_B = 6422;
|
|
205
|
+
export const SPELL_ARENA_FLASH_A = 15737;
|
|
206
|
+
export const SPELL_ARENA_FLASH_B = 15739;
|
|
207
|
+
export const SPELL_ARENA_FLASH_C = 15740;
|
|
208
|
+
export const SPELL_ARENA_FLASH_D = 15741;
|
|
209
|
+
|
|
210
|
+
// blackrock_depths.cpp Doomrel 1581
|
|
211
|
+
export const SAY_DOOMREL_START_EVENT = -1230003;
|
|
212
|
+
export const GOSSIP_TEXT_ID_CHALLENGE = 2601;
|
|
213
|
+
|
|
214
|
+
// Runtime phases
|
|
215
|
+
export const ANGERFORGE_PHASE_1 = 0;
|
|
216
|
+
export const ANGERFORGE_PHASE_ALARM = 1;
|
|
217
|
+
export const FLAMELASH_PHASE_1 = 0;
|
|
218
|
+
export const FLAMELASH_PHASE_PULL = 1;
|
|
219
|
+
export const HURLEY_PHASE_1 = 0;
|
|
220
|
+
export const HURLEY_PHASE_ENRAGE = 1;
|
|
221
|
+
|
|
222
|
+
// boss_high_interrogator_gerstahn
|
|
223
|
+
|
|
224
|
+
// boss_high_interrogator_gerstahn, creature 9018. Reset arms SW:P 4000, Mana Burn 14000, Psychic
|
|
225
|
+
// Scream 32000, Shadow Shield 8000; re-arms are 7000 / 10000 / 30000 / 25000 on CAST_OK.
|
|
226
|
+
export const BOSS_HIGH_INTERROGATOR_GERSTAHN: ScriptDevIR = {
|
|
227
|
+
name: 'boss_high_interrogator_gerstahn',
|
|
228
|
+
boundCreatures: [NPC_HIGH_INTERROGATOR_GERSTAHN],
|
|
229
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/boss_high_interrogator_gerstahn.cpp',
|
|
230
|
+
spellIds: [
|
|
231
|
+
SPELL_SHADOWWORDPAIN_GERSTAHN,
|
|
232
|
+
SPELL_MANABURN,
|
|
233
|
+
SPELL_PSYCHICSCREAM,
|
|
234
|
+
SPELL_SHADOWSHIELD,
|
|
235
|
+
],
|
|
236
|
+
timers: [
|
|
237
|
+
{
|
|
238
|
+
id: 'shadow_word_pain',
|
|
239
|
+
spellId: SPELL_SHADOWWORDPAIN_GERSTAHN,
|
|
240
|
+
initialMinMs: 4000,
|
|
241
|
+
initialMaxMs: 4000,
|
|
242
|
+
repeatMinMs: 7000,
|
|
243
|
+
repeatMaxMs: 7000,
|
|
244
|
+
target: 'hostile_random',
|
|
245
|
+
cite: 'boss_high_interrogator_gerstahn.cpp:48,59-66',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
id: 'mana_burn',
|
|
249
|
+
spellId: SPELL_MANABURN,
|
|
250
|
+
initialMinMs: 14_000,
|
|
251
|
+
initialMaxMs: 14_000,
|
|
252
|
+
repeatMinMs: 10_000,
|
|
253
|
+
repeatMaxMs: 10_000,
|
|
254
|
+
target: 'hostile_random_mana',
|
|
255
|
+
select: { powerMana: true },
|
|
256
|
+
cite: 'boss_high_interrogator_gerstahn.cpp:49,71-78 SELECT_FLAG_POWER_MANA',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
id: 'psychic_scream',
|
|
260
|
+
spellId: SPELL_PSYCHICSCREAM,
|
|
261
|
+
initialMinMs: 32_000,
|
|
262
|
+
initialMaxMs: 32_000,
|
|
263
|
+
repeatMinMs: 30_000,
|
|
264
|
+
repeatMaxMs: 30_000,
|
|
265
|
+
target: 'self',
|
|
266
|
+
cite: 'boss_high_interrogator_gerstahn.cpp:50,83-87',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: 'shadow_shield',
|
|
270
|
+
spellId: SPELL_SHADOWSHIELD,
|
|
271
|
+
initialMinMs: 8000,
|
|
272
|
+
initialMaxMs: 8000,
|
|
273
|
+
repeatMinMs: 25_000,
|
|
274
|
+
repeatMaxMs: 25_000,
|
|
275
|
+
target: 'self',
|
|
276
|
+
cite: 'boss_high_interrogator_gerstahn.cpp:51,92-96',
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
cites: [
|
|
280
|
+
'boss_high_interrogator_gerstahn.cpp:28-116',
|
|
281
|
+
'boss_high_interrogator_gerstahn.cpp:47-51 Reset',
|
|
282
|
+
'boss_high_interrogator_gerstahn.cpp:53-102 UpdateAI',
|
|
283
|
+
],
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
// boss_general_angerforge
|
|
287
|
+
|
|
288
|
+
// boss_general_angerforge, creature 9033. Reset arms Sunder urand(5–10)s and Aggro adds Flurry +
|
|
289
|
+
// Enrage. Below 30% the Alarm summons 8× Reservist + 2× Medic, re-arming every 3 min.
|
|
290
|
+
export const BOSS_GENERAL_ANGERFORGE: ScriptDevIR = {
|
|
291
|
+
name: 'boss_general_angerforge',
|
|
292
|
+
boundCreatures: [NPC_GENERAL_ANGERFORGE],
|
|
293
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/boss_general_angerforge.cpp',
|
|
294
|
+
// Flurry 15088 and Enrage 15097 pay through 17687 / 15061, resolved off the kit.
|
|
295
|
+
spellIds: [SPELL_FLURRY, SPELL_ENRAGE, SPELL_SUNDER_ARMOR, 17687, 15061],
|
|
296
|
+
timers: [
|
|
297
|
+
{
|
|
298
|
+
id: 'flurry',
|
|
299
|
+
spellId: SPELL_FLURRY,
|
|
300
|
+
initialMinMs: 0,
|
|
301
|
+
initialMaxMs: 0,
|
|
302
|
+
repeatMinMs: 0,
|
|
303
|
+
repeatMaxMs: 0,
|
|
304
|
+
target: 'self',
|
|
305
|
+
onReset: true,
|
|
306
|
+
castFlags: CAST_FLAG.TRIGGERED | CAST_FLAG.AURA_NOT_PRESENT,
|
|
307
|
+
cite: 'boss_general_angerforge.cpp:60 Aggro Flurry AURA_NOT_PRESENT|TRIGGERED',
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
id: 'enrage',
|
|
311
|
+
spellId: SPELL_ENRAGE,
|
|
312
|
+
initialMinMs: 0,
|
|
313
|
+
initialMaxMs: 0,
|
|
314
|
+
repeatMinMs: 0,
|
|
315
|
+
repeatMaxMs: 0,
|
|
316
|
+
target: 'self',
|
|
317
|
+
onReset: true,
|
|
318
|
+
castFlags: CAST_FLAG.TRIGGERED | CAST_FLAG.AURA_NOT_PRESENT,
|
|
319
|
+
cite: 'boss_general_angerforge.cpp:61 Aggro Enrage AURA_NOT_PRESENT|TRIGGERED',
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
id: 'sunder_armor',
|
|
323
|
+
spellId: SPELL_SUNDER_ARMOR,
|
|
324
|
+
// Reset m_uiSunderArmorTimer = urand(5s, 10s) (cpp:54)
|
|
325
|
+
initialMinMs: 5000,
|
|
326
|
+
initialMaxMs: 10_000,
|
|
327
|
+
// CAST_OK re-arm urand(5s, 15s) (cpp:87)
|
|
328
|
+
repeatMinMs: 5000,
|
|
329
|
+
repeatMaxMs: 15_000,
|
|
330
|
+
target: 'victim',
|
|
331
|
+
cite: 'boss_general_angerforge.cpp:54,84-88',
|
|
332
|
+
},
|
|
333
|
+
],
|
|
334
|
+
// armDelay = 3 min so phase opener 8+2 is not doubled at the <30% tick.
|
|
335
|
+
// Cite: boss_general_angerforge.cpp:104 m_uiAlarmTimer = 3 * MINUTE * IN_MILLISECONDS
|
|
336
|
+
summonWaves: [
|
|
337
|
+
{
|
|
338
|
+
id: 'angerforge_alarm_reservist',
|
|
339
|
+
creatureEntry: NPC_ANVILRAGE_RESERVIST,
|
|
340
|
+
perTick: NPC_NORMAL_AMOUNT,
|
|
341
|
+
armDelayMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
342
|
+
firstTickMinMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
343
|
+
firstTickMaxMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
344
|
+
tickMinMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
345
|
+
tickMaxMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
346
|
+
firstWaveCount: 1,
|
|
347
|
+
waveMinCount: 1,
|
|
348
|
+
waveMaxCount: 1,
|
|
349
|
+
gapBaseMs: 0,
|
|
350
|
+
gapPerSummonFirstMs: 0,
|
|
351
|
+
gapPerSummonMs: 0,
|
|
352
|
+
phase: ANGERFORGE_PHASE_ALARM,
|
|
353
|
+
cite: 'boss_general_angerforge.cpp:99-100,104 SummonAdd ×8 Reservist=8901; re-arm 3*MINUTE',
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
id: 'angerforge_alarm_medic',
|
|
357
|
+
creatureEntry: NPC_ANVILRAGE_MEDIC,
|
|
358
|
+
perTick: NPC_ELITE_AMOUNT,
|
|
359
|
+
armDelayMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
360
|
+
firstTickMinMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
361
|
+
firstTickMaxMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
362
|
+
tickMinMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
363
|
+
tickMaxMs: ANGERFORGE_ALARM_REPEAT_MS,
|
|
364
|
+
firstWaveCount: 1,
|
|
365
|
+
waveMinCount: 1,
|
|
366
|
+
waveMaxCount: 1,
|
|
367
|
+
gapBaseMs: 0,
|
|
368
|
+
gapPerSummonFirstMs: 0,
|
|
369
|
+
gapPerSummonMs: 0,
|
|
370
|
+
phase: ANGERFORGE_PHASE_ALARM,
|
|
371
|
+
cite: 'boss_general_angerforge.cpp:101-102,104 SummonAdd ×2 Medic=8894; re-arm 3*MINUTE',
|
|
372
|
+
},
|
|
373
|
+
],
|
|
374
|
+
phases: [
|
|
375
|
+
{
|
|
376
|
+
phase: ANGERFORGE_PHASE_ALARM,
|
|
377
|
+
hpBelowPct: ANGERFORGE_HP_ALARM,
|
|
378
|
+
actions: [
|
|
379
|
+
{
|
|
380
|
+
kind: 'yell',
|
|
381
|
+
textId: EMOTE_ALARM,
|
|
382
|
+
cite: 'boss_general_angerforge.cpp:97 DoScriptText EMOTE_ALARM',
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
kind: 'summon_count',
|
|
386
|
+
creatureEntry: NPC_ANVILRAGE_RESERVIST,
|
|
387
|
+
count: NPC_NORMAL_AMOUNT,
|
|
388
|
+
cite: 'boss_general_angerforge.cpp:99-100 SummonAdd ×8 NPC_ANVILRAGE_RESERVIST=8901',
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
kind: 'summon_count',
|
|
392
|
+
creatureEntry: NPC_ANVILRAGE_MEDIC,
|
|
393
|
+
count: NPC_ELITE_AMOUNT,
|
|
394
|
+
cite: 'boss_general_angerforge.cpp:101-102 SummonAdd ×2 NPC_ANVILRAGE_MEDIC=8894',
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
kind: 'flavor',
|
|
398
|
+
text: 'sounds the alarm - reservists and medics pour in!',
|
|
399
|
+
cite: 'boss_general_angerforge.cpp:93-108 Alarm <30%; summonWaves re-arm 180s',
|
|
400
|
+
},
|
|
401
|
+
],
|
|
402
|
+
cite: 'boss_general_angerforge.cpp:93-108 GetHealthPercent() < 30.0f → first Alarm; summonWaves re-arm',
|
|
403
|
+
},
|
|
404
|
+
],
|
|
405
|
+
cites: [
|
|
406
|
+
'boss_general_angerforge.cpp:28-125',
|
|
407
|
+
'boss_general_angerforge.cpp:43 aAlarmPoint (xyz leftover — no summon origin in IR)',
|
|
408
|
+
'boss_general_angerforge.cpp:52-56 Reset',
|
|
409
|
+
'boss_general_angerforge.cpp:58-61 Aggro',
|
|
410
|
+
'boss_general_angerforge.cpp:77-110 UpdateAI',
|
|
411
|
+
'boss_general_angerforge.cpp:36-40 NPC_NORMAL_AMOUNT=8 NPC_ELITE_AMOUNT=2',
|
|
412
|
+
'boss_general_angerforge.cpp:104 m_uiAlarmTimer = 3 * MINUTE * IN_MILLISECONDS',
|
|
413
|
+
],
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
// boss_ambassador_flamelash
|
|
417
|
+
|
|
418
|
+
// boss_ambassador_flamelash, creature 9156. Aggro casts Fireblast and summons 4 Fireguard
|
|
419
|
+
// Destroyers; each of seven rune timers summons 9178 then re-arms 15–30s. Cite: cpp:53–137.
|
|
420
|
+
export const BOSS_AMBASSADOR_FLAMELASH: ScriptDevIR = {
|
|
421
|
+
name: 'boss_ambassador_flamelash',
|
|
422
|
+
boundCreatures: [NPC_AMBASSADOR_FLAMELASH],
|
|
423
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/boss_ambassador_flamelash.cpp',
|
|
424
|
+
// Fire Blast 15573 pays through 15574, resolved off the kit.
|
|
425
|
+
spellIds: [SPELL_FIREBLAST, SPELL_BURNING_SPIRIT, SPELL_BURNING_SPIRIT_BUFF, 15574],
|
|
426
|
+
timers: [
|
|
427
|
+
{
|
|
428
|
+
id: 'fireblast',
|
|
429
|
+
spellId: SPELL_FIREBLAST,
|
|
430
|
+
initialMinMs: 0,
|
|
431
|
+
initialMaxMs: 0,
|
|
432
|
+
repeatMinMs: 0,
|
|
433
|
+
repeatMaxMs: 0,
|
|
434
|
+
target: 'self',
|
|
435
|
+
onReset: true,
|
|
436
|
+
castFlags: CAST_FLAG.TRIGGERED,
|
|
437
|
+
cite: 'boss_ambassador_flamelash.cpp:83 Aggro DoCastSpellIfCan SPELL_FIREBLAST',
|
|
438
|
+
},
|
|
439
|
+
],
|
|
440
|
+
// Per-rune DoSummonSpirit; armDelay = re-arm min so opener ×7 is not doubled at t=0.
|
|
441
|
+
summonWaves: GO_DWARF_RUNES.map((goEntry, i) => ({
|
|
442
|
+
id: `burning_spirit_rune_${i}`,
|
|
443
|
+
creatureEntry: NPC_BURNING_SPIRIT,
|
|
444
|
+
perTick: 1,
|
|
445
|
+
armDelayMs: FLAMELASH_SPIRIT_REPEAT_MIN_MS,
|
|
446
|
+
firstTickMinMs: FLAMELASH_SPIRIT_REPEAT_MIN_MS,
|
|
447
|
+
firstTickMaxMs: FLAMELASH_SPIRIT_REPEAT_MAX_MS,
|
|
448
|
+
tickMinMs: FLAMELASH_SPIRIT_REPEAT_MIN_MS,
|
|
449
|
+
tickMaxMs: FLAMELASH_SPIRIT_REPEAT_MAX_MS,
|
|
450
|
+
firstWaveCount: 1,
|
|
451
|
+
waveMinCount: 1,
|
|
452
|
+
waveMaxCount: 1,
|
|
453
|
+
gapBaseMs: 0,
|
|
454
|
+
gapPerSummonFirstMs: 0,
|
|
455
|
+
gapPerSummonMs: 0,
|
|
456
|
+
phase: FLAMELASH_PHASE_PULL,
|
|
457
|
+
cite: `boss_ambassador_flamelash.cpp:60-66,127-133 DoSummonSpirit(${i}) GO ${goEntry}; re-arm urand(15000,30000)`,
|
|
458
|
+
})),
|
|
459
|
+
phases: [
|
|
460
|
+
{
|
|
461
|
+
// 101 so 100 < 101 at pull (`hpPct < hpBelowPct`; 100 never fired).
|
|
462
|
+
// Cite: boss_ambassador_flamelash.cpp:81-91 Aggro summons.
|
|
463
|
+
phase: FLAMELASH_PHASE_PULL,
|
|
464
|
+
hpBelowPct: 101,
|
|
465
|
+
actions: [
|
|
466
|
+
{
|
|
467
|
+
kind: 'summon_count',
|
|
468
|
+
creatureEntry: NPC_FIREGUARD_DESTROYER,
|
|
469
|
+
count: 4,
|
|
470
|
+
cite: 'boss_ambassador_flamelash.cpp:88-91 SummonCreature NPC_FIREGUARD_DESTROYER ×4',
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
kind: 'summon_count',
|
|
474
|
+
creatureEntry: NPC_BURNING_SPIRIT,
|
|
475
|
+
count: FLAMELASH_RUNE_COUNT,
|
|
476
|
+
cite: 'boss_ambassador_flamelash.cpp:53-54,127-133 first DoSummonSpirit per rune (Reset timers 0–1000ms)',
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
kind: 'set_instance_data',
|
|
480
|
+
field: TYPE_FLAMELASH,
|
|
481
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
482
|
+
cite: 'boss_ambassador_flamelash.cpp:85-86 SetData(TYPE_FLAMELASH, IN_PROGRESS)',
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
kind: 'flavor',
|
|
486
|
+
text: 'calls Fireguard Destroyers and Burning Spirits from the runes!',
|
|
487
|
+
cite: 'boss_ambassador_flamelash.cpp:81-91 Aggro summons; 127-137 spirit timers',
|
|
488
|
+
},
|
|
489
|
+
],
|
|
490
|
+
cite: 'boss_ambassador_flamelash.cpp:81-91 Aggro; 53-54 first spirit wave',
|
|
491
|
+
},
|
|
492
|
+
],
|
|
493
|
+
lifecycle: {
|
|
494
|
+
onDeath: [
|
|
495
|
+
{
|
|
496
|
+
kind: 'set_instance_data',
|
|
497
|
+
field: TYPE_FLAMELASH,
|
|
498
|
+
value: INSTANCE_DATA.DONE,
|
|
499
|
+
cite: 'boss_ambassador_flamelash.cpp:96-97 JustDied SetData DONE',
|
|
500
|
+
},
|
|
501
|
+
],
|
|
502
|
+
onEvade: [
|
|
503
|
+
{
|
|
504
|
+
kind: 'set_instance_data',
|
|
505
|
+
field: TYPE_FLAMELASH,
|
|
506
|
+
value: INSTANCE_DATA.FAIL,
|
|
507
|
+
cite: 'boss_ambassador_flamelash.cpp:102-103 JustReachedHome SetData FAIL',
|
|
508
|
+
},
|
|
509
|
+
],
|
|
510
|
+
},
|
|
511
|
+
cites: [
|
|
512
|
+
'boss_ambassador_flamelash.cpp:29-154',
|
|
513
|
+
'boss_ambassador_flamelash.cpp:51-57 Reset',
|
|
514
|
+
'boss_ambassador_flamelash.cpp:60-66 DoSummonSpirit',
|
|
515
|
+
'boss_ambassador_flamelash.cpp:69-78 MoveInLineOfSight',
|
|
516
|
+
'boss_ambassador_flamelash.cpp:81-91 Aggro',
|
|
517
|
+
'boss_ambassador_flamelash.cpp:106-114 JustSummoned',
|
|
518
|
+
'boss_ambassador_flamelash.cpp:121-140 UpdateAI',
|
|
519
|
+
'SpellEffects.cpp:497-502 EffectDummy 13489 → 14744',
|
|
520
|
+
'blackrock_depths.h:13 MAX_DWARF_RUNES=7; :44 NPC_FIREGUARD_DESTROYER=8911; :107-113 GO_DWARFRUNE_A01..G01',
|
|
521
|
+
],
|
|
522
|
+
};
|
|
523
|
+
|
|
524
|
+
// boss_emperor_dagran_thaurissan + boss_moira_bronzebeard
|
|
525
|
+
|
|
526
|
+
// boss_emperor_dagran_thaurissan, creature 9019. Hand of Thaurissan re-arms urand(5,10)s and
|
|
527
|
+
// Avatar of Flame 18000. JustDied turns the Princess neutral. Cite: cpp:41–122.
|
|
528
|
+
export const BOSS_EMPEROR_DAGRAN_THAURISSAN: ScriptDevIR = {
|
|
529
|
+
name: 'boss_emperor_dagran_thaurissan',
|
|
530
|
+
boundCreatures: [NPC_EMPEROR],
|
|
531
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/boss_emperor_dagran_thaurissan.cpp',
|
|
532
|
+
// Avatar of Flame 15636 pays through Flames 15643, resolved off the kit.
|
|
533
|
+
spellIds: [SPELL_HANDOFTHAURISSAN, SPELL_AVATAROFFLAME, 15643],
|
|
534
|
+
timers: [
|
|
535
|
+
{
|
|
536
|
+
id: 'hand_of_thaurissan',
|
|
537
|
+
spellId: SPELL_HANDOFTHAURISSAN,
|
|
538
|
+
initialMinMs: 4000,
|
|
539
|
+
initialMaxMs: 4000,
|
|
540
|
+
repeatMinMs: 5000,
|
|
541
|
+
repeatMaxMs: 10_000,
|
|
542
|
+
target: 'hostile_random',
|
|
543
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:56,100-106',
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
id: 'avatar_of_flame',
|
|
547
|
+
spellId: SPELL_AVATAROFFLAME,
|
|
548
|
+
initialMinMs: 25_000,
|
|
549
|
+
initialMaxMs: 25_000,
|
|
550
|
+
repeatMinMs: 18_000,
|
|
551
|
+
repeatMaxMs: 18_000,
|
|
552
|
+
target: 'victim',
|
|
553
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:57,112-115',
|
|
554
|
+
},
|
|
555
|
+
],
|
|
556
|
+
lifecycle: {
|
|
557
|
+
onAggro: [
|
|
558
|
+
{
|
|
559
|
+
kind: 'yell',
|
|
560
|
+
textId: YELL_AGGRO_1,
|
|
561
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:62-67 urand(0,2) aggro yell (product: YELL_AGGRO_1)',
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
kind: 'flavor',
|
|
565
|
+
text: 'calls for help!',
|
|
566
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:68 CallForHelp(VISIBLE_RANGE)',
|
|
567
|
+
},
|
|
568
|
+
],
|
|
569
|
+
onDeath: [
|
|
570
|
+
{
|
|
571
|
+
kind: 'flavor',
|
|
572
|
+
text: "Princess Moira turns neutral as the Emperor falls!",
|
|
573
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:76-87 Princess FACTION_NEUTRAL + EnterEvadeMode',
|
|
574
|
+
},
|
|
575
|
+
],
|
|
576
|
+
},
|
|
577
|
+
cites: [
|
|
578
|
+
'boss_emperor_dagran_thaurissan.cpp:29-127',
|
|
579
|
+
'boss_emperor_dagran_thaurissan.cpp:54-58 Reset',
|
|
580
|
+
'boss_emperor_dagran_thaurissan.cpp:95-121 UpdateAI',
|
|
581
|
+
],
|
|
582
|
+
};
|
|
583
|
+
|
|
584
|
+
// boss_moira_bronzebeard, creature 8929. Mind Blast 14000, SW:P 18000, Smite 10000; the Emperor
|
|
585
|
+
// heal is a concurrent ally cast the solo session cannot target, so it stays a GAP.
|
|
586
|
+
export const BOSS_MOIRA_BRONZEBEARD: ScriptDevIR = {
|
|
587
|
+
name: 'boss_moira_bronzebeard',
|
|
588
|
+
boundCreatures: [NPC_PRINCESS],
|
|
589
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/boss_emperor_dagran_thaurissan.cpp',
|
|
590
|
+
spellIds: [
|
|
591
|
+
SPELL_HEAL,
|
|
592
|
+
SPELL_RENEW,
|
|
593
|
+
SPELL_SHIELD,
|
|
594
|
+
SPELL_MINDBLAST,
|
|
595
|
+
SPELL_SHADOWWORDPAIN_MOIRA,
|
|
596
|
+
SPELL_SMITE,
|
|
597
|
+
SPELL_SHADOW_BOLT_MOIRA,
|
|
598
|
+
SPELL_OPEN_PORTAL,
|
|
599
|
+
],
|
|
600
|
+
timers: [
|
|
601
|
+
{
|
|
602
|
+
id: 'mind_blast',
|
|
603
|
+
spellId: SPELL_MINDBLAST,
|
|
604
|
+
initialMinMs: 16_000,
|
|
605
|
+
initialMaxMs: 16_000,
|
|
606
|
+
repeatMinMs: 14_000,
|
|
607
|
+
repeatMaxMs: 14_000,
|
|
608
|
+
target: 'victim',
|
|
609
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:163,191-194',
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
id: 'shadow_word_pain',
|
|
613
|
+
spellId: SPELL_SHADOWWORDPAIN_MOIRA,
|
|
614
|
+
initialMinMs: 2000,
|
|
615
|
+
initialMaxMs: 2000,
|
|
616
|
+
repeatMinMs: 18_000,
|
|
617
|
+
repeatMaxMs: 18_000,
|
|
618
|
+
target: 'victim',
|
|
619
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:164,200-203',
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
id: 'smite',
|
|
623
|
+
spellId: SPELL_SMITE,
|
|
624
|
+
initialMinMs: 8000,
|
|
625
|
+
initialMaxMs: 8000,
|
|
626
|
+
repeatMinMs: 10_000,
|
|
627
|
+
repeatMaxMs: 10_000,
|
|
628
|
+
target: 'victim',
|
|
629
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:165,209-212',
|
|
630
|
+
},
|
|
631
|
+
// Heal targets the Emperor (cpp:220-225) — a concurrent ally cast the product cannot express,
|
|
632
|
+
// so it is omitted from the schedule rather than mis-cast, but stays in spellIds for resolve.
|
|
633
|
+
],
|
|
634
|
+
lifecycle: {
|
|
635
|
+
onEvade: [
|
|
636
|
+
{
|
|
637
|
+
kind: 'cast_self',
|
|
638
|
+
spellId: SPELL_OPEN_PORTAL,
|
|
639
|
+
castFlags: CAST_FLAG.TRIGGERED,
|
|
640
|
+
cite: 'boss_emperor_dagran_thaurissan.cpp:178-179 JustReachedHome Open Portal if Emperor dead',
|
|
641
|
+
},
|
|
642
|
+
],
|
|
643
|
+
},
|
|
644
|
+
cites: [
|
|
645
|
+
'boss_emperor_dagran_thaurissan.cpp:133-239',
|
|
646
|
+
'boss_emperor_dagran_thaurissan.cpp:160-169 Reset',
|
|
647
|
+
'boss_emperor_dagran_thaurissan.cpp:184-233 UpdateAI',
|
|
648
|
+
'boss_emperor_dagran_thaurissan.cpp:135-142 enum (Renew/Shield/ShadowBolt unused in UpdateAI)',
|
|
649
|
+
],
|
|
650
|
+
};
|
|
651
|
+
|
|
652
|
+
// Zone combat AIs (blackrock_depths.cpp)
|
|
653
|
+
|
|
654
|
+
// npc_phalanxAI, blackrock_depths.cpp:557–679. Aggro arms Thunderclap 12000, Mighty Blow 15000 and
|
|
655
|
+
// Fireball Volley 1; the volley fires below 51%. Escort activation remains a bar-event GAP.
|
|
656
|
+
export const NPC_PHALANX_SCRIPT: ScriptDevIR = {
|
|
657
|
+
name: 'npc_phalanx',
|
|
658
|
+
boundCreatures: [NPC_PHALANX],
|
|
659
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
660
|
+
spellIds: [SPELL_THUNDERCLAP, SPELL_MIGHTY_BLOW, SPELL_FIREBALL_VOLLEY],
|
|
661
|
+
timers: [
|
|
662
|
+
{
|
|
663
|
+
id: 'thunderclap',
|
|
664
|
+
spellId: SPELL_THUNDERCLAP,
|
|
665
|
+
// Aggro uiThunderclapTimer = 12000 (cpp:592)
|
|
666
|
+
initialMinMs: 12_000,
|
|
667
|
+
initialMaxMs: 12_000,
|
|
668
|
+
// CAST_OK re-arm 10000 (cpp:653)
|
|
669
|
+
repeatMinMs: 10_000,
|
|
670
|
+
repeatMaxMs: 10_000,
|
|
671
|
+
target: 'victim',
|
|
672
|
+
cite: 'blackrock_depths.cpp:592,650-653',
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
id: 'mighty_blow',
|
|
676
|
+
spellId: SPELL_MIGHTY_BLOW,
|
|
677
|
+
// Aggro uiMightyBlowTimer = 15000 (cpp:593)
|
|
678
|
+
initialMinMs: 15_000,
|
|
679
|
+
initialMaxMs: 15_000,
|
|
680
|
+
// CAST_OK re-arm 10000 (cpp:661)
|
|
681
|
+
repeatMinMs: 10_000,
|
|
682
|
+
repeatMaxMs: 10_000,
|
|
683
|
+
target: 'victim',
|
|
684
|
+
cite: 'blackrock_depths.cpp:593,658-661',
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
id: 'fireball_volley',
|
|
688
|
+
spellId: SPELL_FIREBALL_VOLLEY,
|
|
689
|
+
// Aggro uiFireballVolleyTimer = 1 (cpp:594); gated <51%
|
|
690
|
+
initialMinMs: 1,
|
|
691
|
+
initialMaxMs: 1,
|
|
692
|
+
// CAST_OK re-arm 15000 (cpp:671)
|
|
693
|
+
repeatMinMs: 15_000,
|
|
694
|
+
repeatMaxMs: 15_000,
|
|
695
|
+
target: 'self',
|
|
696
|
+
hpPctMax: PHALANX_HP_VOLLEY,
|
|
697
|
+
hpPctMin: 0,
|
|
698
|
+
cite: 'blackrock_depths.cpp:594,666-671 GetHealthPercent() < 51.0f',
|
|
699
|
+
},
|
|
700
|
+
],
|
|
701
|
+
lifecycle: {
|
|
702
|
+
onAggro: [
|
|
703
|
+
{
|
|
704
|
+
kind: 'yell',
|
|
705
|
+
textId: YELL_PHALANX_AGGRO,
|
|
706
|
+
cite: 'blackrock_depths.cpp:605 DoScriptText YELL_PHALANX_AGGRO (wp1; product on combat)',
|
|
707
|
+
},
|
|
708
|
+
],
|
|
709
|
+
},
|
|
710
|
+
cites: [
|
|
711
|
+
'blackrock_depths.cpp:545-685',
|
|
712
|
+
'blackrock_depths.cpp:590-595 Aggro timer arm',
|
|
713
|
+
'blackrock_depths.cpp:647-678 combat',
|
|
714
|
+
],
|
|
715
|
+
};
|
|
716
|
+
|
|
717
|
+
// boss_plugger_spazzringAI, blackrock_depths.cpp:1645–1803. Aggro arms Banish urand(8–12)s,
|
|
718
|
+
// Immolate urand(18–20)s, Shadow Bolt 1s and Curse 17s. Death starts the Phalanx escort.
|
|
719
|
+
export const BOSS_PLUGGER_SPAZZRING: ScriptDevIR = {
|
|
720
|
+
name: 'boss_plugger_spazzring',
|
|
721
|
+
boundCreatures: [NPC_PLUGGER_SPAZZRING],
|
|
722
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
723
|
+
spellIds: [
|
|
724
|
+
SPELL_BANISH,
|
|
725
|
+
SPELL_CURSE_OF_TONGUES,
|
|
726
|
+
SPELL_DEMON_ARMOR,
|
|
727
|
+
SPELL_IMMOLATE,
|
|
728
|
+
SPELL_SHADOW_BOLT,
|
|
729
|
+
SPELL_PICKPOCKET,
|
|
730
|
+
],
|
|
731
|
+
timers: [
|
|
732
|
+
{
|
|
733
|
+
id: 'demon_armor',
|
|
734
|
+
spellId: SPELL_DEMON_ARMOR,
|
|
735
|
+
initialMinMs: 0,
|
|
736
|
+
initialMaxMs: 0,
|
|
737
|
+
repeatMinMs: 0,
|
|
738
|
+
repeatMaxMs: 0,
|
|
739
|
+
target: 'self',
|
|
740
|
+
onReset: true,
|
|
741
|
+
castFlags: CAST_FLAG.TRIGGERED | CAST_FLAG.AURA_NOT_PRESENT,
|
|
742
|
+
cite: 'blackrock_depths.cpp:1667,1794-1797 OOC Demon Armor; product onReset buff',
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
id: 'banish',
|
|
746
|
+
spellId: SPELL_BANISH,
|
|
747
|
+
// Aggro m_uiBanishTimer = urand(8,12)*1000 (cpp:1677)
|
|
748
|
+
initialMinMs: 8000,
|
|
749
|
+
initialMaxMs: 12_000,
|
|
750
|
+
// CAST_OK re-arm urand(26,28)*1000 (cpp:1736)
|
|
751
|
+
repeatMinMs: 26_000,
|
|
752
|
+
repeatMaxMs: 28_000,
|
|
753
|
+
target: 'hostile_random',
|
|
754
|
+
cite: 'blackrock_depths.cpp:1677,1731-1736',
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
id: 'immolate',
|
|
758
|
+
spellId: SPELL_IMMOLATE,
|
|
759
|
+
// Aggro m_uiImmolateTimer = urand(18,20)*1000 (cpp:1678)
|
|
760
|
+
initialMinMs: 18_000,
|
|
761
|
+
initialMaxMs: 20_000,
|
|
762
|
+
// CAST_OK re-arm 25000 (cpp:1745)
|
|
763
|
+
repeatMinMs: 25_000,
|
|
764
|
+
repeatMaxMs: 25_000,
|
|
765
|
+
target: 'victim',
|
|
766
|
+
cite: 'blackrock_depths.cpp:1678,1742-1745',
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
id: 'shadow_bolt',
|
|
770
|
+
spellId: SPELL_SHADOW_BOLT,
|
|
771
|
+
// Aggro m_uiShadowBoltTimer = 1000 (cpp:1679)
|
|
772
|
+
initialMinMs: 1000,
|
|
773
|
+
initialMaxMs: 1000,
|
|
774
|
+
// CAST_OK re-arm urand(36,63)*100 (cpp:1753)
|
|
775
|
+
repeatMinMs: 3600,
|
|
776
|
+
repeatMaxMs: 6300,
|
|
777
|
+
target: 'victim',
|
|
778
|
+
cite: 'blackrock_depths.cpp:1679,1750-1753',
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
id: 'curse_of_tongues',
|
|
782
|
+
spellId: SPELL_CURSE_OF_TONGUES,
|
|
783
|
+
// Aggro m_uiCurseOfTonguesTimer = 17000 (cpp:1680)
|
|
784
|
+
initialMinMs: 17_000,
|
|
785
|
+
initialMaxMs: 17_000,
|
|
786
|
+
// CAST_OK re-arm urand(19,31)*1000 (cpp:1763)
|
|
787
|
+
repeatMinMs: 19_000,
|
|
788
|
+
repeatMaxMs: 31_000,
|
|
789
|
+
target: 'hostile_random_mana',
|
|
790
|
+
select: { powerMana: true },
|
|
791
|
+
cite: 'blackrock_depths.cpp:1680,1758-1763 SELECT_FLAG_POWER_MANA',
|
|
792
|
+
},
|
|
793
|
+
],
|
|
794
|
+
lifecycle: {
|
|
795
|
+
onDeath: [
|
|
796
|
+
{
|
|
797
|
+
kind: 'set_instance_data',
|
|
798
|
+
field: TYPE_PLUGGER,
|
|
799
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
800
|
+
cite: 'blackrock_depths.cpp:1695 SetData(TYPE_PLUGGER, IN_PROGRESS) on Plugger death',
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
kind: 'flavor',
|
|
804
|
+
text: 'dies - the bar turns hostile and Phalanx awakens!',
|
|
805
|
+
cite: 'blackrock_depths.cpp:1688-1695 Phalanx escort Start + HandleBarPatrons HOSTILE',
|
|
806
|
+
},
|
|
807
|
+
],
|
|
808
|
+
},
|
|
809
|
+
cites: [
|
|
810
|
+
'blackrock_depths.cpp:1614-1808',
|
|
811
|
+
'blackrock_depths.cpp:1664-1673 Reset',
|
|
812
|
+
'blackrock_depths.cpp:1675-1681 Aggro',
|
|
813
|
+
'blackrock_depths.cpp:1726-1801 UpdateAI',
|
|
814
|
+
],
|
|
815
|
+
};
|
|
816
|
+
|
|
817
|
+
// npc_hurley_blackbreathAI, blackrock_depths.cpp:1457–1568. Aggro arms Flame Breath 7000, re-arm
|
|
818
|
+
// 10s; below 31% he enrages once. The three-keg summon stays the InstanceDef objectGate.
|
|
819
|
+
export const NPC_HURLEY_BLACKBREATH_SCRIPT: ScriptDevIR = {
|
|
820
|
+
name: 'npc_hurley_blackbreath',
|
|
821
|
+
boundCreatures: [NPC_HURLEY_BLACKBREATH],
|
|
822
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
823
|
+
spellIds: [SPELL_FLAME_BREATH, SPELL_DRUNKEN_RAGE],
|
|
824
|
+
timers: [
|
|
825
|
+
{
|
|
826
|
+
id: 'flame_breath',
|
|
827
|
+
spellId: SPELL_FLAME_BREATH,
|
|
828
|
+
// Aggro uiFlameBreathTimer = 7000 (cpp:1496)
|
|
829
|
+
initialMinMs: 7000,
|
|
830
|
+
initialMaxMs: 7000,
|
|
831
|
+
// CAST_OK re-arm 10000 (cpp:1540)
|
|
832
|
+
repeatMinMs: 10_000,
|
|
833
|
+
repeatMaxMs: 10_000,
|
|
834
|
+
target: 'victim',
|
|
835
|
+
cite: 'blackrock_depths.cpp:1496,1537-1540',
|
|
836
|
+
},
|
|
837
|
+
],
|
|
838
|
+
phases: [
|
|
839
|
+
{
|
|
840
|
+
phase: HURLEY_PHASE_ENRAGE,
|
|
841
|
+
hpBelowPct: HURLEY_HP_ENRAGE,
|
|
842
|
+
actions: [
|
|
843
|
+
{
|
|
844
|
+
kind: 'cast_self',
|
|
845
|
+
spellId: SPELL_DRUNKEN_RAGE,
|
|
846
|
+
cite: 'blackrock_depths.cpp:1547 DoCastSpellIfCan SPELL_DRUNKEN_RAGE once <31%',
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
kind: 'flavor',
|
|
850
|
+
text: 'flies into a drunken rage!',
|
|
851
|
+
cite: 'blackrock_depths.cpp:1545-1548 bIsEnraged',
|
|
852
|
+
},
|
|
853
|
+
],
|
|
854
|
+
cite: 'blackrock_depths.cpp:1545-1548 GetHealthPercent() < 31.0f && !bIsEnraged',
|
|
855
|
+
},
|
|
856
|
+
],
|
|
857
|
+
lifecycle: {
|
|
858
|
+
onDeath: [
|
|
859
|
+
{
|
|
860
|
+
kind: 'set_instance_data',
|
|
861
|
+
field: TYPE_HURLEY,
|
|
862
|
+
value: INSTANCE_DATA.DONE,
|
|
863
|
+
cite: 'instance_blackrock_depths.cpp:543-544 NPC_HURLEY_BLACKBREATH → TYPE_HURLEY DONE',
|
|
864
|
+
},
|
|
865
|
+
],
|
|
866
|
+
},
|
|
867
|
+
cites: [
|
|
868
|
+
'blackrock_depths.cpp:1441-1573',
|
|
869
|
+
'blackrock_depths.cpp:1494-1499 Aggro',
|
|
870
|
+
'blackrock_depths.cpp:1529-1566 UpdateEscortAI combat',
|
|
871
|
+
],
|
|
872
|
+
};
|
|
873
|
+
|
|
874
|
+
// npc_ironhand_guardianAI, blackrock_depths.cpp:1848–1900. Passive until TYPE_IRON_HALL starts,
|
|
875
|
+
// then strips Stoned and arms Gout of Flame urand(4–30)s.
|
|
876
|
+
export const NPC_IRONHAND_GUARDIAN_SCRIPT: ScriptDevIR = {
|
|
877
|
+
name: 'npc_ironhand_guardian',
|
|
878
|
+
boundCreatures: [NPC_IRONHAND_GUARDIAN],
|
|
879
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
880
|
+
// Gout of Flame 15529 ticks 15538; a trigger payload resolves off the kit.
|
|
881
|
+
spellIds: [SPELL_GOUT_OF_FLAME, SPELL_STONED_VISUAL, 15538],
|
|
882
|
+
timers: [
|
|
883
|
+
{
|
|
884
|
+
id: 'gout_of_flame',
|
|
885
|
+
spellId: SPELL_GOUT_OF_FLAME,
|
|
886
|
+
// Reset m_goutOfFlameTimer = urand(4,30)*IN_MILLISECONDS (cpp:1863)
|
|
887
|
+
initialMinMs: 4000,
|
|
888
|
+
initialMaxMs: 30_000,
|
|
889
|
+
// re-arm urand(4,30)*IN_MILLISECONDS (cpp:1891 area)
|
|
890
|
+
repeatMinMs: 4000,
|
|
891
|
+
repeatMaxMs: 30_000,
|
|
892
|
+
target: 'self',
|
|
893
|
+
cite: 'blackrock_depths.cpp:1863,1888-1891 Gout of Flame when TYPE_IRON_HALL active',
|
|
894
|
+
},
|
|
895
|
+
],
|
|
896
|
+
cites: [
|
|
897
|
+
'blackrock_depths.cpp:1838-1900',
|
|
898
|
+
'blackrock_depths.cpp:1861-1867 Reset passive',
|
|
899
|
+
'blackrock_depths.cpp:1869-1895 UpdateAI TYPE_IRON_HALL gate',
|
|
900
|
+
],
|
|
901
|
+
};
|
|
902
|
+
|
|
903
|
+
// boss_doomrel gossip, blackrock_depths.cpp:1579–1612: the challenge is offered while
|
|
904
|
+
// TYPE_TOMB_OF_SEVEN is NOT_STARTED or FAIL, and selecting it sets IN_PROGRESS.
|
|
905
|
+
export const BOSS_DOOMREL: ScriptDevIR = {
|
|
906
|
+
name: 'boss_doomrel',
|
|
907
|
+
boundCreatures: [NPC_DOOMREL],
|
|
908
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
909
|
+
spellIds: [],
|
|
910
|
+
timers: [],
|
|
911
|
+
gossipHello: {
|
|
912
|
+
defaultTextId: GOSSIP_TEXT_ID_CHALLENGE,
|
|
913
|
+
cite: 'blackrock_depths.cpp:1594 SEND_GOSSIP_MENU GOSSIP_TEXT_ID_CHALLENGE=2601',
|
|
914
|
+
},
|
|
915
|
+
lifecycle: {
|
|
916
|
+
onDeath: [
|
|
917
|
+
{
|
|
918
|
+
kind: 'set_instance_data',
|
|
919
|
+
field: TYPE_TOMB_OF_SEVEN,
|
|
920
|
+
value: INSTANCE_DATA.DONE,
|
|
921
|
+
cite: 'instance_blackrock_depths.cpp:537-538 NPC_DOOMREL → TYPE_TOMB_OF_SEVEN DONE',
|
|
922
|
+
},
|
|
923
|
+
],
|
|
924
|
+
onEvade: [
|
|
925
|
+
{
|
|
926
|
+
kind: 'set_instance_data',
|
|
927
|
+
field: TYPE_TOMB_OF_SEVEN,
|
|
928
|
+
value: INSTANCE_DATA.FAIL,
|
|
929
|
+
cite: 'instance_blackrock_depths.cpp:486-493 Tomb dwarfs evade → FAIL',
|
|
930
|
+
},
|
|
931
|
+
],
|
|
932
|
+
},
|
|
933
|
+
cites: [
|
|
934
|
+
'blackrock_depths.cpp:1575-1612 boss_doomrel gossip',
|
|
935
|
+
'instance_blackrock_depths.cpp:252-281 TYPE_TOMB_OF_SEVEN SetData',
|
|
936
|
+
],
|
|
937
|
+
};
|
|
938
|
+
|
|
939
|
+
// GO / AT / escort / romance scripts (zone — documented + instance data arms)
|
|
940
|
+
|
|
941
|
+
/** Cite: blackrock_depths.cpp:55–64 go_bar_beer_keg → TYPE_HURLEY SPECIAL */
|
|
942
|
+
export const GO_BAR_BEER_KEG: ScriptDevIR = {
|
|
943
|
+
name: 'go_bar_beer_keg',
|
|
944
|
+
boundCreatures: [],
|
|
945
|
+
boundGos: [GO_THUNDERBREW_LAGER_KEG],
|
|
946
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
947
|
+
spellIds: [],
|
|
948
|
+
timers: [],
|
|
949
|
+
goUse: {
|
|
950
|
+
goEntries: [GO_THUNDERBREW_LAGER_KEG],
|
|
951
|
+
gates: [
|
|
952
|
+
{
|
|
953
|
+
field: TYPE_HURLEY,
|
|
954
|
+
notEquals: INSTANCE_DATA.IN_PROGRESS,
|
|
955
|
+
cite: 'blackrock_depths.cpp:59 TYPE_HURLEY != IN_PROGRESS',
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
field: TYPE_HURLEY,
|
|
959
|
+
notEquals: INSTANCE_DATA.DONE,
|
|
960
|
+
cite: 'blackrock_depths.cpp:59 TYPE_HURLEY != DONE',
|
|
961
|
+
},
|
|
962
|
+
],
|
|
963
|
+
actions: [
|
|
964
|
+
{
|
|
965
|
+
kind: 'set_instance_data',
|
|
966
|
+
field: TYPE_HURLEY,
|
|
967
|
+
value: INSTANCE_DATA.SPECIAL,
|
|
968
|
+
cite: 'blackrock_depths.cpp:62 SetData(TYPE_HURLEY, SPECIAL); instance caps at 3 → IN_PROGRESS + summon',
|
|
969
|
+
},
|
|
970
|
+
],
|
|
971
|
+
cite: 'blackrock_depths.cpp:55-64 GOUse_go_bar_beer_keg',
|
|
972
|
+
},
|
|
973
|
+
cites: [
|
|
974
|
+
'blackrock_depths.cpp:51-64',
|
|
975
|
+
'instance_blackrock_depths.cpp:319-357 TYPE_HURLEY SPECIAL → 3 kegs → summon Hurley',
|
|
976
|
+
],
|
|
977
|
+
};
|
|
978
|
+
|
|
979
|
+
/** Cite: blackrock_depths.cpp:71–80 go_shadowforge_brazier → TYPE_LYCEUM toggle */
|
|
980
|
+
export const GO_SHADOWFORGE_BRAZIER_SCRIPT: ScriptDevIR = {
|
|
981
|
+
name: 'go_shadowforge_brazier',
|
|
982
|
+
boundCreatures: [],
|
|
983
|
+
boundGos: [GO_SHADOWFORGE_BRAZIER_A, GO_SHADOWFORGE_BRAZIER_B],
|
|
984
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
985
|
+
spellIds: [],
|
|
986
|
+
timers: [],
|
|
987
|
+
goUse: {
|
|
988
|
+
goEntries: [GO_SHADOWFORGE_BRAZIER_A, GO_SHADOWFORGE_BRAZIER_B],
|
|
989
|
+
branches: [
|
|
990
|
+
{
|
|
991
|
+
gate: {
|
|
992
|
+
field: TYPE_LYCEUM,
|
|
993
|
+
equals: INSTANCE_DATA.IN_PROGRESS,
|
|
994
|
+
cite: 'blackrock_depths.cpp:75 GetData(TYPE_LYCEUM) == IN_PROGRESS → DONE',
|
|
995
|
+
},
|
|
996
|
+
actions: [
|
|
997
|
+
{
|
|
998
|
+
kind: 'set_instance_data',
|
|
999
|
+
field: TYPE_LYCEUM,
|
|
1000
|
+
value: INSTANCE_DATA.DONE,
|
|
1001
|
+
cite: 'blackrock_depths.cpp:76 SetData(TYPE_LYCEUM, DONE)',
|
|
1002
|
+
},
|
|
1003
|
+
],
|
|
1004
|
+
cite: 'blackrock_depths.cpp:75-76 second brazier',
|
|
1005
|
+
},
|
|
1006
|
+
],
|
|
1007
|
+
actions: [
|
|
1008
|
+
{
|
|
1009
|
+
kind: 'set_instance_data',
|
|
1010
|
+
field: TYPE_LYCEUM,
|
|
1011
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
1012
|
+
cite: 'blackrock_depths.cpp:78 SetData(TYPE_LYCEUM, IN_PROGRESS) first brazier',
|
|
1013
|
+
},
|
|
1014
|
+
],
|
|
1015
|
+
cite: 'blackrock_depths.cpp:71-80 GOUse_go_shadowforge_brazier',
|
|
1016
|
+
},
|
|
1017
|
+
cites: [
|
|
1018
|
+
'blackrock_depths.cpp:67-80',
|
|
1019
|
+
'instance_blackrock_depths.cpp:283-291 TYPE_LYCEUM DONE → golem doors + Magmus yell',
|
|
1020
|
+
],
|
|
1021
|
+
};
|
|
1022
|
+
|
|
1023
|
+
/** Cite: blackrock_depths.cpp:87–97 go_relic_coffer_door → TYPE_VAULT SPECIAL */
|
|
1024
|
+
export const GO_RELIC_COFFER_DOOR_SCRIPT: ScriptDevIR = {
|
|
1025
|
+
name: 'go_relic_coffer_door',
|
|
1026
|
+
boundCreatures: [],
|
|
1027
|
+
boundGos: [GO_RELIC_COFFER_DOOR],
|
|
1028
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1029
|
+
spellIds: [],
|
|
1030
|
+
timers: [],
|
|
1031
|
+
goUse: {
|
|
1032
|
+
goEntries: [GO_RELIC_COFFER_DOOR],
|
|
1033
|
+
gates: [
|
|
1034
|
+
{
|
|
1035
|
+
field: TYPE_VAULT,
|
|
1036
|
+
notEquals: INSTANCE_DATA.DONE,
|
|
1037
|
+
cite: 'blackrock_depths.cpp:92 TYPE_VAULT != DONE',
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
field: TYPE_VAULT,
|
|
1041
|
+
notEquals: INSTANCE_DATA.IN_PROGRESS,
|
|
1042
|
+
cite: 'blackrock_depths.cpp:92 TYPE_VAULT != IN_PROGRESS',
|
|
1043
|
+
},
|
|
1044
|
+
],
|
|
1045
|
+
actions: [
|
|
1046
|
+
{
|
|
1047
|
+
kind: 'set_instance_data',
|
|
1048
|
+
field: TYPE_VAULT,
|
|
1049
|
+
value: INSTANCE_DATA.SPECIAL,
|
|
1050
|
+
cite: 'blackrock_depths.cpp:93 SetData(TYPE_VAULT, SPECIAL); instance counts to 12 → Doomgrip',
|
|
1051
|
+
},
|
|
1052
|
+
],
|
|
1053
|
+
cite: 'blackrock_depths.cpp:87-97 GOUse_go_relic_coffer_door',
|
|
1054
|
+
},
|
|
1055
|
+
cites: [
|
|
1056
|
+
'blackrock_depths.cpp:83-97',
|
|
1057
|
+
'instance_blackrock_depths.cpp:204-230 TYPE_VAULT SPECIAL counter MAX_RELIC_DOORS=12',
|
|
1058
|
+
],
|
|
1059
|
+
};
|
|
1060
|
+
|
|
1061
|
+
/** Cite: blackrock_depths.cpp:1814–1836 go_bar_ale_mug → TYPE_PLUGGER SPECIAL */
|
|
1062
|
+
export const GO_BAR_ALE_MUG: ScriptDevIR = {
|
|
1063
|
+
name: 'go_bar_ale_mug',
|
|
1064
|
+
boundCreatures: [],
|
|
1065
|
+
boundGos: [GO_DARK_IRON_ALE_MUG, GO_GRIM_GUZZLER_BOAR],
|
|
1066
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1067
|
+
spellIds: [],
|
|
1068
|
+
timers: [],
|
|
1069
|
+
goUse: {
|
|
1070
|
+
goEntries: [GO_DARK_IRON_ALE_MUG, GO_GRIM_GUZZLER_BOAR],
|
|
1071
|
+
gates: [
|
|
1072
|
+
{
|
|
1073
|
+
field: TYPE_PLUGGER,
|
|
1074
|
+
notEquals: INSTANCE_DATA.IN_PROGRESS,
|
|
1075
|
+
cite: 'blackrock_depths.cpp:1818 TYPE_PLUGGER != IN_PROGRESS',
|
|
1076
|
+
},
|
|
1077
|
+
{
|
|
1078
|
+
field: TYPE_PLUGGER,
|
|
1079
|
+
notEquals: INSTANCE_DATA.DONE,
|
|
1080
|
+
cite: 'blackrock_depths.cpp:1818 TYPE_PLUGGER != DONE',
|
|
1081
|
+
},
|
|
1082
|
+
],
|
|
1083
|
+
actions: [
|
|
1084
|
+
{
|
|
1085
|
+
kind: 'set_instance_data',
|
|
1086
|
+
field: TYPE_PLUGGER,
|
|
1087
|
+
value: INSTANCE_DATA.SPECIAL,
|
|
1088
|
+
cite: 'blackrock_depths.cpp:1825 SetData(TYPE_PLUGGER, SPECIAL); 3 steals → IN_PROGRESS',
|
|
1089
|
+
},
|
|
1090
|
+
],
|
|
1091
|
+
cite: 'blackrock_depths.cpp:1814-1836 GOUse_go_bar_ale_mug',
|
|
1092
|
+
},
|
|
1093
|
+
cites: [
|
|
1094
|
+
'blackrock_depths.cpp:1810-1836',
|
|
1095
|
+
'instance_blackrock_depths.cpp:366-376 TYPE_PLUGGER SPECIAL stolen-ales counter',
|
|
1096
|
+
],
|
|
1097
|
+
};
|
|
1098
|
+
|
|
1099
|
+
/** Cite: blackrock_depths.cpp:115–143 at_shadowforge_bridge AT-1786 */
|
|
1100
|
+
export const AT_SHADOWFORGE_BRIDGE: ScriptDevIR = {
|
|
1101
|
+
name: 'at_shadowforge_bridge',
|
|
1102
|
+
boundCreatures: [],
|
|
1103
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1104
|
+
spellIds: [],
|
|
1105
|
+
timers: [],
|
|
1106
|
+
goUse: {
|
|
1107
|
+
goEntries: [],
|
|
1108
|
+
gates: [
|
|
1109
|
+
{
|
|
1110
|
+
field: TYPE_BRIDGE,
|
|
1111
|
+
notEquals: INSTANCE_DATA.DONE,
|
|
1112
|
+
cite: 'blackrock_depths.cpp:119 TYPE_BRIDGE != DONE',
|
|
1113
|
+
},
|
|
1114
|
+
],
|
|
1115
|
+
actions: [
|
|
1116
|
+
{
|
|
1117
|
+
kind: 'summon_count',
|
|
1118
|
+
creatureEntry: NPC_ANVILRAGE_GUARDMAN,
|
|
1119
|
+
count: 2,
|
|
1120
|
+
cite: 'blackrock_depths.cpp:127-136 SummonCreature NPC_ANVILRAGE_GUARDMAN ×2',
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
kind: 'set_instance_data',
|
|
1124
|
+
field: TYPE_BRIDGE,
|
|
1125
|
+
value: INSTANCE_DATA.DONE,
|
|
1126
|
+
cite: 'blackrock_depths.cpp:141 SetData(TYPE_BRIDGE, DONE)',
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
kind: 'flavor',
|
|
1130
|
+
text: 'Anvilrage Guardsmen ambush from the Shadowforge bridge!',
|
|
1131
|
+
cite: 'blackrock_depths.cpp:115-143 AreaTrigger_at_shadowforge_bridge',
|
|
1132
|
+
},
|
|
1133
|
+
],
|
|
1134
|
+
cite: 'blackrock_depths.cpp:115-143 at_shadowforge_bridge',
|
|
1135
|
+
},
|
|
1136
|
+
cites: ['blackrock_depths.cpp:99-143', 'blackrock_depths.h:25 TYPE_BRIDGE=10'],
|
|
1137
|
+
};
|
|
1138
|
+
|
|
1139
|
+
/** Cite: blackrock_depths.cpp at_ring_of_law + npc_grimstone arena event */
|
|
1140
|
+
export const AT_RING_OF_LAW: ScriptDevIR = {
|
|
1141
|
+
name: 'at_ring_of_law',
|
|
1142
|
+
boundCreatures: [],
|
|
1143
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1144
|
+
spellIds: [
|
|
1145
|
+
SPELL_SUMMON_THELRIN_DND,
|
|
1146
|
+
SPELL_ASHCROMBES_TELEPORT_A,
|
|
1147
|
+
SPELL_ARENA_FLASH_A,
|
|
1148
|
+
SPELL_ARENA_FLASH_B,
|
|
1149
|
+
SPELL_ARENA_FLASH_C,
|
|
1150
|
+
SPELL_ARENA_FLASH_D,
|
|
1151
|
+
],
|
|
1152
|
+
timers: [],
|
|
1153
|
+
goUse: {
|
|
1154
|
+
goEntries: [],
|
|
1155
|
+
actions: [
|
|
1156
|
+
{
|
|
1157
|
+
kind: 'set_instance_data',
|
|
1158
|
+
field: TYPE_RING_OF_LAW,
|
|
1159
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
1160
|
+
cite: 'blackrock_depths.cpp Ring of Law AT / Grimstone starts TYPE_RING_OF_LAW',
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
kind: 'flavor',
|
|
1164
|
+
text: 'The Ring of Law begins - High Justice Grimstone presides!',
|
|
1165
|
+
cite: 'blackrock_depths.cpp:146-540 at_ring_of_law + npc_grimstone escort event',
|
|
1166
|
+
},
|
|
1167
|
+
],
|
|
1168
|
+
cite: 'blackrock_depths.cpp at_ring_of_law; InstanceDef objectGate GO 161525 remains product stand-in',
|
|
1169
|
+
},
|
|
1170
|
+
unusedBindings: [
|
|
1171
|
+
{
|
|
1172
|
+
entry: SPELL_ASHCROMBES_TELEPORT_B,
|
|
1173
|
+
kind: 'creature',
|
|
1174
|
+
reason:
|
|
1175
|
+
'SPELL_ASHCROMBES_TELEPORT_B=6422 (Ashcrombe teleport visual on Grimstone arena flash) is ABSENT from the spell bake and spell-refs-missing payload - cosmetic only; arena combat uses InstanceDef ring-of-law waves. Do not stub.',
|
|
1176
|
+
cite: 'blackrock_depths.cpp:172 SPELL_ASHCROMBES_TELEPORT_B=6422; bake has no row',
|
|
1177
|
+
},
|
|
1178
|
+
],
|
|
1179
|
+
cites: [
|
|
1180
|
+
'blackrock_depths.cpp:146-540 npc_grimstone + at_ring_of_law',
|
|
1181
|
+
'blackrock_depths.h:16 TYPE_RING_OF_LAW=1',
|
|
1182
|
+
],
|
|
1183
|
+
};
|
|
1184
|
+
|
|
1185
|
+
// Cite: blackrock_depths.cpp:235+ npc_grimstone escort AI Arena event choreography (teleports, flashes,
|
|
1186
|
+
// wave summons) — product InstanceDef ring-of-law waves stand in; IR documents binding + spell kit.
|
|
1187
|
+
export const NPC_GRIMSTONE_SCRIPT: ScriptDevIR = {
|
|
1188
|
+
name: 'npc_grimstone',
|
|
1189
|
+
boundCreatures: [NPC_GRIMSTONE],
|
|
1190
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1191
|
+
spellIds: [
|
|
1192
|
+
SPELL_SUMMON_THELRIN_DND,
|
|
1193
|
+
SPELL_ASHCROMBES_TELEPORT_A,
|
|
1194
|
+
SPELL_ARENA_FLASH_A,
|
|
1195
|
+
SPELL_ARENA_FLASH_B,
|
|
1196
|
+
SPELL_ARENA_FLASH_C,
|
|
1197
|
+
SPELL_ARENA_FLASH_D,
|
|
1198
|
+
],
|
|
1199
|
+
timers: [],
|
|
1200
|
+
cites: [
|
|
1201
|
+
'blackrock_depths.cpp:235-540 npc_grimstoneAI escort event',
|
|
1202
|
+
'blackrock_depths.cpp:169-176 arena flash / teleport spells',
|
|
1203
|
+
],
|
|
1204
|
+
};
|
|
1205
|
+
|
|
1206
|
+
/** Cite: blackrock_depths.cpp:707+ Nagmara romance / QUEST_POTION_LOVE */
|
|
1207
|
+
export const NPC_MISTRESS_NAGMARA_SCRIPT: ScriptDevIR = {
|
|
1208
|
+
name: 'npc_mistress_nagmara',
|
|
1209
|
+
boundCreatures: [NPC_MISTRESS_NAGMARA],
|
|
1210
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1211
|
+
spellIds: [SPELL_POTION_LOVE, SPELL_NAGMARA_ROCKNOT],
|
|
1212
|
+
timers: [],
|
|
1213
|
+
questRewarded: [
|
|
1214
|
+
{
|
|
1215
|
+
questId: 4201,
|
|
1216
|
+
actions: [
|
|
1217
|
+
{
|
|
1218
|
+
kind: 'set_instance_data',
|
|
1219
|
+
field: TYPE_NAGMARA,
|
|
1220
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
1221
|
+
cite: 'blackrock_depths.cpp:837-850 QuestRewarded → DoPotionOfLoveIfCan romance phase',
|
|
1222
|
+
},
|
|
1223
|
+
{
|
|
1224
|
+
kind: 'flavor',
|
|
1225
|
+
text: 'Nagmara and Rocknot leave for a private moment…',
|
|
1226
|
+
cite: 'blackrock_depths.cpp:727-802 DoPotionOfLoveIfCan phase machine',
|
|
1227
|
+
},
|
|
1228
|
+
],
|
|
1229
|
+
cite: 'blackrock_depths.cpp:837-850 QuestRewarded_npc_mistress_nagmara QUEST_POTION_LOVE=4201',
|
|
1230
|
+
},
|
|
1231
|
+
],
|
|
1232
|
+
cites: [
|
|
1233
|
+
'blackrock_depths.cpp:687-850 npc_mistress_nagmara',
|
|
1234
|
+
'blackrock_depths.h:28 TYPE_NAGMARA=13',
|
|
1235
|
+
],
|
|
1236
|
+
};
|
|
1237
|
+
|
|
1238
|
+
/** Cite: blackrock_depths.cpp:877+ Rocknot beer quest / bar break */
|
|
1239
|
+
export const NPC_ROCKNOT_SCRIPT: ScriptDevIR = {
|
|
1240
|
+
name: 'npc_rocknot',
|
|
1241
|
+
boundCreatures: [NPC_PRIVATE_ROCKNOT],
|
|
1242
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1243
|
+
spellIds: [SPELL_DRUNKEN_RAGE],
|
|
1244
|
+
timers: [],
|
|
1245
|
+
questRewarded: [
|
|
1246
|
+
{
|
|
1247
|
+
questId: 4295,
|
|
1248
|
+
actions: [
|
|
1249
|
+
{
|
|
1250
|
+
kind: 'set_instance_data',
|
|
1251
|
+
field: TYPE_ROCKNOT,
|
|
1252
|
+
value: INSTANCE_DATA.SPECIAL,
|
|
1253
|
+
cite: 'blackrock_depths.cpp:1081-1107 ale count SPECIAL; 3 ales → DONE + Phalanx',
|
|
1254
|
+
},
|
|
1255
|
+
{
|
|
1256
|
+
kind: 'yell',
|
|
1257
|
+
textId: -1230000,
|
|
1258
|
+
cite: 'blackrock_depths.cpp:1097 DoScriptText SAY_GOT_BEER=-1230000',
|
|
1259
|
+
},
|
|
1260
|
+
],
|
|
1261
|
+
cite: 'blackrock_depths.cpp:1081-1107 QuestRewarded Rocknot QUEST_ALE=4295',
|
|
1262
|
+
},
|
|
1263
|
+
],
|
|
1264
|
+
cites: [
|
|
1265
|
+
'blackrock_depths.cpp:852-1107 npc_rocknot',
|
|
1266
|
+
'blackrock_depths.h:18 TYPE_ROCKNOT=3',
|
|
1267
|
+
],
|
|
1268
|
+
};
|
|
1269
|
+
|
|
1270
|
+
/** Cite: blackrock_depths.cpp:1156+ Marshal Windsor jail break escort FO6 */
|
|
1271
|
+
export const NPC_MARSHAL_WINDSOR_SCRIPT: ScriptDevIR = {
|
|
1272
|
+
name: 'npc_marshal_windsor',
|
|
1273
|
+
boundCreatures: [NPC_MARSHAL_WINDSOR],
|
|
1274
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1275
|
+
spellIds: [SPELL_WINDSORS_FRENZY],
|
|
1276
|
+
timers: [],
|
|
1277
|
+
questRewarded: [],
|
|
1278
|
+
// QuestAccept 4322 is QI dbscript registry (already ported). Combat frenzy:
|
|
1279
|
+
lifecycle: {
|
|
1280
|
+
onAggro: [
|
|
1281
|
+
{
|
|
1282
|
+
kind: 'cast_self',
|
|
1283
|
+
spellId: SPELL_WINDSORS_FRENZY,
|
|
1284
|
+
castFlags: CAST_FLAG.TRIGGERED | CAST_FLAG.AURA_NOT_PRESENT,
|
|
1285
|
+
cite: 'blackrock_depths.cpp:1241 DoCastSpellIfCan SPELL_WINDSORS_FRENZY TRIGGERED|AURA_NOT_PRESENT',
|
|
1286
|
+
},
|
|
1287
|
+
],
|
|
1288
|
+
},
|
|
1289
|
+
cites: [
|
|
1290
|
+
'blackrock_depths.cpp:1148-1372 npc_marshal_windsor escort Jail Break',
|
|
1291
|
+
'blackrock_depths.h:22 TYPE_QUEST_JAIL_BREAK=7',
|
|
1292
|
+
],
|
|
1293
|
+
};
|
|
1294
|
+
|
|
1295
|
+
/** Cite: blackrock_depths.cpp Tobias Seecher jail escort */
|
|
1296
|
+
export const NPC_TOBIAS_SEECHER_SCRIPT: ScriptDevIR = {
|
|
1297
|
+
name: 'npc_tobias_seecher',
|
|
1298
|
+
boundCreatures: [NPC_TOBIAS],
|
|
1299
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1300
|
+
spellIds: [],
|
|
1301
|
+
timers: [],
|
|
1302
|
+
unusedBindings: [
|
|
1303
|
+
{
|
|
1304
|
+
entry: NPC_TOBIAS,
|
|
1305
|
+
kind: 'creature',
|
|
1306
|
+
reason:
|
|
1307
|
+
'npc_tobias_seecher is a Jail Break escort (quest 4322 companion). Escort/waypoint combat is FO6 / dbscript-owned; no combat cast kit in ScriptDev body. Binding documented for census.',
|
|
1308
|
+
cite: 'blackrock_depths.cpp Tobias escort; blackrock_depths.h:51 NPC_TOBIAS=9679',
|
|
1309
|
+
},
|
|
1310
|
+
],
|
|
1311
|
+
cites: ['blackrock_depths.cpp Jail Break Tobias escort', 'blackrock_depths.h:51'],
|
|
1312
|
+
};
|
|
1313
|
+
|
|
1314
|
+
/** Cite: blackrock_depths.cpp Dughal Stormwing jail escort */
|
|
1315
|
+
export const NPC_DUGHAL_STORMWING_SCRIPT: ScriptDevIR = {
|
|
1316
|
+
name: 'npc_dughal_stormwing',
|
|
1317
|
+
boundCreatures: [NPC_DUGHAL],
|
|
1318
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/blackrock_depths.cpp',
|
|
1319
|
+
spellIds: [],
|
|
1320
|
+
timers: [],
|
|
1321
|
+
unusedBindings: [
|
|
1322
|
+
{
|
|
1323
|
+
entry: NPC_DUGHAL,
|
|
1324
|
+
kind: 'creature',
|
|
1325
|
+
reason:
|
|
1326
|
+
'npc_dughal_stormwing is a Jail Break cell-release escort. Escort FO6 / dbscript-owned; no combat cast kit in ScriptDev body. Binding documented for census.',
|
|
1327
|
+
cite: 'blackrock_depths.cpp Dughal escort; blackrock_depths.h:52 NPC_DUGHAL=9022',
|
|
1328
|
+
},
|
|
1329
|
+
],
|
|
1330
|
+
cites: ['blackrock_depths.cpp Jail Break Dughal escort', 'blackrock_depths.h:52'],
|
|
1331
|
+
};
|
|
1332
|
+
|
|
1333
|
+
// instance_blackrock_depths
|
|
1334
|
+
|
|
1335
|
+
// instance_blackrock_depths. No creature_template.ScriptName — bound through instance_template for
|
|
1336
|
+
// map 230 only. m_auiEncounter[13] runs TYPE_RING_OF_LAW through TYPE_NAGMARA.
|
|
1337
|
+
export const INSTANCE_BLACKROCK_DEPTHS: ScriptDevIR = {
|
|
1338
|
+
name: 'instance_blackrock_depths',
|
|
1339
|
+
boundCreatures: [],
|
|
1340
|
+
sourceFile: 'eastern_kingdoms/blackrock_depths/instance_blackrock_depths.cpp',
|
|
1341
|
+
spellIds: [],
|
|
1342
|
+
timers: [],
|
|
1343
|
+
encounters: [
|
|
1344
|
+
{
|
|
1345
|
+
creatureEntry: NPC_DOOMREL,
|
|
1346
|
+
field: TYPE_TOMB_OF_SEVEN,
|
|
1347
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
1348
|
+
onEvade: INSTANCE_DATA.FAIL,
|
|
1349
|
+
cite: 'instance_blackrock_depths.cpp:537-538,486-493 NPC_DOOMREL tomb',
|
|
1350
|
+
},
|
|
1351
|
+
{
|
|
1352
|
+
creatureEntry: NPC_MAGMUS,
|
|
1353
|
+
field: TYPE_IRON_HALL,
|
|
1354
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
1355
|
+
onAggro: INSTANCE_DATA.IN_PROGRESS,
|
|
1356
|
+
onEvade: INSTANCE_DATA.FAIL,
|
|
1357
|
+
cite: 'instance_blackrock_depths.cpp:465-466,496-497,540-541 Magmus Iron Hall',
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
creatureEntry: NPC_HURLEY_BLACKBREATH,
|
|
1361
|
+
field: TYPE_HURLEY,
|
|
1362
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
1363
|
+
cite: 'instance_blackrock_depths.cpp:543-544 NPC_HURLEY_BLACKBREATH',
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
creatureEntry: NPC_AMBASSADOR_FLAMELASH,
|
|
1367
|
+
field: TYPE_FLAMELASH,
|
|
1368
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
1369
|
+
onAggro: INSTANCE_DATA.IN_PROGRESS,
|
|
1370
|
+
onEvade: INSTANCE_DATA.FAIL,
|
|
1371
|
+
cite: 'boss_ambassador_flamelash.cpp:85-103; instance SetData TYPE_FLAMELASH (rune GO toggle only in SetData)',
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
creatureEntry: NPC_WATCHER_DOOMGRIP,
|
|
1375
|
+
field: TYPE_VAULT,
|
|
1376
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
1377
|
+
cite: 'instance_blackrock_depths.cpp:505-514 vault constructs + Doomgrip → DONE when empty',
|
|
1378
|
+
},
|
|
1379
|
+
],
|
|
1380
|
+
doors: [
|
|
1381
|
+
{
|
|
1382
|
+
field: TYPE_TOMB_OF_SEVEN,
|
|
1383
|
+
goEntry: GO_TOMB_EXIT,
|
|
1384
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
1385
|
+
cite: 'instance_blackrock_depths.cpp:278-279 TYPE_TOMB_OF_SEVEN DONE → GO_TOMB_EXIT',
|
|
1386
|
+
},
|
|
1387
|
+
{
|
|
1388
|
+
field: TYPE_IRON_HALL,
|
|
1389
|
+
goEntry: GO_THRONE_ROOM,
|
|
1390
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
1391
|
+
cite: 'instance_blackrock_depths.cpp:307 TYPE_IRON_HALL DONE → GO_THRONE_ROOM',
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
field: TYPE_VAULT,
|
|
1395
|
+
goEntry: GO_SECRET_DOOR,
|
|
1396
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
1397
|
+
cite: 'instance_blackrock_depths.cpp:234 TYPE_VAULT DONE → GO_SECRET_DOOR',
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
field: TYPE_LYCEUM,
|
|
1401
|
+
goEntry: GO_GOLEM_ROOM_N,
|
|
1402
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
1403
|
+
cite: 'instance_blackrock_depths.cpp:286 TYPE_LYCEUM DONE → GO_GOLEM_ROOM_N',
|
|
1404
|
+
},
|
|
1405
|
+
{
|
|
1406
|
+
field: TYPE_LYCEUM,
|
|
1407
|
+
goEntry: GO_GOLEM_ROOM_S,
|
|
1408
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
1409
|
+
cite: 'instance_blackrock_depths.cpp:287 TYPE_LYCEUM DONE → GO_GOLEM_ROOM_S',
|
|
1410
|
+
},
|
|
1411
|
+
],
|
|
1412
|
+
unusedBindings: [
|
|
1413
|
+
{
|
|
1414
|
+
entry: 0,
|
|
1415
|
+
kind: 'creature',
|
|
1416
|
+
reason:
|
|
1417
|
+
'instance_blackrock_depths has no creature_template.ScriptName - registered only via instance_template map 230 GetInstanceData. Corpus boundCreatures []. 13 TYPE_* encounters + bar/vault/tomb/lyceum/iron-hall door machine.',
|
|
1418
|
+
cite: 'instance_blackrock_depths.cpp:823-828 RegisterSelf Name=instance_blackrock_depths; blackrock_depths.h:10 MAX_ENCOUNTER=13',
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
entry: NPC_SHILL,
|
|
1422
|
+
kind: 'creature',
|
|
1423
|
+
reason:
|
|
1424
|
+
'Shill Dinger 9678 is instance-stored for Jail Break (OnCreatureCreate) and death → TYPE_QUEST_JAIL_BREAK SPECIAL; no dedicated ScriptName AI body in blackrock_depths.cpp. Documented for corpus boundCreatures row.',
|
|
1425
|
+
cite: 'instance_blackrock_depths.cpp:73,516-521 NPC_SHILL jail break; blackrock_depths.h:48',
|
|
1426
|
+
},
|
|
1427
|
+
],
|
|
1428
|
+
cites: [
|
|
1429
|
+
'instance_blackrock_depths.cpp:29-829',
|
|
1430
|
+
'instance_blackrock_depths.cpp:186-399 SetData',
|
|
1431
|
+
'instance_blackrock_depths.cpp:401-437 GetData',
|
|
1432
|
+
'blackrock_depths.h:8-145',
|
|
1433
|
+
],
|
|
1434
|
+
};
|