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,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "ubrs",
|
|
3
|
+
"bosses": [
|
|
4
|
+
{
|
|
5
|
+
"entry": 9816,
|
|
6
|
+
"name": "Pyroguard Emberseer",
|
|
7
|
+
"kinds": [],
|
|
8
|
+
"cite": "boss_pyroguard_emberseer.cpp:50-52 FIRENOVA / FLAMEBUFFET / PYROBLAST; creature_template 9816 spells 16079 Fire Nova (100 yd flat fire) + 16536 Flame Buffet - no run-out aura"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"entry": 10509,
|
|
12
|
+
"name": "Jed Runewatcher",
|
|
13
|
+
"kinds": [],
|
|
14
|
+
"cite": "no ScriptDevAI cpp and no EventAI overlay; creature_template 10509 spells 15749 Shield Charge / 11972 Shield Bash / 14516 Strike - a patrolling rare, pure melee"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"entry": 10899,
|
|
18
|
+
"name": "Goraluk Anvilcrack",
|
|
19
|
+
"kinds": [],
|
|
20
|
+
"cite": "eventai/ubrs.ts:157 classic-db/ACID/acid_classic.sql:14756-14758 creature_id=10899: 6253 Backhand / 16172 Head Crack / 15580 Strike - pure melee"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"entry": 10264,
|
|
24
|
+
"name": "Solakar Flamewreath",
|
|
25
|
+
"kinds": [],
|
|
26
|
+
"cite": "eventai/ubrs.ts:196 acid_classic.sql:14632-14634 creature_id=10264: 16727 War Stomp + 16556 Disturb Rookery Egg; the hatching whelps are trash waves, not a boss-side response"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"entry": 10339,
|
|
30
|
+
"name": "Gyth & Warchief Rend Blackhand",
|
|
31
|
+
"kinds": [],
|
|
32
|
+
"cite": "boss_gyth.cpp:34-40 CORROSIVE_ACID 16359 / FREEZE 16350 / FLAME_BREATH 16390 / KNOCK_AWAY 10101, then SUMMON_REND 16328 at 11 % HP - one body replaces the other, no raid verb"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"entry": 10430,
|
|
36
|
+
"name": "The Beast",
|
|
37
|
+
"kinds": [],
|
|
38
|
+
"cite": "eventai/ubrs.ts:12 acid_classic.sql:14692-14698 creature_id=10430: 15570 Immolate / 14100 Terrifying Roar / 16785 Flamebreak / 16636 Berserker Charge / 16788 Fireball / 16144 Fire Blast"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"entry": 16042,
|
|
42
|
+
"name": "Lord Valthalak",
|
|
43
|
+
"kinds": [],
|
|
44
|
+
"cite": "no ScriptDevAI cpp; creature_template 16042 spells 8269 Enrage / 27249 Summon Spectral Assassin / 27382 Shadow Bolt Volley / 27286 Shadow Wrath - the assassin is one add, unordered"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"entry": 10363,
|
|
48
|
+
"name": "General Drakkisath",
|
|
49
|
+
"kinds": [],
|
|
50
|
+
"cite": "eventai/ubrs.ts:88 acid_classic.sql:14662-14667 creature_id=10363: 23462 Fire Nova / 16805 Conflagration / 15588 Thunderclap / 16419 Flamestrike / 16789 Rage / 12097 Pierce Armor"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "uldaman",
|
|
3
|
+
"note": "Reviewed for E5.4 against boss_archaedas.cpp, eventai/uldaman.ts and acid_classic.sql. Seven of the eight bosses come back kinds: [] and that is the finding - every shaped ability in this wing is a disc at or inside melee reach, which the melee have to stand in to fight at all, and the one frontal cone (Ironaya's Arcing Smash) is already walked out of by the engine's own melee slot solver. Archaedas is the exception: Ground Tremor is a 20 yd disc, the same radius and the same target ids as High Priestess Jeklik's Sonic Burst, so the ranged get the same row.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 6910,
|
|
7
|
+
"name": "Revelosh",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "eventai/uldaman.ts:119-153 scripts 691001-691004, acid_classic.sql:17135-17138 creature_id=6910. 691001 puts him in ranged mode at 25 yd; the rest is Chain Lightning 16006 (Effect 2 targetA 6, rangeMax 30, castTimeMs 3000) and Lightning Bolt 15801 (targetA 6, rangeMax 40, castTimeMs 3000), plus Chain Lightning 15117 on the charm bar. Every one is a single-target nuke with no radiusYd and no aoeShape in the bake, so there is no shape to stand out of."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 6906,
|
|
13
|
+
"name": "Baelog",
|
|
14
|
+
"kinds": [],
|
|
15
|
+
"cite": "eventai/uldaman.ts:19-30 script 690602, acid_classic.sql:17125-17128 creature_id=6906. Strike 14516 is rangeMax 5 targetA 6 and Shoot 15620 is rangeMax 30 targetA 6, both single target with no radius; 690601 sets ranged mode 25 yd and 690602 flees for assist at 15% HP. Nothing in the kit has an area shape, so this is tank-and-spank."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"entry": 7228,
|
|
19
|
+
"name": "Ironaya",
|
|
20
|
+
"kinds": [],
|
|
21
|
+
"cite": "eventai/uldaman.ts:36-69 scripts 722801-722803, acid_classic.sql:17192-17194 creature_id=7228. Arcing Smash 8374 is the only shaped ability: src_spell_cone.ConeDegrees 71 with radiusYd 5 and rangeMax 5, a wedge that reaches melee only. The product already answers it - sessionChase.ts:440-461 meleeFlankSlot reads coneArcsOfKit(tgt.spec.spells) and slides every non-tank melee out of the front half plus each kit cone (combatGeometry.ts:567-586), and coneCovers (combatGeometry.ts:475-484) refuses an arc past its own radiusYd, so a raider at the 20-30 yd stand is never in this one. War Stomp 11876 is pbaoe radiusYd 5, mechanic 12, a 5 s stun - a disc at melee reach, the Stockade shape. Knock Away 10101 is targetA 6 single target."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"entry": 7023,
|
|
25
|
+
"name": "Obsidian Sentinel",
|
|
26
|
+
"kinds": [
|
|
27
|
+
"halt-dps"
|
|
28
|
+
],
|
|
29
|
+
"cite": "eventai/uldaman.ts:222-281 scripts 702301-702306, acid_classic.sql:17151-17156 creature_id=7023. At 80/60/40/20% HP it casts Summon Obsidian Shard 10061 (Effect 42 SUMMON_GUARDIAN, miscValue 7209) with Splintered Obsidian 10072, which is targetA 1 on ITSELF: attack power -60, 4 stacks. Spell Reflection 9941 is targetA 1, aura 28 at 19%, durationIndex 21 until-cancelled, cast on spawn - a permanent passive, not a window. uldaman.ts:436-475 models the four thresholds as phase-chained hpThreshold spawns, so the shards arrive one per phase and never coexist. Nothing here carries a radiusYd.",
|
|
30
|
+
"encounterRows": [
|
|
31
|
+
{
|
|
32
|
+
"kind": "halt-dps",
|
|
33
|
+
"label": "Casters off the shards, they reflect",
|
|
34
|
+
"cite": "The blocked note this replaces was wrong on its own premise, checked 2026-08-27 against the bake. It said 7209 'has no overlay in eventai/uldaman.ts, so the aura is never up'. An overlay is PREFERRED, not required: combatEnemySpec.ts:95 is `bossEventAiOverlay(def.entry) ?? def.ai`, and 7209's baked ai already carries the row - creatures.json 7209 `ai.scripts[0]` is id 720901, eventType 11 SPAWNED, action type 11 CAST param1 10074 (src_creature_ai_scripts id=720901, creature_id=7209), and its kit is `spells: [10074]`, so `spellFromKit` resolves it. The aura is up, and has been. Spell Reflection 10074 is Effect 6 APPLY_AURA, EffectApplyAuraName1 28, basePoints 99 with dieSides 1, targetA 1 self, DurationIndex 21 - the 4294967295 sentinel the bake reads as permanent. Aura 28 resolves to a `reflect` effect (interpreter handlers/auras-control.ts:898), so a nuke aimed at a shard comes back at the caster for its full value, all fight. Scoped to 7209 by `entries`, which is what makes the row safe: the SENTINEL takes nukes normally and only the shards are off limits. PHYSICAL is deliberately out of the school list - aura 28 reflects SPELLS, so melee keep killing the shard, and a halt that stopped white swings would take threat and the combat flag off it (stepSession.ts:2278, the Mandokir stalemate). The sentinel's own Spell Reflection 9941 is 19% and stays unrowed: a fifth of a nuke is a cost, not a wall.",
|
|
35
|
+
"rule": {
|
|
36
|
+
"id": "raid_enc_7023_halt_10074",
|
|
37
|
+
"action": {
|
|
38
|
+
"kind": "halt_dps",
|
|
39
|
+
"school": [
|
|
40
|
+
"holy",
|
|
41
|
+
"fire",
|
|
42
|
+
"nature",
|
|
43
|
+
"frost",
|
|
44
|
+
"shadow",
|
|
45
|
+
"arcane"
|
|
46
|
+
],
|
|
47
|
+
"entries": [
|
|
48
|
+
7209
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"conditions": [
|
|
52
|
+
{
|
|
53
|
+
"subject": "target",
|
|
54
|
+
"metric": "buffPresent",
|
|
55
|
+
"op": "==",
|
|
56
|
+
"value": 1,
|
|
57
|
+
"ref": 10074
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"enabled": true
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"entry": 7206,
|
|
67
|
+
"name": "Ancient Stone Keeper",
|
|
68
|
+
"kinds": [],
|
|
69
|
+
"cite": "eventai/uldaman.ts:287-310 scripts 720601-720602, acid_classic.sql:17185-17186 creature_id=7206. Both abilities are Sand Storms - 10094 (rangeMin 10, rangeMax 30) and 10132 (rangeMax 10), each Effect 42 SUMMON_GUARDIAN miscValue 7226. summonCast.ts:54-73 puts that body on the floor as a GUARDIAN, and a guardian follows its summoner at 1.5 yd (summonCast.ts:31), so the storm parks on the boss instead of wandering. Its kit is Sand Storm 10092 (acid_classic.sql:17190), an aura 23 that triggers Harsh Winds 10093 every 1000 ms: pbaoe radiusYd 5, a 1 s silence and 20 physical. Five yards on the boss is melee reach, and the 20-30 yd ranged stand is already clear of it."
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"entry": 7291,
|
|
73
|
+
"name": "Galgann Firehammer",
|
|
74
|
+
"kinds": [],
|
|
75
|
+
"cite": "eventai/uldaman.ts:316-364 scripts 729101-729105, acid_classic.sql:17201-17205 creature_id=7291. Fire Nova 11969 is the only shaped ability: pbaoe radiusYd 10, targetA 22 and targetB 15, castTimeMs 0, 100-112 fire and no aura left on him. Ten yards sits inside the melee band and inside RANGED_STAND_MIN_YD 20 (stand.ts:18), so the melee are in it because that is where melee happens and the ranged are already out - there is nobody a move verb could move. Amplify Flames 9482 (spell_taken +100, dispel 1 magic) and Flame Lash 3356 are single-target debuffs a dispel answers; Flame Shock 8053 is a single-target dot."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"entry": 4854,
|
|
79
|
+
"name": "Grimlok",
|
|
80
|
+
"kinds": [],
|
|
81
|
+
"cite": "eventai/uldaman.ts:159-184 scripts 485401-485403, acid_classic.sql:17105-17107 creature_id=4854 - ranged mode 35 yd and two yells, no ACTION_T_CAST at all. The kit comes off src_creature_template.SpellList 485401: Chain Bolt 8292 and Lightning Bolt 9532 are targetA 6 single-target nukes, Bloodlust 6742 is targetA 21 friendly haste at 30 yd (a purge the class rotations own), and Shrink 11892 is pbaoe radiusYd 5 with castTimeMs 3000, dispel 2 curse, -1 strength and -1 stamina - five yards on a mob standing at 35 yd, so it lands on whoever chased him and a decurse answers it. uldaman.ts:193 also hands him Tremor Totem 8143, a summon_totem of creature 5913, which is a body and not a party verb."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"entry": 2748,
|
|
85
|
+
"name": "Archaedas",
|
|
86
|
+
"kinds": [
|
|
87
|
+
"position",
|
|
88
|
+
"kill-order"
|
|
89
|
+
],
|
|
90
|
+
"note": "Ground Tremor stuns everything within 20 yd of him every 8 to 17 seconds. The melee have to eat it. The ranged only need to stand a yard further back.",
|
|
91
|
+
"cite": "boss_archaedas.cpp:29-237. There are no ACID rows for 2748 and creatures.json 2748 has no spells array - the kit is the ScriptDev port at src/domain/scriptdev/uldaman.ts:178-244, which combatEnemySpec.ts:103-127 resolves into the spec and sessionInject.ts:58-84 arms as the cast schedule. Ground Tremor 6524 (cpp:32, :68, :173-179) is the one raid-side ability: initial 7-14 s, then every 8-17 s. The awaken casts 10252 / 10258 / 10259 are radiusYd 100 auras whose only job is to strip Stoned 10255 off the earthen (cpp:190-226), so they ask the party for nothing positional.",
|
|
92
|
+
"encounterRows": [
|
|
93
|
+
{
|
|
94
|
+
"kind": "position",
|
|
95
|
+
"label": "Casters step out of Ground Tremor",
|
|
96
|
+
"cite": "spell 6524 Ground Tremor is aoeShape pbaoe radiusYd 20, rawEffects targetA 22 TARGET_LOCATION_CASTER_SRC and targetB 15, mechanic 12, a 2000 ms stun, castTimeMs 0. That is the same disc as High Priestess Jeklik's Sonic Burst 23918 (radiusYd 20, targetA 22 and targetB 15), so this is that row: isWithinRadiusYd hits at <=, so 21 is the first clear yard, and the trigger is deliberately wider than the park because a row released on the yard it parks on re-arms on the boss's next step. 24 in / 21 out leaves 2.5 yd to stand and cast in, and the 25 yd ranged stand (stand.ts:20 RANGED_STAND_DEFAULT_YD) sits outside the trigger 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 a permanent park there would end melee for a 2 s stun. Hunters are NOT excluded, unlike the Jeklik row - that exclusion is for her Charge bait row and Archaedas has no bait, so a hunter sitting on the 20 yd floor (stand.ts:18 RANGED_STAND_MIN_YD, which the disc reaches at <=) takes the same one-yard step. He leaves no aura and has no cast bar, so like the Vaelastrasz flank row 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 an awakened Earthen Guardian.",
|
|
97
|
+
"rule": {
|
|
98
|
+
"id": "raid_enc_2748_range_6524",
|
|
99
|
+
"action": {
|
|
100
|
+
"kind": "move",
|
|
101
|
+
"move": {
|
|
102
|
+
"kind": "keep_range",
|
|
103
|
+
"minYd": 21,
|
|
104
|
+
"entry": 2748
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"conditions": [
|
|
108
|
+
{
|
|
109
|
+
"subject": "self",
|
|
110
|
+
"metric": "isCaster",
|
|
111
|
+
"op": "==",
|
|
112
|
+
"value": 1
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"subject": "self",
|
|
116
|
+
"metric": "creatureDistanceYd",
|
|
117
|
+
"op": "<=",
|
|
118
|
+
"value": 24,
|
|
119
|
+
"ref": 2748
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"enabled": true
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"blockedBy": {
|
|
127
|
+
"kill-order": "boss_archaedas.cpp:147-154 wakes the adds in a STAGED order, never together: below 66.6% one cast of Awaken Earthen Guardians 10252 wakes all six 7076, and only below 33.2% does Awaken Vault Warder 10258 wake the two 10120. Nothing in the cpp or in classic-db says either must die first, and uldaman.ts:601-624 models both as phase-chained hpThreshold spawns, so the two sets never coexist and there is no order to impose. The one add that would justify a healer-first order is Earthen Hallshaper 7077 with Reconstruct 10260 (acid_classic.sql:17171, aura 8 periodic heal, 149 over 20 s), and it arrives only through the 9-12 s GetClosestDwarfNotInCombat trickle (cpp:156-171) that uldaman.ts:584 records as an omitted GAP."
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "wailing-caverns",
|
|
3
|
+
"note": "Reviewed for E5.4 against eventai/wailing-caverns.ts, acid_classic.sql and the whole ScriptDevAI wailing_caverns dir - which holds only the instance script and the escort, no boss file, so every kit here is an EventAI cast list. All nine bosses come back kinds: []. Of the four Druids of the Fang only Pythas casts a hostile area effect at all; the rest is Sleep, Healing Touch and Lightning Bolt one target at a time, and the answer to each is a dispel, a purge or an interrupt in the class rotation. Verdan is the one boss in the wing that asks for a run-out, and blockedBy carries the reason it cannot have one: the walk out of Grasping Vines is 100 ms longer than the cast that arms it.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 3671,
|
|
7
|
+
"name": "Lady Anacondra",
|
|
8
|
+
"kinds": [],
|
|
9
|
+
"cite": "eventai/wailing-caverns.ts:255-293, acid_classic.sql:17280-17287 creature_id=3671. Nothing she casts has a hostile radius. Sleep 700 is targetA 6 TARGET_UNIT_ENEMY, mechanic 10 MECHANIC_SLEEP, dispel 1, 20 s, 1500 ms cast, thrown at EventAI target 5 TARGET_T_HOSTILE_RANDOM_NOT_TOP; Lightning Bolt 9532 is targetA 6 at 40 yd; Healing Touch 5187 is targetA 21 TARGET_UNIT_FRIEND. Thorns Aura 8148 is Effect 35 SPELL_EFFECT_APPLY_AREA_AURA_PARTY, targetA 1 TARGET_UNIT_CASTER, radiusYd 30, aura 15 SPELL_AURA_DAMAGE_SHIELD 19 for 60 s - a buff on her own Druids of the Fang, so a purge, not ground to leave. Flees for assist at 15%."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"entry": 3669,
|
|
13
|
+
"name": "Lord Cobrahn",
|
|
14
|
+
"kinds": [],
|
|
15
|
+
"cite": "eventai/wailing-caverns.ts:73-142, acid_classic.sql:17263-17270 creature_id=3669. The Druid form change matters, but not to where anyone stands: Cobrahn Serpent Form 7965 is targetA 1 self (aura 56 SPELL_AURA_TRANSFORM miscValue 5791, aura 13 SPELL_AURA_MOD_DAMAGE_DONE 49, aura 138 SPELL_AURA_MOD_MELEE_HASTE -44, 300 s) cast once at <=30% HP with SetPhase 1, and script 366907 carries inversePhaseMask 1 - CheckEvent skips an event whose bit for the current phase is set (creatureCastList.ts:1071-1072), so the transform is what switches Druid's Slumber ON. 8040 is then mechanic 10 MECHANIC_SLEEP, dispel 1, 15 s, targetA 6, EventAI target 4 TARGET_T_HOSTILE_RANDOM - one sleeper at a time, which is a dispel. Poison Proc 3616 is targetA 1 self (aura 42 SPELL_AURA_PROC_TRIGGER_SPELL, trigger 744), Healing Touch 5188 targetA 21, Lightning Bolt 9532 targetA 6. No radius anywhere in the kit."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"entry": 3653,
|
|
19
|
+
"name": "Kresh",
|
|
20
|
+
"kinds": [],
|
|
21
|
+
"cite": "No script of any kind: acid_classic.sql has no row for creature_id=3653, src_creature_template_spells and src_creature_ai_scripts have none either, the overlay list at eventai/wailing-caverns.ts:403-411 does not name him, and the ScriptDevAI wailing_caverns dir has no boss file. src_creature_template.AIName and ScriptName are both empty and SpellList is 0. His whole kit is the creature_template melee - tank-and-spank."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"entry": 5912,
|
|
25
|
+
"name": "Deviate Faerie Dragon",
|
|
26
|
+
"kinds": [],
|
|
27
|
+
"cite": "Same three empties as Kresh: no acid_classic.sql row for creature_id=5912, no src_creature_template_spells row, no entry in the overlay list at eventai/wailing-caverns.ts:403-411, and no ScriptDevAI file. Rank 2 rare, MechanicImmuneMask 8388624, AIName empty, and optional in the instance graph (wailing-caverns.ts:202-212). Melee only."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"entry": 3670,
|
|
31
|
+
"name": "Lord Pythas",
|
|
32
|
+
"kinds": [],
|
|
33
|
+
"cite": "eventai/wailing-caverns.ts:150-213, acid_classic.sql:17272-17278 creature_id=3670. Thunderclap 8147 is the only hostile area effect the four Druids of the Fang have between them: targetA 22 TARGET_LOCATION_CASTER_SRC into tgtB 15 TARGET_ENUM_UNITS_ENEMY_AOE_AT_SRC_LOC, radiusYd 10 on all three effects - 70 damage, aura 33 SPELL_AURA_MOD_DECREASE_SPEED -41 (effMechanic 11 MECHANIC_SNARE) and aura 138 SPELL_AURA_MOD_MELEE_HASTE -44 for 10 s, cast at EventAI target 17 TARGET_T_NEAREST_AOE_TARGET every 12-20 s. It is castMs 0, so there is no cast bar to react to and no aura on Pythas to gate a walk on: the disc lands before any move verb can be armed, and the snare is dispel 1, a class row. Sleep 700 targetA 6, Healing Touch 5187 targetA 21 and Lightning Bolt 9532 targetA 6 are the same single-target three Anacondra has."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"entry": 3674,
|
|
37
|
+
"name": "Skum",
|
|
38
|
+
"kinds": [],
|
|
39
|
+
"cite": "eventai/wailing-caverns.ts:361-382, acid_classic.sql:17302-17303 creature_id=3674 - two rows and no more. Chained Bolt 6254 is targetA 6 TARGET_UNIT_ENEMY, 27 damage, 1800 ms cast, 30 yd, on EventAI target 1 TARGET_T_HOSTILE; src_creature_template_spells confirms spell1=6254 and nothing else. The other row is flee for assist at 15%. Single target start to finish."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"entry": 3673,
|
|
43
|
+
"name": "Lord Serpentis",
|
|
44
|
+
"kinds": [],
|
|
45
|
+
"cite": "eventai/wailing-caverns.ts:301-355, acid_classic.sql:17295-17300 creature_id=3673. Three casts and not one has a radius: Healing Touch 6778 targetA 21 TARGET_UNIT_FRIEND (741 healed), Sleep 700 targetA 6 mechanic 10 MECHANIC_SLEEP on EventAI target 5 TARGET_T_HOSTILE_RANDOM_NOT_TOP, Lightning Bolt 9532 targetA 6 at 40 yd. The last of the Fanglords is the thinnest of them - a heal to purge or interrupt and a sleep to dispel."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"entry": 5775,
|
|
49
|
+
"name": "Verdan the Everliving",
|
|
50
|
+
"kinds": [
|
|
51
|
+
"position"
|
|
52
|
+
],
|
|
53
|
+
"cite": "eventai/wailing-caverns.ts:388-401, acid_classic.sql:17333 creature_id=5775, src_creature_template_spells spell1=8142 and no spell2. Grasping Vines 8142 is his entire kit and it is a real run-out shape: targetA 22 TARGET_LOCATION_CASTER_SRC into tgtB 15, radiusYd 10 on all three effects - 149 damage, aura 26 SPELL_AURA_MOD_ROOT for 10 s (mechanic 7 MECHANIC_ROOT) and Effect 64 SPELL_EFFECT_TRIGGER_SPELL into 5164 Knockdown - castMs 1000, EventAI target 17 TARGET_T_NEAREST_AOE_TARGET every 15-30 s. It is the one mechanic in the wing a move verb would answer if the numbers allowed it, so the gap is in blockedBy rather than dropped.",
|
|
54
|
+
"encounterRows": [
|
|
55
|
+
{
|
|
56
|
+
"kind": "position",
|
|
57
|
+
"label": "Step out of Grasping Vines",
|
|
58
|
+
"cite": "eventai/wailing-caverns.ts:388-401, acid_classic.sql:17333 creature_id=5775 script 577501: 8142 Grasping Vines is castTimeMs 1000, aoeShape pbaoe radiusYd 10, direct_damage plus a 10 s root, every 15-30 s. The old refusal was ARITHMETIC and today's park ring retired it: Verdan's own creature_model_info.combat_reach is 6.75, so combinedCombatReachYd is max(5, 1.5+6.75+1.33) = 9.58 and melee arrive at the 10.13 contact ring instead of MIN_AGGRO_DISTANCE 5. keep_range arrives at radiusYd+1+0.5 = 11.5, so the walk is 1.37 yd, 2 ticks at BASE_RUN_SPEED 7.0 plus the tick that arms the row, against a 1000 ms cast. Cite: faa2f79fa; Object.cpp:1741-1758 GetCombinedCombatReach; sessionMechanicMove.ts:526 keep_range",
|
|
59
|
+
"rule": {
|
|
60
|
+
"id": "raid_enc_5775_keep_range_vines",
|
|
61
|
+
"action": {
|
|
62
|
+
"kind": "move",
|
|
63
|
+
"move": {
|
|
64
|
+
"kind": "keep_range",
|
|
65
|
+
"entry": 5775,
|
|
66
|
+
"minYd": 11
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"conditions": [
|
|
70
|
+
{
|
|
71
|
+
"subject": "target",
|
|
72
|
+
"metric": "castingSpellId",
|
|
73
|
+
"op": "==",
|
|
74
|
+
"value": 8142
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"enabled": true
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"entry": 3654,
|
|
84
|
+
"name": "Mutanus the Devourer",
|
|
85
|
+
"kinds": [],
|
|
86
|
+
"cite": "eventai/wailing-caverns.ts:19-66, acid_classic.sql:17253-17258 creature_id=3654. Thundercrack 8150 is targetA 22 TARGET_LOCATION_CASTER_SRC into tgtB 15, 93 damage at radiusYd 10 and aura 12 SPELL_AURA_MOD_STUN at radiusYd 20, mechanic 12 MECHANIC_STUN for 2500 ms, every 10-16 s - and castMs 0, so it is the Bazil Thredd shape at four times the radius: no telegraph, and the melee are inside 20 yd because that is where melee happens. A repeated melee stun is a trinket, Tremor Totem or Berserker Rage, which are class rows. Naralex's Nightmare 7967 (targetA 6, mechanic 10 MECHANIC_SLEEP, 15 s, 2000 ms cast) and Terrify 7399 (targetA 6, mechanic 5 MECHANIC_FEAR, 4 s, 5 yd) are both one target.",
|
|
87
|
+
"note": "No kill-order for the escort payoff: wailing_cavernsScripts.cpp:365-370 summons Mutanus in subevent phase 6, and the escort only reaches it once the ectoplasm wave is dead (:256-260 advances at m_uiSummonedAlive == 0, :358-364 is the wait). He arrives alone."
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"raid": "zul-farrak",
|
|
3
|
+
"note": "Reviewed for E5.4 against boss_zumrah.cpp, zulfarrak.cpp, instance_zulfarrak.cpp, eventai/zul-farrak.ts and acid_classic.sql. Ten of the twelve come back kinds: [] and that is the finding - the discs in this wing are 10 yd or narrower, which is the yard band the melee have to stand in to fight at all, and everything else is a single-target stun, root, snare, disease or curse that a trinket or a dispel answers. Two earn a row. Gahz'rilla Slam is a 20 yd disc with the same target ids as Archaedas's Ground Tremor, so the casters get the same one-yard step. Sergeant Bly does not turn on the party alone: three of his crew flip with him and one of them heals.",
|
|
4
|
+
"bosses": [
|
|
5
|
+
{
|
|
6
|
+
"entry": 8127,
|
|
7
|
+
"name": "Antu'sul",
|
|
8
|
+
"kinds": [
|
|
9
|
+
"kill-order"
|
|
10
|
+
],
|
|
11
|
+
"cite": "eventai/zul-farrak.ts:88-174 scripts 812701-812707, acid_classic.sql:17461-17467 creature_id=8127. Earthgrab Totem 8376 is Effect 42 miscValue 6066 with an empty effects[], so summonCast.ts:96-107 takes the rawEffects 41/42 fallback and puts a body at his feet; that totem's kit is 8378 (creature_template_spells 6066), aura 23 every 5000 ms triggering 8377 Earthgrab, aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, mechanic 7, a 4 s root. Ten yards on a body standing in melee is the Galgann Firehammer shape: the melee are in it because that is where melee happens, and RANGED_STAND_MIN_YD 20 (stand.ts:18) is already clear of it. Antu'sul's Minion 11894 is Effect 42 miscValue 8156, one Servant at 75% and two at 25%; the Servant's whole kit is Petrify 11020, targetA 6 rangeMax 5, mechanic 12, an 8 s stun on one player (acid_classic.sql:17473). Healing Wave of Antu'sul 11895 is targetA 1, a 2220-2580 self heal at 20% with castTimeMs 1000, so an interrupt answers it and that is a class row. The four Sul'lithuz Broodlings 8138 at 3 s carry Thrash 3391 and a poison proc, radiusYd 0 on both.",
|
|
12
|
+
"encounterRows": [
|
|
13
|
+
{
|
|
14
|
+
"kind": "kill-order",
|
|
15
|
+
"label": "Kill the Greater Healing Wards before Antu’sul",
|
|
16
|
+
"cite": "Healing Ward 11899 is Effect 87 SUMMON_TOTEM_SLOT1 miscValue 8179 for 30 s, and Greater Healing Ward 8179's kit is 11901 Healing Ward V Passive - aura 23 on a 3000 ms amplitude triggering 11900 Healing Aura, which is pbaoe radiusYd 10, targetA 22 and targetB 30 TARGET_AREAEFFECT_PARTY, 150 healed a pulse, about 1500 HP back over one ward's life. The ward is the body whose order matters and it now exists: applySpellLate refused every non-player totem caster, because sideForTotemSlot (totem.ts:49) hands back the fixed player-team totem_<slot> sides and an enemy ward built there would have spawned as one of YOUR units. A creature-cast totem now goes down the summon path instead - a body on the caster's own side, built from 8179's own creature row, which self-casts its passive template spells the moment it lands (Totem.cpp:33 default TOTEM_PASSIVE, :120-122 CastSpell(nullptr, spellId, TRIGGERED), :179-191 SetTypeBySummonSpell - 11901 is castTimeMs 0, so passive). Measured on a driven session in src/dev/smoke/hostileTotem.mjs: 2 casts, 1 ward body on the enemy side, 847 Healing Aura pulses, 0 player totem slots taken. kill_order is a filter and spends no GCD, so firstLivingKillOrderEntry (evaluate.ts:578) returns null while no 8179 stands and the row no-ops until one does.",
|
|
17
|
+
"rule": {
|
|
18
|
+
"id": "raid_enc_8127_kill",
|
|
19
|
+
"action": {
|
|
20
|
+
"kind": "kill_order",
|
|
21
|
+
"entries": [
|
|
22
|
+
8179
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"conditions": [],
|
|
26
|
+
"enabled": true
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"entry": 10081,
|
|
33
|
+
"name": "Dustwraith",
|
|
34
|
+
"kinds": [],
|
|
35
|
+
"cite": "acid_classic.sql:17490-17492 creature_id=10081 - no eventai overlay (the zul-farrak overlay list at :607-618 carries 10080 and 10082 but not this one), so ACID plus creatures.json spells [12254, 15667] is the whole kit. Virulent Poison Proc 12254 is targetA 1 on spawn, aura 42, triggering 12251 Virulent Poison, 17 nature every 3 s for 30 s on whoever he hits, dispel 4. Sinister Strike 15667 is Effect 17 targetA 6 rangeMax 5. Flees for assist at 15%. radiusYd 0 on both, so there is no shape on the floor: a rare elite that is tank-and-spank, and Cure Poison answers the only debuff."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"entry": 7272,
|
|
39
|
+
"name": "Theka the Martyr",
|
|
40
|
+
"kinds": [],
|
|
41
|
+
"cite": "eventai/zul-farrak.ts:312-332 scripts 727201-727202, acid_classic.sql:17386-17387 creature_id=7272. Fevered Plague 8600 is targetA 6 rangeMax 30, castTimeMs 4500, 250 nature plus 11 every 5 s for 180 s, dispel 3 disease - one target, no radius, and Abolish Disease answers it. Theka Transform 11089 at 30% is targetA 1 on himself: aura 56 transform to 7791 plus two aura 39 rows the bake reads as school_immunity schoolMask 1 and schoolMask 32 for 30 s. That is the only DPS-stop-shaped window in the wing and no verb fits it. halt_dps is scoped by SCHOOL, not by creature (types.ts:360, the same wall sm-cathedral.json hit on Mograine's Divine Shield), swinging into an immunity costs rage and nothing else, and the 30 s runs on its own clock whether the party attacks or not."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"entry": 7271,
|
|
45
|
+
"name": "Witch Doctor Zum'rah",
|
|
46
|
+
"kinds": [],
|
|
47
|
+
"cite": "No ACID rows for 7271, and creatures.json 7271 holds 12491/12739/15245/11086 under charmSpells only (combatEnemySpec.ts:138 never schedules a charm slot), so the kit is the ScriptDev port at src/domain/scriptdev/zulfarrak.ts:190-307 and its IR timers are what makes it fire. Shadow Bolt 12739 is targetA 6 rangeMax 40, one target every 3.5-5 s (boss_zumrah.cpp:163-172). Shadow Bolt Volley 15245 is aoeShape pbaoe radiusYd 30, targetA 22 tgtB 15, castTimeMs 3000, 128-172 shadow every 10-18 s (cpp:174-180): 30 yd reaches past the whole party stand, RANGED_STAND_DEFAULT_YD is 25 (stand.ts:20), and the first clear yard at 31 is outside a 30 yd caster's own range, so this is a flat nuke the healer eats. Healing Wave 12491 is a 3000 ms friendly heal (cpp:190-199), an interrupt and a class row. Ward of Zum'rah 11086 never reaches the floor: it bakes as summon_totem with slot 'none' and applySpellLate.ts:127-128 refuses it twice, once for the enemy caster and once for the missing slot. Summon Zul'Farrak Zombies 10247 (Effect 41 targetA 18, miscValue 7286 and 7276) drops a pair every 20 s (cpp:141-157), but Zul'Farrak Zombie 7286 carries only a death announce 10747 and Dead Hero 7276 a single-target Infected Wound 3427 (acid_classic.sql:17406-17409), so neither outranks the other and there is no order to impose."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"entry": 10080,
|
|
51
|
+
"name": "Sandarr Dunereaver",
|
|
52
|
+
"kinds": [],
|
|
53
|
+
"cite": "eventai/zul-farrak.ts:509-551 scripts 1008001-1008004, acid_classic.sql:17485-17488 creature_id=10080. Demoralizing Shout 13730 is the only shaped ability: aoeShape pbaoe radiusYd 10, targetA 22 tgtB 15, castTimeMs 0, aura 99 attack power -10 for 30 s. Ten yards is the Galgann shape again - inside the melee band, and RANGED_STAND_MIN_YD 20 is already outside it - and a debuff that has landed is not something a move verb takes back. Strike 14516 and Pummel 15615 are targetA 6 rangeMax 5, single target, the second a 5 s interrupt lockout; zul-farrak.ts:293 also lists 11976 Strike and 12555 Pummel, the same two shapes with smaller numbers. Flees for assist at 15%."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"entry": 10082,
|
|
57
|
+
"name": "Zerillis",
|
|
58
|
+
"kinds": [],
|
|
59
|
+
"cite": "eventai/zul-farrak.ts:557-605 scripts 1008201-1008205, acid_classic.sql:17494-17498 creature_id=10082. Ranged mode 25 on aggro. Net 6533 is targetA 6 rangeMax 20, mechanic 7, a 10 s root on one player plus a trigger of 11920. Frost Shot 12551 is targetA 6, mechanic 11, -60% speed for 10 s, dispel 1 magic. Shoot 15547 is targetA 6, one target. Every one is single target with radiusYd 0, so there is no ground to leave; a Free Action Potion or a dispel answers the root and the snare, and both are class rows. Flees for assist at 15%."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"entry": 7796,
|
|
63
|
+
"name": "Nekrum Gutchewer",
|
|
64
|
+
"kinds": [],
|
|
65
|
+
"cite": "eventai/zul-farrak.ts:452-465 script 779601, acid_classic.sql:17451 creature_id=7796 - one row, and it is the whole kit. Fevered Plague 8600 is targetA 6 rangeMax 30, castTimeMs 4500, 250 nature plus a 180 s disease at 11 per 5 s, dispel 3, every 16.9-21.7 s. One target, radiusYd 0, so this is tank-and-spank and the dispel is a class row. He arrives on the pyramid's final wave beside Sezz'ziz (zul-farrak.ts:170-176), but a wave is a body count and not a place to stand."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"entry": 7604,
|
|
69
|
+
"name": "Sergeant Bly",
|
|
70
|
+
"kinds": [
|
|
71
|
+
"kill-order"
|
|
72
|
+
],
|
|
73
|
+
"note": "Bly turns on the party with three of his crew. Murta Grimgut is the one who heals them, so she dies first.",
|
|
74
|
+
"cite": "His own hostile kit is not empty, but every row in it is single target. acid_classic.sql:17411-17413 creature_id=7604 is the source (no eventai overlay for 7604, and creatures.json 7604 carries spells [3637, 5301, 12170, 11972] with creatureCasts, so those ACID rows are what fire). Improved Blocking III 3637 and Defensive State 5301 are targetA 1 procs on spawn. Revenge 12170 is targetA 6 rangeMax 5, 16-20 physical. Shield Bash 11972 is targetA 6 rangeMax 5, an 8 s interrupt lockout. Nothing in the kit carries a radiusYd, so what this fight asks is not where to stand but which body dies first.",
|
|
75
|
+
"encounterRows": [
|
|
76
|
+
{
|
|
77
|
+
"kind": "kill-order",
|
|
78
|
+
"label": "Kill Murta Grimgut before Sergeant Bly",
|
|
79
|
+
"cite": "The gossip challenge flips Bly and three of his crew together: liveGauntletEscort.ts:554-560 walks ZF_BLY.crewEntries [7605, 7606, 7608] and sets each hostile, matching dbscripts_on_gossip 94101 faction 14 at +6 s (zul-farrak.ts:186-199), and dungeonSpawns map 209 carries one static body for each of 7604, 7605, 7606 and 7608. Only Murta Grimgut 7608 heals: acid_classic.sql:17430-17435 gives her Heal 11642 (castTimeMs 3500, 394-456, on a friendly 3000 HP down within 40 yd every 15 s), Renew 11640 and Power Word: Shield 11974 (137 absorbed, 30 s), all on EVENT_T_FRIENDLY_HP or FRIENDLY_MISSING_BUFF, and creatures.json 7608 holds all four under spells with creatureCasts so they schedule. The other two are damage and nothing in the DB ranks either above the boss: Raven 7605 is Gouge 12540 and Backstab 7159 (acid_classic.sql:17415-17417), Oro Eyegouge 7606 is Immolate 11962, Rain of Fire 11990 and Curse of Weakness 12741 (:17419-17423). Weegli Blastfuse 7607 is deliberately not on the crew list because he stays friendly and bombs the end door. The Bly encounter def (zul-farrak.ts:569-581) authors no pack, so on the instance-encounter path no crew body exists, firstLivingKillOrderEntry (evaluate.ts:578) returns null and the row no-ops.",
|
|
80
|
+
"rule": {
|
|
81
|
+
"id": "raid_enc_7604_kill",
|
|
82
|
+
"action": {
|
|
83
|
+
"kind": "kill_order",
|
|
84
|
+
"entries": [
|
|
85
|
+
7608
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"conditions": [],
|
|
89
|
+
"enabled": true
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"entry": 7795,
|
|
96
|
+
"name": "Hydromancer Velratha",
|
|
97
|
+
"kinds": [],
|
|
98
|
+
"cite": "eventai/zul-farrak.ts:401-446 scripts 779501-779505, acid_classic.sql:17445-17449 creature_id=7795. Ranged mode 35 on aggro. Shadow Bolt Volley 15245 is the same 30 yd disc Zum'rah casts (aoeShape pbaoe radiusYd 30, targetA 22 tgtB 15, castTimeMs 3000) and gets the same reading: 31 yd is the first clear yard and no caster can work from there, so it is healed through. Shadow Bolt 12739 is targetA 6 at 40 yd, single target. Healing Wave 12491 at 50% HP is a 3000 ms friendly heal, an interrupt. Ward of Zum'rah 11086 is the same slotless summon_totem applySpellLate.ts:127-128 refuses, so no ward body stands on her floor either."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"entry": 7273,
|
|
102
|
+
"name": "Gahz'rilla",
|
|
103
|
+
"kinds": [
|
|
104
|
+
"position"
|
|
105
|
+
],
|
|
106
|
+
"note": "Gahz'rilla slams the ground about every 20 seconds and it reaches 20 yards. The melee have to eat it. The casters only need to stand a yard further back.",
|
|
107
|
+
"cite": "eventai/zul-farrak.ts:180-213 scripts 727301-727303, acid_classic.sql:17389-17391 creature_id=7273 - there is no ScriptDev cpp for him, and zulfarrak.cpp:39-55 only arms the gong summon. Gahz'rilla Slam 11902 is the one raid-side ability and it has the row below. Freeze Solid 11836 is targetA 6 rangeMax 30, mechanic 12, a 10 s stun on one player with a 93-per-3 s frost dot, dispel 1 magic - single target, so a trinket or a dispel answers it and both are class rows. Icicle 11131 is targetA 6 at 60 yd, 350-400 frost, single target. Nothing in the ACID rows or the dump names an Earthquake on 7273.",
|
|
108
|
+
"encounterRows": [
|
|
109
|
+
{
|
|
110
|
+
"kind": "position",
|
|
111
|
+
"label": "Casters step out of Gahz'rilla Slam",
|
|
112
|
+
"cite": "Spell 11902 Gahz'rilla Slam is aoeShape pbaoe radiusYd 20, rawEffects targetA 22 TARGET_LOCATION_CASTER_SRC and targetB 15 on both effects, castTimeMs 0, every 16.9-28.9 s (acid_classic.sql:17390). That is the same disc as Archaedas's Ground Tremor 6524 and High Priestess Jeklik's Sonic Burst 23918, so it takes the same row and the numbers hold for the same reasons: isWithinRadiusYd hits at <=, so 21 is the first clear yard, and the 24 yd trigger is deliberately wider than the park because a row released on the yard it parks on re-arms on the boss's next step. RANGED_STAND_DEFAULT_YD 25 (stand.ts:20) sits outside the trigger so the camp is not armed all fight, while RANGED_STAND_MIN_YD 20 (stand.ts:18) is inside the disc at <=, and that is the yard this row exists to correct. What a raider inside 20 yd actually takes is the weapon strike plus strikeBonus 50, not a knockback: rawEffect 98 KNOCK_BACK is absent from the baked effects[], so the rider filter at stepSession.ts:931-937 has nothing to apply, and the fan is the AoE weapon-strike path at stepSession.ts:942-959, which selects secondaries on spell.radiusYd. isCaster keeps the melee out of it - a permanent park at 21 yd would end melee for flat physical damage - and hunters are not excluded, the same call the Archaedas row made, because there is no bait row here to protect. He is instant and leaves no aura, so this is a standing position rule and not a reaction.",
|
|
113
|
+
"rule": {
|
|
114
|
+
"id": "raid_enc_7273_range_11902",
|
|
115
|
+
"action": {
|
|
116
|
+
"kind": "move",
|
|
117
|
+
"move": {
|
|
118
|
+
"kind": "keep_range",
|
|
119
|
+
"minYd": 21,
|
|
120
|
+
"entry": 7273
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"conditions": [
|
|
124
|
+
{
|
|
125
|
+
"subject": "self",
|
|
126
|
+
"metric": "isCaster",
|
|
127
|
+
"op": "==",
|
|
128
|
+
"value": 1
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"subject": "self",
|
|
132
|
+
"metric": "creatureDistanceYd",
|
|
133
|
+
"op": "<=",
|
|
134
|
+
"value": 24,
|
|
135
|
+
"ref": 7273
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"enabled": true
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"entry": 7267,
|
|
145
|
+
"name": "Chief Ukorz Sandscalp",
|
|
146
|
+
"kinds": [],
|
|
147
|
+
"cite": "eventai/zul-farrak.ts:219-306 scripts 726701-726709, acid_classic.sql:17370-17378 creature_id=7267. Wide Slash 11837 is the only shaped ability: aoeShape cone, src_spell_cone.ConeDegrees 53, radiusYd 10, rangeMax 5, targetA 24 TARGET_IN_FRONT_OF_CASTER, on next swing. The product already answers it - sessionChase.ts:440-461 meleeFlankSlot reads coneArcsOfKit(tgt.spec.spells) and slides every non-tank melee out of the front half plus each kit cone, and coneCovers (combatGeometry.ts:475-485) refuses an arc past its own radiusYd, so nobody at the 20-25 yd ranged stand is ever inside a 10 yd wedge. Cleave 15623 is Effect 58 targetA 6 with radiusYd 0, one target (15496 on the charm bar is the same shape). Enrage 8269 at 60% and Berserker Stance 7366 are targetA 1 self buffs, and Hate to Zero 11838 fires on spawn. The 30% wave is Summon Sandfury Slave 11904 (Effect 42 miscValue 7787, basePoints 3) plus four ACTION_T_SUMMON_ID rows, but 7787 Sandfury Slave has no spells, no ai and no creatureCasts in the bake, so there is nothing among them to order."
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"entry": 7797,
|
|
151
|
+
"name": "Ruuzlu",
|
|
152
|
+
"kinds": [],
|
|
153
|
+
"cite": "eventai/zul-farrak.ts:471-503 scripts 779701-779703, acid_classic.sql:17453-17455 creature_id=7797. Execute 7160 is Effect 58 targetA 6 rangeMax 5, fired when his target drops below 20% HP. Cleave 15623 is Effect 58 targetA 6 with radiusYd 0, one target. Berserker Stance 7366 is targetA 1 on himself. Three rows, no radius anywhere, no summon and no phase: pure tank-and-spank beside Ukorz."
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
}
|