azeroth-shell 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +35 -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 +144 -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,328 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "blackwing-lair",
|
|
3
|
+
"bosses": [
|
|
4
|
+
{
|
|
5
|
+
"entry": 12435,
|
|
6
|
+
"name": "Razorgore the Untamed",
|
|
7
|
+
"kinds": [
|
|
8
|
+
"use-object",
|
|
9
|
+
"mc",
|
|
10
|
+
"kill-order"
|
|
11
|
+
],
|
|
12
|
+
"cite": "boss_razorgore.cpp orb + eggs + death-prevention",
|
|
13
|
+
"encounterRows": [
|
|
14
|
+
{
|
|
15
|
+
"kind": "kill-order",
|
|
16
|
+
"label": "Legionnaires, mages, dragonspawn (not Razorgore)",
|
|
17
|
+
"cite": "blackwing_lair.h:45-47 NPC_BLACKWING_LEGIONNAIRE 12416, MAGE 12420, DRAGONSPAWN 12422; boss_razorgore.cpp:67,83 SetDeathPrevention until last egg",
|
|
18
|
+
"rule": {
|
|
19
|
+
"id": "raid_enc_12435_kill",
|
|
20
|
+
"action": {
|
|
21
|
+
"kind": "kill_order",
|
|
22
|
+
"entries": [
|
|
23
|
+
12416,
|
|
24
|
+
12420,
|
|
25
|
+
12422
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"conditions": [],
|
|
29
|
+
"enabled": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"kind": "use-object",
|
|
34
|
+
"label": "Click the Orb of Domination",
|
|
35
|
+
"cite": "blackwing_lair.h:57 GO_ORB_OF_DOMINATION 177808 trigger 19832; one bake spawn on map 469",
|
|
36
|
+
"rule": {
|
|
37
|
+
"id": "raid_enc_12435_orb",
|
|
38
|
+
"action": {
|
|
39
|
+
"kind": "use_object",
|
|
40
|
+
"goEntry": 177808
|
|
41
|
+
},
|
|
42
|
+
"conditions": [],
|
|
43
|
+
"enabled": true
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"blockedBy": {
|
|
48
|
+
"mc": "blackwingLair.ts:13 SPELL_POSSESS 19832 orb transfer is a residual - the raid never becomes Razorgore, so there is no MC body to author a row for"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"entry": 13020,
|
|
53
|
+
"name": "Vaelastrasz the Corrupt",
|
|
54
|
+
"kinds": [
|
|
55
|
+
"flee",
|
|
56
|
+
"tank-swap",
|
|
57
|
+
"position",
|
|
58
|
+
"resist"
|
|
59
|
+
],
|
|
60
|
+
"cite": "boss_vaelastrasz.cpp:289-325 the Burning Adrenaline pair, two frontal cones and a 100 yd nova",
|
|
61
|
+
"resist": "fire",
|
|
62
|
+
"tankSwapAura": 18173,
|
|
63
|
+
"fleeAuras": [
|
|
64
|
+
{
|
|
65
|
+
"aura": 23620,
|
|
66
|
+
"radiusYd": 10,
|
|
67
|
+
"cite": "boss_vaelastrasz.cpp:295-301 RANDOM|PLAYER|POWER_MANA; aura-remove.ts:59 23620 -> 23478 radiusYd 10 (+ 23644 instakill on the holder)"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"encounterRows": [
|
|
71
|
+
{
|
|
72
|
+
"kind": "position",
|
|
73
|
+
"label": "Get off his axis (flank him)",
|
|
74
|
+
"cite": "boss_vaelastrasz.cpp:304 FLAME_BREATH 23461 on GetVictim(); :322 TAIL_SWEEP 15847 on self - spell_cone 82 forward and -82 behind, so only the flank clears both",
|
|
75
|
+
"rule": {
|
|
76
|
+
"id": "raid_enc_13020_behind",
|
|
77
|
+
"action": {
|
|
78
|
+
"kind": "move",
|
|
79
|
+
"move": {
|
|
80
|
+
"kind": "flank_target"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"conditions": [
|
|
84
|
+
{
|
|
85
|
+
"subject": "self",
|
|
86
|
+
"metric": "targetAttackingMe",
|
|
87
|
+
"op": "==",
|
|
88
|
+
"value": 0
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"subject": "self",
|
|
92
|
+
"metric": "inTargetCone",
|
|
93
|
+
"op": "==",
|
|
94
|
+
"value": 1
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"subject": "self",
|
|
98
|
+
"metric": "debuffPresent",
|
|
99
|
+
"op": "==",
|
|
100
|
+
"value": 0,
|
|
101
|
+
"ref": 23620
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"enabled": true
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"entry": 12017,
|
|
111
|
+
"name": "Broodlord Lashlayer",
|
|
112
|
+
"kinds": [],
|
|
113
|
+
"cite": "boss_broodlord_lashlayer.cpp:35-38 CLEAVE / KNOCK_AWAY 18670 / BLAST_WAVE 23331 / MORTAL_STRIKE 24573. 24573 bakes healing_taken_pct -50 for 5000 ms and does not stack, so it expires inside one taunt cycle - not a tank-swap aura like 23340 or 25646"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"entry": 11983,
|
|
117
|
+
"name": "Firemaw",
|
|
118
|
+
"kinds": [
|
|
119
|
+
"cloak",
|
|
120
|
+
"resist"
|
|
121
|
+
],
|
|
122
|
+
"cite": "boss_firemaw.cpp:32 SPELL_SHADOW_FLAME 22539; Flame Buffet is not a tank-swap aura",
|
|
123
|
+
"resist": "fire",
|
|
124
|
+
"cloak": {
|
|
125
|
+
"item": 15138,
|
|
126
|
+
"dummySpell": 22683,
|
|
127
|
+
"who": "tanks"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"entry": 14601,
|
|
132
|
+
"name": "Ebonroc",
|
|
133
|
+
"kinds": [
|
|
134
|
+
"cloak",
|
|
135
|
+
"resist",
|
|
136
|
+
"tank-swap"
|
|
137
|
+
],
|
|
138
|
+
"cite": "boss_ebonroc.cpp:34,87-90 SPELL_SHADOW_OF_EBONROC 23340 on victim; :32 Shadow Flame",
|
|
139
|
+
"resist": "fire",
|
|
140
|
+
"cloak": {
|
|
141
|
+
"item": 15138,
|
|
142
|
+
"dummySpell": 22683,
|
|
143
|
+
"who": "tanks"
|
|
144
|
+
},
|
|
145
|
+
"tankSwapAura": 23340
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"entry": 11981,
|
|
149
|
+
"name": "Flamegor",
|
|
150
|
+
"kinds": [
|
|
151
|
+
"cloak",
|
|
152
|
+
"resist"
|
|
153
|
+
],
|
|
154
|
+
"cite": "boss_flamegor.cpp:32 SPELL_SHADOW_FLAME 22539; Frenzy is Tranq, not a tank-swap aura",
|
|
155
|
+
"resist": "fire",
|
|
156
|
+
"cloak": {
|
|
157
|
+
"item": 15138,
|
|
158
|
+
"dummySpell": 22683,
|
|
159
|
+
"who": "tanks"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"entry": 14020,
|
|
164
|
+
"name": "Chromaggus",
|
|
165
|
+
"kinds": [
|
|
166
|
+
"halt-dps"
|
|
167
|
+
],
|
|
168
|
+
"cite": "boss_chromaggus.cpp:113 elemental shield; :134 brood afflictions",
|
|
169
|
+
"encounterRows": [
|
|
170
|
+
{
|
|
171
|
+
"kind": "halt-dps",
|
|
172
|
+
"label": "Only fire (Elemental Shield)",
|
|
173
|
+
"cite": "SpellEffects.cpp:819-829 case 22276 CastSpell(m_caster, elemshields[urand(0,4)]); spell 22277 bake +1100 schoolMask is fire, durationIndex 21 until-cancelled",
|
|
174
|
+
"rule": {
|
|
175
|
+
"id": "raid_enc_14020_halt_22277",
|
|
176
|
+
"action": {
|
|
177
|
+
"kind": "halt_dps",
|
|
178
|
+
"school": [
|
|
179
|
+
"holy",
|
|
180
|
+
"nature",
|
|
181
|
+
"frost",
|
|
182
|
+
"shadow",
|
|
183
|
+
"arcane"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"conditions": [
|
|
187
|
+
{
|
|
188
|
+
"subject": "target",
|
|
189
|
+
"metric": "buffPresent",
|
|
190
|
+
"op": "==",
|
|
191
|
+
"value": 1,
|
|
192
|
+
"ref": 22277
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
"enabled": true
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"kind": "halt-dps",
|
|
200
|
+
"label": "Only frost (Elemental Shield)",
|
|
201
|
+
"cite": "SpellEffects.cpp:819-829 case 22276 CastSpell(m_caster, elemshields[urand(0,4)]); spell 22278 bake +1100 schoolMask is frost, durationIndex 21 until-cancelled",
|
|
202
|
+
"rule": {
|
|
203
|
+
"id": "raid_enc_14020_halt_22278",
|
|
204
|
+
"action": {
|
|
205
|
+
"kind": "halt_dps",
|
|
206
|
+
"school": [
|
|
207
|
+
"holy",
|
|
208
|
+
"fire",
|
|
209
|
+
"nature",
|
|
210
|
+
"shadow",
|
|
211
|
+
"arcane"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"conditions": [
|
|
215
|
+
{
|
|
216
|
+
"subject": "target",
|
|
217
|
+
"metric": "buffPresent",
|
|
218
|
+
"op": "==",
|
|
219
|
+
"value": 1,
|
|
220
|
+
"ref": 22278
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"enabled": true
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"kind": "halt-dps",
|
|
228
|
+
"label": "Only shadow (Elemental Shield)",
|
|
229
|
+
"cite": "SpellEffects.cpp:819-829 case 22276 CastSpell(m_caster, elemshields[urand(0,4)]); spell 22279 bake +1100 schoolMask is shadow, durationIndex 21 until-cancelled",
|
|
230
|
+
"rule": {
|
|
231
|
+
"id": "raid_enc_14020_halt_22279",
|
|
232
|
+
"action": {
|
|
233
|
+
"kind": "halt_dps",
|
|
234
|
+
"school": [
|
|
235
|
+
"holy",
|
|
236
|
+
"fire",
|
|
237
|
+
"nature",
|
|
238
|
+
"frost",
|
|
239
|
+
"arcane"
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"conditions": [
|
|
243
|
+
{
|
|
244
|
+
"subject": "target",
|
|
245
|
+
"metric": "buffPresent",
|
|
246
|
+
"op": "==",
|
|
247
|
+
"value": 1,
|
|
248
|
+
"ref": 22279
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
"enabled": true
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"kind": "halt-dps",
|
|
256
|
+
"label": "Only nature (Elemental Shield)",
|
|
257
|
+
"cite": "SpellEffects.cpp:819-829 case 22276 CastSpell(m_caster, elemshields[urand(0,4)]); spell 22280 bake +1100 schoolMask is nature, durationIndex 21 until-cancelled",
|
|
258
|
+
"rule": {
|
|
259
|
+
"id": "raid_enc_14020_halt_22280",
|
|
260
|
+
"action": {
|
|
261
|
+
"kind": "halt_dps",
|
|
262
|
+
"school": [
|
|
263
|
+
"holy",
|
|
264
|
+
"fire",
|
|
265
|
+
"frost",
|
|
266
|
+
"shadow",
|
|
267
|
+
"arcane"
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
"conditions": [
|
|
271
|
+
{
|
|
272
|
+
"subject": "target",
|
|
273
|
+
"metric": "buffPresent",
|
|
274
|
+
"op": "==",
|
|
275
|
+
"value": 1,
|
|
276
|
+
"ref": 22280
|
|
277
|
+
}
|
|
278
|
+
],
|
|
279
|
+
"enabled": true
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"kind": "halt-dps",
|
|
284
|
+
"label": "Only arcane (Elemental Shield)",
|
|
285
|
+
"cite": "SpellEffects.cpp:819-829 case 22276 CastSpell(m_caster, elemshields[urand(0,4)]); spell 22281 bake +1100 schoolMask is arcane, durationIndex 21 until-cancelled",
|
|
286
|
+
"rule": {
|
|
287
|
+
"id": "raid_enc_14020_halt_22281",
|
|
288
|
+
"action": {
|
|
289
|
+
"kind": "halt_dps",
|
|
290
|
+
"school": [
|
|
291
|
+
"holy",
|
|
292
|
+
"fire",
|
|
293
|
+
"nature",
|
|
294
|
+
"frost",
|
|
295
|
+
"shadow"
|
|
296
|
+
]
|
|
297
|
+
},
|
|
298
|
+
"conditions": [
|
|
299
|
+
{
|
|
300
|
+
"subject": "target",
|
|
301
|
+
"metric": "buffPresent",
|
|
302
|
+
"op": "==",
|
|
303
|
+
"value": 1,
|
|
304
|
+
"ref": 22281
|
|
305
|
+
}
|
|
306
|
+
],
|
|
307
|
+
"enabled": true
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"entry": 11583,
|
|
314
|
+
"name": "Nefarian",
|
|
315
|
+
"kinds": [
|
|
316
|
+
"cloak",
|
|
317
|
+
"resist"
|
|
318
|
+
],
|
|
319
|
+
"cite": "boss_nefarian.cpp landing Shadow Flame; class calls",
|
|
320
|
+
"resist": "fire",
|
|
321
|
+
"cloak": {
|
|
322
|
+
"item": 15138,
|
|
323
|
+
"dummySpell": 22683,
|
|
324
|
+
"who": "raid"
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
]
|
|
328
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "deadmines",
|
|
3
|
+
"note": "Reviewed for E5.4 against eventai/deadmines.ts, acid_classic.sql and boss_mr_smite.cpp. All eight bosses come back kinds: [] and that is the finding - the whole wing carries exactly two spells with a radius, and neither one leaves a yard to stand on. Cookie's Acid Splash 6306 is a 5.0 yd disc, which is melee reach itself, and Mr. Smite's Smite Stomp 6432 is 45.0 yd, wider than the ranged stand and every body in the room. Everything else lands on the tank or on one random party member, so the answers are a trinket, a Cure Poison or a dispel - class rows.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 644,
|
|
7
|
+
"name": "Rhahk'Zor",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "eventai/deadmines.ts:130-147, acid_classic.sql:16959-16960 creature_id=644. His whole combat kit is one spell. Rhahk'Zor Slam 6304 is targetA 6 with radiusYd 0 and rangeIdx 12 (5 yd) - a 3 s stun (mechanic 12) plus 63 school damage on whoever he is hitting, repeating every 15-25 s. Single target on the tank, nothing on the floor."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 3586,
|
|
13
|
+
"name": "Miner Johnson",
|
|
14
|
+
"kinds": [],
|
|
15
|
+
"cite": "eventai/deadmines.ts:247-269, acid_classic.sql:16993-16994 creature_id=3586. Pierce Armor 12097 is targetA 6 at rangeIdx 2 (5 yd) with radiusYd 0 - aura 101 MOD_RESISTANCE_PCT basePoints -76 miscValue 1, a 20 s armor shred on his current target every 45-60 s. He also flees for assist at 15% (ACTION_T_FLEE_FOR_ASSIST), which is mob motion and not a party verb."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"entry": 642,
|
|
19
|
+
"name": "Sneed's Shredder",
|
|
20
|
+
"kinds": [],
|
|
21
|
+
"cite": "eventai/deadmines.ts:82-105, acid_classic.sql:16954-16955 creature_id=642. Distracting Pain 3603 is targetA 6, aura 65 MOD_CASTING_SPEED_NOT_STACK basePoints -36 for 15 s; Terrify 7399 is targetA 6, mechanic 5 fear for 4 s, dispel 1 magic, cast on EventAI target 5 HOSTILE_RANDOM_NOT_TOP. Both are single target with radiusYd 0, and a fear on one random party member is Fear Ward, Tremor Totem or a trinket - class rows. Eject Sneed 5141 (Effect 41 SUMMON_WILD miscValue 643) drops Sneed on death, ported at deadmines.ts:211 as onDeathSummon, and a summon has no ground to stand out of."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"entry": 1763,
|
|
25
|
+
"name": "Gilnid",
|
|
26
|
+
"kinds": [],
|
|
27
|
+
"cite": "eventai/deadmines.ts:219-241, acid_classic.sql:16990-16991 creature_id=1763. Molten Metal 5213 is his only combat cast: targetA 6 at rangeIdx 2 (5 yd), radiusYd 0, stacking aura 3 periodic 29 every 3 s over 15 s with aura 33 MOD_DECREASE_SPEED basePoints -51 and aura 138 MOD_MELEE_HASTE basePoints -55. A single-target DoT plus a snare is a heal and a dispel, not a position."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"entry": 646,
|
|
31
|
+
"name": "Mr. Smite",
|
|
32
|
+
"kinds": [],
|
|
33
|
+
"note": "Mr. Smite's weapon swap is a tank and healer problem, not a party one. The stomp that opens it reaches 45 yards, so there is nowhere to stand, and it stuns everyone it touches. Hold threat through the swap and heal the slam that follows it.",
|
|
34
|
+
"cite": "boss_mr_smite.cpp:203-251 and :132-167. There are no ACID rows for 646 at all - creature_template gives him ScriptName boss_mr_smite and no AIName, so the C++ is the whole kit. The stagger is a tank-and-healer problem: at <66% and again at <33% he casts Smite Stomp 6432, targetA 22 / tgtB 15 at radiusYd 45.0 (SpellRadius index 11) for a 10 s stun (aura 12), then AttackStop(true), walks to GO_SMITE_CHEST, kneels 3 s, re-equips (axe pair above 33%, hammer 6436 below) and PhaseEquipEnd re-picks ATTACKING_TARGET_TOPAGGRO. No move verb can answer that disc: 45 yd is nine times melee reach and wider than the 25 yd ranged stand (stand.ts:20), CastingTimeIndex 1 makes it instant so there is no cast to walk out of ahead of time, and it is a stun, so once it lands nobody can move at all. What is left is threat and healing - phase 2 adds Thrash 12787 (aura 42 proc triggering 3391 ADD_EXTRA_ATTACKS), phase 3 Smite Slam 6435 every 11 s (mechanic 12, 3 s stun plus 49 damage, targetA 6), and the iron-clad door in front of him is already an objectGate on the defias-cannon encounter (deadmines.ts:248-256)."
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"entry": 647,
|
|
38
|
+
"name": "Captain Greenskin",
|
|
39
|
+
"kinds": [],
|
|
40
|
+
"cite": "eventai/deadmines.ts:190-213, acid_classic.sql:16967-16968 creature_id=647. Poisoned Harpoon 5208 goes on EventAI target 4 HOSTILE_RANDOM at rangeIdx 7 (10 yd) with radiusYd 0 - dispel 4 poison, aura 3 ticking 44 every 10 s for 60 s plus Effect 58 weapon damage. Cleave 5532 is Effect 58 targetA 6 at rangeIdx 2 (5 yd) with NO row in src_spell_cone, so it is a single-target melee hit and not an arc to stand out of. A poison DoT is Cure Poison, which is a class row."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"entry": 639,
|
|
44
|
+
"name": "Edwin VanCleef",
|
|
45
|
+
"kinds": [],
|
|
46
|
+
"cite": "eventai/deadmines.ts:16-76, acid_classic.sql:16941-16947 creature_id=639, and his src_creature_template_spells row is all zeros. Five of his seven scripts are ACTION_T_TEXT. VanCleef's Allies 5200 at 50% is Effect 42 SUMMON_GUARDIAN miscValue 636 Defias Blackguard for 300 s - a summon, so there is no ground to stand out of, and nothing in the ACID rows or the instance C++ names an order the adds have to die in. Thrash 12787 (proc aura 42 triggering 3391) and Dual Wield 674 are targetA 1 self."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"entry": 645,
|
|
50
|
+
"name": "Cookie",
|
|
51
|
+
"kinds": [],
|
|
52
|
+
"cite": "eventai/deadmines.ts:153-184, acid_classic.sql:16962-16964 creature_id=645. Acid Splash 6306 is the one disc in his kit: targetA 22 / tgtB 15 at radiusYd 5.0, aura 3 ticking 49 every 5 s for 30 s, fired every 57-66 s. 5.0 yd is exactly melee reach (MELEE_REACH_YD 5, combatGeometry.ts:37), so backing out of it means not meleeing Cookie at all, and the ranged stand at 25 yd is already clear - there is no yard in between for a verb to park on. Cookie's Cooking 5174 is Effect 10 HEAL targetA 1 self on a 2000 ms cast at 50%, so the answer is a kick or a Counterspell, and he flees for assist at 15%."
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "dire-maul-east",
|
|
3
|
+
"note": "Reviewed for E5.4 against eventai/dire-maul-east.ts, acid_classic.sql:14996-15231 and the Dire Maul cpp. There is no per-boss script in the core - dire_maul.cpp:33-346 is the warlock Dreadsteed ritual and nothing else, and instance_dire_maul.cpp only records Zevrim's death for the Ironbark door (:417-418) - so every kit in this wing is EventAI plus the baked charm bar, and only 13280 and 11492 have an in-tree overlay at all (eventai/dire-maul-east.ts:321-324). All six bosses come back kinds: []. Zevrim Thornhoof is the one fight that asks for a real run-out, and both verbs that could answer a 20 yd circle fail on him for sourced reasons - his blockedBy writes them out.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 14354,
|
|
7
|
+
"name": "Pusillin",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "acid_classic.sql:15156-15160 creature_id=14354 is the whole kit; he has no overlay in eventai/dire-maul-east.ts. 1435401 puts him in ranged mode at 35 yd, and from there Fireball 15228 (targetA 6, rangeMax 40, castTimeMs 3000) and Fire Blast 14145 (targetA 6, rangeMax 20) are single-target nukes with no radiusYd. Blast Wave 22424 is the only shape in the kit: aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, castTimeMs 0, 243-281 fire plus a 51% snare for 6 s - an instant disc thrown by a mob standing 35 yd out, so it only ever reaches whoever chased him, and there is no cast bar and no aura for a walk to gate on. He is faction 35 until the fifth gossip flips dme-pusillin-hostile (dire-maul-east.ts:110, :393-394), so the chase is a gossip chain and not a positional ask either."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 11490,
|
|
13
|
+
"name": "Zevrim Thornhoof",
|
|
14
|
+
"kinds": [
|
|
15
|
+
"position"
|
|
16
|
+
],
|
|
17
|
+
"cite": "acid_classic.sql:14996-14997 creature_id=11490 - two cast rows, no overlay in eventai/dire-maul-east.ts. Sacrifice 22651 every 16-24 s is targetA 6 tgtB 17 TARGET_LOCATION_DATABASE at rangeMax 40: it teleports one raider onto the altar, stuns them 8 s and leeches 300 a second off them for the duration. The spell MOVES its own victim, so no move verb can pre-empt it and the answer is a heal. Intense Pain 22478 every 12-18 s is the shape that does ask for a response - aoeShape ground radiusYd 20, tgtA 18 TARGET_LOCATION_CASTER_DEST tgtB 16, castTimeMs 1000, a 200 shadow tick every 3 s for 15 s, dispel 1 magic - and neither verb reaches it, see blockedBy.",
|
|
18
|
+
"note": "Intense Pain drops a 20 yd circle on Zevrim every 12 to 18 seconds, 200 shadow a tick for 15 seconds. The melee have to eat it. The ranged only need to stand a yard further back.",
|
|
19
|
+
"encounterRows": [
|
|
20
|
+
{
|
|
21
|
+
"kind": "position",
|
|
22
|
+
"label": "Casters step out of Intense Pain",
|
|
23
|
+
"cite": "Intense Pain 22478 is aoeShape ground radiusYd 20, rawEffects targetA 18 TARGET_LOCATION_CASTER_DEST and targetB 16, castTimeMs 1000, a 200 shadow tick every 3 s for 15 s, cast every 12-18 s (acid_classic.sql:14996-14997 creature_id=11490). The circle is ON HIM: applySpell.ts:1262 sites a ground pool with spellAoeFromCaster, and 22478 has rangeMax 0 so that returns true on its first line (combatGeometry.ts:357). keep_range with minYd 21 and entry 11490 is therefore the same row Archaedas and Princess Theradras carry - isWithinRadiusYd hits at <= (combatGeometry.ts:216-228) so 21 is the first clear yard, armed wider at 24 so a row released on the yard it parks on does not re-arm on his next step, and RANGED_STAND_DEFAULT_YD 25 (stand.ts:20) sits outside 24 so the camp is not armed all fight. isCaster keeps the melee out of it. avoid_zone is still the WRONG verb here and that half of the old reason stands: 22478 is caster-centred, so hazards.ts:114-128 publishes Zevrim’s own body as a permanent 20 yd hazard, hazardMatches (:134-136) matches the id against that body as well as the pool, and sessionMechanicMove.ts:492-523 steps away from the DEEPEST match - which would hold the tank 20.5 yd off him for the whole fight. Sacrifice 22651 is not a position ask at all: it teleports its own victim onto the altar, so no move verb can pre-empt it and the answer is a heal.",
|
|
24
|
+
"rule": {
|
|
25
|
+
"id": "raid_enc_11490_range_22478",
|
|
26
|
+
"action": {
|
|
27
|
+
"kind": "move",
|
|
28
|
+
"move": {
|
|
29
|
+
"kind": "keep_range",
|
|
30
|
+
"minYd": 21,
|
|
31
|
+
"entry": 11490
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"conditions": [
|
|
35
|
+
{
|
|
36
|
+
"subject": "self",
|
|
37
|
+
"metric": "isCaster",
|
|
38
|
+
"op": "==",
|
|
39
|
+
"value": 1
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"subject": "self",
|
|
43
|
+
"metric": "creatureDistanceYd",
|
|
44
|
+
"op": "<=",
|
|
45
|
+
"value": 24,
|
|
46
|
+
"ref": 11490
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"enabled": true
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"entry": 13280,
|
|
56
|
+
"name": "Hydrospawn",
|
|
57
|
+
"kinds": [
|
|
58
|
+
"position"
|
|
59
|
+
],
|
|
60
|
+
"cite": "eventai/dire-maul-east.ts:38-79 scripts 1328001-1328004, acid_classic.sql:15062-15065 creature_id=13280, a block whose own header says NEED MORE OFFICIAL DATA. Riptide 22419 every 14.3-25.3 s is aoeShape pbaoe radiusYd 10 targetA 22 tgtB 15 castTimeMs 0, 85-115 frost plus a knock-back, and Submersion 22420 every 3-6 s is pbaoe radiusYd 15 castTimeMs 0, dispel 1 magic, -10 stamina for 60 s. Both are instant with no aura on him, so nothing exists for buffPresent or castingPresent to gate a walk on, and the 20-25 yd ranged stand (stand.ts:18,20) is already outside both while the melee are inside because that is where melee happens. Summon Hydroling 22714 at 40% is Effect 42 miscValue 14350, a body whose whole kit is Hydrojet 22716 on spawn (acid_classic.sql:15148).",
|
|
61
|
+
"blockedBy": {
|
|
62
|
+
"position": "Massive Geyser 22421 is the one thing here a raider should step off, and there is no window to step in. It is Effect 41 tgtA 53 miscValue 14122 with castTimeMs 1500, cast on a random raider (acid_classic.sql:15064, target 4), so it plants a Massive Geyser body at that raider's feet - and that body fires on the tick it arrives: acid_classic.sql:15069 creature_id=14122 is a single EVENT_T 11 SPAWNED script that casts Water 22422, then disables its own movement and melee. 22422 is aoeShape pbaoe radiusYd 10 for 463-537 frost plus a knock-back, and as of 2026-08-26 that knock is real - effect 98 was dropped by the mapper and 22422 now bakes knock_back horizontal 10 vertical 10 beside its direct_damage. 22421's Effect 41 bakes too (summon_wild creature 14122 count 1), so the body really does plant. A keep_range on entry 14122 could only fire after the blast has already landed, and the only real window is the 1500 ms cast of 22421, which names a point nobody knows until the summon exists. avoid_zone has nothing to name either: 22422 is pbaoe, not ground, so hazards.ts:75-85 refuses it and no hazard is published."
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"entry": 14327,
|
|
67
|
+
"name": "Lethtendris",
|
|
68
|
+
"kinds": [],
|
|
69
|
+
"cite": "acid_classic.sql:15135-15140 creature_id=14327, no overlay in eventai/dire-maul-east.ts. Shadow Bolt Volley 17228 is the only shape: aoeShape pbaoe radiusYd 30, targetA 22 tgtB 15, castTimeMs 0, 128-172 shadow - a 30 yd disc centred on her that already reaches past the 25 yd ranged stand (stand.ts:20), instant so there is nothing to react to, and a park at 31 yd would put the casters outside their own 30 yd range. That is a flat unavoidable nuke, not a position. The rest is single target or a curse: Void Bolt 22709 (castTimeMs 4000, rangeMax 100, 925-1075), Immolate 12742, Curse of Tongues 13338 and Curse of Thorns 16247 (both dispel 2, a decurse), and Enlarge 22710, a 30 s +100% haste buff she puts on her imp Pimgib 14349 (acid_classic.sql:15139), dispel 1 and so a purge. Every answer here lives in the class rotation."
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"entry": 11492,
|
|
73
|
+
"name": "Alzzin the Wildshaper",
|
|
74
|
+
"kinds": [
|
|
75
|
+
"kill-order"
|
|
76
|
+
],
|
|
77
|
+
"cite": "eventai/dire-maul-east.ts:85-319 scripts 1149201-1149221, acid_classic.sql:15000-15020 creature_id=11492. He cycles Dire Wolf Form 22660 and Tree Form 22688 off a phase mask and not one ability in any of the three phases carries a radiusYd: Wither 22662 and Enervate 22661 are targetA 6 at rangeMax 40, Vicious Bite 19319, Mangle 22689, Disarm 22691 and Knock Away 10101 are targetA 6 at rangeMax 5 to 10, and both forms are targetA 1 self buffs. The two things the party does answer are class rows - Thorns 22128 on aggro is targetA 21 friendly with dispel 1, a purge, and Wild Regeneration 7948 is a 3000 ms self heal, an interrupt. Honest about the payloads: 19319 and 10101 bake with effects: [], because the DBC opcodes are 58 WEAPON_DAMAGE and 98 KNOCK_BACK, which the bake has no mapper for.",
|
|
78
|
+
"blockedBy": {
|
|
79
|
+
"kill-order": "at 40% HP he drops both forms, calls for help at 100 yd and summons FIFTEEN Alzzin's Minion 11460 in one burst (acid_classic.sql:15012-15018, summon ids 41-55 at eventai/dire-maul-east.ts:16-32). Fifteen bodies at once is the shape a kill order exists for, and nothing in the DB names one: acid_classic.sql:14895 creature_id=11460 is their ONLY script, a Hate to Zero 10095 on spawn, so no minion heals him, none buffs him, and all fifteen are the same entry. A kill_order over fifteen copies of one entry is the default rotation with extra words."
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"entry": 16097,
|
|
84
|
+
"name": "Isalien",
|
|
85
|
+
"kinds": [
|
|
86
|
+
"kill-order"
|
|
87
|
+
],
|
|
88
|
+
"cite": "acid_classic.sql:15223-15231 creature_id=16097, the Tier 0.5 Brazier of Beckoning summon wired at dire-maul-east.ts:118-127 (goEntry 181047, Alzzin's room). 1609701 puts her in ranged mode at 25 yd and the whole kit is single target with no radiusYd and no aoeShape: Net 12024 (rangeMax 20, mechanic 7, a 5 s root), Starshards 27636 (500 arcane a second for 6 s at rangeMax 100), Multi-Shot 14443 and Shoot 22907 (targetA 6, range 5-30). Regrowth 27637 at 80% is a 2000 ms heal for 4625-5375, which is an interrupt and a class row, and Call Pet 27639 at 90% is Effect 42 miscValue 16098 - a body, not a party verb.",
|
|
89
|
+
"blockedBy": {
|
|
90
|
+
"kill-order": "the pet is the obvious candidate and the DB punishes taking it first. acid_classic.sql:15225 arms script 1609703 on EVENT_T 25 with param1 16098, so when the Empyrean DIES Isalien casts Vengeance 25164 on herself: targetA 1, a 30 s +50% haste buff in the bake. Killing the pet first hands the boss that buff, so there is no order worth imposing, and the Empyrean's own kit is a second melee body and nothing more - Sundering Cleave 17963, Rake 27638, Enrage 8599 at 50% and Thrash 3391, all targetA 6 or targetA 1 at rangeMax 5 (acid_classic.sql:15233-15236)."
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "dire-maul-north",
|
|
3
|
+
"note": "Reviewed for E5.4 against dire_maul.cpp, instance_dire_maul.cpp and acid_classic.sql. There is no boss AI in the C++ at all - dire_maul.cpp:33-345 is the Dreadsteed ritual and instance_dire_maul.cpp:442 leaves the ogres to ACID - so every kit here is EventAI plus the baked charm bar. Six of the seven come back kinds: [] because every shape in the wing is a disc at melee reach or a single-target swing. King Gordok is the exception, and not for his own kit: Cho'Rush is linked into the same pull and heals him, so that row is a kill order.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 14326,
|
|
7
|
+
"name": "Guard Mol'dar",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "acid_classic.sql:15128-15133 creature_id=14326 is the whole kit - there is no eventai/dire-maul-north.ts overlay in this tree, and instance_dire_maul.cpp:442 says outright that these ogres are handled in ACID. All five cast rows are targetA 6 or targetA 1 with no aoeShape: Shield Charge 15749 (rangeMax 25), Strike 15580 and Shield Bash 11972 (rangeMax 5, the second armed on EVENT_T 13 target-casting), Knock Away 10101 (rangeMax 10), and Enrage 8269, a 120 s self haste at 40% HP. Shield Slam 15655 (a 2 s single-target stun) and Cleave 20691 (rangeMax 15, radiusYd None, no src_spell_cone row) ride the charm bar at creatures.json 14326 charmSpells and carry no shape either, so there is no ground to stand out of."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 14322,
|
|
13
|
+
"name": "Stomper Kreeg",
|
|
14
|
+
"kinds": [],
|
|
15
|
+
"cite": "acid_classic.sql:15085-15092 creature_id=14322. Whirlwind 15577 is aoeShape pbaoe radiusYd 8 and War Stomp 16740 is pbaoe radiusYd 5, both castMs 0 - discs at melee reach, the Stockade shape, and both bake with effects: [] so they carry no payload in this tree at all. Booze Spit 22833 is the one wide shape: aoeShape cone radiusYd 15, src_spell_cone.ConeDegrees 82 (the bake drops coneDegrees, so combatGeometry.ts:461 falls back to 60 deg), -75 hit for 10 s on a 19.0-27.4 s timer - and the product already answers it, because sessionChase.ts:440-461 meleeFlankSlot slides every non-tank melee out of each kit cone and the 20-25 yd ranged stand (stand.ts:18-20) sits outside 15 yd to begin with. Drunken Rage 22835 at 15% and Enrage 8269 at 30% are self buffs."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"entry": 14321,
|
|
19
|
+
"name": "Guard Fengus",
|
|
20
|
+
"kinds": [],
|
|
21
|
+
"cite": "acid_classic.sql:15078-15083 creature_id=14321 - the same six rows as Mol'dar, spell for spell, with the same script numbering. Shield Charge 15749, Strike 15580, Shield Bash 11972, Knock Away 10101 and Enrage 8269 at 40% are all targetA 6 or targetA 1 and none of them has a radiusYd. His one difference is Bruising Blow 22572 on the charm bar (creatures.json 14321 charmSpells): rangeMax 5, targetA 6, -35% strength and -35% agility for 5 s, a single-target debuff and not a shape."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"entry": 14323,
|
|
25
|
+
"name": "Guard Slip'kik",
|
|
26
|
+
"kinds": [],
|
|
27
|
+
"cite": "acid_classic.sql:15094-15099 creature_id=14323 is Mol'dar's kit again; the only difference is Knockout 17307 on the charm bar (creatures.json 14323 charmSpells), rangeMax 10 targetA 6, a 6 s stun with radiusYd None - single target, so a trinket answers it and no move verb can reach it. The trap is this guard's real mechanic and it is not a party position either: instance_dire_maul.cpp:637-660 go_ai_fixed_trap fires when SLIP'KIK himself comes within 0.5 yd of GO 179512, and Ice Lock 22856 (rangeMax 50000, radiusYd None, a stun) lands on him, not on the raid. The product already delivers it out of combat as an objectGate on the encounter (dire-maul-north.ts:538-543, goEntry 179512 setting dm-north-slipkik-frozen so the guard counts alive for tribute), so there is nothing left for a combat row to buy."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"entry": 14325,
|
|
31
|
+
"name": "Captain Kromcrush",
|
|
32
|
+
"kinds": [],
|
|
33
|
+
"cite": "acid_classic.sql:15121-15126 creature_id=14325. Frightening Shout 19134 is the same spell id as Dextren Ward's in the-stockade.json and the same shape: aoeShape pbaoe radiusYd 8, mechanic 5 fear for 8 s, triggering 29544 on the current target - the melee are inside 8 yd because that is where melee happens, the ranged stand is already outside it, and Fear Ward, Tremor Totem and Berserker Rage are the class answers. 5246 on the charm bar (creatures.json 14325 charmSpells) is that identical 8 yd disc. Mortal Cleave 22859 is rangeMax 5 targetA 6 with -50% healing taken for 5 s, Retaliation 22857 is a 15 s self proc of 22858, and Call Reavers 22860 at 50% HP is Effect 42 SUMMON miscValue 11450 for one Gordok Reaver - a body, not a party verb, and nothing in the ACID or the cpp says it must die first."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"entry": 14324,
|
|
37
|
+
"name": "Cho'Rush the Observer",
|
|
38
|
+
"kinds": [],
|
|
39
|
+
"cite": "acid_classic.sql:15100-15119 creature_id=14324, whose own header marks the block 'NEED MULTIPLE OFFICIAL DATA ENCOUNTERS' and instance_dire_maul.cpp:20 admits the randomisation is not handled. Script 1432401 is EVENT_T 11 SPAWNED with ACTION_T_RANDOM_PHASE param1-3 = 1/2/3, so he rolls shaman, mage or priest for the whole fight, and this tree honours that (creatureEventAi.ts:1333-1338 sets state.phase; creatureCastList.ts:1075-1084 eventPhaseBlocked skips the other two masks). Fought alone he asks for nothing positional: Frost Nova 15531 and Arcane Explosion 13745 are aoeShape pbaoe radiusYd 10 and Psychic Scream 22884 is pbaoe radiusYd 8, all inside RANGED_STAND_MIN_YD 20 (stand.ts:18) - the Galgann Firehammer verdict from uldaman.json - and Earthgrab Totem 8376 is a summon of 6066. His healing is what matters, and it only has a second body to land on in the King Gordok pull, so the row that answers it is registered there."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"entry": 11501,
|
|
43
|
+
"name": "King Gordok",
|
|
44
|
+
"kinds": [
|
|
45
|
+
"kill-order"
|
|
46
|
+
],
|
|
47
|
+
"note": "Cho'Rush is dragged into this pull and heals the King every 10 to 20 seconds. Drop Cho'Rush first.",
|
|
48
|
+
"cite": "acid_classic.sql:15028-15032 creature_id=11501 - his own kit asks the party for nothing. Berserker Charge 22886 (rangeMax 40, targetA 4 random), Mortal Strike 15708 and Sunder Armor 15572 (rangeMax 5, targetA 6) are single target, and War Stomp 16727 is aoeShape pbaoe radiusYd 5, a 5 s stun on a melee boss, which is the Stockade disc. What this fight asks for is an order, because it is a two-body pull: src_creature_linking_template (14324, 429, 11501) carries flag 3 = FLAG_AGGRO_ON_AGGRO | FLAG_TO_AGGRO_ON_AGGRO (CreatureLinkingMgr.h:61-62), so touching either brings both, and dire-maul-north.ts:645 packs 14324 into the king-gordok encounter to match.",
|
|
49
|
+
"encounterRows": [
|
|
50
|
+
{
|
|
51
|
+
"kind": "kill-order",
|
|
52
|
+
"label": "Cho'Rush heals the King - kill Cho'Rush first",
|
|
53
|
+
"cite": "Cho'Rush is a real healer in this tree, not a nameplate. creatures.json 14324 spells carries both heals - Healing Wave 15982 (castMs 3000, rangeMax 40, heal 694 to 806) in the shaman phase and Heal 22883 (castMs 3500, heal 1758 to 2042) in the priest phase - each armed on ACID EVENT_T 14 FRIENDLY_HP with hpDeficit 10000 and radius 40, repeating every 10 to 20 s (acid_classic.sql:15103 and :15115). The chain that fires it is closed end to end: combatEnemySpec.ts:100 prefers castEntriesFromAiScripts over the baked creatureCasts row, which drops those params; creatureEventAi.ts:456-459 maps eventParam1/2 onto friendlyHpDeficit and friendlyRadiusYd; creatureCastList.ts:905-908 fires once a pack mate within 40 yd is missing 10,000 HP; pickAction.ts:1991-2005 builds that friendly list from the ENEMY pack; and applyHealEffect.ts:49-53 resolves applyTo 'friendly' onto the enemy pack rather than the party, which is the exact bug that comment was written to close. King Gordok is hpMin 28296 / hpMax 29133, so 10,000 missing is about 66% and the heal is live for the back two thirds of the fight, while Cho'Rush is 19,536 HP - the smaller body, and the cheaper one to remove. kill_order is a filter and does not win the GCD (types.ts:367-375), and buildEncounterRowIndex (raidEncounterTactics.ts:158-182) registers a kill-order rule under every entry it names as well as under the plan row's own, so this holds whichever of the two the party is focused on - the sm-cathedral shape. Two honest limits: in the mage phase he has no heal at all and buffs the King with Bloodlust 16170 instead, and if the party already took his optional solo encounter there is no 14324 alive, so the row falls straight through to 11501.",
|
|
54
|
+
"rule": {
|
|
55
|
+
"id": "raid_enc_11501_kill",
|
|
56
|
+
"action": {
|
|
57
|
+
"kind": "kill_order",
|
|
58
|
+
"entries": [
|
|
59
|
+
14324,
|
|
60
|
+
11501
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"conditions": [],
|
|
64
|
+
"enabled": true
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "dire-maul-west",
|
|
3
|
+
"note": "Reviewed for E5.4 against acid_classic.sql:14917-15026 and instance_dire_maul.cpp. There is NO eventai/dire-maul-west.ts overlay in this tree and no per-boss cpp anywhere in Dire Maul, so every kit here is the ACID rows plus the baked charm bar; the instance script owns only the five pylon kill gates (:528-530, :595-612) and the Prince's faction flip when Immol'thar dies (:261-271). Five of the six come back kinds: [] - the discs in this wing are all at melee reach or wide enough to cover the whole room. Illyanna Ravenoak is the exception: Volley 22908 lays a real 8 yd ground pool on a random raider, which is the one shape here a move verb clears.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 11489,
|
|
7
|
+
"name": "Tendris Warpwood",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "acid_classic.sql:14990-14994 creature_id=11489. Grasping Vines 22924 is the widest thing he has and it is still a melee-band disc: aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, castTimeMs 1000, 525-675 physical plus a 10 s root and a trigger of Knockdown 5164. Ten yards sits inside RANGED_STAND_MIN_YD 20 (stand.ts:18), so the ranged are already clear and the melee are in it because that is where melee happens, and a 1000 ms cast is not a walk out of 10 yd. Trample 5568 is the same 10 yd disc instant, and it is the Ghamoo-ra row from blackfathom-deeps.json - Effect 58 WEAPON_DAMAGE, which the bake has no mapper for, so 5568 ships effects: [] and lands nothing today. Uppercut 22916 (rangeMax 10) and Entangle 22994 (rangeMax 100, a 10 s root on whoever is far, armed on EVENT_T 9 at 50% chance) are single target, and a root is a trinket or a Free Action Potion - a class row. His aggro script also calls for help at 40 yd."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 11488,
|
|
13
|
+
"name": "Illyanna Ravenoak",
|
|
14
|
+
"kinds": [
|
|
15
|
+
"spread",
|
|
16
|
+
"kill-order"
|
|
17
|
+
],
|
|
18
|
+
"note": "Volley drops a burning patch under one of the party every minute or so. Step out of it.",
|
|
19
|
+
"cite": "acid_classic.sql:14983-14988 creature_id=11488. 1148801 puts her in ranged mode at 25 yd. Concussive Shot 22914 is aoeShape pbaoe radiusYd 45 triggering Improved Concussive Shot 22915, a 3 s stun at the same 45 yd - a disc that covers the entire prison, so there is no yard to stand on and nothing a verb can buy. Immolation Trap 22910 is Effect 104 SUMMON_OBJECT_SLOT1 miscValue 164875 at radiusYd 2, a trap laid at her own feet, and Multi-Shot 20735 is targetA 6 with chainTargets 10 and no radius (it bakes effects: [] - Effect 58 WEAPON_DAMAGE). Volley 22908 is the one shape a verb clears, and it gets the row.",
|
|
20
|
+
"encounterRows": [
|
|
21
|
+
{
|
|
22
|
+
"kind": "spread",
|
|
23
|
+
"label": "Step out of Volley (8 yd pool)",
|
|
24
|
+
"cite": "spell 22908 Volley bakes aoe true, aoeShape ground, radiusYd 8, rawEffects Effect 27 PERSISTENT_AREA_AURA auraName 3 amplitude 1000, so isPersistentAreaEffect (dynamicObject.ts:220-224) sends it down applySpell.ts:1205-1271 and a real 6 s pool of 300 arcane a second is created. This is High Priest Venoxis's Poison Cloud row (zul-gurub.json raid_enc_14507_avoid_23861) with the same three parts: same bake shape, same avoid_zone by spell id, same hazardProximityYd gate (pickAction.ts:1591-1602 reads the pool list the move reads). The pool sits on a RAIDER, not on her: applySpell.ts:1261 sites it with aoeFanFromCaster, 'ground' resolves to the primary target's feet, and acid_classic.sql:14984 casts with target 4 HOSTILE_RANDOM, so it lands under whoever it rolled. Nothing double-matches an id of \"22908\": groundAoeOf (hazards.ts:75-85) refuses to publish her body for it, because spellAoeFromCaster (combatGeometry.ts:351-366) reads rawEffects targetA 28 AT_DYNOBJ_LOC, which is not one of the caster-location targets at :329 - so this row cannot become the Faerlina shape that hazards.ts:66-73 warns about. moveOwnsPastDeadline (pickAction.ts:770-774) keeps the walk alive while the pool lives, which is the whole 6 s. Cast every 60-85.5 s after an 18-36.2 s opener, so the row is armed rarely and 8 yd is a short walk from any stand.",
|
|
25
|
+
"rule": {
|
|
26
|
+
"id": "raid_enc_11488_avoid_22908",
|
|
27
|
+
"action": {
|
|
28
|
+
"kind": "move",
|
|
29
|
+
"move": {
|
|
30
|
+
"kind": "avoid_zone",
|
|
31
|
+
"id": "22908"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"conditions": [
|
|
35
|
+
{
|
|
36
|
+
"subject": "self",
|
|
37
|
+
"metric": "hazardProximityYd",
|
|
38
|
+
"op": "<=",
|
|
39
|
+
"value": 0
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"enabled": true
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"blockedBy": {
|
|
47
|
+
"kill-order": "Ferra is her pet in the lore and the DB does not model it as one, so there is no order to impose. Ferra 14308 is a plain static spawn: src_creature guid 4290911 at (-87.34, 543.80, 28.62) on map 429 against Illyanna's guid 4290558 at (-98.02, 502.12, 28.60), about 43 yd apart, with NO row in src_creature_linking or src_creature_linking_template for either - unlike King Gordok and Cho'Rush, whose linking_template flag 3 is what earned the kill-order row in dire-maul-north.json. Her own kit is two rows and neither touches Illyanna: Charge 22911 on a random hostile and Maul 17156 on her victim (acid_classic.sql:15075-15076). dire-maul-west.ts:54-55 keeps her in the trash list for the same reason."
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"entry": 11487,
|
|
52
|
+
"name": "Magister Kalendris",
|
|
53
|
+
"kinds": [],
|
|
54
|
+
"cite": "acid_classic.sql:14974-14981 creature_id=11487, ranged mode 25 yd. Not one ability in the kit has a radiusYd or an aoeShape: Mind Flay 22919 (rangeMax 20, chainTargets 3), Shadow Word: Pain 17146 and Mind Blast 17287 (rangeMax 30) are targetA 6 nukes and dots. Dominate Mind 7645 is the mechanic the fight is about - targetA 6 at rangeMax 20, castTimeMs 2000, mechanic 1 charm, 10 s, dispel 1 magic - and it lands on ONE raider with no ground under it, so the answers are a dispel or a trinket and both are class rows; the `mc` kind in a pack is the party mind-controlling an add, which is not what this is. Shadowform 22917 at 60% and its removal at 30% are targetA 1 self buffs (-40% physical taken, +40% damage done, dispel 0 so not even a purge), a tank and healer problem with nothing to stand out of."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"entry": 11467,
|
|
58
|
+
"name": "Tsu'zee",
|
|
59
|
+
"kinds": [],
|
|
60
|
+
"cite": "acid_classic.sql:14917-14919 creature_id=11467 - three cast rows and that is the whole rare elite. Sinister Strike 15581 and Gouge 12540 are targetA 6 at rangeMax 5, and Gouge is a 4 s incapacitate on whoever she is facing. Blind 21060 is targetA 6 at rangeMax 10 on a random non-tank (target 5), a 10 s incapacitate plus a 60% snare with radiusYd None - single target, so there is no disc and nothing to walk out of, and a trinket or a dispel is the answer. This is the Stockade finding with the radius removed entirely."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"entry": 11496,
|
|
64
|
+
"name": "Immol'thar",
|
|
65
|
+
"kinds": [],
|
|
66
|
+
"cite": "acid_classic.sql:15022-15026 creature_id=11496. Trample 5568 is aoeShape pbaoe radiusYd 10 castTimeMs 0 and bakes effects: [] (Effect 58 WEAPON_DAMAGE), the Tendris and Ghamoo-ra shape - a melee-reach disc with no window. Infected Bite 16128 (rangeMax 5, dispel 3 disease) is single target, Portal of Immol'thar 22950 teleports a random non-tank to a DB location and so moves its own victim, and Enrage 8269 at 67% is a targetA 1 self haste. Eye of Immol'thar 22899 is Effect 42 miscValue 14396, a body: the Eye's own kit is Random Aggro 22913 on spawn and Eye of Immol'thar 22909, targetA 6 at rangeMax 5 for a 4 s haste and cast-speed debuff (acid_classic.sql:15183-15184). The pylons are an ACCESS gate and not a fight verb - instance_dire_maul.cpp:595-612 marks a generator DONE when all its guards die, :528-530 checks the five, and :533-559 opens the forcefield - and dire-maul-west.ts:96-219 already models that as five instance flags with bake-sourced guard guids."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"entry": 11486,
|
|
70
|
+
"name": "Prince Tortheldrin",
|
|
71
|
+
"kinds": [],
|
|
72
|
+
"cite": "acid_classic.sql:14967-14972 creature_id=11486; he is faction 1354 until instance_dire_maul.cpp:261-271 flips him hostile on Immol'thar's death, and the core gives him no damage buff from the crystals. Whirlwind 15589 is the one disc and it is NOT Herod's: aoeShape pbaoe radiusYd 8, targetA 22 tgtB 15, castTimeMs 0, durMs 0, and it bakes effects: [] because Effect 17 WEAPON_PERCENT_DAMAGE has no mapper. Herod earned the keep_range row in sm-armory.json because 8989 is targetA 1 with a 10 s aura that pulses 15578, so buffPresent 8989 had a window to open and close; 15589 is a single instant hit with no aura and no duration, so there is nothing to gate a walk on and by the time a walk started the hit has landed. Everything else is single target: Arcane Blast 22920 and Thrash 3391 at rangeMax 5, Counterspell 20537 on EVENT_T 13 target-casting (a caster's problem, answered by not standing still, not by a party verb), and Summon 22995, Effect 43 at rangeMax 50000 that yanks a random raider to him and so moves its own victim."
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|