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,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "gnomeregan",
|
|
3
|
+
"note": "Reviewed for E5.4 against boss_thermaplugg.cpp, gnomeregan.cpp, eventai/gnomeregan.ts and acid_classic.sql. Two of the six earn a row and four do not. Electrocutioner 6000 carries the only cast bar in the wing - Megavolt 11082 is a 53 degree cone reaching 30 yd, so the ranged stand is inside it too - and Thermaplugg's Walking Bombs are 95 HP bodies that detonate a 10 yd disc on their own first swing. The rest is instant discs at or inside 10 yd on a melee boss, which is the Stockade finding.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 7361,
|
|
7
|
+
"name": "Grubbis",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "gnomeregan.cpp:128-130 summons him as pack 7 of the Blastmaster Emi Shortfuse escort, and he has no boss script - boss_thermaplugg.cpp is the only one in this wing. creature_template_spells 7361 is all zeros in the ClassicDB and the live dump alike, neither creature_ai_scripts table has a row for him, and baked creatures.json entry 7361 has spells null: a 5285 HP melee elite with no cast at all. Chomper 6215 spawns beside him carrying Cheap Shot 6409, rangeMax 5, a single-target 5 s stun (mechanic 12) that a trinket answers, and nothing in the DB puts either body first."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 7079,
|
|
13
|
+
"name": "Viscous Fallout",
|
|
14
|
+
"kinds": [],
|
|
15
|
+
"cite": "No ScriptDev file and no EventAI. 7079 has no row at all in src_creature_template_spells or live_creature_template_spells, none in src_creature_ai_scripts or live_creature_ai_scripts, and baked creatures.json entry 7079 carries spells null - the same reading src/data/dungeons/gnomeregan.ts:149-150 already records. A 2865 HP melee elite: there is nothing on the floor to stand out of."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"entry": 6235,
|
|
19
|
+
"name": "Electrocutioner 6000",
|
|
20
|
+
"kinds": [
|
|
21
|
+
"position"
|
|
22
|
+
],
|
|
23
|
+
"cite": "eventai/gnomeregan.ts:115-153, acid_classic.sql:15327-15330 creature_id=6235. Shock 11084 is targetA 6 at 20 yd, instant, single target, and Chain Bolt 11085 is targetA 6 with EffectChainTarget 3 on a 2500 ms cast, so it jumps to three bodies - neither carries a radius, and neither is a raid verb. Megavolt 11082 is the one that is.",
|
|
24
|
+
"encounterRows": [
|
|
25
|
+
{
|
|
26
|
+
"kind": "position",
|
|
27
|
+
"label": "Get out of his front while Megavolt winds up",
|
|
28
|
+
"cite": "spell 11082 Megavolt is targetA 24 TARGET_ENUM_UNITS_ENEMY_IN_CONE_24 with EffectRadiusIndex1 radiusYd 30, and src_spell_cone Id 11082 ConeDegrees 53: a 53 degree wedge reaching 30 yd, so unlike every other AoE in Gnomeregan the 25 yd ranged stand is inside it and not only the melee. CastingTimeIndex gives 2000 ms, the only readable window on any AoE in this wing, and it is well inside pickAction.ts:774 RUNOUT_YIELD_AFTER_MS 4000. Same gate as the Vaelastrasz row (blackwing-lair.json 13020): inTargetCone plus targetAttackingMe 0 so the tank keeps holding him facing away. behind_target rather than flank_target because he has no rear cone - Shock and Chain Bolt are point targets, so coneArcsOfKit sees the Megavolt arc alone. After E5.3 (sessionMechanicMove.ts:385-417) a ranged mover rotates to the nearest bearing outside the arc at its own radius instead of walking twice its range, and melee take the far side. One number to know before reading this as measured protection: src_spell_template gives EffectBasePoints1 4 with EffectRealPointsPerLevel1 5.0 at MinLevel 32, about 160 nature damage, but spell-data.json 11082 bakes direct_damage min 5 max 5 because the bake does not scale creature spell damage by level. The cone's SHAPE is baked and the row works off it; the payload is not.",
|
|
29
|
+
"rule": {
|
|
30
|
+
"id": "raid_enc_6235_behind_11082",
|
|
31
|
+
"action": {
|
|
32
|
+
"kind": "move",
|
|
33
|
+
"move": {
|
|
34
|
+
"kind": "behind_target"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"conditions": [
|
|
38
|
+
{
|
|
39
|
+
"subject": "self",
|
|
40
|
+
"metric": "targetAttackingMe",
|
|
41
|
+
"op": "==",
|
|
42
|
+
"value": 0
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"subject": "self",
|
|
46
|
+
"metric": "inTargetCone",
|
|
47
|
+
"op": "==",
|
|
48
|
+
"value": 1
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"enabled": true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"entry": 6229,
|
|
58
|
+
"name": "Crowd Pummeler 9-60",
|
|
59
|
+
"kinds": [],
|
|
60
|
+
"cite": "eventai/gnomeregan.ts:17-50, acid_classic.sql:15308-15310 creature_id=6229. All three are castTimeMs 0 and none leaves an aura, so there is no window a move verb can be gated on: Crowd Pummel 10887 is aoeShape pbaoe radiusYd 10 targetA 22/15, mechanic 26 interrupt with a 5000 ms lockout; Trample 5568 is the same 10 yd disc and bakes no effect at all; Arcing Smash 8374 is a 71 degree cone (src_spell_cone) that stops at 5 yd. A 10 yd disc on a melee boss is where the melee have to stand, the 25 yd ranged stand is already outside the lockout, and a locked-out caster is a class row. The 8 yd Arcing Smash 16169 sits on creatures.json charmSpells, not spells, so the floor kit takes 8374's 5 yd."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"entry": 6228,
|
|
64
|
+
"name": "Dark Iron Ambassador",
|
|
65
|
+
"kinds": [],
|
|
66
|
+
"cite": "eventai/gnomeregan.ts:159-214, acid_classic.sql:15301-15306 creature_id=6228. Fire Shield II 184 is a 60 s self aura, aura 23 periodic-trigger every 3000 ms firing 3053 Fire Shield Effect II - baked pbaoe radiusYd 5 for 15 fire damage, a disc INSIDE melee reach, which is the Dextren Ward reading. Frost Armor 12544 is targetA 1 self and Fireball 9053 is targetA 6 at 40 yd; acid_classic.sql:15302 puts him in ranged mode at 35 yd on aggro, so the party closes on him rather than the other way. acid_classic.sql:15305 casts Summon Burning Servant 10870 twice on a 2000-3000 ms timer for two 7738, whose whole script is Summon Embers 10869 (acid_classic.sql:15364) - two adds with no DB priority between them and the boss, so no kill-order."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"entry": 7800,
|
|
70
|
+
"name": "Mekgineer Thermaplugg",
|
|
71
|
+
"kinds": [
|
|
72
|
+
"kill-order",
|
|
73
|
+
"use-object"
|
|
74
|
+
],
|
|
75
|
+
"cite": "boss_thermaplugg.cpp:203-238 activates a random one of six bomb faces every 12-17 s (6-12 s past the 50% phase at :181) and every active face drops a Walking Bomb 7915 on a 10000-25000 ms timer. His own kit answers nothing: Knock Away 10101 is targetA 6 single target, the phase-two 11130 is aoeShape pbaoe radiusYd 10 with castTimeMs 0 so nothing can be gated on it, and creatures.json entry 7800 has spells null with 10101 sitting on charmSpells, so neither reaches the floor kit. The bombs do, and they are the fight.",
|
|
76
|
+
"encounterRows": [
|
|
77
|
+
{
|
|
78
|
+
"kind": "kill-order",
|
|
79
|
+
"label": "Kill the Walking Bombs before they reach the boss",
|
|
80
|
+
"cite": "boss_thermaplugg.cpp:143-158 walks each summoned 7915 to a point and then MoveFollow(Thermaplugg), so the bombs converge on exactly where the melee are standing. acid_classic.sql:15376 creature_id=7915 casts 11830 Walking Bomb Passive Proc on spawn: aura 42 proc-trigger at ProcChance 100 with ProcFlags 4 PROC_FLAG_DEAL_MELEE_SWING (SpellMgr.h:1662), triggering 11504 - aoeShape pbaoe radiusYd 10, 200-300 physical, plus SPELL_EFFECT_INSTAKILL on itself. So it detonates on its own first landed swing, with no cast and no aura on any raider: fleeAuras needs an aura whose removal fires the payload and keep_range needs a window, and there is neither. keep_range 11 off a body that follows the boss would also just mean never meleeing the boss. What does work is killing it first - creature_template 7915 is HealthMultiplier 0.1, 95 HP, one hit - and kill_order spends no GCD (evaluate.ts:659). The bodies are real on the floor: liveAggroStream.ts:1113-1131 pushes entry 7915 hostile 4-6 yd off the boss for each active face. One gap named rather than hidden: spell-data.json 11830 bakes effects [], so the proc does not currently fire even though 11504's payload is baked, and the row orders the kill either way.",
|
|
81
|
+
"rule": {
|
|
82
|
+
"id": "raid_enc_7800_kill",
|
|
83
|
+
"action": {
|
|
84
|
+
"kind": "kill_order",
|
|
85
|
+
"entries": [
|
|
86
|
+
7915
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"conditions": [],
|
|
90
|
+
"enabled": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"kind": "use-object",
|
|
95
|
+
"label": "Send a ranged dps to the lit gnomeface button to shut the bomb vent",
|
|
96
|
+
"cite": "boss_thermaplugg.cpp:263-281 GOUse_go_gnomeface_button maps button 142214..142219 to face 0..5 and calls instance_gnomeregan.cpp:263-274 DoDeactivateBombFace, which is the only thing that closes a vent - and it returns without doing anything on a face that is already dark. So the row names the SET of six and resolves to whichever one is lit: goEntries, the same rewrite an item family already takes (evaluate.ts actionForEval). The bake carries all six buttons on map 90, one spawn each, gameobject_template type 1 BUTTON - which is why a press does not spend the slot (GameObject.cpp:1458 'buttons never really despawn'). They stand 39.8-41.3 yd from Thermaplugg's own spawn, measured off dungeonGameObjects/dungeonSpawns map 90, so the clicker WALKS: pickAction turns an out-of-reach click into the move_to the tree already ships and lands the press inside INTERACTION_DISTANCE 5 (ObjectDefines.h:25), the same standing a hand click needs. isCaster == 1 with isHealer == 0 is the shipped way to scope a row to the ranged (blackrock-depths.json Lord Roccor is the same pair of conditions minus the healer term): a ranged dps leaves the boss for the vent, the healer stays on the tank and the melee never move. What the row answers is boss_thermaplugg.cpp:203-238 - every activated face drops a Walking Bomb 7915 on a 10000-25000 ms timer, and the kill-order row beside this one kills the bombs that are already out while this one stops more arriving.",
|
|
97
|
+
"rule": {
|
|
98
|
+
"id": "raid_enc_7800_button",
|
|
99
|
+
"action": {
|
|
100
|
+
"kind": "use_object",
|
|
101
|
+
"goEntry": 142214,
|
|
102
|
+
"goEntries": [
|
|
103
|
+
142214,
|
|
104
|
+
142215,
|
|
105
|
+
142216,
|
|
106
|
+
142217,
|
|
107
|
+
142218,
|
|
108
|
+
142219
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
"conditions": [
|
|
112
|
+
{
|
|
113
|
+
"subject": "self",
|
|
114
|
+
"metric": "isCaster",
|
|
115
|
+
"op": "==",
|
|
116
|
+
"value": 1
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"subject": "self",
|
|
120
|
+
"metric": "isHealer",
|
|
121
|
+
"op": "==",
|
|
122
|
+
"value": 0
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"enabled": true
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "lbrs",
|
|
3
|
+
"note": "Reviewed for E5.4 against eventai/lbrs.ts, blackrockSpire.ts and acid_classic.sql. Thirteen of the fifteen come back kinds: [] and that is the finding - every shaped ability in this wing is an 8 to 10 yd disc on a melee boss, which the melee have to stand in to fight at all, and Mother Smolderweb's Crystallize cone stops at 10 yd, inside the 10.5 yd band the melee slot solver already clears. Two earn a row, and neither is centred on the boss: Quartermaster Zigris throws Stun Bomb at a random raider, and Mor Grayhoof's Hurricane is the first ground pool in a five-man that an avoid_zone can name.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 9219,
|
|
7
|
+
"name": "Spirestone Butcher",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "acid_classic.sql has no creature_id=9219 block at all - the Spirestone run goes 9216 Warlord (:14420) to 9217 Lord Magus (:14424) to 9218 Battle Lord (:14432) and skips him - and there is no src_creature_template_spells row, so creatures.json 9219 ships no spells, no ai and no creatureCasts. lbrs.ts:130 carries him as a pool-rolled rare. His whole kit is the creature_template melee, so there is nothing on the floor to stand out of."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 9218,
|
|
13
|
+
"name": "Spirestone Battle Lord",
|
|
14
|
+
"kinds": [],
|
|
15
|
+
"cite": "acid_classic.sql:14433 creature_id=9218 is one row, 921801 ACTION_T_TEXT Random Say on Aggro, and there is no ACTION_T_CAST anywhere in it. src_creature_template_spells has no row for him either, so creatures.json 9218 has no spells array and no creatureCasts. Pure tank-and-spank."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"entry": 9217,
|
|
19
|
+
"name": "Spirestone Lord Magus",
|
|
20
|
+
"kinds": [],
|
|
21
|
+
"cite": "acid_classic.sql:14425-14431 creature_id=9217, creature_template_spells 16170/13323/8365/15230. 921702 sets ranged mode 35 yd; Polymorph 13323 is targetA 6 at rangeMax 30, castTimeMs 1500, dispel 1, a 20 s incapacitate on one random non-top raider, and Arcane Bolt 15230 is targetA 6 at 40 yd. Bloodlust 6742 and 16170 and Enlarge 8365 are targetA 21 friendly buffs at 30 yd, which is the purge the class rotations already own. Nothing in the kit carries a radiusYd or a src_spell_cone row."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"entry": 9196,
|
|
25
|
+
"name": "Highlord Omokk",
|
|
26
|
+
"kinds": [],
|
|
27
|
+
"cite": "eventai/lbrs.ts:21-61 scripts 919601-919604, acid_classic.sql:14393-14396 creature_id=9196, creature_template_spells 10101/8269. Enrage 8269 at 20% HP is targetA 1 self, +49% damage and +59% melee haste for 120 s with no dispel type in the bake. Knock Away 10101 is targetA 6 at rangeMax 10, Effect 98 knock-back on whoever he is hitting, and spell-data 10101 gives it no aoeShape and no radiusYd - one displaced tank, not a shape."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"entry": 9236,
|
|
31
|
+
"name": "Shadow Hunter Vosh'gajin",
|
|
32
|
+
"kinds": [],
|
|
33
|
+
"cite": "eventai/lbrs.ts:67-90 scripts 923601-923602, acid_classic.sql:14435-14436 creature_id=9236. Both spells are 10 yd discs centred on her: Hex 16097 is targetA 22 targetB 15 radiusYd 10, castTimeMs 0, a 10 s polymorph with dispel 1, and Curse of Blood 16098 is the same shape at castTimeMs 2000 for physical damage taken +2% over 600 s, dispel 2 curse. Ten yards is the Galgann Firehammer shape (uldaman.json 7291): the melee are in it because that is where melee happens, and RANGED_STAND_MIN_YD 20 (stand.ts:18) is already outside it. A dispel and a decurse are class rows."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"entry": 9237,
|
|
37
|
+
"name": "War Master Voone",
|
|
38
|
+
"kinds": [],
|
|
39
|
+
"cite": "eventai/lbrs.ts:96-169 scripts 923701-923707, acid_classic.sql:14438-14444 creature_id=9237. Seven casts and not one carries a radiusYd or a src_spell_cone row: Pummel 15615, Snap Kick 15618, Cleave 15754 and Mortal Strike 15708 are all targetA 6 at rangeMax 5, Uppercut 10966 is a targetA 6 knock-back at 10 yd, Throw Axe 16075 is targetA 6 at 40 yd with a 2 s stun, and Thrash 3391 is Effect 19 extra_attacks on himself. The two stuns are single target, so a trinket answers them and that lives in the class rotation."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"entry": 10376,
|
|
43
|
+
"name": "Crystal Fang",
|
|
44
|
+
"kinds": [],
|
|
45
|
+
"cite": "No overlay in eventai/lbrs.ts and no ScriptDev cpp; acid_classic.sql:14685 creature_id=10376 is his one row, 1037601 casting Summon Spire Spiderling 16416 at 10-30 s then every 20-30 s. 16416 is Effect 41 SUMMON_WILD, targetA 18, EffectMiscValue 10375 Spire Spiderling, EffectBasePoints 7, with no radiusYd and no damage effect. A summon puts bodies on the floor and asks the party for nothing positional, and nothing in acid_classic.sql or creature_template ranks 10375 ahead of him."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"entry": 10596,
|
|
49
|
+
"name": "Mother Smolderweb",
|
|
50
|
+
"kinds": [
|
|
51
|
+
"kill-order"
|
|
52
|
+
],
|
|
53
|
+
"cite": "eventai/lbrs.ts:350-378 scripts 1059601-1059603, acid_classic.sql:14717-14719 creature_id=10596, creatures.json 10596 spells 16103/16468/16104. Crystallize 16104 is the only shaped ability and it is a real cone - src_spell_cone Id 16104 ConeDegrees 53, targetA 24 TARGET_ENUM_UNITS_ENEMY_IN_CONE_24, radiusYd 10, castTimeMs 0, a 6 s stun (mechanic 12) every 8-18 s - but it stops at 10 yd, and meleeFlankSlot only ever engages inside MELEE_REACH_YD + MELEE_PARK_SLACK_YD + MELEE_REACH_YD, which is 10.5 (sessionChase.ts:445, combatGeometry.ts:37 and :48). So every body the wedge can reach is already inside the band where coneArcsOfKit reads it off her kit (combatGeometry.ts:451, called at sessionChase.ts:457) and slides the non-tank melee out of it. That is the Ironaya verdict (uldaman.json 7228) rather than the Tuten'kash one (razorfen-downs.json 7355), where the same 53 degree wedge runs to 20 yd and reaches raiders the solver never touches. Mother's Milk 16468 is aoeShape pbaoe radiusYd 10 but its one DBC effect is aura 4 SPELL_AURA_DUMMY with EffectBasePoints 0, so spell-data 16468 ships effects: [] - there is no payload to stand out of.",
|
|
54
|
+
"blockedBy": {
|
|
55
|
+
"kill-order": "the Little Ones are a DEATH summon, not an add wave. acid_classic.sql:14717 script 1059601 is EVENT_T 6 DEATH casting Summon Spire Spiderling 16103 - Effect 41 SUMMON_WILD, targetA 18, EffectMiscValue 10375 Spire Spiderling, EffectBasePoints 3, radiusYd 1 - so the bodies arrive after she is already dead and there is no order to impose inside the fight. Nothing in acid_classic.sql or in creature_template ranks 10375 ahead of anything, and the default rotation picks them up unordered."
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"entry": 10584,
|
|
60
|
+
"name": "Urok Doomhowl",
|
|
61
|
+
"kinds": [],
|
|
62
|
+
"cite": "eventai/lbrs.ts:303-344 scripts 1058401-1058404, acid_classic.sql:14712-14715 creature_id=10584, creature_template_spells 16508/16509/15580. Intimidating Roar 16508 is the only shaped ability: DBC eff1 is targetA 6 aura 26 root on the current target and eff2 is targetA 22 targetB 15 radiusYd 8 aura 7 fear, so spell-data 16508 bakes aoeShape pbaoe radiusYd 8, mechanic fear, an 8 s hold. That is the Dextren Ward disc (the-stockade.json 1663, Intimidating Shout 19134 radiusYd 8) - melee reach on a melee boss, answered by Fear Ward, Tremor Totem or Berserker Rage in a class rotation. Rend 16509 and Strike 15580 are targetA 6 at rangeMax 5, and Summoned Urok 16473 fires once on SPAWNED with no radius."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"entry": 9596,
|
|
66
|
+
"name": "Bannok Grimaxe",
|
|
67
|
+
"kinds": [],
|
|
68
|
+
"cite": "acid_classic.sql:14545-14546 creature_id=9596 is two rows: 959601 sets stand state on aggro, 959602 casts Mortal Strike 13737 every 7-11 s. 13737 is targetA 6 at rangeMax 5, Effect 31 weapon damage plus a 50% healing debuff for 5 s, single target with no radiusYd. There is no overlay in eventai/lbrs.ts and no ScriptDev cpp, so one melee strike is the whole kit."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"entry": 9736,
|
|
72
|
+
"name": "Quartermaster Zigris",
|
|
73
|
+
"kinds": [
|
|
74
|
+
"spread"
|
|
75
|
+
],
|
|
76
|
+
"note": "One Stun Bomb catches everyone within 5 yd of whoever it lands on. Standing 6 yd apart makes that one raider instead of three.",
|
|
77
|
+
"cite": "eventai/lbrs.ts:175-221 scripts 973601-973605, acid_classic.sql:14581-14585 creature_id=9736, creature_template_spells 15504/15609/16496/16497. 973601 sets ranged mode 25 yd; Shoot 16496 is targetA 6 at 30 yd and Drink Healing Potion 15504 at 50% HP is a self heal an interrupt answers, both class rows. Hooked Net 15609 is aoeShape pbaoe radiusYd 10 centred on him (targetA 22 targetB 15), a 10 s root plus 139-161 physical - the Galgann disc again, and no move verb clears it without giving up melee. Stun Bomb 16497 is the one a verb reaches, because it is the only thing in this wing that lands on a raider rather than on the boss.",
|
|
78
|
+
"encounterRows": [
|
|
79
|
+
{
|
|
80
|
+
"kind": "spread",
|
|
81
|
+
"label": "Stand 6 yd apart so one Stun Bomb cannot catch two",
|
|
82
|
+
"cite": "spell 16497 Stun Bomb bakes aoe ground radiusYd 5, castTimeMs 2000, a 5 s stun (mechanic 12), and acid_classic.sql:14583 fires it on EventAI target 4 HOSTILE_RANDOM at 15-20 s then every 20-30 s. Its rawEffects targetA is 16 TARGET_ENUM_UNITS_ENEMY_AOE_AT_DEST_LOC, which is not in combatGeometry.ts:329 CASTER_LOCATION_TARGET_A, so spellAoeFromCaster (combatGeometry.ts:351) is false and aoeCast.ts:79-80 centres the 5 yd disc on the raider he picked instead of on Zigris - a distance between raiders, which is the one thing spacing can answer. aoeCast.ts:45 fans a cc effect to every unit inside that radius, so a clump is three stunned instead of one. minYd 6 is radiusYd 5 plus one, the same first-clear-yard rule the Thalnos row uses (sm-graveyard.json 4543) and deliberately not radius plus 5: clampAimToOwnReach (sessionMechanicMove.ts:114) pins a melee onto its MELEE_REACH_YD 5 ring, and three melee cannot be 10 yd apart on it. The tank sits it out on targetAttackingMe because walking the aggro holder drags the boss across the party. No hazard exists to name instead: the payload is a cc and not a dot, so dynamicObject.ts:220 isPersistentAreaEffect is false and no pool is ever created, and groundAoeOf (hazards.ts:69) refuses Zigris's body for the same targetA 16 reason.",
|
|
83
|
+
"rule": {
|
|
84
|
+
"id": "raid_enc_9736_spread_16497",
|
|
85
|
+
"action": {
|
|
86
|
+
"kind": "move",
|
|
87
|
+
"move": {
|
|
88
|
+
"kind": "spread",
|
|
89
|
+
"minYd": 6
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"conditions": [
|
|
93
|
+
{
|
|
94
|
+
"subject": "self",
|
|
95
|
+
"metric": "targetAttackingMe",
|
|
96
|
+
"op": "==",
|
|
97
|
+
"value": 0
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"subject": "self",
|
|
101
|
+
"metric": "alliesWithinYd",
|
|
102
|
+
"op": ">",
|
|
103
|
+
"value": 0,
|
|
104
|
+
"ref": 6
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"enabled": true
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"entry": 9718,
|
|
114
|
+
"name": "Ghok Bashguud",
|
|
115
|
+
"kinds": [],
|
|
116
|
+
"cite": "acid_classic.sql:14577-14579 creature_id=9718, creatures.json 9718 spells 8269/11972. 971802 casts Enrage 8269 at 30% HP, targetA 1 on himself, and 971803 is EVENT_T 13 TARGET_CASTING casting Shield Bash 11972, targetA 6 at rangeMax 5 - an interrupt plus 9 damage on whoever he is hitting. Neither carries a radiusYd or a cone, and 971801 only strips his own idle visual 16093 on aggro. There is no overlay in eventai/lbrs.ts and no ScriptDev cpp."
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"entry": 10220,
|
|
120
|
+
"name": "Halycon",
|
|
121
|
+
"kinds": [
|
|
122
|
+
"kill-order"
|
|
123
|
+
],
|
|
124
|
+
"cite": "eventai/lbrs.ts:227-258 scripts 1022001-1022003, acid_classic.sql:14615-14617 creature_id=10220, creature_template_spells 13738. Rend 13738 is targetA 6 at rangeMax 5, a 15 s bleed, and Thrash 3391 is Effect 19 extra_attacks on himself - neither has a radiusYd, an aoeShape or a src_spell_cone row, so the fight itself is tank-and-spank. 1.12 does summon Gizrul, and it is on death: see blockedBy.",
|
|
125
|
+
"blockedBy": {
|
|
126
|
+
"kill-order": "Gizrul the Slavener 10268 is real in 1.12 and it is a DEATH summon. acid_classic.sql:14615 script 1022001 is EVENT_T 6 DEATH with ACTION_T_TEXT 5548 then ACTION_T_SUMMON_ID 10268 at summon point 20, which eventai/lbrs.ts:13-15 carries as x -167.538 y -415.014 z 76.1469 with spawnTimeSecs 10800000. He arrives after Halycon is dead, so there is no order to impose inside this fight - lbrs.ts:118 lists him as summon-only, and his own kit (acid_classic.sql:14636-14638: Enrage 8269 at 20%, Infected Bite 16128, Fatal Bite 16495) is entirely targetA 6 single target."
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"entry": 9568,
|
|
131
|
+
"name": "Overlord Wyrmthalak",
|
|
132
|
+
"kinds": [
|
|
133
|
+
"kill-order"
|
|
134
|
+
],
|
|
135
|
+
"cite": "acid_classic.sql:14539 is a header comment deferring to boss_overlord_wyrmthalak and there are no ACID rows, no creature_template_spells row and no spells array on creatures.json 9568 - the kit is the ScriptDev port at blackrockSpire.ts:370, which combatEnemySpec.ts:103 resolves as the schedule. Blast Wave 11130 (cpp:30, and note src_spell_template names 11130 Knock Away, not Blast Wave) and Knock Away 20686 (cpp:33) both bake aoeShape pbaoe radiusYd 10 with effects: [] - Effect 98 knock-back and nothing else, so there is no payload to dodge and clampDisplacementToFloor owns where a body lands. Demoralizing Shout 23511 is pbaoe radiusYd 10 for attack power -40 over 30 s, a hostile buff a purge answers, and Cleave 20691 is targetA 6 at rangeMax 15 with no radiusYd and no src_spell_cone row.",
|
|
136
|
+
"blockedBy": {
|
|
137
|
+
"kill-order": "boss_overlord_wyrmthalak.cpp:124-139 summons TWO adds once below 51% HP from the pool {9583 Bloodaxe Veteran, 9268 Smolderthorn Berserker, 9216 Spirestone Warlord} and walks each to a fixed point; blackrockSpire.ts WYRMTHALAK_PHASE_ADDS fixes the roll to 9583+9268, and lbrs.ts:8-10 records the true urand(0,2) per add as a determinism GAP. Nothing in the cpp or in classic-db ranks one add ahead of the other or ahead of Wyrmthalak - JustSummoned (cpp:69-79) just points each at a random attacker - so there is no order for a kill-order row to impose."
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"entry": 16080,
|
|
142
|
+
"name": "Mor Grayhoof",
|
|
143
|
+
"kinds": [
|
|
144
|
+
"flee"
|
|
145
|
+
],
|
|
146
|
+
"note": "Hurricane drops an 8 yd patch under a random raider for 10 seconds. Walk out of it.",
|
|
147
|
+
"cite": "acid_classic.sql:14789-14805 creature_id=16080 is the whole kit and there is no ScriptDev cpp - he is the Brazier summon (lbrs.ts:161 LBRS_FLAGS.morGrayhoof; trigger 16044 at acid_classic.sql:14768-14769 on spellhit 27184 / 27203). Moonfire 27737 is aoeShape pbaoe radiusYd 18, targetA 22 targetB 15, for 438-562 arcane plus a 12 s dot, and 18 yd stops SHORT of RANGED_STAND_MIN_YD 20 (stand.ts:18), so the ranged band is already clear and only the melee are in it - the Galgann shape, one step wider. Demoralizing Roar 27551 is pbaoe radiusYd 10 for attack power -300, a hostile buff; the three form phases are single-target melee (Maul 27553, Swipe 27554, Shred 27555, Rake 27556, Ferocious Bite 27557) and phase 4 is Reflection 27564 on himself plus Chain Lightning 27567 at 30 yd. Hurricane is the one raid-side ability. One honest note: creatures.json 16080 creatureCasts drops the ACID phase masks, so every row above arms on its own timer whatever form he is in.",
|
|
148
|
+
"encounterRows": [
|
|
149
|
+
{
|
|
150
|
+
"kind": "flee",
|
|
151
|
+
"label": "Step out of the Hurricane",
|
|
152
|
+
"cite": "spell 27530 Hurricane is Effect 27 PERSISTENT_AREA_AURA, targetA 28 AT_DYNOBJ_LOC, EffectRadiusIndex 14 radiusYd 8, aura 3 periodic damage at amplitude 1000 for 10000 ms, and spell-data 27530 bakes aoe true with a nature dot of 500 a second - so dynamicObject.ts:220 isPersistentAreaEffect is true and applySpell.ts:1205 and :1271-1273 lay a real GroundPool named Hurricane carrying spellId 27530. Because aoeShape is ground, applySpell.ts:1261 sites that pool at the TARGET, and creatures.json 16080 creatureCasts fires it on EventAI target 4 HOSTILE_RANDOM at 16-18 s then every 48-52 s, so the patch lands under a random raider rather than on him. hazards.ts:94-105 publishes the live pool and hazardMatches (hazards.ts:128) accepts a spell id as the row's name, which is why the id is the string 27530 - the same shape as High Priest Venoxis's Poison Cloud 23861 (zul-gurub.json 14507), same radiusYd 8, same 10 s, same nature dot. His BODY is deliberately not published alongside it, which is the trap the Thalnos row names: groundAoeOf (hazards.ts:69-80) requires spellAoeFromCaster, and targetA 28 is not in combatGeometry.ts:329 CASTER_LOCATION_TARGET_A, so this row can never park the party off Mor Grayhoof himself. Gated exactly like the three landed avoid_zone rows, on hazardProximityYd <= 0, which pickAction.ts:1591-1602 computes as max(0, distance - radius) over the same hazard list the move reads.",
|
|
153
|
+
"rule": {
|
|
154
|
+
"id": "raid_enc_16080_avoid_27530",
|
|
155
|
+
"action": {
|
|
156
|
+
"kind": "move",
|
|
157
|
+
"move": {
|
|
158
|
+
"kind": "avoid_zone",
|
|
159
|
+
"id": "27530"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"conditions": [
|
|
163
|
+
{
|
|
164
|
+
"subject": "self",
|
|
165
|
+
"metric": "hazardProximityYd",
|
|
166
|
+
"op": "<=",
|
|
167
|
+
"value": 0
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"enabled": true
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "maraudon",
|
|
3
|
+
"note": "Reviewed for E5.4 against boss_noxxion.cpp, eventai/maraudon.ts and acid_classic.sql. All nine bosses come back kinds: [] and that is the finding. The shaped abilities in this wing split three ways and none of them is a move verb: two discs are 45 and 100 yards wide, which is the whole room rather than a shape anyone can walk out of; the rest are 5 to 15 yard discs at melee reach that the melee have to stand in to fight at all; and the one 20 yard disc that would have earned Archaedas's keep_range row, Princess Theradras's Dust Field, never lands because its payload spell is not in her kit. Two bosses here publish a live hazard body, which the packs so far assumed a five-man never does, and neither of them wants an avoid_zone row.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 13282,
|
|
7
|
+
"name": "Noxxion",
|
|
8
|
+
"kinds": [
|
|
9
|
+
"position"
|
|
10
|
+
],
|
|
11
|
+
"cite": "boss_noxxion.cpp:28-119 owns this fight: there are no ACID rows for 13282 and the kit is the ScriptDev port at src/domain/scriptdev/maraudon.ts:103-181. Toxic Volley 21687 is aoeShape pbaoe radiusYd 45, targetA 22 and targetB 15, castTimeMs 0, 75-125 nature plus a 15 s poison dot (dispel 4) every 9 s - forty-five yards centred on him is wider than RANGED_STAND_MAX_YD 30 and than STAND_YARDS_MAX 40 (stand.ts:17-19), so every stand the game has is inside it and the answer is Abolish Poison, a class row. Uppercut 22916 is targetA 6 rangeMax 10 on the victim only. The split is NOT a kill-order: m_uiSummonTimer is a flat timer, 19 s then 40 s on CAST_OK (cpp:48, :81), there is no HP phase gate anywhere in the file, and JustSummoned (cpp:51-55) sends each of the five 13456 at ATTACKING_TARGET_RANDOM, so the DB names no add as first. What moves the party off him is 21708's UNIT_FLAG_UNINTERACTIBLE for 15 s (cpp:104, ported as set_unattackable at scriptdev/maraudon.ts:164-168), a targeting flag the engine already honours rather than anything a verb decides.",
|
|
12
|
+
"blockedBy": {
|
|
13
|
+
"position": "Spore Cloud 21547 is aoeShape ground radiusYd 13, targetA 18 and targetB 16, a 1 s dot for 5 s. It USED TO publish Noxxion as a hazards.ts BODY at 13 yd, so avoid_zone \"21547\" matched a disc that was live from the first tick over a spell nothing casts: 21547 is a charm-bar slot only (creatures.json 13282 spells null, charmSpells [21687, 21547, 21707]) and the ScriptDev schedule never fires it, while pickAction.ts:770-774 moveOwnsPastDeadline never yields on a match, so the row parked the melee 14 yd off him for the whole fight. THAT HALF IS FIXED as of 2026-08-26: a body hazard now needs its spell on the creature's own creatureCasts or spellList (hazards.ts groundAoeOf; UnitAI.cpp:106 and :1170, a disabled spell list does not self-cast), and src/dev/smoke/bodyHazardScheduled.mjs holds the population, with Noxxion among the 6 that no longer leak. That population is 9 as of 2026-08-27, not the 29 this line first recorded: a body whose ground spell also makes a pool stopped publishing, which took 19 more of them. No row is owed now, for the opposite reason: there is no hazard to avoid because nothing casts the spell."
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"entry": 12258,
|
|
18
|
+
"name": "Razorlash",
|
|
19
|
+
"kinds": [],
|
|
20
|
+
"cite": "eventai/maraudon.ts:173-194 scripts 1225801-1225802, acid_classic.sql:15518-15519 creature_id=12258. Thrash 8876 and Puncture 15978 are both targetA 1 self auras (aura 42) that hang a payload on his swings: 3391 is extra_attacks 2 and 15976 is a single-target bleed at rangeMax 5, mechanic 15, 10 s. Cleave 11427 is rangeMax 5 targetA 6 with chainTargets 3, so it splashes the melee already standing on the tank. Nothing in the kit carries a radiusYd or an aoeShape, so there is no shape to stand out of."
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"entry": 12236,
|
|
24
|
+
"name": "Lord Vyletongue",
|
|
25
|
+
"kinds": [],
|
|
26
|
+
"cite": "eventai/maraudon.ts:279-327 scripts 1223601-1223605, acid_classic.sql:15483-15487 creature_id=12236. Smoke Bomb 7964 is the Bazil Thredd shape to the number: aoeShape pbaoe radiusYd 5, targetA 22 and targetB 15, mechanic 12, a 4 s stun every 14-21 s. Five yards is melee reach and the ranged stand is 20-30 (stand.ts:18-19), so standing out of it means not meleeing him at all; a trinket or Berserker Rage answers a repeated melee stun and that is a class row. Blink 21655 moves HIM (Effect 29 leap, radiusYd 20), and Multi-Shot 21390 (targetA 6, rangeMax 30, chainTargets 5) and Shoot 16100 (targetA 6, rangeMax 30) are both fired from the 25 yd ranged mode 1223601 puts him in, neither with a radius."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"entry": 12237,
|
|
30
|
+
"name": "Meshlok the Harvester",
|
|
31
|
+
"kinds": [],
|
|
32
|
+
"cite": "acid_classic.sql:15489-15490 creature_id=12237. There is no eventai/maraudon.ts overlay for him, so those two ACID rows are the whole schedule. The armed stomp is War Stomp 15593: aoeShape pbaoe radiusYd 5, targetA 22 and targetB 15, mechanic 12, an 8 s stun every 15-21 s, a disc at melee reach. The wide War Stomp 24375 (radiusYd 15) is never cast - creatures.json 12237 has spells [13446, 15593] against charmSpells [24375, 15580], and combatEnemySpec.ts:130-138 refuses a cast row for a charm-bar slot that is not also a mob spell - so the 15 yd reading that would put a hunter on the 20 yd floor at risk is not on this floor. Strike 13446 is targetA 6 rangeMax 5."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"entry": 12225,
|
|
36
|
+
"name": "Celebras the Cursed",
|
|
37
|
+
"kinds": [],
|
|
38
|
+
"cite": "eventai/maraudon.ts:80-129 scripts 1222501-1222505, acid_classic.sql:15477-15481 creature_id=12225. Twisted Tranquility 21793 is real and it is the whole room: aoeShape ground radiusYd 45, targetA 18 and targetB 16 so it is centred on him, a 10 s channel every 50-60 s carrying 69 nature every 2 s and a -300 haste debuff. Forty-five yards is wider than every stand this game has - MELEE_REACH_YD 5, RANGED_STAND_MIN_YD 20, RANGED_STAND_DEFAULT_YD 25, RANGED_STAND_MAX_YD 30, STAND_YARDS_MAX 40 at stand.ts:11-19 - so clearing it means parking at 46 yd, past the stand clamp and past his own Wrath 21807 rangeMax 40, and the walk back is another ~6.4 s against a 10 s field. The verb itself WORKS and that is the point: avoidZone.ydFromWideField in the capability ledger measures a raider reaching 46 yd off this exact spell (src/dev/capabilities/avoidZone.mjs:160-195), which is why the give-up exception at pickAction.ts:758-774 cites it. It is still the wrong row, and for a second reason: 21793 is in his combat kit (creatures.json 12225 spells [21807, 12747, 21968, 21793]) and is ground-shaped, damaging and cast from the caster, so hazards.ts:69-79 groundAoeOf publishes Celebras as a 45 yd BODY hazard from the first tick and moveOwnsPastDeadline never yields while it lives - the row would own the party for the whole fight, not the 10 s window. The rest asks nothing positional: Corrupt Forces of Nature 21968 summons 3x Corrupt Force of Nature 13743 (rawEffect 42 miscValue 13743 basePoints 2, count basePoints+1 at summonCast.ts:96-107), Wrath 21807 is a 2000 ms single-target nuke at 40 yd, and Entangling Roots 12747 is a single-target root a decurse answers."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"entry": 12203,
|
|
42
|
+
"name": "Landslide",
|
|
43
|
+
"kinds": [],
|
|
44
|
+
"cite": "eventai/maraudon.ts:135-167 scripts 1220301-1220303, acid_classic.sql:15441-15443 creature_id=12203. Landslide 21808 is aoeShape ground radiusYd 100 with an 8 s stun (targetA 18, targetB 16, aura 12) and it fires inside the first second of the pull, then every 60 s: a hundred yards is the whole instance and there is no ground outside it to send anyone to. Its other effect is aura 23 amplitude 2000 triggering 21809 Summon Theradrim Shardling (rawEffect 41, miscValue 11783), and that payload never lands - stepSession.ts:1732-1733 resolves a periodic trigger only through spellFromKit(src.spec.spells) and 21809 is in no kit for 12203 (creatures.json spells [21808, 5568, 18670], charmSpells none). Trample 5568 is aoeShape pbaoe radiusYd 10, inside the melee band and inside RANGED_STAND_MIN_YD 20, and Knock Away 18670 is targetA 6 rangeMax 10 on the victim."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"entry": 13601,
|
|
48
|
+
"name": "Tinkerer Gizlock",
|
|
49
|
+
"kinds": [],
|
|
50
|
+
"cite": "eventai/maraudon.ts:222-273 scripts 1360101-1360105, acid_classic.sql:15539-15543 creature_id=13601; 1360101 puts him in ranged mode at 25 yd on aggro. Flash Bomb 29419 is aoeShape ground radiusYd 5, mechanic 5 fear for 10 s, dropped on a HOSTILE_RANDOM raider every 25 s, and Bomb 9143 is aoeShape ground radiusYd 5 with a 2000 ms cast on the victim: five yards is melee reach either way, so the only unit a spread could move is a melee raider giving up melee, and Fear Ward or Tremor Totem is the class answer to the fear. Goblin Dragon Gun 21833 is the one cone in the wing, and it is answered twice over: the wedge lives on the payload 21910 (src_spell_cone ConeDegrees 53, radiusYd 10, pulsed every 1000 ms for 8 s), which is not in creatures.json 13601 spells [29419, 9143, 21833, 16100] so the same spellFromKit gap at stepSession.ts:1732-1733 stops it firing at all, and combatGeometry.ts:567-586 meleeSlotIsExposed already treats the whole front HALF as exposed, so sessionChase.ts:440-461 slides every non-tank melee outside a 53 degree wedge before a row could. Shoot 16100 is targetA 6 rangeMax 30."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"entry": 13596,
|
|
54
|
+
"name": "Rotgrip",
|
|
55
|
+
"kinds": [],
|
|
56
|
+
"cite": "eventai/maraudon.ts:200-216 scripts 1359601-1359602, acid_classic.sql:15534-15535 creature_id=13596. Puncture 15978 is a targetA 1 self aura (aura 42) triggering 15976 on his swings, a single-target bleed at rangeMax 5, mechanic 15, 10 s. Fatal Bite 16495 is targetA 6 rangeMax 5, a health_leech on the victim every 11-15 s. Two scripts, no radiusYd and no aoeShape anywhere in the kit, so this is tank-and-spank."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"entry": 12201,
|
|
60
|
+
"name": "Princess Theradras",
|
|
61
|
+
"kinds": [
|
|
62
|
+
"position"
|
|
63
|
+
],
|
|
64
|
+
"cite": "eventai/maraudon.ts:25-74 scripts 1220101-1220105, acid_classic.sql:15435-15439 creature_id=12201; no ScriptDev cpp. Repulsive Gaze 21869 is aoeShape pbaoe radiusYd 8, targetA 22 and targetB 15, mechanic 5, an 8 s fear every 20-25 s - the same disc as Dextren Ward's Intimidating Shout and the same answer, Fear Ward and Tremor Totem in the class rotation. Boulder 21832 is targetA 6 rangeMax 30 with a 2000 ms cast on a random raider, single target, and Thrash 3391 is extra_attacks 2 on herself. Dust Field 21909 is the one ability in this wing that asks the party for a position and cannot be given one - see blockedBy.",
|
|
65
|
+
"note": "Dust Field roots her and pulses 132-168 nature inside 20 yd, eight times, every 20 to 25 seconds. The melee have to eat it. The ranged only need to stand a yard further back.",
|
|
66
|
+
"encounterRows": [
|
|
67
|
+
{
|
|
68
|
+
"kind": "position",
|
|
69
|
+
"label": "Casters step out of Dust Field",
|
|
70
|
+
"cite": "Dust Field 21909 roots HER for 8 s (aura 26, so the disc does not chase) and triggers 21868 every 1000 ms; 21868 is aoeShape pbaoe radiusYd 20, rawEffects targetA 22 TARGET_LOCATION_CASTER_SRC and targetB 15, castTimeMs 0, 132-168 nature a pulse. That is Archaedas's Ground Tremor 6524 disc to the yard and the same two target ids, so this is raid_enc_2748_range_6524 with her entry: isWithinRadiusYd hits at <= (combatGeometry.ts:216-228), so 21 is the first clear yard, and the trigger arms wider at 24 because a row released on the yard it parks on re-arms on her next step. RANGED_STAND_DEFAULT_YD 25 (stand.ts:20) already sits outside 24, so the camp is not armed all fight. isCaster keeps the melee out of it - 21 yd is four times MIN_AGGRO_DISTANCE 5 (creatureAiConstants.ts:76) and parking there would end melee for a pulse they can heal through. Hunters are not excluded: like Archaedas she has no Charge bait, so a hunter on the 20 yd floor (stand.ts:18 RANGED_STAND_MIN_YD, which the disc reaches at <=) takes the same one-yard step. She leaves no aura and 21909 has no cast bar, so this is a standing position rule and not a reaction. Rows are keyed on the focus entry (raidEncounterTactics.ts:111), so it is off while a raider is on Landslide or a Nightmare Scalebane. Cite: eventai/maraudon.ts:33-42 script 1220102, initial 8-13 s repeat 20-25 s.",
|
|
71
|
+
"rule": {
|
|
72
|
+
"id": "raid_enc_12201_range_21868",
|
|
73
|
+
"action": {
|
|
74
|
+
"kind": "move",
|
|
75
|
+
"move": {
|
|
76
|
+
"kind": "keep_range",
|
|
77
|
+
"minYd": 21,
|
|
78
|
+
"entry": 12201
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"conditions": [
|
|
82
|
+
{
|
|
83
|
+
"subject": "self",
|
|
84
|
+
"metric": "isCaster",
|
|
85
|
+
"op": "==",
|
|
86
|
+
"value": 1
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"subject": "self",
|
|
90
|
+
"metric": "creatureDistanceYd",
|
|
91
|
+
"op": "<=",
|
|
92
|
+
"value": 24,
|
|
93
|
+
"ref": 12201
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"enabled": true
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "molten-core",
|
|
3
|
+
"bosses": [
|
|
4
|
+
{
|
|
5
|
+
"entry": 12118,
|
|
6
|
+
"name": "Lucifron",
|
|
7
|
+
"kinds": [
|
|
8
|
+
"resist",
|
|
9
|
+
"dispel"
|
|
10
|
+
],
|
|
11
|
+
"cite": "boss_lucifron.cpp whole; Flamewaker Protector EventAI Dominate Mind",
|
|
12
|
+
"resist": "fire",
|
|
13
|
+
"cureAuras": [
|
|
14
|
+
{
|
|
15
|
+
"aura": 19702,
|
|
16
|
+
"on": "anyone",
|
|
17
|
+
"label": "When anyone has Impending Doom, cure it",
|
|
18
|
+
"cite": "boss_lucifron.cpp:33,49,79-82 SPELL_IMPENDINGDOOM 19702"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"aura": 19703,
|
|
22
|
+
"on": "anyone",
|
|
23
|
+
"label": "When anyone has Lucifron's Curse, cure it",
|
|
24
|
+
"cite": "boss_lucifron.cpp:34,50,85-88 SPELL_LUCIFRONCURSE 19703"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"entry": 11982,
|
|
30
|
+
"name": "Magmadar",
|
|
31
|
+
"kinds": [
|
|
32
|
+
"resist",
|
|
33
|
+
"flee",
|
|
34
|
+
"position"
|
|
35
|
+
],
|
|
36
|
+
"cite": "boss_magmadar.cpp:49-50 LAVA_BOMB 19411 / 20474 on a random raider; :34,56 FRENZY 19451 triggers LAVA_BREATH 19272, a 35 yd cone, twice per frenzy",
|
|
37
|
+
"resist": "fire",
|
|
38
|
+
"blockedBy": {
|
|
39
|
+
"position": "no ROW is owed here, and the old reason is stale. This used to say behind_target walks a ranged raider ~60 yd (back = max(MELEE_REACH_YD, cur)) and RUNOUT_YIELD_AFTER_MS abandons it at 4 s. E5.3 changed that: past MELEE_REACH_YD + MELEE_PARK_SLACK_YD the move now rotates to coneClearBandRad's nearest clear bearing at the mover's OWN radius (sessionMechanicMove.ts:385-393), which is an arc step, not a diameter. coneArcsOfKit reads the KIT rather than the cast bar, and 19272 Lava Breath is aoeShape cone radiusYd 35 with no coneDeg so it takes the 60 deg default; Magmadar carries it on charmSpells, which combatEnemySpec.ts:93-94 merges into spec.spells, so the arc is visible. Measured instead of asserted: capability frenzyCone has Frenzy 19451 landing 9x and Lava Breath sweeping 6x over 800 ticks with the ranged raider clear of 6 of 6 - the motion layer already answers this fight's position ask, so a row would be a second answer to a solved question. The 31-vs-33 deaths measurement the old text quoted was taken against the pre-E5.3 move and no longer describes the tree. Left in kinds and in blockedBy because no ROW delivers it, which is what this field records."
|
|
40
|
+
},
|
|
41
|
+
"encounterRows": [
|
|
42
|
+
{
|
|
43
|
+
"kind": "flee",
|
|
44
|
+
"label": "Step out of the Lava Bomb fire",
|
|
45
|
+
"cite": "boss_magmadar.cpp:49-50 LAVA_BOMB 19411 / 20474; SpellEffects.cpp:737-742,753-757 the dummy casts 20494 / 20495 on the raider, which summon GO 177704 - trap.spellId 19428 Conflagration, trap.radius 2.5, trap.cooldown 1. applySpell.ts:1251-1300 lays that trap down as a ground pool named after the payload, so hazardProximityYd reads its edge",
|
|
46
|
+
"rule": {
|
|
47
|
+
"id": "raid_enc_11982_avoid_19428",
|
|
48
|
+
"action": {
|
|
49
|
+
"kind": "move",
|
|
50
|
+
"move": {
|
|
51
|
+
"kind": "avoid_zone",
|
|
52
|
+
"id": "Conflagration"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"conditions": [
|
|
56
|
+
{
|
|
57
|
+
"subject": "self",
|
|
58
|
+
"metric": "hazardProximityYd",
|
|
59
|
+
"op": "<=",
|
|
60
|
+
"value": 0
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"enabled": true
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"entry": 12259,
|
|
70
|
+
"name": "Gehennas",
|
|
71
|
+
"kinds": [
|
|
72
|
+
"resist"
|
|
73
|
+
],
|
|
74
|
+
"cite": "boss_gehennas.cpp curse kit",
|
|
75
|
+
"resist": "fire"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"entry": 12057,
|
|
79
|
+
"name": "Garr",
|
|
80
|
+
"kinds": [
|
|
81
|
+
"resist"
|
|
82
|
+
],
|
|
83
|
+
"cite": "boss_garr.cpp Firesworn eruption",
|
|
84
|
+
"resist": "fire"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"entry": 12264,
|
|
88
|
+
"name": "Shazzrah",
|
|
89
|
+
"kinds": [
|
|
90
|
+
"resist"
|
|
91
|
+
],
|
|
92
|
+
"cite": "boss_shazzrah.cpp Gate blink",
|
|
93
|
+
"resist": "fire"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"entry": 12056,
|
|
97
|
+
"name": "Baron Geddon",
|
|
98
|
+
"kinds": [
|
|
99
|
+
"flee",
|
|
100
|
+
"resist"
|
|
101
|
+
],
|
|
102
|
+
"cite": "boss_baron_geddon.cpp:111 Living Bomb 20475",
|
|
103
|
+
"resist": "fire",
|
|
104
|
+
"fleeAuras": [
|
|
105
|
+
{
|
|
106
|
+
"aura": 20475,
|
|
107
|
+
"radiusYd": 18,
|
|
108
|
+
"cite": "boss_baron_geddon.cpp:36 SPELL_LIVING_BOMB 20475 -> payload 20476 radiusYd 18"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"entry": 11988,
|
|
114
|
+
"name": "Golemagg the Incinerator",
|
|
115
|
+
"kinds": [
|
|
116
|
+
"resist"
|
|
117
|
+
],
|
|
118
|
+
"cite": "boss_golemagg.cpp Core Rager link",
|
|
119
|
+
"resist": "fire"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"entry": 12098,
|
|
123
|
+
"name": "Sulfuron Harbinger",
|
|
124
|
+
"kinds": [
|
|
125
|
+
"resist"
|
|
126
|
+
],
|
|
127
|
+
"cite": "boss_sulfuron.cpp Flamewaker Priest",
|
|
128
|
+
"resist": "fire"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"entry": 12018,
|
|
132
|
+
"name": "Majordomo Executus",
|
|
133
|
+
"kinds": [
|
|
134
|
+
"kill-order",
|
|
135
|
+
"resist"
|
|
136
|
+
],
|
|
137
|
+
"cite": "boss_majordomo.cpp 8 Flamewakers; healers first",
|
|
138
|
+
"resist": "fire",
|
|
139
|
+
"encounterRows": [
|
|
140
|
+
{
|
|
141
|
+
"kind": "kill-order",
|
|
142
|
+
"label": "Flamewaker Healers, then Elites",
|
|
143
|
+
"cite": "boss_majordomo_executus.cpp:96 SetDeathPrevention; molten_core.cpp:29-39 4x Elite 11664 + 4x Healer 11663; healers first",
|
|
144
|
+
"rule": {
|
|
145
|
+
"id": "raid_enc_12018_kill",
|
|
146
|
+
"action": {
|
|
147
|
+
"kind": "kill_order",
|
|
148
|
+
"entries": [
|
|
149
|
+
11663,
|
|
150
|
+
11664
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"conditions": [],
|
|
154
|
+
"enabled": true
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"entry": 11502,
|
|
161
|
+
"name": "Ragnaros",
|
|
162
|
+
"kinds": [
|
|
163
|
+
"resist"
|
|
164
|
+
],
|
|
165
|
+
"cite": "boss_ragnaros.cpp sons of flame / Wrath of Ragnaros",
|
|
166
|
+
"resist": "fire"
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
}
|