azeroth-shell 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -2
- package/bin/azsh.mjs +19 -0
- package/docs/aifid/eventai-texts.json +4414 -0
- package/docs/dungeons/atlas/atlas-rows-dungeons.json +8989 -0
- package/docs/dungeons/survey/pack-id-migration.json +2418 -0
- package/package.json +26 -4
- package/src/autopilot/bossSkip.ts +26 -0
- package/src/autopilot/combatRotation.ts +824 -0
- package/src/autopilot/config.ts +533 -0
- package/src/autopilot/consumables.ts +58 -0
- package/src/autopilot/encounterStand.ts +121 -0
- package/src/autopilot/objectGatePlan.ts +53 -0
- package/src/autopilot/pathEngage.ts +229 -0
- package/src/autopilot/plan.ts +1643 -0
- package/src/autopilot/questPolicy.ts +274 -0
- package/src/autopilot/routeStep.ts +69 -0
- package/src/autopilot/sessionReport.ts +88 -0
- package/src/autopilot/topOffPower.ts +26 -0
- package/src/autopilot/view.ts +476 -0
- package/src/cli/bootCheck.mjs +34 -0
- package/src/cli/bootData.mjs +57 -0
- package/src/cli/combatLogFilter.ts +153 -0
- package/src/cli/combatLogFormat.ts +613 -0
- package/src/cli/fileRepository.mjs +105 -0
- package/src/cli/gzLoader.mjs +31 -0
- package/src/cli/liveGauntletEscort.ts +978 -0
- package/src/cli/liveStratUndead.ts +305 -0
- package/src/cli/macroHostCombat.ts +545 -0
- package/src/cli/macroHostWorld.ts +330 -0
- package/src/cli/prefs.mjs +31 -0
- package/src/cli/register.mjs +4 -0
- package/src/cli/repl.mjs +693 -0
- package/src/cli/rotationText.mjs +226 -0
- package/src/cli/squad.mjs +105 -0
- package/src/cli/term.mjs +126 -0
- package/src/cli/text.mjs +122 -0
- package/src/cli/tui.mjs +626 -0
- package/src/cli/tuiArena.mjs +109 -0
- package/src/cli/tuiAutopilotSettings.mjs +93 -0
- package/src/cli/tuiBags.mjs +180 -0
- package/src/cli/tuiBars.mjs +133 -0
- package/src/cli/tuiBg.mjs +243 -0
- package/src/cli/tuiBulk.mjs +162 -0
- package/src/cli/tuiCheck.mjs +1882 -0
- package/src/cli/tuiCity.mjs +396 -0
- package/src/cli/tuiCompanionKit.mjs +300 -0
- package/src/cli/tuiCompanions.mjs +471 -0
- package/src/cli/tuiDev.mjs +62 -0
- package/src/cli/tuiDungeon.mjs +606 -0
- package/src/cli/tuiEnchantTarget.mjs +120 -0
- package/src/cli/tuiFight.mjs +577 -0
- package/src/cli/tuiFightPanes.mjs +228 -0
- package/src/cli/tuiFloor.mjs +506 -0
- package/src/cli/tuiGear.mjs +158 -0
- package/src/cli/tuiHonor.mjs +74 -0
- package/src/cli/tuiLoot.mjs +97 -0
- package/src/cli/tuiMacros.mjs +144 -0
- package/src/cli/tuiOutfitter.mjs +115 -0
- package/src/cli/tuiPet.mjs +116 -0
- package/src/cli/tuiProfessions.mjs +800 -0
- package/src/cli/tuiRaid.mjs +127 -0
- package/src/cli/tuiRep.mjs +65 -0
- package/src/cli/tuiSaves.mjs +69 -0
- package/src/cli/tuiSearch.mjs +363 -0
- package/src/cli/tuiSettings.mjs +151 -0
- package/src/cli/tuiSimLab.mjs +80 -0
- package/src/cli/tuiTalents.mjs +60 -0
- package/src/cli/tuiViews.mjs +1178 -0
- package/src/cli/tuiWiki.mjs +181 -0
- package/src/cli/tuiWorld.mjs +361 -0
- package/src/cli/wikiIndex.ts +259 -0
- package/src/cli/wikiSources.ts +355 -0
- package/src/data/alteracValley.ts +176 -0
- package/src/data/appearanceOptions.ts +534 -0
- package/src/data/applyLootChanceSanity.ts +21 -0
- package/src/data/createFlavor.ts +96 -0
- package/src/data/customItems.ts +33 -0
- package/src/data/dataStore.ts +1904 -0
- package/src/data/dungeonGameObjects.ts +84 -0
- package/src/data/dungeonPlateCover.ts +66 -0
- package/src/data/dungeonSpawns.ts +294 -0
- package/src/data/dungeons/alterac-valley.ts +135 -0
- package/src/data/dungeons/apply-dungeon-rooms.ts +29 -0
- package/src/data/dungeons/apply-encounter-outdoors.ts +72 -0
- package/src/data/dungeons/apply-instance-geometry.ts +65 -0
- package/src/data/dungeons/apply-spawn-placement.ts +171 -0
- package/src/data/dungeons/blackfathom-deeps.ts +539 -0
- package/src/data/dungeons/blackrock-depths.ts +1410 -0
- package/src/data/dungeons/blackwing-lair.ts +129 -0
- package/src/data/dungeons/boss-eventai.ts +8 -0
- package/src/data/dungeons/deadmines.ts +410 -0
- package/src/data/dungeons/dire-maul-east.ts +980 -0
- package/src/data/dungeons/dire-maul-north.ts +661 -0
- package/src/data/dungeons/dire-maul-west.ts +785 -0
- package/src/data/dungeons/dungeon-rooms.json +5479 -0
- package/src/data/dungeons/encounter-outdoors.json +359 -0
- package/src/data/dungeons/eventai/blackfathom-deeps.ts +308 -0
- package/src/data/dungeons/eventai/blackrock-depths.ts +1257 -0
- package/src/data/dungeons/eventai/deadmines.ts +264 -0
- package/src/data/dungeons/eventai/dire-maul-east.ts +320 -0
- package/src/data/dungeons/eventai/gnomeregan.ts +213 -0
- package/src/data/dungeons/eventai/helpers.ts +79 -0
- package/src/data/dungeons/eventai/index.ts +133 -0
- package/src/data/dungeons/eventai/lbrs.ts +372 -0
- package/src/data/dungeons/eventai/maraudon.ts +323 -0
- package/src/data/dungeons/eventai/ragefire-chasm.ts +108 -0
- package/src/data/dungeons/eventai/razorfen-downs.ts +207 -0
- package/src/data/dungeons/eventai/razorfen-kraul.ts +326 -0
- package/src/data/dungeons/eventai/scholomance.ts +680 -0
- package/src/data/dungeons/eventai/shadowfang-keep.ts +230 -0
- package/src/data/dungeons/eventai/sm-cathedral.ts +75 -0
- package/src/data/dungeons/eventai/sm-graveyard.ts +150 -0
- package/src/data/dungeons/eventai/sm-library.ts +55 -0
- package/src/data/dungeons/eventai/stratholme-undead.ts +127 -0
- package/src/data/dungeons/eventai/sunken-temple.ts +582 -0
- package/src/data/dungeons/eventai/the-stockade.ts +228 -0
- package/src/data/dungeons/eventai/ubrs.ts +225 -0
- package/src/data/dungeons/eventai/uldaman.ts +355 -0
- package/src/data/dungeons/eventai/wailing-caverns.ts +396 -0
- package/src/data/dungeons/eventai/zul-farrak.ts +591 -0
- package/src/data/dungeons/gnomeregan.ts +909 -0
- package/src/data/dungeons/index.ts +126 -0
- package/src/data/dungeons/instance-geometry.json +5233 -0
- package/src/data/dungeons/key-sources.json +169 -0
- package/src/data/dungeons/lbrs.ts +996 -0
- package/src/data/dungeons/maraudon.ts +786 -0
- package/src/data/dungeons/molten-core.ts +194 -0
- package/src/data/dungeons/naxxramas.ts +173 -0
- package/src/data/dungeons/onyxias-lair.ts +71 -0
- package/src/data/dungeons/pack-from-clusters.ts +1256 -0
- package/src/data/dungeons/ragefire-chasm.ts +238 -0
- package/src/data/dungeons/razorfen-downs.ts +698 -0
- package/src/data/dungeons/razorfen-kraul.ts +766 -0
- package/src/data/dungeons/ruins-of-ahnqiraj.ts +121 -0
- package/src/data/dungeons/scholomance.ts +1076 -0
- package/src/data/dungeons/shadowfang-keep.ts +740 -0
- package/src/data/dungeons/sm-armory.ts +266 -0
- package/src/data/dungeons/sm-cathedral.ts +430 -0
- package/src/data/dungeons/sm-graveyard.ts +482 -0
- package/src/data/dungeons/sm-library.ts +337 -0
- package/src/data/dungeons/stratholme-live.ts +808 -0
- package/src/data/dungeons/stratholme-undead.ts +1164 -0
- package/src/data/dungeons/sunken-temple.ts +931 -0
- package/src/data/dungeons/temple-of-ahnqiraj.ts +119 -0
- package/src/data/dungeons/the-stockade.ts +282 -0
- package/src/data/dungeons/ubrs.ts +1286 -0
- package/src/data/dungeons/uldaman.ts +685 -0
- package/src/data/dungeons/wailing-caverns.ts +356 -0
- package/src/data/dungeons/zul-farrak.ts +686 -0
- package/src/data/dungeons/zul-gurub.ts +142 -0
- package/src/data/dungeons.ts +42 -0
- package/src/data/fixtures.ts +446 -0
- package/src/data/gameobject-data.json.gz +0 -0
- package/src/data/item-data.json.gz +0 -0
- package/src/data/loot-data.json.gz +0 -0
- package/src/data/maps/atlas-approach-maps.json +1425 -0
- package/src/data/maps/atlas-landmarks.json +1711 -0
- package/src/data/maps/dungeon-viewports.json +392 -0
- package/src/data/materializeModDamagePercentTaken.ts +70 -0
- package/src/data/materializeModHealthRegen.ts +89 -0
- package/src/data/materializeSpellReputation.ts +26 -0
- package/src/data/pageTexts.ts +19 -0
- package/src/data/profession-data.json.gz +0 -0
- package/src/data/raid-plans/blackfathom-deeps.json +86 -0
- package/src/data/raid-plans/blackrock-depths.json +419 -0
- package/src/data/raid-plans/blackwing-lair.json +328 -0
- package/src/data/raid-plans/deadmines.json +55 -0
- package/src/data/raid-plans/dire-maul-east.json +94 -0
- package/src/data/raid-plans/dire-maul-north.json +70 -0
- package/src/data/raid-plans/dire-maul-west.json +75 -0
- package/src/data/raid-plans/gnomeregan.json +131 -0
- package/src/data/raid-plans/lbrs.json +176 -0
- package/src/data/raid-plans/maraudon.json +102 -0
- package/src/data/raid-plans/molten-core.json +169 -0
- package/src/data/raid-plans/naxxramas.json +354 -0
- package/src/data/raid-plans/onyxias-lair.json +18 -0
- package/src/data/raid-plans/ragefire-chasm.json +30 -0
- package/src/data/raid-plans/razorfen-downs.json +75 -0
- package/src/data/raid-plans/razorfen-kraul.json +53 -0
- package/src/data/raid-plans/ruins-of-ahnqiraj.json +110 -0
- package/src/data/raid-plans/scholomance.json +170 -0
- package/src/data/raid-plans/shadowfang-keep.json +87 -0
- package/src/data/raid-plans/sm-armory.json +53 -0
- package/src/data/raid-plans/sm-cathedral.json +72 -0
- package/src/data/raid-plans/sm-graveyard.json +63 -0
- package/src/data/raid-plans/sm-library.json +23 -0
- package/src/data/raid-plans/stratholme-live.json +129 -0
- package/src/data/raid-plans/stratholme-undead.json +73 -0
- package/src/data/raid-plans/sunken-temple.json +159 -0
- package/src/data/raid-plans/temple-of-ahnqiraj.json +163 -0
- package/src/data/raid-plans/the-stockade.json +42 -0
- package/src/data/raid-plans/ubrs.json +53 -0
- package/src/data/raid-plans/uldaman.json +131 -0
- package/src/data/raid-plans/wailing-caverns.json +90 -0
- package/src/data/raid-plans/zul-farrak.json +156 -0
- package/src/data/raid-plans/zul-gurub.json +307 -0
- package/src/data/raidInstanceCreatures.mjs +473 -0
- package/src/data/rotations/index.ts +152 -0
- package/src/data/rotations/layout.mjs +72 -0
- package/src/data/rotations/pve/druid/balance.json +754 -0
- package/src/data/rotations/pve/druid/feral-tank.json +2448 -0
- package/src/data/rotations/pve/druid/feral.json +2660 -0
- package/src/data/rotations/pve/druid/restoration.json +424 -0
- package/src/data/rotations/pve/hunter/beast-mastery.json +1288 -0
- package/src/data/rotations/pve/hunter/marksmanship.json +1260 -0
- package/src/data/rotations/pve/hunter/survival.json +1373 -0
- package/src/data/rotations/pve/mage/arcane-leveling.json +1798 -0
- package/src/data/rotations/pve/mage/fire-leveling.json +2003 -0
- package/src/data/rotations/pve/mage/frost-leveling.json +1912 -0
- package/src/data/rotations/pve/paladin/holy.json +755 -0
- package/src/data/rotations/pve/paladin/protection.json +962 -0
- package/src/data/rotations/pve/paladin/retribution.json +924 -0
- package/src/data/rotations/pve/priest/discipline.json +772 -0
- package/src/data/rotations/pve/priest/holy.json +707 -0
- package/src/data/rotations/pve/priest/shadow.json +787 -0
- package/src/data/rotations/pve/rogue/assassination.json +2477 -0
- package/src/data/rotations/pve/rogue/combat.json +2483 -0
- package/src/data/rotations/pve/rogue/subtlety.json +2523 -0
- package/src/data/rotations/pve/shaman/elemental.json +1157 -0
- package/src/data/rotations/pve/shaman/enhancement.json +1085 -0
- package/src/data/rotations/pve/shaman/restoration.json +592 -0
- package/src/data/rotations/pve/warlock/affliction.json +1185 -0
- package/src/data/rotations/pve/warlock/demonology.json +1165 -0
- package/src/data/rotations/pve/warlock/destruction.json +1177 -0
- package/src/data/rotations/pve/warrior/arms.json +3020 -0
- package/src/data/rotations/pve/warrior/fury.json +2996 -0
- package/src/data/rotations/pve/warrior/protection.json +2509 -0
- package/src/data/rotations/pvp/druid/balance.json +593 -0
- package/src/data/rotations/pvp/druid/feral.json +3276 -0
- package/src/data/rotations/pvp/druid/restoration.json +662 -0
- package/src/data/rotations/pvp/hunter/beast-mastery.json +665 -0
- package/src/data/rotations/pvp/hunter/marksmanship.json +2406 -0
- package/src/data/rotations/pvp/hunter/survival.json +635 -0
- package/src/data/rotations/pvp/mage/arcane.json +574 -0
- package/src/data/rotations/pvp/mage/fire.json +570 -0
- package/src/data/rotations/pvp/mage/frost.json +4048 -0
- package/src/data/rotations/pvp/paladin/holy.json +1498 -0
- package/src/data/rotations/pvp/paladin/protection.json +567 -0
- package/src/data/rotations/pvp/paladin/retribution.json +1110 -0
- package/src/data/rotations/pvp/priest/discipline.json +1848 -0
- package/src/data/rotations/pvp/priest/holy.json +6340 -0
- package/src/data/rotations/pvp/priest/shadow.json +2329 -0
- package/src/data/rotations/pvp/rogue/assassination.json +1322 -0
- package/src/data/rotations/pvp/rogue/combat.json +5258 -0
- package/src/data/rotations/pvp/rogue/subtlety.json +586 -0
- package/src/data/rotations/pvp/shaman/elemental.json +1404 -0
- package/src/data/rotations/pvp/shaman/enhancement.json +1277 -0
- package/src/data/rotations/pvp/shaman/restoration.json +2490 -0
- package/src/data/rotations/pvp/warlock/affliction.json +1017 -0
- package/src/data/rotations/pvp/warlock/demonology.json +1503 -0
- package/src/data/rotations/pvp/warlock/destruction.json +638 -0
- package/src/data/rotations/pvp/warrior/arms.json +5665 -0
- package/src/data/rotations/pvp/warrior/fury.json +850 -0
- package/src/data/rotations/pvp/warrior/protection.json +777 -0
- package/src/data/schema/bundle.ts +511 -0
- package/src/data/schema/constants.ts +49 -0
- package/src/data/schema/creature.ts +454 -0
- package/src/data/schema/encounter.ts +155 -0
- package/src/data/schema/faction.ts +48 -0
- package/src/data/schema/item.ts +297 -0
- package/src/data/schema/itemEnchant.ts +105 -0
- package/src/data/schema/npc.ts +44 -0
- package/src/data/schema/primitives.ts +295 -0
- package/src/data/schema/profession.ts +226 -0
- package/src/data/schema/quest.ts +154 -0
- package/src/data/schema/spell.ts +1149 -0
- package/src/data/schema/talent.ts +74 -0
- package/src/data/schema/world.ts +124 -0
- package/src/data/schema.ts +19 -0
- package/src/data/skinNodeGapFill.ts +68 -0
- package/src/data/spell-data.json.gz +0 -0
- package/src/data/spell-script-targets.json +1 -0
- package/src/data/tables/ahItemValues.json.gz +0 -0
- package/src/data/tables/alteracValley.json.gz +0 -0
- package/src/data/tables/areatriggerTeleports.json.gz +0 -0
- package/src/data/tables/botNames.json.gz +0 -0
- package/src/data/tables/botPopulation.json.gz +0 -0
- package/src/data/tables/botSpecs.json.gz +0 -0
- package/src/data/tables/classLevelStats.json.gz +0 -0
- package/src/data/tables/combatConditions.json.gz +0 -0
- package/src/data/tables/combatSkillMeta.json.gz +0 -0
- package/src/data/tables/conditions.json.gz +0 -0
- package/src/data/tables/createInfo.json.gz +0 -0
- package/src/data/tables/creatureAggroGroups.json.gz +0 -0
- package/src/data/tables/creatureClassLevelStats.json.gz +0 -0
- package/src/data/tables/creaturePatrolPacks.json.gz +0 -0
- package/src/data/tables/creatureWeapons.json.gz +0 -0
- package/src/data/tables/creatures.json.gz +0 -0
- package/src/data/tables/dbScripts.json.gz +0 -0
- package/src/data/tables/dungeonAuthoredRoutes.json.gz +0 -0
- package/src/data/tables/dungeonCensus.json.gz +0 -0
- package/src/data/tables/dungeonGameObjects.json.gz +0 -0
- package/src/data/tables/dungeonPacks.json.gz +0 -0
- package/src/data/tables/dungeonPlateCover.json.gz +0 -0
- package/src/data/tables/dungeonSpawns.json.gz +0 -0
- package/src/data/tables/dungeonSurvey.json.gz +0 -0
- package/src/data/tables/durabilityCosts.json.gz +0 -0
- package/src/data/tables/durabilityQuality.json.gz +0 -0
- package/src/data/tables/enchantApplicators.json.gz +0 -0
- package/src/data/tables/entranceYards.json.gz +0 -0
- package/src/data/tables/explorationBasexp.json.gz +0 -0
- package/src/data/tables/factionTemplates.json.gz +0 -0
- package/src/data/tables/factions.json.gz +0 -0
- package/src/data/tables/gameEvents.json.gz +0 -0
- package/src/data/tables/gameObjects.json.gz +0 -0
- package/src/data/tables/gossipMenus.json.gz +0 -0
- package/src/data/tables/graveyards.json.gz +0 -0
- package/src/data/tables/instanceMaps.json.gz +0 -0
- package/src/data/tables/itemEnchantmentTemplates.json.gz +0 -0
- package/src/data/tables/itemEnchants.json.gz +0 -0
- package/src/data/tables/itemRandomProperties.json.gz +0 -0
- package/src/data/tables/itemSets.json.gz +0 -0
- package/src/data/tables/items.json.gz +0 -0
- package/src/data/tables/levelStats.json.gz +0 -0
- package/src/data/tables/locks.json.gz +0 -0
- package/src/data/tables/map-pin-overrides.json.gz +0 -0
- package/src/data/tables/nonCombatTrash.json.gz +0 -0
- package/src/data/tables/npcTexts.json.gz +0 -0
- package/src/data/tables/pageTexts.json.gz +0 -0
- package/src/data/tables/petAbilityTP.json.gz +0 -0
- package/src/data/tables/petGenericSpells.json.gz +0 -0
- package/src/data/tables/petLevelStats.json.gz +0 -0
- package/src/data/tables/playerbot-weightscales.json.gz +0 -0
- package/src/data/tables/pools.json.gz +0 -0
- package/src/data/tables/quests.json.gz +0 -0
- package/src/data/tables/races.json.gz +0 -0
- package/src/data/tables/reputationRanks.json.gz +0 -0
- package/src/data/tables/reputationRates.json.gz +0 -0
- package/src/data/tables/reputationSpillover.json.gz +0 -0
- package/src/data/tables/ridingSpells.json.gz +0 -0
- package/src/data/tables/scriptTexts.json.gz +0 -0
- package/src/data/tables/soundClipVolume.json.gz +0 -0
- package/src/data/tables/spellChain.json.gz +0 -0
- package/src/data/tables/spellTeleports.json.gz +0 -0
- package/src/data/tables/spells.json.gz +0 -0
- package/src/data/tables/talents.json.gz +0 -0
- package/src/data/tables/tavernTriggers.json.gz +0 -0
- package/src/data/tables/taxiNodes.json.gz +0 -0
- package/src/data/tables/taxiRoutes.json.gz +0 -0
- package/src/data/tables/trainers.json.gz +0 -0
- package/src/data/tables/transports.json.gz +0 -0
- package/src/data/tables/travelAnchors.json.gz +0 -0
- package/src/data/tables/travelEdges.json.gz +0 -0
- package/src/data/tables/unitConditions.json.gz +0 -0
- package/src/data/tables/vendors.json.gz +0 -0
- package/src/data/tables/weaponEnchantProcs.json.gz +0 -0
- package/src/data/tables/xp.json.gz +0 -0
- package/src/data/tables/zoneWeather.json.gz +0 -0
- package/src/data/tables/zones.json.gz +0 -0
- package/src/data/world-data.ts +56 -0
- package/src/data/zone-music-sets.json +2751 -0
- package/src/dev/etl/lib/loot-chance-sanity.mjs +180 -0
- package/src/domain/audioQuality.mjs +145 -0
- package/src/domain/bg/ab.ts +433 -0
- package/src/domain/bg/arenaComps.ts +644 -0
- package/src/domain/bg/arenaLab.ts +695 -0
- package/src/domain/bg/arenaPace.ts +31 -0
- package/src/domain/bg/arenaRating.ts +110 -0
- package/src/domain/bg/av.ts +758 -0
- package/src/domain/bg/avEnemyPush.ts +219 -0
- package/src/domain/bg/avField.ts +283 -0
- package/src/domain/bg/avInstanceNodes.ts +197 -0
- package/src/domain/bg/avInstanceScore.ts +123 -0
- package/src/domain/bg/avQuestItems.ts +55 -0
- package/src/domain/bg/avQuests.ts +210 -0
- package/src/domain/bg/avSession.ts +196 -0
- package/src/domain/bg/bgConsumes.ts +269 -0
- package/src/domain/bg/bgPrebuff.ts +153 -0
- package/src/domain/bg/bgRest.ts +91 -0
- package/src/domain/bg/bgRoster.ts +305 -0
- package/src/domain/bg/bgTier.ts +61 -0
- package/src/domain/bg/bgWorld.ts +862 -0
- package/src/domain/bg/match.ts +215 -0
- package/src/domain/bg/strategies.ts +552 -0
- package/src/domain/bg/types.ts +291 -0
- package/src/domain/bg/wsg.ts +264 -0
- package/src/domain/bots/actionProviderSpec.ts +38 -0
- package/src/domain/bots/autoConsumables.ts +285 -0
- package/src/domain/bots/betweenPullRest.ts +239 -0
- package/src/domain/bots/botGear.ts +248 -0
- package/src/domain/bots/botInventory.ts +486 -0
- package/src/domain/bots/botPet.ts +535 -0
- package/src/domain/bots/botPool.ts +291 -0
- package/src/domain/bots/botProfessions.ts +334 -0
- package/src/domain/bots/companionActionBar.ts +209 -0
- package/src/domain/bots/companionHireCost.ts +236 -0
- package/src/domain/bots/companionMissions.ts +582 -0
- package/src/domain/bots/companionPrep.ts +254 -0
- package/src/domain/bots/companionQuests.ts +270 -0
- package/src/domain/bots/companionRep.ts +75 -0
- package/src/domain/bots/companionRotation.ts +708 -0
- package/src/domain/bots/companionXp.ts +66 -0
- package/src/domain/bots/consumableShare.ts +811 -0
- package/src/domain/bots/dpsMate.ts +1072 -0
- package/src/domain/bots/groupCompReport.ts +132 -0
- package/src/domain/bots/healthstoneSupply.ts +198 -0
- package/src/domain/bots/outfitter.ts +1056 -0
- package/src/domain/bots/paladinPrePull.ts +231 -0
- package/src/domain/bots/partyRole.ts +40 -0
- package/src/domain/bots/playerbotEquipCache.ts +412 -0
- package/src/domain/bots/playerbotItemEligibility.ts +60 -0
- package/src/domain/bots/playerbotStatWeight.ts +853 -0
- package/src/domain/bots/playerbotUnavailableItems.ts +147 -0
- package/src/domain/bots/prePullBuffs.ts +219 -0
- package/src/domain/bots/prePullStealth.ts +82 -0
- package/src/domain/bots/runSupply.ts +251 -0
- package/src/domain/bots/runSupplyPrefs.ts +28 -0
- package/src/domain/bots/sendTradeGoods.ts +394 -0
- package/src/domain/bots/soulShardCap.ts +35 -0
- package/src/domain/bots/squad.ts +842 -0
- package/src/domain/bots/squadRun.ts +81 -0
- package/src/domain/character/actionbar.ts +346 -0
- package/src/domain/character/appearance.ts +165 -0
- package/src/domain/character/buildCombatant.ts +1726 -0
- package/src/domain/character/character.ts +356 -0
- package/src/domain/character/characterName.ts +43 -0
- package/src/domain/character/characterRatings.ts +424 -0
- package/src/domain/character/characterSpells.ts +282 -0
- package/src/domain/character/characterStats.ts +1559 -0
- package/src/domain/character/characterTalents.ts +398 -0
- package/src/domain/character/combatSkills.ts +994 -0
- package/src/domain/character/displayForm.ts +72 -0
- package/src/domain/character/formTalentAuras.ts +171 -0
- package/src/domain/character/forms.ts +499 -0
- package/src/domain/character/races.ts +40 -0
- package/src/domain/character/resurrectionSickness.ts +49 -0
- package/src/domain/character/spellbook.ts +169 -0
- package/src/domain/character/stanceBar.ts +354 -0
- package/src/domain/character/stancePrereq.ts +70 -0
- package/src/domain/character/talentBuilds.ts +63 -0
- package/src/domain/character/talentImport.ts +130 -0
- package/src/domain/character/talentLink.ts +123 -0
- package/src/domain/character/talents.ts +201 -0
- package/src/domain/core/conditionSnapshot.ts +92 -0
- package/src/domain/core/hover.ts +14 -0
- package/src/domain/core/ids.ts +58 -0
- package/src/domain/core/internalNameTags.ts +5 -0
- package/src/domain/core/runtimeDataPatches.ts +357 -0
- package/src/domain/creature/aiTargeting.ts +588 -0
- package/src/domain/creature/combatCondition.ts +157 -0
- package/src/domain/creature/creatureAggro.ts +804 -0
- package/src/domain/creature/creatureAi.ts +206 -0
- package/src/domain/creature/creatureAiConstants.ts +661 -0
- package/src/domain/creature/creatureCastList.ts +1007 -0
- package/src/domain/creature/creatureEventAi.ts +1409 -0
- package/src/domain/creature/creatureGroups.ts +144 -0
- package/src/domain/creature/creatureLinking.ts +333 -0
- package/src/domain/creature/creatureScaling.ts +320 -0
- package/src/domain/creature/creatureTrigger.ts +53 -0
- package/src/domain/creature/creatureWander.ts +74 -0
- package/src/domain/creature/eventAiTexts.ts +145 -0
- package/src/domain/creature/faction.ts +287 -0
- package/src/domain/creature/forcedReaction.ts +48 -0
- package/src/domain/creature/outdoorHuntable.ts +74 -0
- package/src/domain/creature/patrolPacks.ts +210 -0
- package/src/domain/creature/reputation.ts +967 -0
- package/src/domain/creature/unitFlags.ts +74 -0
- package/src/domain/creature/worldBosses.ts +393 -0
- package/src/domain/dungeonMusic.mjs +48 -0
- package/src/domain/economy/auction.ts +282 -0
- package/src/domain/economy/auctionBot.ts +1060 -0
- package/src/domain/economy/honorPrice.ts +100 -0
- package/src/domain/economy/mail.ts +958 -0
- package/src/domain/economy/money.ts +42 -0
- package/src/domain/economy/syntheticClassTrainers.ts +62 -0
- package/src/domain/economy/trading.ts +296 -0
- package/src/domain/economy/vendorSellAll.ts +252 -0
- package/src/domain/economy/vendorStock.ts +146 -0
- package/src/domain/items/ammo.ts +817 -0
- package/src/domain/items/bank.ts +162 -0
- package/src/domain/items/consumableFamily.ts +205 -0
- package/src/domain/items/craftUpgrades.ts +83 -0
- package/src/domain/items/createItem.ts +93 -0
- package/src/domain/items/durability.ts +581 -0
- package/src/domain/items/equipment.ts +441 -0
- package/src/domain/items/equipmentHelper.ts +767 -0
- package/src/domain/items/inventory.ts +561 -0
- package/src/domain/items/itemBonding.ts +93 -0
- package/src/domain/items/itemContainer.ts +245 -0
- package/src/domain/items/itemDisplayName.ts +33 -0
- package/src/domain/items/itemInstance.ts +181 -0
- package/src/domain/items/itemRandomEnchantOutcomes.ts +315 -0
- package/src/domain/items/itemRandomProps.ts +77 -0
- package/src/domain/items/itemRestrictions.ts +329 -0
- package/src/domain/items/itemTeaches.ts +82 -0
- package/src/domain/items/itemUseCooldown.ts +52 -0
- package/src/domain/items/itemUseTarget.ts +90 -0
- package/src/domain/items/junkCategories.ts +174 -0
- package/src/domain/items/junkFilter.ts +368 -0
- package/src/domain/items/keyring.ts +131 -0
- package/src/domain/items/loot.ts +221 -0
- package/src/domain/items/mounts.ts +190 -0
- package/src/domain/items/onUsePayload.ts +102 -0
- package/src/domain/items/pendingLoot.ts +107 -0
- package/src/domain/items/relic.ts +105 -0
- package/src/domain/items/rocketBoots.ts +36 -0
- package/src/domain/items/sortContainer.ts +139 -0
- package/src/domain/items/spareContainers.ts +71 -0
- package/src/domain/items/spellReagentIndex.ts +131 -0
- package/src/domain/items/staleConsumables.ts +66 -0
- package/src/domain/items/weaponSpender.ts +110 -0
- package/src/domain/listDungeonIds.mjs +28 -0
- package/src/domain/macro/compose.ts +239 -0
- package/src/domain/macro/conditions.ts +260 -0
- package/src/domain/macro/creatureTypes.ts +40 -0
- package/src/domain/macro/describe.ts +169 -0
- package/src/domain/macro/icon.ts +60 -0
- package/src/domain/macro/index.ts +20 -0
- package/src/domain/macro/normalize.ts +112 -0
- package/src/domain/macro/parse.ts +316 -0
- package/src/domain/macro/plan.ts +288 -0
- package/src/domain/macro/rotation.ts +590 -0
- package/src/domain/macro/rotationEnv.ts +173 -0
- package/src/domain/macro/slots.ts +101 -0
- package/src/domain/macro/snapshot.ts +114 -0
- package/src/domain/macro/templates.ts +446 -0
- package/src/domain/macro/types.ts +70 -0
- package/src/domain/macro/units.ts +93 -0
- package/src/domain/macro/weaponTypes.ts +83 -0
- package/src/domain/nav/cityTeleports.ts +10 -0
- package/src/domain/nav/mounting.ts +113 -0
- package/src/domain/nav/nav.ts +43 -0
- package/src/domain/nav/navCollision.ts +606 -0
- package/src/domain/nav/navOutdoors.ts +91 -0
- package/src/domain/nav/navRegistry.ts +179 -0
- package/src/domain/nav/navRoomGraph.ts +302 -0
- package/src/domain/nav/navTypes.ts +43 -0
- package/src/domain/nav/navmesh.ts +1715 -0
- package/src/domain/nav/speed.ts +200 -0
- package/src/domain/nav/storey.ts +10 -0
- package/src/domain/nav/travel.ts +725 -0
- package/src/domain/nav/travelTypes.ts +75 -0
- package/src/domain/pet/pet.ts +1150 -0
- package/src/domain/pet/petActionBar.ts +180 -0
- package/src/domain/pet/petSpellbook.ts +39 -0
- package/src/domain/pet/petStable.ts +81 -0
- package/src/domain/professions/autoDisenchant.ts +236 -0
- package/src/domain/professions/characterEnchants.ts +176 -0
- package/src/domain/professions/craftCooldown.ts +52 -0
- package/src/domain/professions/enchantApply.ts +62 -0
- package/src/domain/professions/enchantTargets.ts +114 -0
- package/src/domain/professions/enchanting.ts +236 -0
- package/src/domain/professions/gatherFilter.ts +149 -0
- package/src/domain/professions/gearEnchant.ts +137 -0
- package/src/domain/professions/heldTools.ts +29 -0
- package/src/domain/professions/learnAllRecipes.ts +146 -0
- package/src/domain/professions/miningHarvest.ts +69 -0
- package/src/domain/professions/partyDisenchant.ts +294 -0
- package/src/domain/professions/partyWork.ts +83 -0
- package/src/domain/professions/pickpocket.ts +172 -0
- package/src/domain/professions/poisons.ts +240 -0
- package/src/domain/professions/professions.ts +677 -0
- package/src/domain/professions/rareNodes.ts +45 -0
- package/src/domain/professions/skinLoot.ts +27 -0
- package/src/domain/professions/vendorReagents.ts +152 -0
- package/src/domain/professions/weaponImbueHand.ts +171 -0
- package/src/domain/questFarmFilter.mjs +42 -0
- package/src/domain/quests/doQuest.ts +1204 -0
- package/src/domain/quests/gossip.ts +308 -0
- package/src/domain/quests/gossipTalk.ts +298 -0
- package/src/domain/quests/interpreter/canComplete.ts +150 -0
- package/src/domain/quests/interpreter/claim.ts +137 -0
- package/src/domain/quests/interpreter/dbscript/handlers.ts +1371 -0
- package/src/domain/quests/interpreter/dbscript/handlersBatch.ts +1251 -0
- package/src/domain/quests/interpreter/dbscript/hooks.ts +331 -0
- package/src/domain/quests/interpreter/dbscript/index.ts +212 -0
- package/src/domain/quests/interpreter/dbscript/opcodes.ts +257 -0
- package/src/domain/quests/interpreter/dbscript/registry.ts +1194 -0
- package/src/domain/quests/interpreter/dbscript/registryAreatriggerScripts.ts +539 -0
- package/src/domain/quests/interpreter/dbscript/registryAshenvale.ts +553 -0
- package/src/domain/quests/interpreter/dbscript/registryAzshara.ts +272 -0
- package/src/domain/quests/interpreter/dbscript/registryDarkshore.ts +637 -0
- package/src/domain/quests/interpreter/dbscript/registryDesolace.ts +501 -0
- package/src/domain/quests/interpreter/dbscript/registryDustwallowMarsh.ts +735 -0
- package/src/domain/quests/interpreter/dbscript/registryFelwood.ts +493 -0
- package/src/domain/quests/interpreter/dbscript/registryFeralas.ts +485 -0
- package/src/domain/quests/interpreter/dbscript/registryGoScripts.ts +203 -0
- package/src/domain/quests/interpreter/dbscript/registryMoonglade.ts +288 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcProfessions.ts +230 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcsSpecial.ts +545 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenDowns.ts +293 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenKraul.ts +221 -0
- package/src/domain/quests/interpreter/dbscript/registryRedridge.ts +112 -0
- package/src/domain/quests/interpreter/dbscript/registrySearingGorge.ts +125 -0
- package/src/domain/quests/interpreter/dbscript/registrySiblings.ts +51 -0
- package/src/domain/quests/interpreter/dbscript/registrySilverpineForest.ts +172 -0
- package/src/domain/quests/interpreter/dbscript/registryStonetalonMountains.ts +180 -0
- package/src/domain/quests/interpreter/dbscript/registryStormwindCity.ts +369 -0
- package/src/domain/quests/interpreter/dbscript/registryStranglethornVale.ts +115 -0
- package/src/domain/quests/interpreter/dbscript/registryStratholme.ts +146 -0
- package/src/domain/quests/interpreter/dbscript/registrySunkenTemple.ts +149 -0
- package/src/domain/quests/interpreter/dbscript/registrySwampOfSorrows.ts +163 -0
- package/src/domain/quests/interpreter/dbscript/registryTanaris.ts +318 -0
- package/src/domain/quests/interpreter/dbscript/registryTeldrassil.ts +120 -0
- package/src/domain/quests/interpreter/dbscript/registryTheBarrens.ts +603 -0
- package/src/domain/quests/interpreter/dbscript/registryThousandNeedles.ts +499 -0
- package/src/domain/quests/interpreter/dbscript/registryTirisfalGlades.ts +222 -0
- package/src/domain/quests/interpreter/dbscript/registryUngoroCrater.ts +291 -0
- package/src/domain/quests/interpreter/dbscript/registryWarEffort.ts +773 -0
- package/src/domain/quests/interpreter/dbscript/registryWesternPlaguelands.ts +206 -0
- package/src/domain/quests/interpreter/dbscript/registryWestfall.ts +190 -0
- package/src/domain/quests/interpreter/dbscript/registryWetlands.ts +186 -0
- package/src/domain/quests/interpreter/dbscript/registryWinterspring.ts +235 -0
- package/src/domain/quests/interpreter/dbscript/types.ts +817 -0
- package/src/domain/quests/interpreter/dbscript/vm.ts +171 -0
- package/src/domain/quests/interpreter/diff.ts +349 -0
- package/src/domain/quests/interpreter/fixtures/oracle-questlog-qi2.json +2417 -0
- package/src/domain/quests/interpreter/flags.ts +101 -0
- package/src/domain/quests/interpreter/index.ts +113 -0
- package/src/domain/quests/interpreter/live.ts +178 -0
- package/src/domain/quests/interpreter/types.ts +81 -0
- package/src/domain/quests/interpreter/updaters.ts +412 -0
- package/src/domain/quests/questCorpseUse.ts +155 -0
- package/src/domain/quests/questDialog.ts +43 -0
- package/src/domain/quests/questFight.ts +34 -0
- package/src/domain/quests/questObjectiveLabel.ts +39 -0
- package/src/domain/quests/questRewardChoice.ts +85 -0
- package/src/domain/quests/questScriptCredit.ts +26 -0
- package/src/domain/quests/questScriptItemUse.ts +74 -0
- package/src/domain/quests/questTameRods.ts +79 -0
- package/src/domain/quests/questlog.ts +1545 -0
- package/src/domain/quests/talkDeliver.ts +170 -0
- package/src/domain/raid/globalActionBar.ts +195 -0
- package/src/domain/raid/instanceRoster.ts +194 -0
- package/src/domain/raid/partySummon.ts +198 -0
- package/src/domain/raid/partyVault.ts +320 -0
- package/src/domain/raid/raidBossAbilities.ts +268 -0
- package/src/domain/raid/raidComp.ts +335 -0
- package/src/domain/raid/raidCustomRows.ts +453 -0
- package/src/domain/raid/raidEncounterGear.ts +298 -0
- package/src/domain/raid/raidEncounterTactics.ts +412 -0
- package/src/domain/raid/raidPlan.ts +509 -0
- package/src/domain/raid/raidPlanEdits.ts +98 -0
- package/src/domain/raid/raidPlanPacks.ts +480 -0
- package/src/domain/raid/raidRecovery.ts +183 -0
- package/src/domain/raid/raidRosterTemplate.ts +138 -0
- package/src/domain/rotation/auraSide.ts +68 -0
- package/src/domain/rotation/build.ts +3031 -0
- package/src/domain/rotation/classes/druid.ts +58 -0
- package/src/domain/rotation/classes/hooks.ts +59 -0
- package/src/domain/rotation/classes/hunter.ts +156 -0
- package/src/domain/rotation/classes/index.ts +104 -0
- package/src/domain/rotation/classes/mage.ts +99 -0
- package/src/domain/rotation/classes/paladin.ts +296 -0
- package/src/domain/rotation/classes/priest.ts +94 -0
- package/src/domain/rotation/classes/pullOpener.ts +92 -0
- package/src/domain/rotation/classes/rogue.ts +69 -0
- package/src/domain/rotation/classes/shaman.ts +29 -0
- package/src/domain/rotation/classes/supportSpec.ts +94 -0
- package/src/domain/rotation/classes/warlock.ts +81 -0
- package/src/domain/rotation/classes/warrior.ts +402 -0
- package/src/domain/rotation/classify.ts +1381 -0
- package/src/domain/rotation/condMetricPicker.ts +379 -0
- package/src/domain/rotation/consumables.ts +242 -0
- package/src/domain/rotation/evaluate.ts +1115 -0
- package/src/domain/rotation/finisherLadder.ts +145 -0
- package/src/domain/rotation/invent.ts +938 -0
- package/src/domain/rotation/killOrder.ts +30 -0
- package/src/domain/rotation/openerForm.ts +22 -0
- package/src/domain/rotation/paladinBuffs.ts +568 -0
- package/src/domain/rotation/prebuff.ts +283 -0
- package/src/domain/rotation/raidRowTuning.ts +34 -0
- package/src/domain/rotation/rotation.ts +11 -0
- package/src/domain/rotation/rotationProfiles.ts +180 -0
- package/src/domain/rotation/rotationSuggestions.ts +851 -0
- package/src/domain/rotation/ruleAfterChain.ts +49 -0
- package/src/domain/rotation/spec.ts +70 -0
- package/src/domain/rotation/spellPicker.ts +140 -0
- package/src/domain/rotation/stand.ts +143 -0
- package/src/domain/rotation/types.ts +718 -0
- package/src/domain/run/battlegroundRun.ts +111 -0
- package/src/domain/run/canEnterContext.ts +32 -0
- package/src/domain/run/death.ts +561 -0
- package/src/domain/run/deathRecovery.ts +289 -0
- package/src/domain/run/duel.ts +141 -0
- package/src/domain/run/dungeonRun.ts +344 -0
- package/src/domain/run/floorRest.ts +159 -0
- package/src/domain/run/honor.ts +557 -0
- package/src/domain/run/honorWeek.ts +180 -0
- package/src/domain/run/whenMap.ts +977 -0
- package/src/domain/scriptdev/arathiHighlands.ts +445 -0
- package/src/domain/scriptdev/ashenvale.ts +635 -0
- package/src/domain/scriptdev/ashenvaleHelpers.ts +1215 -0
- package/src/domain/scriptdev/azshara.ts +892 -0
- package/src/domain/scriptdev/blackfathomDeeps.ts +212 -0
- package/src/domain/scriptdev/blackrockDepths.ts +1434 -0
- package/src/domain/scriptdev/blackrockSpire.ts +730 -0
- package/src/domain/scriptdev/blackwingLair.ts +521 -0
- package/src/domain/scriptdev/burningSteppes.ts +62 -0
- package/src/domain/scriptdev/classFilter.ts +43 -0
- package/src/domain/scriptdev/darkshore.ts +817 -0
- package/src/domain/scriptdev/darkshoreHelpers.ts +853 -0
- package/src/domain/scriptdev/deadmines.ts +331 -0
- package/src/domain/scriptdev/desolace.ts +1239 -0
- package/src/domain/scriptdev/direMaul.ts +859 -0
- package/src/domain/scriptdev/durotar.ts +532 -0
- package/src/domain/scriptdev/dustwallowMarsh.ts +758 -0
- package/src/domain/scriptdev/dustwallowMarshHelpers.ts +994 -0
- package/src/domain/scriptdev/easternPlaguelands.ts +21 -0
- package/src/domain/scriptdev/felwood.ts +1055 -0
- package/src/domain/scriptdev/feralas.ts +571 -0
- package/src/domain/scriptdev/feralasHelpers.ts +838 -0
- package/src/domain/scriptdev/gnomeregan.ts +466 -0
- package/src/domain/scriptdev/guards.ts +616 -0
- package/src/domain/scriptdev/hinterlands.ts +693 -0
- package/src/domain/scriptdev/host.ts +1134 -0
- package/src/domain/scriptdev/index.ts +123 -0
- package/src/domain/scriptdev/instanceRaids.ts +136 -0
- package/src/domain/scriptdev/itemScripts.ts +37 -0
- package/src/domain/scriptdev/lochModan.ts +283 -0
- package/src/domain/scriptdev/maraudon.ts +232 -0
- package/src/domain/scriptdev/moltenCore.ts +831 -0
- package/src/domain/scriptdev/moonglade.ts +659 -0
- package/src/domain/scriptdev/moongladeHelpers.ts +933 -0
- package/src/domain/scriptdev/naxxramas.ts +577 -0
- package/src/domain/scriptdev/naxxramasConstruct.ts +364 -0
- package/src/domain/scriptdev/naxxramasFrostwyrm.ts +378 -0
- package/src/domain/scriptdev/naxxramasMilitary.ts +276 -0
- package/src/domain/scriptdev/npcProfessions.ts +1025 -0
- package/src/domain/scriptdev/npcsSpecial.ts +1379 -0
- package/src/domain/scriptdev/onyxiasLair.ts +313 -0
- package/src/domain/scriptdev/orgrimmar.ts +147 -0
- package/src/domain/scriptdev/professionSpecConsumer.ts +481 -0
- package/src/domain/scriptdev/razorfenDowns.ts +468 -0
- package/src/domain/scriptdev/razorfenKraul.ts +410 -0
- package/src/domain/scriptdev/redridgeMountains.ts +163 -0
- package/src/domain/scriptdev/registry.ts +945 -0
- package/src/domain/scriptdev/ruinsOfAhnqiraj.ts +356 -0
- package/src/domain/scriptdev/scarletMonastery.ts +713 -0
- package/src/domain/scriptdev/scholomance.ts +682 -0
- package/src/domain/scriptdev/searingGorge.ts +295 -0
- package/src/domain/scriptdev/shadowfangKeep.ts +181 -0
- package/src/domain/scriptdev/silithus.ts +71 -0
- package/src/domain/scriptdev/silverpineForest.ts +662 -0
- package/src/domain/scriptdev/stonetalonMountains.ts +493 -0
- package/src/domain/scriptdev/stormwindCity.ts +1192 -0
- package/src/domain/scriptdev/stranglethornVale.ts +402 -0
- package/src/domain/scriptdev/stratholme.ts +650 -0
- package/src/domain/scriptdev/stratholmeScripts.ts +505 -0
- package/src/domain/scriptdev/sunkenTemple.ts +736 -0
- package/src/domain/scriptdev/swampOfSorrows.ts +22 -0
- package/src/domain/scriptdev/tanaris.ts +391 -0
- package/src/domain/scriptdev/tanarisHelpers.ts +661 -0
- package/src/domain/scriptdev/teldrassil.ts +143 -0
- package/src/domain/scriptdev/templeOfAhnqiraj.ts +1013 -0
- package/src/domain/scriptdev/theBarrens.ts +709 -0
- package/src/domain/scriptdev/theBarrensHelpers.ts +1026 -0
- package/src/domain/scriptdev/thousandNeedles.ts +426 -0
- package/src/domain/scriptdev/thousandNeedlesHelpers.ts +566 -0
- package/src/domain/scriptdev/tirisfalGlades.ts +533 -0
- package/src/domain/scriptdev/types.ts +1026 -0
- package/src/domain/scriptdev/uldaman.ts +437 -0
- package/src/domain/scriptdev/ungoroCrater.ts +549 -0
- package/src/domain/scriptdev/ungoroCraterHelpers.ts +1006 -0
- package/src/domain/scriptdev/wailingCaverns.ts +700 -0
- package/src/domain/scriptdev/warEffort.ts +371 -0
- package/src/domain/scriptdev/westernPlaguelands.ts +952 -0
- package/src/domain/scriptdev/westfall.ts +767 -0
- package/src/domain/scriptdev/wetlands.ts +660 -0
- package/src/domain/scriptdev/winterspring.ts +482 -0
- package/src/domain/scriptdev/winterspringHelpers.ts +801 -0
- package/src/domain/scriptdev/worldBosses.ts +605 -0
- package/src/domain/scriptdev/zulfarrak.ts +478 -0
- package/src/domain/scriptdev/zulgurub.ts +1152 -0
- package/src/domain/sim/dummySim.ts +408 -0
- package/src/domain/sim/targetDummy.ts +29 -0
- package/src/domain/social/guild.ts +148 -0
- package/src/domain/spells/areaAuraMembership.ts +93 -0
- package/src/domain/spells/breakableStunCc.ts +166 -0
- package/src/domain/spells/cancelAura.ts +80 -0
- package/src/domain/spells/diminishing.ts +167 -0
- package/src/domain/spells/dispel.ts +149 -0
- package/src/domain/spells/dispelMechanic.ts +105 -0
- package/src/domain/spells/equipSpells.ts +247 -0
- package/src/domain/spells/learnOnTargets.ts +260 -0
- package/src/domain/spells/mergeSchoolImmunityFromRaw.ts +66 -0
- package/src/domain/spells/resurrectSpell.ts +124 -0
- package/src/domain/spells/spellPushback.ts +39 -0
- package/src/domain/spells/spellReflect.ts +43 -0
- package/src/domain/spells/stealth.ts +183 -0
- package/src/domain/spells/totem.ts +394 -0
- package/src/domain/spells/worldCast.ts +187 -0
- package/src/domain/world/areaTriggerLocks.ts +177 -0
- package/src/domain/world/dungeonMusic.ts +108 -0
- package/src/domain/world/gameEvents.ts +119 -0
- package/src/domain/world/gameObjects.ts +1030 -0
- package/src/domain/world/goEventFire.ts +234 -0
- package/src/domain/world/goMoTransport.ts +74 -0
- package/src/domain/world/goTransport.ts +81 -0
- package/src/domain/world/hazards.ts +459 -0
- package/src/domain/world/openLock.ts +398 -0
- package/src/domain/world/pools.ts +470 -0
- package/src/domain/world/restArea.ts +37 -0
- package/src/domain/world/weather.ts +201 -0
- package/src/domain/zoneAmbience.mjs +87 -0
- package/src/domain/zoneMusic.mjs +62 -0
- package/src/domain/zoneMusicQueue.mjs +7 -0
- package/src/engine/combat/activeSeal.ts +39 -0
- package/src/engine/combat/aiTargetResolve.ts +64 -0
- package/src/engine/combat/aoeCast.ts +289 -0
- package/src/engine/combat/applyConsumeAura.ts +74 -0
- package/src/engine/combat/applyDemonicSacrifice.ts +70 -0
- package/src/engine/combat/applyDispelMechanic.ts +30 -0
- package/src/engine/combat/applyHealEffect.ts +301 -0
- package/src/engine/combat/applySchoolAbsorb.ts +114 -0
- package/src/engine/combat/applySpell.ts +3169 -0
- package/src/engine/combat/applySpellLate.ts +2026 -0
- package/src/engine/combat/applySpellLateBag.ts +144 -0
- package/src/engine/combat/areaAura.ts +283 -0
- package/src/engine/combat/attackTable.ts +508 -0
- package/src/engine/combat/battleRez.ts +87 -0
- package/src/engine/combat/castAction.ts +36 -0
- package/src/engine/combat/castTargetGates.ts +75 -0
- package/src/engine/combat/castableKit.ts +68 -0
- package/src/engine/combat/ccMirrorUpgrade.ts +39 -0
- package/src/engine/combat/chainFan.ts +210 -0
- package/src/engine/combat/channel.ts +423 -0
- package/src/engine/combat/chaseCloseness.ts +95 -0
- package/src/engine/combat/cmangosCastGates.ts +129 -0
- package/src/engine/combat/combatFlag.ts +77 -0
- package/src/engine/combat/combatGeometry.ts +1329 -0
- package/src/engine/combat/combustion.ts +68 -0
- package/src/engine/combat/context.ts +730 -0
- package/src/engine/combat/createSession.ts +1165 -0
- package/src/engine/combat/creatureLeash.ts +38 -0
- package/src/engine/combat/crowdControl.ts +1259 -0
- package/src/engine/combat/dispelDuty.ts +54 -0
- package/src/engine/combat/dispelReflect.ts +609 -0
- package/src/engine/combat/displaceFloor.ts +113 -0
- package/src/engine/combat/duelBounds.ts +47 -0
- package/src/engine/combat/equippedItemGate.ts +297 -0
- package/src/engine/combat/evadeLifecycle.ts +63 -0
- package/src/engine/combat/eventAi.ts +2220 -0
- package/src/engine/combat/facing.ts +74 -0
- package/src/engine/combat/fearFlee.ts +137 -0
- package/src/engine/combat/fighterFactory.ts +1144 -0
- package/src/engine/combat/forceDespawnAction.ts +51 -0
- package/src/engine/combat/formulas.ts +807 -0
- package/src/engine/combat/friendlyFan.ts +55 -0
- package/src/engine/combat/groundPoolTick.ts +210 -0
- package/src/engine/combat/hazards.ts +114 -0
- package/src/engine/combat/healTargets.ts +226 -0
- package/src/engine/combat/heartbeatResist.ts +49 -0
- package/src/engine/combat/hostileItemUse.ts +75 -0
- package/src/engine/combat/interruptAuras.ts +66 -0
- package/src/engine/combat/itemRescue.ts +49 -0
- package/src/engine/combat/itemUse.ts +260 -0
- package/src/engine/combat/kitById.ts +23 -0
- package/src/engine/combat/knockBack.ts +201 -0
- package/src/engine/combat/leap.ts +89 -0
- package/src/engine/combat/mitigation.ts +587 -0
- package/src/engine/combat/modTaunt.ts +43 -0
- package/src/engine/combat/motionClaim.ts +268 -0
- package/src/engine/combat/motionGate.ts +150 -0
- package/src/engine/combat/motionGenerator.ts +27 -0
- package/src/engine/combat/navSight.ts +138 -0
- package/src/engine/combat/perfSink.ts +28 -0
- package/src/engine/combat/periodicDue.ts +55 -0
- package/src/engine/combat/petAuras.ts +86 -0
- package/src/engine/combat/pickAction.ts +3449 -0
- package/src/engine/combat/powerForm.ts +735 -0
- package/src/engine/combat/powerPools.ts +49 -0
- package/src/engine/combat/predicates.ts +538 -0
- package/src/engine/combat/procsDamage.ts +1823 -0
- package/src/engine/combat/reactiveGates.ts +135 -0
- package/src/engine/combat/roles.ts +389 -0
- package/src/engine/combat/rotationSubject.ts +78 -0
- package/src/engine/combat/ruleAfter.ts +106 -0
- package/src/engine/combat/seedDisplayAuras.ts +203 -0
- package/src/engine/combat/seedOocEffects.ts +317 -0
- package/src/engine/combat/seedSchoolImmunities.ts +45 -0
- package/src/engine/combat/session-types.ts +458 -0
- package/src/engine/combat/sessionApi.ts +1785 -0
- package/src/engine/combat/sessionCharge.ts +124 -0
- package/src/engine/combat/sessionChase.ts +869 -0
- package/src/engine/combat/sessionDeaths.ts +469 -0
- package/src/engine/combat/sessionFocus.ts +506 -0
- package/src/engine/combat/sessionFollow.ts +167 -0
- package/src/engine/combat/sessionGeometry.ts +188 -0
- package/src/engine/combat/sessionHome.ts +75 -0
- package/src/engine/combat/sessionInject.ts +719 -0
- package/src/engine/combat/sessionMechanicMove.ts +555 -0
- package/src/engine/combat/sessionMotion.ts +1553 -0
- package/src/engine/combat/sessionMotionKit.ts +247 -0
- package/src/engine/combat/sessionMoveIntent.ts +49 -0
- package/src/engine/combat/sessionMoveOrder.ts +200 -0
- package/src/engine/combat/sessionPathTo.ts +657 -0
- package/src/engine/combat/sessionPools.ts +688 -0
- package/src/engine/combat/sessionSteer.ts +144 -0
- package/src/engine/combat/sessionStepBack.ts +151 -0
- package/src/engine/combat/sessionStepWrap.ts +116 -0
- package/src/engine/combat/sessionView.ts +442 -0
- package/src/engine/combat/simEffects.ts +32 -0
- package/src/engine/combat/simFacade.ts +620 -0
- package/src/engine/combat/simPump.ts +264 -0
- package/src/engine/combat/simSnapshot.ts +165 -0
- package/src/engine/combat/simThreadPool.ts +35 -0
- package/src/engine/combat/skeramImages.ts +57 -0
- package/src/engine/combat/slowUpdate.ts +178 -0
- package/src/engine/combat/snapToFloor.ts +42 -0
- package/src/engine/combat/speedAura.ts +29 -0
- package/src/engine/combat/spellReagents.ts +71 -0
- package/src/engine/combat/stealthDetect.ts +93 -0
- package/src/engine/combat/stepBackMotion.ts +171 -0
- package/src/engine/combat/stepSession.ts +3102 -0
- package/src/engine/combat/summonCast.ts +243 -0
- package/src/engine/combat/thaddiusPolarity.ts +97 -0
- package/src/engine/combat/threat.ts +388 -0
- package/src/engine/combat/threatOps.ts +272 -0
- package/src/engine/combat/tickWorkerBody.ts +211 -0
- package/src/engine/combat/totemAuras.ts +122 -0
- package/src/engine/combat/triggerPayload.ts +42 -0
- package/src/engine/combat/triggeredCompanion.ts +63 -0
- package/src/engine/combat/types.ts +1897 -0
- package/src/engine/combat/useObjectTrap.ts +140 -0
- package/src/engine/combat/walkSurface.ts +54 -0
- package/src/engine/combat/weapon.ts +1248 -0
- package/src/engine/combat/worldFrame.ts +43 -0
- package/src/engine/combat.solo-golden.json +2242 -0
- package/src/engine/combat.ts +84 -0
- package/src/engine/core/detMath.ts +289 -0
- package/src/engine/core/events.ts +357 -0
- package/src/engine/core/rng.ts +36 -0
- package/src/engine/game/actionBars.ts +124 -0
- package/src/engine/game/activateObjectFromSpell.ts +320 -0
- package/src/engine/game/applyActiveObjectFromDbScript.ts +98 -0
- package/src/engine/game/applyDeathAndSpellScripts.ts +268 -0
- package/src/engine/game/applyDoorFromDbScript.ts +388 -0
- package/src/engine/game/applyEscortFromDbScript.ts +290 -0
- package/src/engine/game/applyGoSpellcasterCast.ts +40 -0
- package/src/engine/game/applyHoverFromDbScript.ts +110 -0
- package/src/engine/game/applyOocResurrect.ts +71 -0
- package/src/engine/game/applySpellDurability.ts +115 -0
- package/src/engine/game/applyTailFromDbScript.ts +478 -0
- package/src/engine/game/applyTerminateFromDbScript.ts +95 -0
- package/src/engine/game/auctionMail.ts +269 -0
- package/src/engine/game/bagOverflow.ts +130 -0
- package/src/engine/game/bank.ts +110 -0
- package/src/engine/game/barAutofill.ts +26 -0
- package/src/engine/game/battleground.ts +369 -0
- package/src/engine/game/combatEnemySpec.ts +216 -0
- package/src/engine/game/combatObjectTraps.ts +167 -0
- package/src/engine/game/combatSeed.ts +320 -0
- package/src/engine/game/combatSession.ts +3241 -0
- package/src/engine/game/combatSessionClock.ts +62 -0
- package/src/engine/game/companionQuestActions.ts +242 -0
- package/src/engine/game/companionTraining.ts +40 -0
- package/src/engine/game/consumables.ts +624 -0
- package/src/engine/game/context.ts +53 -0
- package/src/engine/game/createHealthstone.ts +45 -0
- package/src/engine/game/deathFlow.ts +127 -0
- package/src/engine/game/devGrant.ts +117 -0
- package/src/engine/game/dynamicObject.ts +365 -0
- package/src/engine/game/enchantItem.ts +177 -0
- package/src/engine/game/equipmentHelper.ts +806 -0
- package/src/engine/game/factionState.ts +108 -0
- package/src/engine/game/garmentsOoc.ts +69 -0
- package/src/engine/game/globalActionBar.ts +179 -0
- package/src/engine/game/goInteractQuestCredit.ts +51 -0
- package/src/engine/game/goMoTransportUse.ts +61 -0
- package/src/engine/game/goTransportUse.ts +60 -0
- package/src/engine/game/healthstoneUpkeep.ts +59 -0
- package/src/engine/game/killSkin.ts +124 -0
- package/src/engine/game/learnFromItem.ts +118 -0
- package/src/engine/game/loadReconcile.ts +551 -0
- package/src/engine/game/loot.ts +294 -0
- package/src/engine/game/macros.ts +125 -0
- package/src/engine/game/mail.ts +293 -0
- package/src/engine/game/meetingStoneQueue.ts +75 -0
- package/src/engine/game/meetingStoneUse.ts +54 -0
- package/src/engine/game/newGameState.ts +363 -0
- package/src/engine/game/oocAuraInterrupt.ts +92 -0
- package/src/engine/game/oocCast.ts +241 -0
- package/src/engine/game/oocCastEffects.ts +803 -0
- package/src/engine/game/oocCastMethods.ts +1077 -0
- package/src/engine/game/openLockFromSpell.ts +174 -0
- package/src/engine/game/outdoorPvp.ts +187 -0
- package/src/engine/game/outfitter.ts +644 -0
- package/src/engine/game/paladinBoard.ts +393 -0
- package/src/engine/game/partyAuras.ts +121 -0
- package/src/engine/game/persistCombatAuras.ts +91 -0
- package/src/engine/game/pets.ts +459 -0
- package/src/engine/game/prePullHealthstones.ts +154 -0
- package/src/engine/game/professions.ts +2227 -0
- package/src/engine/game/pruneStaleRuntime.ts +39 -0
- package/src/engine/game/questFightCredit.ts +36 -0
- package/src/engine/game/questItemOnCorpse.ts +166 -0
- package/src/engine/game/questItemOnCreature.ts +103 -0
- package/src/engine/game/questLog.ts +879 -0
- package/src/engine/game/questSpellComplete.ts +21 -0
- package/src/engine/game/questTurnIn.ts +598 -0
- package/src/engine/game/raidParty.ts +32 -0
- package/src/engine/game/reagentBuyIn.ts +39 -0
- package/src/engine/game/regenRest.ts +186 -0
- package/src/engine/game/rotation.ts +425 -0
- package/src/engine/game/runFullDungeon.ts +611 -0
- package/src/engine/game/runSupply.ts +80 -0
- package/src/engine/game/sanitizeDriftedItems.ts +135 -0
- package/src/engine/game/scriptDevGoUse.ts +397 -0
- package/src/engine/game/scriptDevInnkeeper.ts +150 -0
- package/src/engine/game/scriptDevProfessionSpec.ts +99 -0
- package/src/engine/game/sendEventFromSpell.ts +87 -0
- package/src/engine/game/sortContainers.ts +85 -0
- package/src/engine/game/spellReputation.ts +69 -0
- package/src/engine/game/squad/squadDungeonSeating.ts +197 -0
- package/src/engine/game/squadDungeon.ts +4222 -0
- package/src/engine/game/squadQuestShare.ts +260 -0
- package/src/engine/game/summonObjectSlot.ts +69 -0
- package/src/engine/game/summonObjectWild.ts +73 -0
- package/src/engine/game/summoningRitualUse.ts +141 -0
- package/src/engine/game/talents.ts +356 -0
- package/src/engine/game/tamingRodUse.ts +66 -0
- package/src/engine/game/tempSpawnCreature.ts +136 -0
- package/src/engine/game/tickDungeonPatrolScripts.ts +205 -0
- package/src/engine/game/tickTimedQuests.ts +28 -0
- package/src/engine/game/trade.ts +586 -0
- package/src/engine/game/travel.ts +1155 -0
- package/src/engine/game/types.ts +1855 -0
- package/src/engine/game/vendorOffers.ts +244 -0
- package/src/engine/game/weaponImbueItem.ts +281 -0
- package/src/engine/game/worldSession.ts +183 -0
- package/src/engine/game/worldState.ts +166 -0
- package/src/engine/game.ts +968 -0
- package/src/engine/spells/GAP.md +67 -0
- package/src/engine/spells/absorbs.ts +376 -0
- package/src/engine/spells/addTargetTrigger.ts +53 -0
- package/src/engine/spells/auraPerSecondCost.ts +50 -0
- package/src/engine/spells/auraStacking.ts +497 -0
- package/src/engine/spells/cmangos-special-cases-combustion.ts +13 -0
- package/src/engine/spells/cmangos-special-cases-s18.ts +445 -0
- package/src/engine/spells/cmangos-special-cases-s19.ts +324 -0
- package/src/engine/spells/cmangos-special-cases-s20.ts +385 -0
- package/src/engine/spells/cmangos-special-cases-s21.ts +116 -0
- package/src/engine/spells/cmangos-special-cases-s22.ts +24 -0
- package/src/engine/spells/cmangos-special-cases-s23.ts +52 -0
- package/src/engine/spells/cmangos-special-cases.ts +1570 -0
- package/src/engine/spells/conditions.ts +718 -0
- package/src/engine/spells/effects.ts +203 -0
- package/src/engine/spells/fixtures/oracle-effects-lock9a.json +1 -0
- package/src/engine/spells/immunity.ts +942 -0
- package/src/engine/spells/intentEffects.ts +351 -0
- package/src/engine/spells/interpreter/GAPS.md +21 -0
- package/src/engine/spells/interpreter/amount.ts +109 -0
- package/src/engine/spells/interpreter/class-scripts-kit.ts +478 -0
- package/src/engine/spells/interpreter/diff.ts +246 -0
- package/src/engine/spells/interpreter/duration.ts +90 -0
- package/src/engine/spells/interpreter/form-attrs.json +1 -0
- package/src/engine/spells/interpreter/form-attrs.ts +95 -0
- package/src/engine/spells/interpreter/handlers/aura-remove.ts +113 -0
- package/src/engine/spells/interpreter/handlers/auras-control.ts +1547 -0
- package/src/engine/spells/interpreter/handlers/auras-core.ts +1583 -0
- package/src/engine/spells/interpreter/handlers/auras-misc.ts +1774 -0
- package/src/engine/spells/interpreter/handlers/effect-disenchant.ts +17 -0
- package/src/engine/spells/interpreter/handlers/effect-skinning.ts +20 -0
- package/src/engine/spells/interpreter/handlers/effects-action-utility.ts +1455 -0
- package/src/engine/spells/interpreter/handlers/effects-core.ts +432 -0
- package/src/engine/spells/interpreter/handlers/effects-remainder.ts +105 -0
- package/src/engine/spells/interpreter/handlers/effects-summon-item.ts +687 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy-percent.ts +36 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy.ts +36 -0
- package/src/engine/spells/interpreter/handlers/periodic-trigger-zero.ts +327 -0
- package/src/engine/spells/interpreter/handlers/procs.ts +131 -0
- package/src/engine/spells/interpreter/handlers/registry.ts +975 -0
- package/src/engine/spells/interpreter/handlers/shared.ts +667 -0
- package/src/engine/spells/interpreter/handlers.ts +9 -0
- package/src/engine/spells/interpreter/hunter-kit.ts +202 -0
- package/src/engine/spells/interpreter/index.ts +525 -0
- package/src/engine/spells/interpreter/item-triggers.ts +1121 -0
- package/src/engine/spells/interpreter/lift-consume-energy.ts +37 -0
- package/src/engine/spells/interpreter/mage-portals.ts +37 -0
- package/src/engine/spells/interpreter/materialize-charm.ts +88 -0
- package/src/engine/spells/interpreter/materialize-dispel-mechanic.ts +25 -0
- package/src/engine/spells/interpreter/materialize-rating-buffs.ts +81 -0
- package/src/engine/spells/interpreter/materialize-speed.ts +109 -0
- package/src/engine/spells/interpreter/materialize-spell-magnet.ts +22 -0
- package/src/engine/spells/interpreter/opcodes.ts +789 -0
- package/src/engine/spells/interpreter/paladin-kit.ts +95 -0
- package/src/engine/spells/interpreter/paladin-seals.ts +499 -0
- package/src/engine/spells/interpreter/priest-warlock-kit.ts +135 -0
- package/src/engine/spells/interpreter/proc.ts +443 -0
- package/src/engine/spells/interpreter/registry/helpers.ts +16 -0
- package/src/engine/spells/interpreter/registry/index.ts +216 -0
- package/src/engine/spells/interpreter/registry/packs/class-abilities.ts +304 -0
- package/src/engine/spells/interpreter/registry/packs/dire-maul.ts +44 -0
- package/src/engine/spells/interpreter/registry/packs/dummy-script-tail.ts +1065 -0
- package/src/engine/spells/interpreter/registry/packs/ex-wave-m.ts +70 -0
- package/src/engine/spells/interpreter/registry/packs/life-tap.ts +107 -0
- package/src/engine/spells/interpreter/registry/packs/paladin.ts +246 -0
- package/src/engine/spells/interpreter/registry/packs/raid-script-summons.ts +26 -0
- package/src/engine/spells/interpreter/registry/packs/raid-threat-wipe.ts +22 -0
- package/src/engine/spells/interpreter/registry/packs/shaman.ts +214 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-a.ts +269 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-b.ts +370 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-c.ts +172 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-hunter.ts +60 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-warrior.ts +31 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-a.ts +114 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-b.ts +249 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-c.ts +233 -0
- package/src/engine/spells/interpreter/registry/types.ts +48 -0
- package/src/engine/spells/interpreter/talent-scripted.ts +329 -0
- package/src/engine/spells/interpreter/targeting.ts +90 -0
- package/src/engine/spells/interpreter/types-intent.ts +1501 -0
- package/src/engine/spells/interpreter/types.ts +419 -0
- package/src/engine/spells/interpreter/warrior-druid-kit.ts +314 -0
- package/src/engine/spells/interpreter/weapon-imbue-kit.ts +384 -0
- package/src/engine/spells/interrupt.ts +217 -0
- package/src/engine/spells/meleeAttackReset.ts +60 -0
- package/src/engine/spells/oocTriggerSpell.ts +49 -0
- package/src/engine/spells/overrideClassScripts.ts +319 -0
- package/src/engine/spells/parryHaste.ts +20 -0
- package/src/engine/spells/procs.ts +300 -0
- package/src/engine/spells/recovery.ts +203 -0
- package/src/engine/spells/scriptTargetDest.ts +76 -0
- package/src/engine/spells/scriptTargets.ts +85 -0
- package/src/engine/spells/singleTargetAura.ts +82 -0
- package/src/engine/spells/specialCasePayloads.ts +57 -0
- package/src/engine/spells/spellAttributes.ts +249 -0
- package/src/engine/spells/spellBonus.ts +143 -0
- package/src/engine/spells/spellModIntents.ts +419 -0
- package/src/engine/spells/spellMods.ts +283 -0
- package/src/engine/spells/spellRadius.ts +15 -0
- package/src/engine/spells/trapObjects.ts +26 -0
- package/src/json.d.ts +7 -0
- package/src/persistence/memoryRepository.ts +23 -0
- package/src/persistence/saveBackups.ts +162 -0
- package/src/persistence/saveFile.ts +68 -0
- package/src/persistence/saveRepository.ts +11 -0
- package/src/persistence/saveShape.ts +668 -0
- package/src/progression/leveling.ts +89 -0
- package/src/progression/rest.ts +1434 -0
- package/src/progression/training.ts +226 -0
- package/src/progression/xpGain.ts +369 -0
- package/src/quests/quests.ts +1580 -0
- package/src/world/aoePull.ts +198 -0
- package/src/world/areaTableDbc.ts +39 -0
- package/src/world/areaTableMapIdPairs.ts +141 -0
- package/src/world/bakeSlug.ts +43 -0
- package/src/world/continuousDungeon.ts +1250 -0
- package/src/world/dungeonBakeProjection.ts +190 -0
- package/src/world/dungeonMapDensity.ts +342 -0
- package/src/world/dungeonMapProjection.ts +135 -0
- package/src/world/dungeonNav.ts +904 -0
- package/src/world/dungeonNpcSim.ts +147 -0
- package/src/world/dungeonObjectives.ts +234 -0
- package/src/world/dungeonPreset.ts +35 -0
- package/src/world/dungeonRoute.ts +311 -0
- package/src/world/dungeonRouteGeometry.ts +732 -0
- package/src/world/dungeonRouteOrder.ts +1037 -0
- package/src/world/dungeonWingRooms.ts +426 -0
- package/src/world/escort.ts +296 -0
- package/src/world/goPoolRoll.ts +75 -0
- package/src/world/instanceObjects.ts +785 -0
- package/src/world/instances.ts +1572 -0
- package/src/world/meetingStones.ts +56 -0
- package/src/world/navmeshFloors.ts +145 -0
- package/src/world/nearGrid.ts +167 -0
- package/src/world/packBudget.ts +613 -0
- package/src/world/rareRoll.ts +335 -0
- package/src/world/routeAuthoring.ts +132 -0
- package/src/world/routeEdit.ts +209 -0
- package/src/world/world.ts +812 -0
- package/src/world/zoneHazards.ts +47 -0
|
@@ -0,0 +1,859 @@
|
|
|
1
|
+
// Dire Maul ScriptDev IR ports. Source: dire_maul.cpp, instance_dire_maul.cpp and the header, plus
|
|
2
|
+
// acid_classic.sql:15013 for the Alzzin crumble wall. Every value cites file:line below.
|
|
3
|
+
|
|
4
|
+
import type { ScriptDevIR } from './types.ts';
|
|
5
|
+
import { INSTANCE_DATA } from './types.ts';
|
|
6
|
+
import { applyInstanceSetData, type InstanceHostResult } from './host.ts';
|
|
7
|
+
|
|
8
|
+
// Constants — dire_maul.h
|
|
9
|
+
|
|
10
|
+
// dire_maul.h:10–12
|
|
11
|
+
export const DM_MAX_ENCOUNTER = 19;
|
|
12
|
+
export const DM_MAX_GENERATORS = 5;
|
|
13
|
+
export const DM_MAX_PORTALS = 19;
|
|
14
|
+
|
|
15
|
+
// dire_maul.h:15–39 encounter types
|
|
16
|
+
export const TYPE_ALZZIN = 0;
|
|
17
|
+
export const TYPE_ZEVRIM = 1;
|
|
18
|
+
export const TYPE_IRONBARK = 2;
|
|
19
|
+
export const TYPE_WARPWOOD = 3;
|
|
20
|
+
export const TYPE_IMMOLTHAR = 4;
|
|
21
|
+
export const TYPE_PRINCE = 5;
|
|
22
|
+
export const TYPE_PYLON_1 = 6;
|
|
23
|
+
export const TYPE_PYLON_2 = 7;
|
|
24
|
+
export const TYPE_PYLON_3 = 8;
|
|
25
|
+
export const TYPE_PYLON_4 = 9;
|
|
26
|
+
export const TYPE_PYLON_5 = 10;
|
|
27
|
+
export const TYPE_KING_GORDOK = 11;
|
|
28
|
+
export const TYPE_MOLDAR = 12;
|
|
29
|
+
export const TYPE_FENGUS = 13;
|
|
30
|
+
export const TYPE_SLIPKIK = 14;
|
|
31
|
+
export const TYPE_KROMCRUSH = 15;
|
|
32
|
+
export const TYPE_CHORUSH = 16;
|
|
33
|
+
export const TYPE_STOMPER_KREEG = 17;
|
|
34
|
+
export const TYPE_DREADSTEED = 18;
|
|
35
|
+
|
|
36
|
+
// dire_maul.h:42–50 East GOs / NPCs
|
|
37
|
+
export const GO_CRUMBLE_WALL = 177220;
|
|
38
|
+
export const GO_CORRUPT_VINE = 179502;
|
|
39
|
+
export const GO_FELVINE_SHARD = 179559;
|
|
40
|
+
export const GO_CONSERVATORY_DOOR = 176907;
|
|
41
|
+
export const NPC_ZEVRIM_THORNHOOF = 11490;
|
|
42
|
+
export const NPC_OLD_IRONBARK = 11491;
|
|
43
|
+
export const NPC_IRONBARK_REDEEMED = 14241;
|
|
44
|
+
/** Alzzin the Wildshaper. Cite: dire_maul.h:15 TYPE_ALZZIN handled in Acid (not OnCreatureDeath). */
|
|
45
|
+
export const NPC_ALZZIN_THE_WILDSHAPER = 11492;
|
|
46
|
+
// Acid EVENT_T_HP → SET_INST_DATA(TYPE_ALZZIN, SPECIAL), which opens GO_CRUMBLE_WALL 177220. The
|
|
47
|
+
// cpp comment says 50% but the Acid row is 40%, and Acid owns the threshold.
|
|
48
|
+
export const ALZZIN_SPECIAL_HP_PCT = 40;
|
|
49
|
+
|
|
50
|
+
// dire_maul.h:52–90 West
|
|
51
|
+
export const NPC_TENDRIS_WARPWOOD = 11489;
|
|
52
|
+
export const NPC_PRINCE_TORTHELDRIN = 11486;
|
|
53
|
+
export const NPC_IMMOLTHAR = 11496;
|
|
54
|
+
export const NPC_ARCANE_ABERRATION = 11480;
|
|
55
|
+
export const NPC_MANA_REMNANT = 11483;
|
|
56
|
+
export const NPC_HIGHBORNE_SUMMONER = 11466;
|
|
57
|
+
export const NPC_WARLOCK_DUMMY_INFERNAL = 14501;
|
|
58
|
+
export const NPC_JEEVEE = 14500;
|
|
59
|
+
|
|
60
|
+
export const GO_PRINCES_CHEST = 179545;
|
|
61
|
+
export const GO_PRINCES_CHEST_AURA = 179563;
|
|
62
|
+
export const GO_CRYSTAL_GENERATOR_1 = 177259;
|
|
63
|
+
export const GO_CRYSTAL_GENERATOR_2 = 177257;
|
|
64
|
+
export const GO_CRYSTAL_GENERATOR_3 = 177258;
|
|
65
|
+
export const GO_CRYSTAL_GENERATOR_4 = 179504;
|
|
66
|
+
export const GO_CRYSTAL_GENERATOR_5 = 179505;
|
|
67
|
+
export const GO_FORCEFIELD = 179503;
|
|
68
|
+
export const GO_WARPWOOD_DOOR = 177221;
|
|
69
|
+
/** West Library Door. OnPlayerEnter near North before TYPE_WARPWOOD DONE → NO_INTERACT. Cite: dire_maul.h:70; instance_dire_maul.cpp:62-73,180-181. */
|
|
70
|
+
export const GO_WEST_LIBRARY_DOOR = 179550;
|
|
71
|
+
|
|
72
|
+
export const GO_BELL_OF_DETHMOORA = 179674;
|
|
73
|
+
export const GO_DOOMSDAY_CANDLE = 179673;
|
|
74
|
+
export const GO_WHEEL_OF_BLACK_MARCH = 179672;
|
|
75
|
+
export const GO_DREADSTEED_PORTAL = 179681;
|
|
76
|
+
export const GO_WARLOCK_RITUAL_CIRCLE = 179668;
|
|
77
|
+
export const GO_MOUNT_QUEST_SYMBOL1 = 179669;
|
|
78
|
+
export const GO_MOUNT_QUEST_SYMBOL2 = 179670;
|
|
79
|
+
export const GO_MOUNT_QUEST_SYMBOL3 = 179671;
|
|
80
|
+
export const GO_RITUAL_CANDLE_AURA = 179688;
|
|
81
|
+
|
|
82
|
+
/** Dreadsteed quest helper GOs bound to go_dreadsteed_quest_objects. */
|
|
83
|
+
export const GO_DREADSTEED_QUEST_OBJECT_ENTRIES = [
|
|
84
|
+
GO_WHEEL_OF_BLACK_MARCH,
|
|
85
|
+
GO_DOOMSDAY_CANDLE,
|
|
86
|
+
GO_BELL_OF_DETHMOORA,
|
|
87
|
+
] as const;
|
|
88
|
+
|
|
89
|
+
// dire_maul.h:82–90 ritual spells + mobs
|
|
90
|
+
/** Quest object pulse auras — not combat-scheduled (corpus spellIds empty). */
|
|
91
|
+
export const SPELL_BLACK_MARCH_BLESSING = 23120;
|
|
92
|
+
export const SPELL_RITUAL_CANDLE_AURA = 23226;
|
|
93
|
+
export const SPELL_RITUAL_BELL_AURA = 23117;
|
|
94
|
+
export const SPELL_TELEPORT = 29216;
|
|
95
|
+
|
|
96
|
+
export const NPC_XOROTHIAN_IMP = 14482;
|
|
97
|
+
export const NPC_DREAD_GUARD = 14483;
|
|
98
|
+
export const NPC_LORD_HELNURATH = 14506;
|
|
99
|
+
|
|
100
|
+
// dire_maul.h:94–107 North
|
|
101
|
+
export const NPC_GUARD_MOLDAR = 14326;
|
|
102
|
+
export const NPC_STOMPER_KREEG = 14322;
|
|
103
|
+
export const NPC_GUARD_FENGUS = 14321;
|
|
104
|
+
export const NPC_GUARD_SLIPKIK = 14323;
|
|
105
|
+
export const NPC_CAPTAIN_KROMCRUSH = 14325;
|
|
106
|
+
export const NPC_CHO_RUSH_THE_OBSERVER = 14324;
|
|
107
|
+
export const NPC_KING_GORDOK = 11501;
|
|
108
|
+
export const NPC_MIZZLE_THE_CRAFTY = 14353;
|
|
109
|
+
|
|
110
|
+
export const GO_KNOTS_CACHE = 179501;
|
|
111
|
+
export const GO_KNOTS_BALL_AND_CHAIN = 179511;
|
|
112
|
+
export const GO_GORDOK_TRIBUTE = 179564;
|
|
113
|
+
export const GO_NORTH_LIBRARY_DOOR = 179549;
|
|
114
|
+
/** Slip'kik fixed trap GO. Cite: scriptdev2.sql:331 entry=179512 */
|
|
115
|
+
export const GO_FIXED_TRAP = 179512;
|
|
116
|
+
/** Gordok Courtyard Door — Courtyard Key 18266 / lock 1563. Cite: dbc_Lock; live_gameobject. */
|
|
117
|
+
export const GO_GORDOK_COURTYARD_DOOR = 177219;
|
|
118
|
+
/** Gordok Inner Door — Inner Door Key 18268 / lock 1564. */
|
|
119
|
+
export const GO_GORDOK_INNER_DOOR = 177217;
|
|
120
|
+
/** Fengus's Chest — only 100% source of Courtyard Key 18266. Cite: loot 16523. */
|
|
121
|
+
export const GO_FENGUS_CHEST = 179516;
|
|
122
|
+
|
|
123
|
+
// dire_maul.h:109–121 texts / factions / spells
|
|
124
|
+
export const SAY_FREE_IMMOLTHAR = -1429000;
|
|
125
|
+
export const SAY_KILL_IMMOLTHAR = -1429001;
|
|
126
|
+
export const SAY_IRONBARK_REDEEM = -1429002;
|
|
127
|
+
export const SAY_CHORUSH_KING_DEAD = -1429003;
|
|
128
|
+
export const SAY_SLIPKIK_TRAP = -1429004;
|
|
129
|
+
export const SAY_UNSUMMON_DEMON = -1429005;
|
|
130
|
+
|
|
131
|
+
export const FACTION_HOSTILE = 14;
|
|
132
|
+
export const FACTION_FRIENDLY = 35;
|
|
133
|
+
export const FACTION_OGRE = 45;
|
|
134
|
+
|
|
135
|
+
export const SPELL_KING_OF_GORDOK = 22799;
|
|
136
|
+
export const SPELL_ICE_LOCK = 22856;
|
|
137
|
+
export const SPELL_GUARD_SLIPKIK_TRIGGER = 31770;
|
|
138
|
+
|
|
139
|
+
// dire_maul.cpp:39–40 event ids
|
|
140
|
+
export const EVENT_ID_SUMMON_JEEVEE = 8420;
|
|
141
|
+
export const EVENT_ID_SUMMON_DREADSTEED = 8428;
|
|
142
|
+
|
|
143
|
+
// dire_maul.cpp:90 relay base for wave summons
|
|
144
|
+
export const SUMMON_WAVES_RELAY_SCRIPT_START_ID = 1_450_100;
|
|
145
|
+
|
|
146
|
+
// Dummy infernal controller spawn at ritual start. Cite: dire_maul.cpp:55
|
|
147
|
+
// SummonCreature(NPC_WARLOCK_DUMMY_INFERNAL, …)
|
|
148
|
+
export const WARLOCK_DUMMY_SPAWN_POS = {
|
|
149
|
+
x: -37.9392,
|
|
150
|
+
y: 812.805,
|
|
151
|
+
z: -29.4525,
|
|
152
|
+
o: 4.81711,
|
|
153
|
+
cite: 'dire_maul.cpp:55',
|
|
154
|
+
} as const;
|
|
155
|
+
|
|
156
|
+
/** Pedestal approach coords for summoned demons. Cite: dire_maul.cpp:93 pedestalCords */
|
|
157
|
+
export const PEDESTAL_CORDS = {
|
|
158
|
+
x: -38.5,
|
|
159
|
+
y: 811.8,
|
|
160
|
+
z: -29.5,
|
|
161
|
+
cite: 'dire_maul.cpp:93 pedestalCords',
|
|
162
|
+
} as const;
|
|
163
|
+
|
|
164
|
+
/** Mizzle the Crafty spawn after King Gordok dies. Cite: dire_maul.h:124 afMizzleSpawnLoc */
|
|
165
|
+
export const MIZZLE_SPAWN_POS = {
|
|
166
|
+
x: 683.296,
|
|
167
|
+
y: 484.384,
|
|
168
|
+
z: 29.544,
|
|
169
|
+
o: 0.0174,
|
|
170
|
+
cite: 'dire_maul.h:124 afMizzleSpawnLoc',
|
|
171
|
+
} as const;
|
|
172
|
+
|
|
173
|
+
// Ritual phase timers — npc_warlock_mount_ritualAI
|
|
174
|
+
|
|
175
|
+
// Initial phase timer before phase machine starts advancing. Cite: dire_maul.cpp:112 m_uiPhaseTimer = 48000
|
|
176
|
+
export const RITUAL_PHASE_INITIAL_MS = 48_000;
|
|
177
|
+
|
|
178
|
+
// After ProcessDreadsteedRitualStart (phase 1) delay before first wave. Cite: dire_maul.cpp:159
|
|
179
|
+
// m_uiPhaseTimer = 1000
|
|
180
|
+
export const RITUAL_PHASE1_NEXT_MS = 1000;
|
|
181
|
+
|
|
182
|
+
// Waves 1–8 (phases 2–9) re-arm between DoSummonPack calls. Cite: dire_maul.cpp:162 m_uiPhaseTimer = 45000
|
|
183
|
+
export const RITUAL_WAVE_INTERVAL_MS = 45_000;
|
|
184
|
+
|
|
185
|
+
/** Final (9th) wave duration before cleanup. Cite: dire_maul.cpp:166 m_uiPhaseTimer = 17500 */
|
|
186
|
+
export const RITUAL_FINAL_WAVE_MS = 17_500;
|
|
187
|
+
|
|
188
|
+
/** Initial helping-object deactivate timer. Cite: dire_maul.cpp:113 m_uiDeactivateTimer = 70000 */
|
|
189
|
+
export const RITUAL_DEACTIVATE_INITIAL_MS = 70_000;
|
|
190
|
+
|
|
191
|
+
// Subsequent deactivate re-arm urand(30000, 45000). Cite: dire_maul.cpp:218 m_uiDeactivateTimer =
|
|
192
|
+
// urand(30000, 45000)
|
|
193
|
+
export const RITUAL_DEACTIVATE_MIN_MS = 30_000;
|
|
194
|
+
export const RITUAL_DEACTIVATE_MAX_MS = 45_000;
|
|
195
|
+
|
|
196
|
+
// GO ritual aura pulse re-arm after first OnUse (1ms arm). Cite: dire_maul.cpp:278 m_uiPulseTimer = 6000;
|
|
197
|
+
// :297 m_uiPulseTimer = 1
|
|
198
|
+
export const RITUAL_GO_PULSE_INITIAL_MS = 1;
|
|
199
|
+
export const RITUAL_GO_PULSE_REPEAT_MS = 6000;
|
|
200
|
+
|
|
201
|
+
// Ritual symbol and circle respawn windows.
|
|
202
|
+
// Cite: dire_maul.cpp:119 DoRespawnGameObject(…, 900); instance_dire_maul.cpp:619–625 900 / 380.
|
|
203
|
+
export const RITUAL_SYMBOL_RESPAWN_S = 900;
|
|
204
|
+
export const RITUAL_PORTAL_RESPAWN_S = 380;
|
|
205
|
+
|
|
206
|
+
// Phase machine for the dreadsteed ritual controller 14501: phase 1 starts the ritual, 2–10 summon
|
|
207
|
+
// the nine waves, and 11 clears the demons and sets SPECIAL. Cite: dire_maul.cpp:109–183.
|
|
208
|
+
export const RITUAL_PHASE_STEPS = [
|
|
209
|
+
{
|
|
210
|
+
phase: 0,
|
|
211
|
+
armMs: RITUAL_PHASE_INITIAL_MS,
|
|
212
|
+
action: 'noop' as const,
|
|
213
|
+
nextArmMs: 0,
|
|
214
|
+
cite: 'dire_maul.cpp:112,155-186 phase 0 falls through; ++phase',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
phase: 1,
|
|
218
|
+
armMs: 0,
|
|
219
|
+
action: 'process_ritual_start' as const,
|
|
220
|
+
nextArmMs: RITUAL_PHASE1_NEXT_MS,
|
|
221
|
+
cite: 'dire_maul.cpp:157-160 ProcessDreadsteedRitualStart; timer=1000',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
phase: 2,
|
|
225
|
+
armMs: RITUAL_PHASE1_NEXT_MS,
|
|
226
|
+
action: 'summon_pack' as const,
|
|
227
|
+
packIndex: 1,
|
|
228
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
229
|
+
cite: 'dire_maul.cpp:161-164 case 2 DoSummonPack(1); timer=45000',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
phase: 3,
|
|
233
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
234
|
+
action: 'summon_pack' as const,
|
|
235
|
+
packIndex: 2,
|
|
236
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
237
|
+
cite: 'dire_maul.cpp:161-164 case 3 DoSummonPack(2)',
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
phase: 4,
|
|
241
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
242
|
+
action: 'summon_pack' as const,
|
|
243
|
+
packIndex: 3,
|
|
244
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
245
|
+
cite: 'dire_maul.cpp:161-164 case 4 DoSummonPack(3)',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
phase: 5,
|
|
249
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
250
|
+
action: 'summon_pack' as const,
|
|
251
|
+
packIndex: 4,
|
|
252
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
253
|
+
cite: 'dire_maul.cpp:161-164 case 5 DoSummonPack(4)',
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
phase: 6,
|
|
257
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
258
|
+
action: 'summon_pack' as const,
|
|
259
|
+
packIndex: 5,
|
|
260
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
261
|
+
cite: 'dire_maul.cpp:161-164 case 6 DoSummonPack(5)',
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
phase: 7,
|
|
265
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
266
|
+
action: 'summon_pack' as const,
|
|
267
|
+
packIndex: 6,
|
|
268
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
269
|
+
cite: 'dire_maul.cpp:161-164 case 7 DoSummonPack(6)',
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
phase: 8,
|
|
273
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
274
|
+
action: 'summon_pack' as const,
|
|
275
|
+
packIndex: 7,
|
|
276
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
277
|
+
cite: 'dire_maul.cpp:161-164 case 8 DoSummonPack(7)',
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
phase: 9,
|
|
281
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
282
|
+
action: 'summon_pack' as const,
|
|
283
|
+
packIndex: 8,
|
|
284
|
+
nextArmMs: RITUAL_WAVE_INTERVAL_MS,
|
|
285
|
+
cite: 'dire_maul.cpp:161-164 case 9 DoSummonPack(8)',
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
phase: 10,
|
|
289
|
+
armMs: RITUAL_WAVE_INTERVAL_MS,
|
|
290
|
+
action: 'summon_pack' as const,
|
|
291
|
+
packIndex: 9,
|
|
292
|
+
nextArmMs: RITUAL_FINAL_WAVE_MS,
|
|
293
|
+
cite: 'dire_maul.cpp:165-168 case 10 final wave DoSummonPack(9); timer=17500',
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
phase: 11,
|
|
297
|
+
armMs: RITUAL_FINAL_WAVE_MS,
|
|
298
|
+
action: 'cleanup_special' as const,
|
|
299
|
+
nextArmMs: 0,
|
|
300
|
+
cite: 'dire_maul.cpp:169-183 teleport+yell+despawn; SetData SPECIAL; ForcedDespawn',
|
|
301
|
+
},
|
|
302
|
+
] as const;
|
|
303
|
+
|
|
304
|
+
/** GO entry → ritual pulse spell. Cite: dire_maul.cpp:255–266 */
|
|
305
|
+
export const DREADSTEED_GO_PULSE_SPELL: Readonly<Record<number, number>> = {
|
|
306
|
+
[GO_BELL_OF_DETHMOORA]: SPELL_RITUAL_BELL_AURA,
|
|
307
|
+
[GO_DOOMSDAY_CANDLE]: SPELL_RITUAL_CANDLE_AURA,
|
|
308
|
+
[GO_WHEEL_OF_BLACK_MARCH]: SPELL_BLACK_MARCH_BLESSING,
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
// Slip'kik trap detection radius (yards). Cite: instance_dire_maul.cpp:649 GetClosestCreatureWithEntry(…,
|
|
312
|
+
// 0.5f)
|
|
313
|
+
export const FIXED_TRAP_SLIPKIK_RADIUS_YD = 0.5;
|
|
314
|
+
|
|
315
|
+
// OnPlayerEnter probe for DM North entrance (library cross-wing gate). Cite: instance_dire_maul.cpp:66
|
|
316
|
+
// IsWithinDist2d(260.0f, -20.0f, 20.0f) Areatrigger 3189 lands at (254.92, -19.463) — inside this radius.
|
|
317
|
+
export const DM_NORTH_ENTER_PROBE = {
|
|
318
|
+
x: 260.0,
|
|
319
|
+
y: -20.0,
|
|
320
|
+
radiusYd: 20.0,
|
|
321
|
+
cite: 'instance_dire_maul.cpp:66 IsWithinDist2d(260.0f, -20.0f, 20.0f)',
|
|
322
|
+
} as const;
|
|
323
|
+
|
|
324
|
+
// Pure helpers
|
|
325
|
+
|
|
326
|
+
// Port of Object::IsWithinDist2d (squared compare). Cite: Object.h IsWithinDist2d;
|
|
327
|
+
// instance_dire_maul.cpp:66
|
|
328
|
+
export function isWithinDist2d(
|
|
329
|
+
px: number,
|
|
330
|
+
py: number,
|
|
331
|
+
cx: number,
|
|
332
|
+
cy: number,
|
|
333
|
+
dist: number,
|
|
334
|
+
): boolean {
|
|
335
|
+
const dx = px - cx;
|
|
336
|
+
const dy = py - cy;
|
|
337
|
+
return dx * dx + dy * dy <= dist * dist;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// Port of instance_dire_maul::OnPlayerEnter north-before-west test. True when the player enters near DM
|
|
341
|
+
// North and TYPE_WARPWOOD is not DONE. Cite: instance_dire_maul.cpp:66-69
|
|
342
|
+
export function shouldDoNorthBeforeWest(
|
|
343
|
+
playerX: number,
|
|
344
|
+
playerY: number,
|
|
345
|
+
warpwoodData: number,
|
|
346
|
+
): boolean {
|
|
347
|
+
return (
|
|
348
|
+
isWithinDist2d(
|
|
349
|
+
playerX,
|
|
350
|
+
playerY,
|
|
351
|
+
DM_NORTH_ENTER_PROBE.x,
|
|
352
|
+
DM_NORTH_ENTER_PROBE.y,
|
|
353
|
+
DM_NORTH_ENTER_PROBE.radiusYd,
|
|
354
|
+
)
|
|
355
|
+
&& warpwoodData !== INSTANCE_DATA.DONE
|
|
356
|
+
);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// GO_WEST_LIBRARY_DOOR 179550 flag pair: north-before-west sets NO_INTERACT so the illegal
|
|
360
|
+
// approach cannot Use it, otherwise LOCKED for the Crescent Key path. Cite: cpp:71-72, :180-181.
|
|
361
|
+
export function westLibraryDoorFlags(doNorthBeforeWest: boolean): {
|
|
362
|
+
noInteract: boolean;
|
|
363
|
+
locked: boolean;
|
|
364
|
+
} {
|
|
365
|
+
return {
|
|
366
|
+
noInteract: doNorthBeforeWest,
|
|
367
|
+
locked: !doNorthBeforeWest,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/** OnPlayerEnter door-flag result for GO 179550. Cite: instance_dire_maul.cpp:62-73 */
|
|
372
|
+
export function applyDireMaulOnPlayerEnter(
|
|
373
|
+
playerX: number,
|
|
374
|
+
playerY: number,
|
|
375
|
+
getData: (field: number) => number,
|
|
376
|
+
): {
|
|
377
|
+
doNorthBeforeWest: boolean;
|
|
378
|
+
goEntry: number;
|
|
379
|
+
noInteract: boolean;
|
|
380
|
+
locked: boolean;
|
|
381
|
+
cite: string;
|
|
382
|
+
} {
|
|
383
|
+
const doNorthBeforeWest = shouldDoNorthBeforeWest(
|
|
384
|
+
playerX,
|
|
385
|
+
playerY,
|
|
386
|
+
getData(TYPE_WARPWOOD),
|
|
387
|
+
);
|
|
388
|
+
const flags = westLibraryDoorFlags(doNorthBeforeWest);
|
|
389
|
+
return {
|
|
390
|
+
doNorthBeforeWest,
|
|
391
|
+
goEntry: GO_WEST_LIBRARY_DOOR,
|
|
392
|
+
noInteract: flags.noInteract,
|
|
393
|
+
locked: flags.locked,
|
|
394
|
+
cite: 'instance_dire_maul.cpp:62-73 OnPlayerEnter; h:70 GO_WEST_LIBRARY_DOOR=179550; h:20 TYPE_WARPWOOD=3',
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/** Port of instance_dire_maul::CheckAllGeneratorsDestroyed. Cite: instance_dire_maul.cpp:528–531 */
|
|
399
|
+
export function checkAllGeneratorsDestroyed(
|
|
400
|
+
getData: (field: number) => number,
|
|
401
|
+
): boolean {
|
|
402
|
+
for (let i = 0; i < DM_MAX_GENERATORS; i++) {
|
|
403
|
+
if (getData(TYPE_PYLON_1 + i) !== INSTANCE_DATA.DONE) return false;
|
|
404
|
+
}
|
|
405
|
+
return true;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Tribute-run alive-guard count (0–6) for INSTANCE_CONDITION_ID_* hard modes. Cite:
|
|
409
|
+
// instance_dire_maul.cpp:511–514
|
|
410
|
+
export function tributeRunAliveBosses(
|
|
411
|
+
getData: (field: number) => number,
|
|
412
|
+
): number {
|
|
413
|
+
const fields = [
|
|
414
|
+
TYPE_MOLDAR,
|
|
415
|
+
TYPE_FENGUS,
|
|
416
|
+
TYPE_SLIPKIK,
|
|
417
|
+
TYPE_KROMCRUSH,
|
|
418
|
+
TYPE_CHORUSH,
|
|
419
|
+
TYPE_STOMPER_KREEG,
|
|
420
|
+
];
|
|
421
|
+
let n = 0;
|
|
422
|
+
for (const f of fields) {
|
|
423
|
+
if (getData(f) !== INSTANCE_DATA.DONE) n++;
|
|
424
|
+
}
|
|
425
|
+
return n;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
// event_spells_warlock_dreadsteed
|
|
429
|
+
|
|
430
|
+
// ProcessEventId_event_spells_warlock_dreadsteed: event 8420 summons J'eevee and sets
|
|
431
|
+
// IN_PROGRESS, event 8428 sets DONE from SPECIAL. Cite: dire_maul.cpp:43–81.
|
|
432
|
+
export const EVENT_SPELLS_WARLOCK_DREADSTEED: ScriptDevIR = {
|
|
433
|
+
name: 'event_spells_warlock_dreadsteed',
|
|
434
|
+
boundCreatures: [],
|
|
435
|
+
sourceFile: 'kalimdor/dire_maul/dire_maul.cpp',
|
|
436
|
+
spellIds: [],
|
|
437
|
+
timers: [],
|
|
438
|
+
goUse: {
|
|
439
|
+
goEntries: [],
|
|
440
|
+
branches: [
|
|
441
|
+
{
|
|
442
|
+
gate: {
|
|
443
|
+
field: TYPE_DREADSTEED,
|
|
444
|
+
equals: INSTANCE_DATA.NOT_STARTED,
|
|
445
|
+
cite: 'dire_maul.cpp:52 GetData(TYPE_DREADSTEED) == NOT_STARTED',
|
|
446
|
+
},
|
|
447
|
+
actions: [
|
|
448
|
+
{
|
|
449
|
+
kind: 'summon_count',
|
|
450
|
+
creatureEntry: NPC_WARLOCK_DUMMY_INFERNAL,
|
|
451
|
+
count: 1,
|
|
452
|
+
cite: 'dire_maul.cpp:55 SummonCreature(NPC_WARLOCK_DUMMY_INFERNAL)',
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
kind: 'summon_count',
|
|
456
|
+
creatureEntry: NPC_JEEVEE,
|
|
457
|
+
count: 1,
|
|
458
|
+
cite: 'dire_maul.cpp:58 SummonCreature(NPC_JEEVEE) path 1',
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
kind: 'set_instance_data',
|
|
462
|
+
field: TYPE_DREADSTEED,
|
|
463
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
464
|
+
cite: 'dire_maul.cpp:61 SetData(TYPE_DREADSTEED, IN_PROGRESS)',
|
|
465
|
+
},
|
|
466
|
+
],
|
|
467
|
+
cite: 'dire_maul.cpp:50-65 EVENT_ID_SUMMON_JEEVEE NOT_STARTED',
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
gate: {
|
|
471
|
+
field: TYPE_DREADSTEED,
|
|
472
|
+
equals: INSTANCE_DATA.FAIL,
|
|
473
|
+
cite: 'dire_maul.cpp:52 GetData(TYPE_DREADSTEED) == FAIL',
|
|
474
|
+
},
|
|
475
|
+
actions: [
|
|
476
|
+
{
|
|
477
|
+
kind: 'summon_count',
|
|
478
|
+
creatureEntry: NPC_WARLOCK_DUMMY_INFERNAL,
|
|
479
|
+
count: 1,
|
|
480
|
+
cite: 'dire_maul.cpp:55 SummonCreature after FAIL restart',
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
kind: 'summon_count',
|
|
484
|
+
creatureEntry: NPC_JEEVEE,
|
|
485
|
+
count: 1,
|
|
486
|
+
cite: 'dire_maul.cpp:58 SummonCreature(NPC_JEEVEE) after FAIL',
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
kind: 'set_instance_data',
|
|
490
|
+
field: TYPE_DREADSTEED,
|
|
491
|
+
value: INSTANCE_DATA.IN_PROGRESS,
|
|
492
|
+
cite: 'dire_maul.cpp:61 SetData IN_PROGRESS after FAIL',
|
|
493
|
+
},
|
|
494
|
+
],
|
|
495
|
+
cite: 'dire_maul.cpp:50-65 EVENT_ID_SUMMON_JEEVEE FAIL',
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
gate: {
|
|
499
|
+
field: TYPE_DREADSTEED,
|
|
500
|
+
equals: INSTANCE_DATA.SPECIAL,
|
|
501
|
+
cite: 'dire_maul.cpp:70 GetData(TYPE_DREADSTEED) == SPECIAL',
|
|
502
|
+
},
|
|
503
|
+
actions: [
|
|
504
|
+
{
|
|
505
|
+
kind: 'set_instance_data',
|
|
506
|
+
field: TYPE_DREADSTEED,
|
|
507
|
+
value: INSTANCE_DATA.DONE,
|
|
508
|
+
cite: 'dire_maul.cpp:72 SetData(TYPE_DREADSTEED, DONE)',
|
|
509
|
+
},
|
|
510
|
+
],
|
|
511
|
+
cite: 'dire_maul.cpp:68-76 EVENT_ID_SUMMON_DREADSTEED SPECIAL → DONE',
|
|
512
|
+
},
|
|
513
|
+
],
|
|
514
|
+
cite: 'dire_maul.cpp:43-81 ProcessEventId_event_spells_warlock_dreadsteed',
|
|
515
|
+
},
|
|
516
|
+
unusedBindings: [
|
|
517
|
+
{
|
|
518
|
+
entry: NPC_WARLOCK_DUMMY_INFERNAL,
|
|
519
|
+
kind: 'creature',
|
|
520
|
+
reason:
|
|
521
|
+
'NPC 14501 Warlock Mount Ritual Mob is summon-only (dire_maul.cpp:55); absent from product bake - IR ported; no live-bake unit fight',
|
|
522
|
+
cite: 'dire_maul.h:58; dire_maul.cpp:55; loadRealBundle missing 14501',
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
entry: NPC_LORD_HELNURATH,
|
|
526
|
+
kind: 'creature',
|
|
527
|
+
reason:
|
|
528
|
+
'NPC 14506 Lord Hel\'nurath is dreadsteed boss summon (OnCreatureDeath → TYPE_DREADSTEED DONE); absent from bake',
|
|
529
|
+
cite: 'dire_maul.h:90; instance_dire_maul.cpp:437-439; loadRealBundle missing 14506',
|
|
530
|
+
},
|
|
531
|
+
],
|
|
532
|
+
cites: [
|
|
533
|
+
'dire_maul.cpp:43-81',
|
|
534
|
+
'dire_maul.cpp:39-40 EVENT_ID_SUMMON_JEEVEE=8420 EVENT_ID_SUMMON_DREADSTEED=8428',
|
|
535
|
+
'dire_maul.h:39 TYPE_DREADSTEED=18',
|
|
536
|
+
'scriptdev2.sql:335-336',
|
|
537
|
+
],
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
// npc_warlock_mount_ritual
|
|
541
|
+
|
|
542
|
+
// npc_warlock_mount_ritualAI on the dummy controller 14501, which is ABSENT from the product bake
|
|
543
|
+
// so the binding is unused. The wave summons are relay dbscripts, not host-executable.
|
|
544
|
+
export const NPC_WARLOCK_MOUNT_RITUAL: ScriptDevIR = {
|
|
545
|
+
name: 'npc_warlock_mount_ritual',
|
|
546
|
+
boundCreatures: [NPC_WARLOCK_DUMMY_INFERNAL],
|
|
547
|
+
sourceFile: 'kalimdor/dire_maul/dire_maul.cpp',
|
|
548
|
+
// Combat kit empty — the controller has no fight casts. The ritual only casts SPELL_TELEPORT on
|
|
549
|
+
// summoned demons at cleanup; the phase and deactivate timers are RITUAL_* constants.
|
|
550
|
+
spellIds: [],
|
|
551
|
+
timers: [],
|
|
552
|
+
// C++ Reset (cpp:109-114) only zeros phase/timers — no SetData / yells.
|
|
553
|
+
unusedBindings: [
|
|
554
|
+
{
|
|
555
|
+
entry: NPC_WARLOCK_DUMMY_INFERNAL,
|
|
556
|
+
kind: 'creature',
|
|
557
|
+
reason:
|
|
558
|
+
'creature_template entry 14501 bound via ScriptName=npc_warlock_mount_ritual (scriptdev2.sql:332) but absent from product bake - IR ported; ritual timers documented in RITUAL_* constants; no live-bake unit fight',
|
|
559
|
+
cite: 'scriptdev2.sql:332; loadRealBundle missing 14501; dire_maul.cpp:95-223',
|
|
560
|
+
},
|
|
561
|
+
],
|
|
562
|
+
cites: [
|
|
563
|
+
'dire_maul.cpp:95-223 npc_warlock_mount_ritualAI',
|
|
564
|
+
'dire_maul.cpp:112 m_uiPhaseTimer=48000',
|
|
565
|
+
'dire_maul.cpp:113 m_uiDeactivateTimer=70000',
|
|
566
|
+
'dire_maul.cpp:157-183 phase switch',
|
|
567
|
+
'dire_maul.cpp:162 m_uiPhaseTimer=45000 waves',
|
|
568
|
+
'dire_maul.cpp:166 m_uiPhaseTimer=17500 final wave',
|
|
569
|
+
'dire_maul.cpp:181 SetData(TYPE_DREADSTEED, SPECIAL)',
|
|
570
|
+
'dire_maul.cpp:218 urand(30000,45000) deactivate re-arm',
|
|
571
|
+
'dire_maul.cpp:90 SUMMON_WAVES_RELAY_SCRIPT_START_ID=1450100',
|
|
572
|
+
'scriptdev2.sql:332',
|
|
573
|
+
],
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
// go_dreadsteed_quest_objects
|
|
577
|
+
|
|
578
|
+
// DreadsteedQuestObjects GameObjectAI on GO 179672/179673/179674: despawns unless the ritual is
|
|
579
|
+
// IN_PROGRESS, then pulses its ritual aura every 6000 ms. Cite: dire_maul.cpp:229–299.
|
|
580
|
+
export const GO_DREADSTEED_QUEST_OBJECTS: ScriptDevIR = {
|
|
581
|
+
name: 'go_dreadsteed_quest_objects',
|
|
582
|
+
boundCreatures: [],
|
|
583
|
+
boundGos: [...GO_DREADSTEED_QUEST_OBJECT_ENTRIES],
|
|
584
|
+
sourceFile: 'kalimdor/dire_maul/dire_maul.cpp',
|
|
585
|
+
spellIds: [],
|
|
586
|
+
timers: [],
|
|
587
|
+
goUse: {
|
|
588
|
+
goEntries: [...GO_DREADSTEED_QUEST_OBJECT_ENTRIES],
|
|
589
|
+
gates: [
|
|
590
|
+
{
|
|
591
|
+
field: TYPE_DREADSTEED,
|
|
592
|
+
equals: INSTANCE_DATA.IN_PROGRESS,
|
|
593
|
+
cite: 'dire_maul.cpp:239 GetData(TYPE_DREADSTEED) != IN_PROGRESS → ForcedDespawn on spawn; OnUse only meaningful in-progress',
|
|
594
|
+
},
|
|
595
|
+
],
|
|
596
|
+
// OnUse arms pulse (cpp:297); spell selection by entry is host/product GO AI.
|
|
597
|
+
actions: [],
|
|
598
|
+
cite: 'dire_maul.cpp:291-298 OnUse arm m_uiPulseTimer=1; UpdateAI 248-282 pulse 6000ms',
|
|
599
|
+
},
|
|
600
|
+
cites: [
|
|
601
|
+
'dire_maul.cpp:229-299 DreadsteedQuestObjects',
|
|
602
|
+
'dire_maul.cpp:255-266 GO→spell map BELL=23117 CANDLE=23226 WHEEL=23120',
|
|
603
|
+
'dire_maul.cpp:278 m_uiPulseTimer=6000',
|
|
604
|
+
'dire_maul.cpp:297 m_uiPulseTimer=1',
|
|
605
|
+
'dire_maul.h:72-74 GO_BELL/CANDLE/WHEEL',
|
|
606
|
+
'scriptdev2.sql:333',
|
|
607
|
+
],
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
// go_fixed_trap
|
|
611
|
+
|
|
612
|
+
// go_ai_fixed_trap on GO 179512: proximity, not a player use — within 0.5 yd of Guard Slip'kik it
|
|
613
|
+
// fires, yells and turns him hostile. Cite: instance_dire_maul.cpp:637–660.
|
|
614
|
+
export const GO_FIXED_TRAP_SCRIPT: ScriptDevIR = {
|
|
615
|
+
name: 'go_fixed_trap',
|
|
616
|
+
boundCreatures: [],
|
|
617
|
+
boundGos: [GO_FIXED_TRAP],
|
|
618
|
+
sourceFile: 'kalimdor/dire_maul/instance_dire_maul.cpp',
|
|
619
|
+
spellIds: [],
|
|
620
|
+
timers: [],
|
|
621
|
+
goUse: {
|
|
622
|
+
goEntries: [GO_FIXED_TRAP],
|
|
623
|
+
actions: [
|
|
624
|
+
{
|
|
625
|
+
kind: 'yell',
|
|
626
|
+
textId: SAY_SLIPKIK_TRAP,
|
|
627
|
+
cite: 'instance_dire_maul.cpp:652 DoScriptText(SAY_SLIPKIK_TRAP, slipkik)',
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
kind: 'stop_combat',
|
|
631
|
+
cite: 'instance_dire_maul.cpp:653 slipkik->AI()->EnterEvadeMode()',
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
kind: 'force_despawn',
|
|
635
|
+
delayMs: 0,
|
|
636
|
+
cite: 'instance_dire_maul.cpp:656 m_go->SetLootState(GO_JUST_DEACTIVATED)',
|
|
637
|
+
},
|
|
638
|
+
],
|
|
639
|
+
cite: 'instance_dire_maul.cpp:637-660 go_ai_fixed_trap proximity 0.5y to NPC_GUARD_SLIPKIK=14323',
|
|
640
|
+
},
|
|
641
|
+
cites: [
|
|
642
|
+
'instance_dire_maul.cpp:637-660',
|
|
643
|
+
'instance_dire_maul.cpp:649 radius 0.5f',
|
|
644
|
+
'instance_dire_maul.cpp:655 FACTION_HOSTILE=14 temp',
|
|
645
|
+
'dire_maul.h:97 NPC_GUARD_SLIPKIK=14323',
|
|
646
|
+
'dire_maul.h:113 SAY_SLIPKIK_TRAP=-1429004',
|
|
647
|
+
'scriptdev2.sql:331 entry=179512',
|
|
648
|
+
],
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
// instance_dire_maul
|
|
652
|
+
|
|
653
|
+
// instance_dire_maul, m_auiEncounter[19]: East 0–2, West 3–10, North 11–17, Dreadsteed 18. Bound
|
|
654
|
+
// through instance_template for the map 429 wings; go_fixed_trap is its own script.
|
|
655
|
+
export const INSTANCE_DIRE_MAUL: ScriptDevIR = {
|
|
656
|
+
name: 'instance_dire_maul',
|
|
657
|
+
boundCreatures: [],
|
|
658
|
+
sourceFile: 'kalimdor/dire_maul/instance_dire_maul.cpp',
|
|
659
|
+
spellIds: [],
|
|
660
|
+
timers: [],
|
|
661
|
+
encounters: [
|
|
662
|
+
// East
|
|
663
|
+
{
|
|
664
|
+
creatureEntry: NPC_ZEVRIM_THORNHOOF,
|
|
665
|
+
field: TYPE_ZEVRIM,
|
|
666
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
667
|
+
cite: 'instance_dire_maul.cpp:417-419 OnCreatureDeath Zevrim → TYPE_ZEVRIM DONE',
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
// Redeemed form death opens conservatory (Old Ironbark transforms on Zevrim DONE).
|
|
671
|
+
creatureEntry: NPC_IRONBARK_REDEEMED,
|
|
672
|
+
field: TYPE_IRONBARK,
|
|
673
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
674
|
+
cite: 'instance_dire_maul.cpp:420-422 Ironbark Redeemed → TYPE_IRONBARK DONE',
|
|
675
|
+
},
|
|
676
|
+
// West bosses
|
|
677
|
+
{
|
|
678
|
+
creatureEntry: NPC_TENDRIS_WARPWOOD,
|
|
679
|
+
field: TYPE_WARPWOOD,
|
|
680
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
681
|
+
cite: 'instance_dire_maul.cpp:431-433 Tendris → TYPE_WARPWOOD DONE',
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
creatureEntry: NPC_IMMOLTHAR,
|
|
685
|
+
field: TYPE_IMMOLTHAR,
|
|
686
|
+
onAggro: INSTANCE_DATA.IN_PROGRESS,
|
|
687
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
688
|
+
cite: 'instance_dire_maul.cpp:405-407 combat IN_PROGRESS; :434-436 death DONE',
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
creatureEntry: NPC_LORD_HELNURATH,
|
|
692
|
+
field: TYPE_DREADSTEED,
|
|
693
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
694
|
+
cite: 'instance_dire_maul.cpp:437-439 Hel\'nurath → TYPE_DREADSTEED DONE',
|
|
695
|
+
},
|
|
696
|
+
// North
|
|
697
|
+
{
|
|
698
|
+
creatureEntry: NPC_KING_GORDOK,
|
|
699
|
+
field: TYPE_KING_GORDOK,
|
|
700
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
701
|
+
cite: 'instance_dire_maul.cpp:443-445 King Gordok → TYPE_KING_GORDOK DONE',
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
creatureEntry: NPC_GUARD_MOLDAR,
|
|
705
|
+
field: TYPE_MOLDAR,
|
|
706
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
707
|
+
cite: 'instance_dire_maul.cpp:447-449',
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
creatureEntry: NPC_GUARD_FENGUS,
|
|
711
|
+
field: TYPE_FENGUS,
|
|
712
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
713
|
+
cite: 'instance_dire_maul.cpp:450-452',
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
creatureEntry: NPC_GUARD_SLIPKIK,
|
|
717
|
+
field: TYPE_SLIPKIK,
|
|
718
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
719
|
+
cite: 'instance_dire_maul.cpp:453-455',
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
creatureEntry: NPC_CAPTAIN_KROMCRUSH,
|
|
723
|
+
field: TYPE_KROMCRUSH,
|
|
724
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
725
|
+
cite: 'instance_dire_maul.cpp:456-458',
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
creatureEntry: NPC_CHO_RUSH_THE_OBSERVER,
|
|
729
|
+
field: TYPE_CHORUSH,
|
|
730
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
731
|
+
cite: 'instance_dire_maul.cpp:459-461',
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
creatureEntry: NPC_STOMPER_KREEG,
|
|
735
|
+
field: TYPE_STOMPER_KREEG,
|
|
736
|
+
onDeath: INSTANCE_DATA.DONE,
|
|
737
|
+
cite: 'instance_dire_maul.cpp:462-464',
|
|
738
|
+
},
|
|
739
|
+
],
|
|
740
|
+
doors: [
|
|
741
|
+
{
|
|
742
|
+
field: TYPE_IRONBARK,
|
|
743
|
+
goEntry: GO_CONSERVATORY_DOOR,
|
|
744
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
745
|
+
cite: 'instance_dire_maul.cpp:127-129 OnObjectCreate GO_CONSERVATORY_DOOR when TYPE_IRONBARK DONE; h:45',
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
field: TYPE_ALZZIN,
|
|
749
|
+
goEntry: GO_CRUMBLE_WALL,
|
|
750
|
+
openOn: [INSTANCE_DATA.DONE, INSTANCE_DATA.SPECIAL],
|
|
751
|
+
cite:
|
|
752
|
+
'instance_dire_maul.cpp:247-250 SPECIAL + :233-237 DONE → DoUseDoorOrButton(GO_CRUMBLE_WALL=177220); acid_classic.sql:15013 1149214 HP≤40 SET_INST_DATA(0,SPECIAL=4)',
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
field: TYPE_ALZZIN,
|
|
756
|
+
goEntry: GO_CORRUPT_VINE,
|
|
757
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
758
|
+
cite: 'instance_dire_maul.cpp:239 DoUseDoorOrButton(GO_CORRUPT_VINE=179502) on ALZZIN DONE',
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
field: TYPE_WARPWOOD,
|
|
762
|
+
goEntry: GO_WARPWOOD_DOOR,
|
|
763
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
764
|
+
cite: 'instance_dire_maul.cpp:257-258 TYPE_WARPWOOD DONE → GO_WARPWOOD_DOOR; also lock 1562 Crescent Key 18249 / picklock 300',
|
|
765
|
+
},
|
|
766
|
+
// The forcefield opens when all five pylons are DONE. The host opens on TYPE_PYLON_5 DONE as
|
|
767
|
+
// the last-pylon smoke path; the product may re-check all five via checkAllGeneratorsDestroyed.
|
|
768
|
+
{
|
|
769
|
+
field: TYPE_PYLON_5,
|
|
770
|
+
goEntry: GO_FORCEFIELD,
|
|
771
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
772
|
+
cite: 'instance_dire_maul.cpp:287-288 CheckAllGeneratorsDestroyed → ProcessForceFieldOpening GO_FORCEFIELD; last pylon smoke',
|
|
773
|
+
},
|
|
774
|
+
// North key doors — player-click open (locks.json), not instance TYPE_* fields.
|
|
775
|
+
// Registered so the doors table matches East/West pattern for map 429.
|
|
776
|
+
{
|
|
777
|
+
field: TYPE_KING_GORDOK,
|
|
778
|
+
goEntry: GO_GORDOK_COURTYARD_DOOR,
|
|
779
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
780
|
+
cite: 'GO 177219 lock 1563 Courtyard Key 18266; key-only door (player open, not TYPE flag)',
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
field: TYPE_KING_GORDOK,
|
|
784
|
+
goEntry: GO_GORDOK_INNER_DOOR,
|
|
785
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
786
|
+
cite: 'GO 177217 lock 1564 Inner Door Key 18268 or picklock 200',
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
field: TYPE_KING_GORDOK,
|
|
790
|
+
goEntry: GO_NORTH_LIBRARY_DOOR,
|
|
791
|
+
openOn: [INSTANCE_DATA.DONE],
|
|
792
|
+
cite: 'GO 179549 lock 1562 Crescent Key 18249 or picklock 300; locks.json 1562; gameobject-data.json keyId 18249',
|
|
793
|
+
},
|
|
794
|
+
// GO 179550 West Library Door: same lock 1562 (player-click / north-before-west).
|
|
795
|
+
// Not bound openOn TYPE_* — instance only toggles NO_INTERACT/LOCKED (cpp:62-73).
|
|
796
|
+
],
|
|
797
|
+
unusedBindings: [
|
|
798
|
+
{
|
|
799
|
+
entry: NPC_IRONBARK_REDEEMED,
|
|
800
|
+
kind: 'creature',
|
|
801
|
+
reason:
|
|
802
|
+
'NPC 14241 Ironbark the Redeemed is UpdateEntry transform of 11491 on TYPE_ZEVRIM DONE; absent as static bake row - encounter IR still maps death → TYPE_IRONBARK',
|
|
803
|
+
cite: 'instance_dire_maul.cpp:216-223; loadRealBundle missing 14241',
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
entry: NPC_LORD_HELNURATH,
|
|
807
|
+
kind: 'creature',
|
|
808
|
+
reason:
|
|
809
|
+
'NPC 14506 Lord Hel\'nurath dreadsteed encounter boss is summon-only; absent from bake',
|
|
810
|
+
cite: 'instance_dire_maul.cpp:437-439; loadRealBundle missing 14506',
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
entry: NPC_MIZZLE_THE_CRAFTY,
|
|
814
|
+
kind: 'creature',
|
|
815
|
+
reason:
|
|
816
|
+
'NPC 14353 Mizzle summoned on TYPE_KING_GORDOK DONE (cpp:347); absent from bake',
|
|
817
|
+
cite: 'instance_dire_maul.cpp:347; dire_maul.h:102; loadRealBundle missing 14353',
|
|
818
|
+
},
|
|
819
|
+
],
|
|
820
|
+
cites: [
|
|
821
|
+
'instance_dire_maul.cpp:29-697',
|
|
822
|
+
'instance_dire_maul.cpp:41-59 Update dreadsteed fail conditions',
|
|
823
|
+
'instance_dire_maul.cpp:62-73 OnPlayerEnter north-before-west GO 179550',
|
|
824
|
+
'instance_dire_maul.cpp:180-181 OnObjectCreate GO_WEST_LIBRARY_DOOR flags',
|
|
825
|
+
'instance_dire_maul.cpp:210-384 SetData',
|
|
826
|
+
'instance_dire_maul.cpp:233-253 TYPE_ALZZIN SPECIAL/DONE doors + Felvine respawn',
|
|
827
|
+
'instance_dire_maul.cpp:256-259 TYPE_WARPWOOD DONE → GO_WARPWOOD_DOOR',
|
|
828
|
+
'instance_dire_maul.cpp:394-466 OnCreatureEnterCombat/Death',
|
|
829
|
+
'instance_dire_maul.cpp:528-531 CheckAllGeneratorsDestroyed',
|
|
830
|
+
'instance_dire_maul.cpp:615-626 ProcessDreadsteedRitualStart',
|
|
831
|
+
'dire_maul.h:20 TYPE_WARPWOOD=3',
|
|
832
|
+
'dire_maul.h:70 GO_WEST_LIBRARY_DOOR=179550',
|
|
833
|
+
'dire_maul.h:8-180',
|
|
834
|
+
'acid_classic.sql:15013-15020 Alzzin 1149214 SPECIAL@40% / 1149221 DONE',
|
|
835
|
+
'scriptdev2.sql:329-336',
|
|
836
|
+
],
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
// Acid 1149214: HP≤40% → SetData(TYPE_ALZZIN, SPECIAL) → open Crumble Wall 177220. Cite:
|
|
840
|
+
// acid_classic.sql:15013; instance_dire_maul.cpp:247-250; sc_instance.h:18 SPECIAL=4.
|
|
841
|
+
export function applyAlzzinHpSpecial(store: Map<number, number>): InstanceHostResult {
|
|
842
|
+
return applyInstanceSetData(
|
|
843
|
+
INSTANCE_DIRE_MAUL,
|
|
844
|
+
TYPE_ALZZIN,
|
|
845
|
+
INSTANCE_DATA.SPECIAL,
|
|
846
|
+
store,
|
|
847
|
+
);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
// Acid 1149221: death sets TYPE_ALZZIN DONE, which opens the wall and Corrupt Vine 179502. Felvine
|
|
851
|
+
// Shard 179559 is the InstanceDef lootObjects revealedByFlag seam. Cite: acid_classic.sql:15020.
|
|
852
|
+
export function applyAlzzinDeathDone(store: Map<number, number>): InstanceHostResult {
|
|
853
|
+
return applyInstanceSetData(
|
|
854
|
+
INSTANCE_DIRE_MAUL,
|
|
855
|
+
TYPE_ALZZIN,
|
|
856
|
+
INSTANCE_DATA.DONE,
|
|
857
|
+
store,
|
|
858
|
+
);
|
|
859
|
+
}
|