azeroth-shell 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -2
- package/bin/azsh.mjs +19 -0
- package/docs/aifid/eventai-texts.json +4414 -0
- package/docs/dungeons/atlas/atlas-rows-dungeons.json +8989 -0
- package/docs/dungeons/survey/pack-id-migration.json +2418 -0
- package/package.json +35 -4
- package/src/autopilot/bossSkip.ts +26 -0
- package/src/autopilot/combatRotation.ts +824 -0
- package/src/autopilot/config.ts +533 -0
- package/src/autopilot/consumables.ts +58 -0
- package/src/autopilot/encounterStand.ts +121 -0
- package/src/autopilot/objectGatePlan.ts +53 -0
- package/src/autopilot/pathEngage.ts +229 -0
- package/src/autopilot/plan.ts +1643 -0
- package/src/autopilot/questPolicy.ts +274 -0
- package/src/autopilot/routeStep.ts +69 -0
- package/src/autopilot/sessionReport.ts +88 -0
- package/src/autopilot/topOffPower.ts +26 -0
- package/src/autopilot/view.ts +476 -0
- package/src/cli/bootCheck.mjs +34 -0
- package/src/cli/bootData.mjs +57 -0
- package/src/cli/combatLogFilter.ts +153 -0
- package/src/cli/combatLogFormat.ts +613 -0
- package/src/cli/fileRepository.mjs +105 -0
- package/src/cli/gzLoader.mjs +31 -0
- package/src/cli/liveGauntletEscort.ts +978 -0
- package/src/cli/liveStratUndead.ts +305 -0
- package/src/cli/macroHostCombat.ts +545 -0
- package/src/cli/macroHostWorld.ts +330 -0
- package/src/cli/prefs.mjs +31 -0
- package/src/cli/register.mjs +4 -0
- package/src/cli/repl.mjs +693 -0
- package/src/cli/rotationText.mjs +226 -0
- package/src/cli/squad.mjs +105 -0
- package/src/cli/term.mjs +144 -0
- package/src/cli/text.mjs +122 -0
- package/src/cli/tui.mjs +626 -0
- package/src/cli/tuiArena.mjs +109 -0
- package/src/cli/tuiAutopilotSettings.mjs +93 -0
- package/src/cli/tuiBags.mjs +180 -0
- package/src/cli/tuiBars.mjs +133 -0
- package/src/cli/tuiBg.mjs +243 -0
- package/src/cli/tuiBulk.mjs +162 -0
- package/src/cli/tuiCheck.mjs +1882 -0
- package/src/cli/tuiCity.mjs +396 -0
- package/src/cli/tuiCompanionKit.mjs +300 -0
- package/src/cli/tuiCompanions.mjs +471 -0
- package/src/cli/tuiDev.mjs +62 -0
- package/src/cli/tuiDungeon.mjs +606 -0
- package/src/cli/tuiEnchantTarget.mjs +120 -0
- package/src/cli/tuiFight.mjs +577 -0
- package/src/cli/tuiFightPanes.mjs +228 -0
- package/src/cli/tuiFloor.mjs +506 -0
- package/src/cli/tuiGear.mjs +158 -0
- package/src/cli/tuiHonor.mjs +74 -0
- package/src/cli/tuiLoot.mjs +97 -0
- package/src/cli/tuiMacros.mjs +144 -0
- package/src/cli/tuiOutfitter.mjs +115 -0
- package/src/cli/tuiPet.mjs +116 -0
- package/src/cli/tuiProfessions.mjs +800 -0
- package/src/cli/tuiRaid.mjs +127 -0
- package/src/cli/tuiRep.mjs +65 -0
- package/src/cli/tuiSaves.mjs +69 -0
- package/src/cli/tuiSearch.mjs +363 -0
- package/src/cli/tuiSettings.mjs +151 -0
- package/src/cli/tuiSimLab.mjs +80 -0
- package/src/cli/tuiTalents.mjs +60 -0
- package/src/cli/tuiViews.mjs +1178 -0
- package/src/cli/tuiWiki.mjs +181 -0
- package/src/cli/tuiWorld.mjs +361 -0
- package/src/cli/wikiIndex.ts +259 -0
- package/src/cli/wikiSources.ts +355 -0
- package/src/data/alteracValley.ts +176 -0
- package/src/data/appearanceOptions.ts +534 -0
- package/src/data/applyLootChanceSanity.ts +21 -0
- package/src/data/createFlavor.ts +96 -0
- package/src/data/customItems.ts +33 -0
- package/src/data/dataStore.ts +1904 -0
- package/src/data/dungeonGameObjects.ts +84 -0
- package/src/data/dungeonPlateCover.ts +66 -0
- package/src/data/dungeonSpawns.ts +294 -0
- package/src/data/dungeons/alterac-valley.ts +135 -0
- package/src/data/dungeons/apply-dungeon-rooms.ts +29 -0
- package/src/data/dungeons/apply-encounter-outdoors.ts +72 -0
- package/src/data/dungeons/apply-instance-geometry.ts +65 -0
- package/src/data/dungeons/apply-spawn-placement.ts +171 -0
- package/src/data/dungeons/blackfathom-deeps.ts +539 -0
- package/src/data/dungeons/blackrock-depths.ts +1410 -0
- package/src/data/dungeons/blackwing-lair.ts +129 -0
- package/src/data/dungeons/boss-eventai.ts +8 -0
- package/src/data/dungeons/deadmines.ts +410 -0
- package/src/data/dungeons/dire-maul-east.ts +980 -0
- package/src/data/dungeons/dire-maul-north.ts +661 -0
- package/src/data/dungeons/dire-maul-west.ts +785 -0
- package/src/data/dungeons/dungeon-rooms.json +5479 -0
- package/src/data/dungeons/encounter-outdoors.json +359 -0
- package/src/data/dungeons/eventai/blackfathom-deeps.ts +308 -0
- package/src/data/dungeons/eventai/blackrock-depths.ts +1257 -0
- package/src/data/dungeons/eventai/deadmines.ts +264 -0
- package/src/data/dungeons/eventai/dire-maul-east.ts +320 -0
- package/src/data/dungeons/eventai/gnomeregan.ts +213 -0
- package/src/data/dungeons/eventai/helpers.ts +79 -0
- package/src/data/dungeons/eventai/index.ts +133 -0
- package/src/data/dungeons/eventai/lbrs.ts +372 -0
- package/src/data/dungeons/eventai/maraudon.ts +323 -0
- package/src/data/dungeons/eventai/ragefire-chasm.ts +108 -0
- package/src/data/dungeons/eventai/razorfen-downs.ts +207 -0
- package/src/data/dungeons/eventai/razorfen-kraul.ts +326 -0
- package/src/data/dungeons/eventai/scholomance.ts +680 -0
- package/src/data/dungeons/eventai/shadowfang-keep.ts +230 -0
- package/src/data/dungeons/eventai/sm-cathedral.ts +75 -0
- package/src/data/dungeons/eventai/sm-graveyard.ts +150 -0
- package/src/data/dungeons/eventai/sm-library.ts +55 -0
- package/src/data/dungeons/eventai/stratholme-undead.ts +127 -0
- package/src/data/dungeons/eventai/sunken-temple.ts +582 -0
- package/src/data/dungeons/eventai/the-stockade.ts +228 -0
- package/src/data/dungeons/eventai/ubrs.ts +225 -0
- package/src/data/dungeons/eventai/uldaman.ts +355 -0
- package/src/data/dungeons/eventai/wailing-caverns.ts +396 -0
- package/src/data/dungeons/eventai/zul-farrak.ts +591 -0
- package/src/data/dungeons/gnomeregan.ts +909 -0
- package/src/data/dungeons/index.ts +126 -0
- package/src/data/dungeons/instance-geometry.json +5233 -0
- package/src/data/dungeons/key-sources.json +169 -0
- package/src/data/dungeons/lbrs.ts +996 -0
- package/src/data/dungeons/maraudon.ts +786 -0
- package/src/data/dungeons/molten-core.ts +194 -0
- package/src/data/dungeons/naxxramas.ts +173 -0
- package/src/data/dungeons/onyxias-lair.ts +71 -0
- package/src/data/dungeons/pack-from-clusters.ts +1256 -0
- package/src/data/dungeons/ragefire-chasm.ts +238 -0
- package/src/data/dungeons/razorfen-downs.ts +698 -0
- package/src/data/dungeons/razorfen-kraul.ts +766 -0
- package/src/data/dungeons/ruins-of-ahnqiraj.ts +121 -0
- package/src/data/dungeons/scholomance.ts +1076 -0
- package/src/data/dungeons/shadowfang-keep.ts +740 -0
- package/src/data/dungeons/sm-armory.ts +266 -0
- package/src/data/dungeons/sm-cathedral.ts +430 -0
- package/src/data/dungeons/sm-graveyard.ts +482 -0
- package/src/data/dungeons/sm-library.ts +337 -0
- package/src/data/dungeons/stratholme-live.ts +808 -0
- package/src/data/dungeons/stratholme-undead.ts +1164 -0
- package/src/data/dungeons/sunken-temple.ts +931 -0
- package/src/data/dungeons/temple-of-ahnqiraj.ts +119 -0
- package/src/data/dungeons/the-stockade.ts +282 -0
- package/src/data/dungeons/ubrs.ts +1286 -0
- package/src/data/dungeons/uldaman.ts +685 -0
- package/src/data/dungeons/wailing-caverns.ts +356 -0
- package/src/data/dungeons/zul-farrak.ts +686 -0
- package/src/data/dungeons/zul-gurub.ts +142 -0
- package/src/data/dungeons.ts +42 -0
- package/src/data/fixtures.ts +446 -0
- package/src/data/gameobject-data.json.gz +0 -0
- package/src/data/item-data.json.gz +0 -0
- package/src/data/loot-data.json.gz +0 -0
- package/src/data/maps/atlas-approach-maps.json +1425 -0
- package/src/data/maps/atlas-landmarks.json +1711 -0
- package/src/data/maps/dungeon-viewports.json +392 -0
- package/src/data/materializeModDamagePercentTaken.ts +70 -0
- package/src/data/materializeModHealthRegen.ts +89 -0
- package/src/data/materializeSpellReputation.ts +26 -0
- package/src/data/pageTexts.ts +19 -0
- package/src/data/profession-data.json.gz +0 -0
- package/src/data/raid-plans/blackfathom-deeps.json +86 -0
- package/src/data/raid-plans/blackrock-depths.json +419 -0
- package/src/data/raid-plans/blackwing-lair.json +328 -0
- package/src/data/raid-plans/deadmines.json +55 -0
- package/src/data/raid-plans/dire-maul-east.json +94 -0
- package/src/data/raid-plans/dire-maul-north.json +70 -0
- package/src/data/raid-plans/dire-maul-west.json +75 -0
- package/src/data/raid-plans/gnomeregan.json +131 -0
- package/src/data/raid-plans/lbrs.json +176 -0
- package/src/data/raid-plans/maraudon.json +102 -0
- package/src/data/raid-plans/molten-core.json +169 -0
- package/src/data/raid-plans/naxxramas.json +354 -0
- package/src/data/raid-plans/onyxias-lair.json +18 -0
- package/src/data/raid-plans/ragefire-chasm.json +30 -0
- package/src/data/raid-plans/razorfen-downs.json +75 -0
- package/src/data/raid-plans/razorfen-kraul.json +53 -0
- package/src/data/raid-plans/ruins-of-ahnqiraj.json +110 -0
- package/src/data/raid-plans/scholomance.json +170 -0
- package/src/data/raid-plans/shadowfang-keep.json +87 -0
- package/src/data/raid-plans/sm-armory.json +53 -0
- package/src/data/raid-plans/sm-cathedral.json +72 -0
- package/src/data/raid-plans/sm-graveyard.json +63 -0
- package/src/data/raid-plans/sm-library.json +23 -0
- package/src/data/raid-plans/stratholme-live.json +129 -0
- package/src/data/raid-plans/stratholme-undead.json +73 -0
- package/src/data/raid-plans/sunken-temple.json +159 -0
- package/src/data/raid-plans/temple-of-ahnqiraj.json +163 -0
- package/src/data/raid-plans/the-stockade.json +42 -0
- package/src/data/raid-plans/ubrs.json +53 -0
- package/src/data/raid-plans/uldaman.json +131 -0
- package/src/data/raid-plans/wailing-caverns.json +90 -0
- package/src/data/raid-plans/zul-farrak.json +156 -0
- package/src/data/raid-plans/zul-gurub.json +307 -0
- package/src/data/raidInstanceCreatures.mjs +473 -0
- package/src/data/rotations/index.ts +152 -0
- package/src/data/rotations/layout.mjs +72 -0
- package/src/data/rotations/pve/druid/balance.json +754 -0
- package/src/data/rotations/pve/druid/feral-tank.json +2448 -0
- package/src/data/rotations/pve/druid/feral.json +2660 -0
- package/src/data/rotations/pve/druid/restoration.json +424 -0
- package/src/data/rotations/pve/hunter/beast-mastery.json +1288 -0
- package/src/data/rotations/pve/hunter/marksmanship.json +1260 -0
- package/src/data/rotations/pve/hunter/survival.json +1373 -0
- package/src/data/rotations/pve/mage/arcane-leveling.json +1798 -0
- package/src/data/rotations/pve/mage/fire-leveling.json +2003 -0
- package/src/data/rotations/pve/mage/frost-leveling.json +1912 -0
- package/src/data/rotations/pve/paladin/holy.json +755 -0
- package/src/data/rotations/pve/paladin/protection.json +962 -0
- package/src/data/rotations/pve/paladin/retribution.json +924 -0
- package/src/data/rotations/pve/priest/discipline.json +772 -0
- package/src/data/rotations/pve/priest/holy.json +707 -0
- package/src/data/rotations/pve/priest/shadow.json +787 -0
- package/src/data/rotations/pve/rogue/assassination.json +2477 -0
- package/src/data/rotations/pve/rogue/combat.json +2483 -0
- package/src/data/rotations/pve/rogue/subtlety.json +2523 -0
- package/src/data/rotations/pve/shaman/elemental.json +1157 -0
- package/src/data/rotations/pve/shaman/enhancement.json +1085 -0
- package/src/data/rotations/pve/shaman/restoration.json +592 -0
- package/src/data/rotations/pve/warlock/affliction.json +1185 -0
- package/src/data/rotations/pve/warlock/demonology.json +1165 -0
- package/src/data/rotations/pve/warlock/destruction.json +1177 -0
- package/src/data/rotations/pve/warrior/arms.json +3020 -0
- package/src/data/rotations/pve/warrior/fury.json +2996 -0
- package/src/data/rotations/pve/warrior/protection.json +2509 -0
- package/src/data/rotations/pvp/druid/balance.json +593 -0
- package/src/data/rotations/pvp/druid/feral.json +3276 -0
- package/src/data/rotations/pvp/druid/restoration.json +662 -0
- package/src/data/rotations/pvp/hunter/beast-mastery.json +665 -0
- package/src/data/rotations/pvp/hunter/marksmanship.json +2406 -0
- package/src/data/rotations/pvp/hunter/survival.json +635 -0
- package/src/data/rotations/pvp/mage/arcane.json +574 -0
- package/src/data/rotations/pvp/mage/fire.json +570 -0
- package/src/data/rotations/pvp/mage/frost.json +4048 -0
- package/src/data/rotations/pvp/paladin/holy.json +1498 -0
- package/src/data/rotations/pvp/paladin/protection.json +567 -0
- package/src/data/rotations/pvp/paladin/retribution.json +1110 -0
- package/src/data/rotations/pvp/priest/discipline.json +1848 -0
- package/src/data/rotations/pvp/priest/holy.json +6340 -0
- package/src/data/rotations/pvp/priest/shadow.json +2329 -0
- package/src/data/rotations/pvp/rogue/assassination.json +1322 -0
- package/src/data/rotations/pvp/rogue/combat.json +5258 -0
- package/src/data/rotations/pvp/rogue/subtlety.json +586 -0
- package/src/data/rotations/pvp/shaman/elemental.json +1404 -0
- package/src/data/rotations/pvp/shaman/enhancement.json +1277 -0
- package/src/data/rotations/pvp/shaman/restoration.json +2490 -0
- package/src/data/rotations/pvp/warlock/affliction.json +1017 -0
- package/src/data/rotations/pvp/warlock/demonology.json +1503 -0
- package/src/data/rotations/pvp/warlock/destruction.json +638 -0
- package/src/data/rotations/pvp/warrior/arms.json +5665 -0
- package/src/data/rotations/pvp/warrior/fury.json +850 -0
- package/src/data/rotations/pvp/warrior/protection.json +777 -0
- package/src/data/schema/bundle.ts +511 -0
- package/src/data/schema/constants.ts +49 -0
- package/src/data/schema/creature.ts +454 -0
- package/src/data/schema/encounter.ts +155 -0
- package/src/data/schema/faction.ts +48 -0
- package/src/data/schema/item.ts +297 -0
- package/src/data/schema/itemEnchant.ts +105 -0
- package/src/data/schema/npc.ts +44 -0
- package/src/data/schema/primitives.ts +295 -0
- package/src/data/schema/profession.ts +226 -0
- package/src/data/schema/quest.ts +154 -0
- package/src/data/schema/spell.ts +1149 -0
- package/src/data/schema/talent.ts +74 -0
- package/src/data/schema/world.ts +124 -0
- package/src/data/schema.ts +19 -0
- package/src/data/skinNodeGapFill.ts +68 -0
- package/src/data/spell-data.json.gz +0 -0
- package/src/data/spell-script-targets.json +1 -0
- package/src/data/tables/ahItemValues.json.gz +0 -0
- package/src/data/tables/alteracValley.json.gz +0 -0
- package/src/data/tables/areatriggerTeleports.json.gz +0 -0
- package/src/data/tables/botNames.json.gz +0 -0
- package/src/data/tables/botPopulation.json.gz +0 -0
- package/src/data/tables/botSpecs.json.gz +0 -0
- package/src/data/tables/classLevelStats.json.gz +0 -0
- package/src/data/tables/combatConditions.json.gz +0 -0
- package/src/data/tables/combatSkillMeta.json.gz +0 -0
- package/src/data/tables/conditions.json.gz +0 -0
- package/src/data/tables/createInfo.json.gz +0 -0
- package/src/data/tables/creatureAggroGroups.json.gz +0 -0
- package/src/data/tables/creatureClassLevelStats.json.gz +0 -0
- package/src/data/tables/creaturePatrolPacks.json.gz +0 -0
- package/src/data/tables/creatureWeapons.json.gz +0 -0
- package/src/data/tables/creatures.json.gz +0 -0
- package/src/data/tables/dbScripts.json.gz +0 -0
- package/src/data/tables/dungeonAuthoredRoutes.json.gz +0 -0
- package/src/data/tables/dungeonCensus.json.gz +0 -0
- package/src/data/tables/dungeonGameObjects.json.gz +0 -0
- package/src/data/tables/dungeonPacks.json.gz +0 -0
- package/src/data/tables/dungeonPlateCover.json.gz +0 -0
- package/src/data/tables/dungeonSpawns.json.gz +0 -0
- package/src/data/tables/dungeonSurvey.json.gz +0 -0
- package/src/data/tables/durabilityCosts.json.gz +0 -0
- package/src/data/tables/durabilityQuality.json.gz +0 -0
- package/src/data/tables/enchantApplicators.json.gz +0 -0
- package/src/data/tables/entranceYards.json.gz +0 -0
- package/src/data/tables/explorationBasexp.json.gz +0 -0
- package/src/data/tables/factionTemplates.json.gz +0 -0
- package/src/data/tables/factions.json.gz +0 -0
- package/src/data/tables/gameEvents.json.gz +0 -0
- package/src/data/tables/gameObjects.json.gz +0 -0
- package/src/data/tables/gossipMenus.json.gz +0 -0
- package/src/data/tables/graveyards.json.gz +0 -0
- package/src/data/tables/instanceMaps.json.gz +0 -0
- package/src/data/tables/itemEnchantmentTemplates.json.gz +0 -0
- package/src/data/tables/itemEnchants.json.gz +0 -0
- package/src/data/tables/itemRandomProperties.json.gz +0 -0
- package/src/data/tables/itemSets.json.gz +0 -0
- package/src/data/tables/items.json.gz +0 -0
- package/src/data/tables/levelStats.json.gz +0 -0
- package/src/data/tables/locks.json.gz +0 -0
- package/src/data/tables/map-pin-overrides.json.gz +0 -0
- package/src/data/tables/nonCombatTrash.json.gz +0 -0
- package/src/data/tables/npcTexts.json.gz +0 -0
- package/src/data/tables/pageTexts.json.gz +0 -0
- package/src/data/tables/petAbilityTP.json.gz +0 -0
- package/src/data/tables/petGenericSpells.json.gz +0 -0
- package/src/data/tables/petLevelStats.json.gz +0 -0
- package/src/data/tables/playerbot-weightscales.json.gz +0 -0
- package/src/data/tables/pools.json.gz +0 -0
- package/src/data/tables/quests.json.gz +0 -0
- package/src/data/tables/races.json.gz +0 -0
- package/src/data/tables/reputationRanks.json.gz +0 -0
- package/src/data/tables/reputationRates.json.gz +0 -0
- package/src/data/tables/reputationSpillover.json.gz +0 -0
- package/src/data/tables/ridingSpells.json.gz +0 -0
- package/src/data/tables/scriptTexts.json.gz +0 -0
- package/src/data/tables/soundClipVolume.json.gz +0 -0
- package/src/data/tables/spellChain.json.gz +0 -0
- package/src/data/tables/spellTeleports.json.gz +0 -0
- package/src/data/tables/spells.json.gz +0 -0
- package/src/data/tables/talents.json.gz +0 -0
- package/src/data/tables/tavernTriggers.json.gz +0 -0
- package/src/data/tables/taxiNodes.json.gz +0 -0
- package/src/data/tables/taxiRoutes.json.gz +0 -0
- package/src/data/tables/trainers.json.gz +0 -0
- package/src/data/tables/transports.json.gz +0 -0
- package/src/data/tables/travelAnchors.json.gz +0 -0
- package/src/data/tables/travelEdges.json.gz +0 -0
- package/src/data/tables/unitConditions.json.gz +0 -0
- package/src/data/tables/vendors.json.gz +0 -0
- package/src/data/tables/weaponEnchantProcs.json.gz +0 -0
- package/src/data/tables/xp.json.gz +0 -0
- package/src/data/tables/zoneWeather.json.gz +0 -0
- package/src/data/tables/zones.json.gz +0 -0
- package/src/data/world-data.ts +56 -0
- package/src/data/zone-music-sets.json +2751 -0
- package/src/dev/etl/lib/loot-chance-sanity.mjs +180 -0
- package/src/domain/audioQuality.mjs +145 -0
- package/src/domain/bg/ab.ts +433 -0
- package/src/domain/bg/arenaComps.ts +644 -0
- package/src/domain/bg/arenaLab.ts +695 -0
- package/src/domain/bg/arenaPace.ts +31 -0
- package/src/domain/bg/arenaRating.ts +110 -0
- package/src/domain/bg/av.ts +758 -0
- package/src/domain/bg/avEnemyPush.ts +219 -0
- package/src/domain/bg/avField.ts +283 -0
- package/src/domain/bg/avInstanceNodes.ts +197 -0
- package/src/domain/bg/avInstanceScore.ts +123 -0
- package/src/domain/bg/avQuestItems.ts +55 -0
- package/src/domain/bg/avQuests.ts +210 -0
- package/src/domain/bg/avSession.ts +196 -0
- package/src/domain/bg/bgConsumes.ts +269 -0
- package/src/domain/bg/bgPrebuff.ts +153 -0
- package/src/domain/bg/bgRest.ts +91 -0
- package/src/domain/bg/bgRoster.ts +305 -0
- package/src/domain/bg/bgTier.ts +61 -0
- package/src/domain/bg/bgWorld.ts +862 -0
- package/src/domain/bg/match.ts +215 -0
- package/src/domain/bg/strategies.ts +552 -0
- package/src/domain/bg/types.ts +291 -0
- package/src/domain/bg/wsg.ts +264 -0
- package/src/domain/bots/actionProviderSpec.ts +38 -0
- package/src/domain/bots/autoConsumables.ts +285 -0
- package/src/domain/bots/betweenPullRest.ts +239 -0
- package/src/domain/bots/botGear.ts +248 -0
- package/src/domain/bots/botInventory.ts +486 -0
- package/src/domain/bots/botPet.ts +535 -0
- package/src/domain/bots/botPool.ts +291 -0
- package/src/domain/bots/botProfessions.ts +334 -0
- package/src/domain/bots/companionActionBar.ts +209 -0
- package/src/domain/bots/companionHireCost.ts +236 -0
- package/src/domain/bots/companionMissions.ts +582 -0
- package/src/domain/bots/companionPrep.ts +254 -0
- package/src/domain/bots/companionQuests.ts +270 -0
- package/src/domain/bots/companionRep.ts +75 -0
- package/src/domain/bots/companionRotation.ts +708 -0
- package/src/domain/bots/companionXp.ts +66 -0
- package/src/domain/bots/consumableShare.ts +811 -0
- package/src/domain/bots/dpsMate.ts +1072 -0
- package/src/domain/bots/groupCompReport.ts +132 -0
- package/src/domain/bots/healthstoneSupply.ts +198 -0
- package/src/domain/bots/outfitter.ts +1056 -0
- package/src/domain/bots/paladinPrePull.ts +231 -0
- package/src/domain/bots/partyRole.ts +40 -0
- package/src/domain/bots/playerbotEquipCache.ts +412 -0
- package/src/domain/bots/playerbotItemEligibility.ts +60 -0
- package/src/domain/bots/playerbotStatWeight.ts +853 -0
- package/src/domain/bots/playerbotUnavailableItems.ts +147 -0
- package/src/domain/bots/prePullBuffs.ts +219 -0
- package/src/domain/bots/prePullStealth.ts +82 -0
- package/src/domain/bots/runSupply.ts +251 -0
- package/src/domain/bots/runSupplyPrefs.ts +28 -0
- package/src/domain/bots/sendTradeGoods.ts +394 -0
- package/src/domain/bots/soulShardCap.ts +35 -0
- package/src/domain/bots/squad.ts +842 -0
- package/src/domain/bots/squadRun.ts +81 -0
- package/src/domain/character/actionbar.ts +346 -0
- package/src/domain/character/appearance.ts +165 -0
- package/src/domain/character/buildCombatant.ts +1726 -0
- package/src/domain/character/character.ts +356 -0
- package/src/domain/character/characterName.ts +43 -0
- package/src/domain/character/characterRatings.ts +424 -0
- package/src/domain/character/characterSpells.ts +282 -0
- package/src/domain/character/characterStats.ts +1559 -0
- package/src/domain/character/characterTalents.ts +398 -0
- package/src/domain/character/combatSkills.ts +994 -0
- package/src/domain/character/displayForm.ts +72 -0
- package/src/domain/character/formTalentAuras.ts +171 -0
- package/src/domain/character/forms.ts +499 -0
- package/src/domain/character/races.ts +40 -0
- package/src/domain/character/resurrectionSickness.ts +49 -0
- package/src/domain/character/spellbook.ts +169 -0
- package/src/domain/character/stanceBar.ts +354 -0
- package/src/domain/character/stancePrereq.ts +70 -0
- package/src/domain/character/talentBuilds.ts +63 -0
- package/src/domain/character/talentImport.ts +130 -0
- package/src/domain/character/talentLink.ts +123 -0
- package/src/domain/character/talents.ts +201 -0
- package/src/domain/core/conditionSnapshot.ts +92 -0
- package/src/domain/core/hover.ts +14 -0
- package/src/domain/core/ids.ts +58 -0
- package/src/domain/core/internalNameTags.ts +5 -0
- package/src/domain/core/runtimeDataPatches.ts +357 -0
- package/src/domain/creature/aiTargeting.ts +588 -0
- package/src/domain/creature/combatCondition.ts +157 -0
- package/src/domain/creature/creatureAggro.ts +804 -0
- package/src/domain/creature/creatureAi.ts +206 -0
- package/src/domain/creature/creatureAiConstants.ts +661 -0
- package/src/domain/creature/creatureCastList.ts +1007 -0
- package/src/domain/creature/creatureEventAi.ts +1409 -0
- package/src/domain/creature/creatureGroups.ts +144 -0
- package/src/domain/creature/creatureLinking.ts +333 -0
- package/src/domain/creature/creatureScaling.ts +320 -0
- package/src/domain/creature/creatureTrigger.ts +53 -0
- package/src/domain/creature/creatureWander.ts +74 -0
- package/src/domain/creature/eventAiTexts.ts +145 -0
- package/src/domain/creature/faction.ts +287 -0
- package/src/domain/creature/forcedReaction.ts +48 -0
- package/src/domain/creature/outdoorHuntable.ts +74 -0
- package/src/domain/creature/patrolPacks.ts +210 -0
- package/src/domain/creature/reputation.ts +967 -0
- package/src/domain/creature/unitFlags.ts +74 -0
- package/src/domain/creature/worldBosses.ts +393 -0
- package/src/domain/dungeonMusic.mjs +48 -0
- package/src/domain/economy/auction.ts +282 -0
- package/src/domain/economy/auctionBot.ts +1060 -0
- package/src/domain/economy/honorPrice.ts +100 -0
- package/src/domain/economy/mail.ts +958 -0
- package/src/domain/economy/money.ts +42 -0
- package/src/domain/economy/syntheticClassTrainers.ts +62 -0
- package/src/domain/economy/trading.ts +296 -0
- package/src/domain/economy/vendorSellAll.ts +252 -0
- package/src/domain/economy/vendorStock.ts +146 -0
- package/src/domain/items/ammo.ts +817 -0
- package/src/domain/items/bank.ts +162 -0
- package/src/domain/items/consumableFamily.ts +205 -0
- package/src/domain/items/craftUpgrades.ts +83 -0
- package/src/domain/items/createItem.ts +93 -0
- package/src/domain/items/durability.ts +581 -0
- package/src/domain/items/equipment.ts +441 -0
- package/src/domain/items/equipmentHelper.ts +767 -0
- package/src/domain/items/inventory.ts +561 -0
- package/src/domain/items/itemBonding.ts +93 -0
- package/src/domain/items/itemContainer.ts +245 -0
- package/src/domain/items/itemDisplayName.ts +33 -0
- package/src/domain/items/itemInstance.ts +181 -0
- package/src/domain/items/itemRandomEnchantOutcomes.ts +315 -0
- package/src/domain/items/itemRandomProps.ts +77 -0
- package/src/domain/items/itemRestrictions.ts +329 -0
- package/src/domain/items/itemTeaches.ts +82 -0
- package/src/domain/items/itemUseCooldown.ts +52 -0
- package/src/domain/items/itemUseTarget.ts +90 -0
- package/src/domain/items/junkCategories.ts +174 -0
- package/src/domain/items/junkFilter.ts +368 -0
- package/src/domain/items/keyring.ts +131 -0
- package/src/domain/items/loot.ts +221 -0
- package/src/domain/items/mounts.ts +190 -0
- package/src/domain/items/onUsePayload.ts +102 -0
- package/src/domain/items/pendingLoot.ts +107 -0
- package/src/domain/items/relic.ts +105 -0
- package/src/domain/items/rocketBoots.ts +36 -0
- package/src/domain/items/sortContainer.ts +139 -0
- package/src/domain/items/spareContainers.ts +71 -0
- package/src/domain/items/spellReagentIndex.ts +131 -0
- package/src/domain/items/staleConsumables.ts +66 -0
- package/src/domain/items/weaponSpender.ts +110 -0
- package/src/domain/listDungeonIds.mjs +28 -0
- package/src/domain/macro/compose.ts +239 -0
- package/src/domain/macro/conditions.ts +260 -0
- package/src/domain/macro/creatureTypes.ts +40 -0
- package/src/domain/macro/describe.ts +169 -0
- package/src/domain/macro/icon.ts +60 -0
- package/src/domain/macro/index.ts +20 -0
- package/src/domain/macro/normalize.ts +112 -0
- package/src/domain/macro/parse.ts +316 -0
- package/src/domain/macro/plan.ts +288 -0
- package/src/domain/macro/rotation.ts +590 -0
- package/src/domain/macro/rotationEnv.ts +173 -0
- package/src/domain/macro/slots.ts +101 -0
- package/src/domain/macro/snapshot.ts +114 -0
- package/src/domain/macro/templates.ts +446 -0
- package/src/domain/macro/types.ts +70 -0
- package/src/domain/macro/units.ts +93 -0
- package/src/domain/macro/weaponTypes.ts +83 -0
- package/src/domain/nav/cityTeleports.ts +10 -0
- package/src/domain/nav/mounting.ts +113 -0
- package/src/domain/nav/nav.ts +43 -0
- package/src/domain/nav/navCollision.ts +606 -0
- package/src/domain/nav/navOutdoors.ts +91 -0
- package/src/domain/nav/navRegistry.ts +179 -0
- package/src/domain/nav/navRoomGraph.ts +302 -0
- package/src/domain/nav/navTypes.ts +43 -0
- package/src/domain/nav/navmesh.ts +1715 -0
- package/src/domain/nav/speed.ts +200 -0
- package/src/domain/nav/storey.ts +10 -0
- package/src/domain/nav/travel.ts +725 -0
- package/src/domain/nav/travelTypes.ts +75 -0
- package/src/domain/pet/pet.ts +1150 -0
- package/src/domain/pet/petActionBar.ts +180 -0
- package/src/domain/pet/petSpellbook.ts +39 -0
- package/src/domain/pet/petStable.ts +81 -0
- package/src/domain/professions/autoDisenchant.ts +236 -0
- package/src/domain/professions/characterEnchants.ts +176 -0
- package/src/domain/professions/craftCooldown.ts +52 -0
- package/src/domain/professions/enchantApply.ts +62 -0
- package/src/domain/professions/enchantTargets.ts +114 -0
- package/src/domain/professions/enchanting.ts +236 -0
- package/src/domain/professions/gatherFilter.ts +149 -0
- package/src/domain/professions/gearEnchant.ts +137 -0
- package/src/domain/professions/heldTools.ts +29 -0
- package/src/domain/professions/learnAllRecipes.ts +146 -0
- package/src/domain/professions/miningHarvest.ts +69 -0
- package/src/domain/professions/partyDisenchant.ts +294 -0
- package/src/domain/professions/partyWork.ts +83 -0
- package/src/domain/professions/pickpocket.ts +172 -0
- package/src/domain/professions/poisons.ts +240 -0
- package/src/domain/professions/professions.ts +677 -0
- package/src/domain/professions/rareNodes.ts +45 -0
- package/src/domain/professions/skinLoot.ts +27 -0
- package/src/domain/professions/vendorReagents.ts +152 -0
- package/src/domain/professions/weaponImbueHand.ts +171 -0
- package/src/domain/questFarmFilter.mjs +42 -0
- package/src/domain/quests/doQuest.ts +1204 -0
- package/src/domain/quests/gossip.ts +308 -0
- package/src/domain/quests/gossipTalk.ts +298 -0
- package/src/domain/quests/interpreter/canComplete.ts +150 -0
- package/src/domain/quests/interpreter/claim.ts +137 -0
- package/src/domain/quests/interpreter/dbscript/handlers.ts +1371 -0
- package/src/domain/quests/interpreter/dbscript/handlersBatch.ts +1251 -0
- package/src/domain/quests/interpreter/dbscript/hooks.ts +331 -0
- package/src/domain/quests/interpreter/dbscript/index.ts +212 -0
- package/src/domain/quests/interpreter/dbscript/opcodes.ts +257 -0
- package/src/domain/quests/interpreter/dbscript/registry.ts +1194 -0
- package/src/domain/quests/interpreter/dbscript/registryAreatriggerScripts.ts +539 -0
- package/src/domain/quests/interpreter/dbscript/registryAshenvale.ts +553 -0
- package/src/domain/quests/interpreter/dbscript/registryAzshara.ts +272 -0
- package/src/domain/quests/interpreter/dbscript/registryDarkshore.ts +637 -0
- package/src/domain/quests/interpreter/dbscript/registryDesolace.ts +501 -0
- package/src/domain/quests/interpreter/dbscript/registryDustwallowMarsh.ts +735 -0
- package/src/domain/quests/interpreter/dbscript/registryFelwood.ts +493 -0
- package/src/domain/quests/interpreter/dbscript/registryFeralas.ts +485 -0
- package/src/domain/quests/interpreter/dbscript/registryGoScripts.ts +203 -0
- package/src/domain/quests/interpreter/dbscript/registryMoonglade.ts +288 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcProfessions.ts +230 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcsSpecial.ts +545 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenDowns.ts +293 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenKraul.ts +221 -0
- package/src/domain/quests/interpreter/dbscript/registryRedridge.ts +112 -0
- package/src/domain/quests/interpreter/dbscript/registrySearingGorge.ts +125 -0
- package/src/domain/quests/interpreter/dbscript/registrySiblings.ts +51 -0
- package/src/domain/quests/interpreter/dbscript/registrySilverpineForest.ts +172 -0
- package/src/domain/quests/interpreter/dbscript/registryStonetalonMountains.ts +180 -0
- package/src/domain/quests/interpreter/dbscript/registryStormwindCity.ts +369 -0
- package/src/domain/quests/interpreter/dbscript/registryStranglethornVale.ts +115 -0
- package/src/domain/quests/interpreter/dbscript/registryStratholme.ts +146 -0
- package/src/domain/quests/interpreter/dbscript/registrySunkenTemple.ts +149 -0
- package/src/domain/quests/interpreter/dbscript/registrySwampOfSorrows.ts +163 -0
- package/src/domain/quests/interpreter/dbscript/registryTanaris.ts +318 -0
- package/src/domain/quests/interpreter/dbscript/registryTeldrassil.ts +120 -0
- package/src/domain/quests/interpreter/dbscript/registryTheBarrens.ts +603 -0
- package/src/domain/quests/interpreter/dbscript/registryThousandNeedles.ts +499 -0
- package/src/domain/quests/interpreter/dbscript/registryTirisfalGlades.ts +222 -0
- package/src/domain/quests/interpreter/dbscript/registryUngoroCrater.ts +291 -0
- package/src/domain/quests/interpreter/dbscript/registryWarEffort.ts +773 -0
- package/src/domain/quests/interpreter/dbscript/registryWesternPlaguelands.ts +206 -0
- package/src/domain/quests/interpreter/dbscript/registryWestfall.ts +190 -0
- package/src/domain/quests/interpreter/dbscript/registryWetlands.ts +186 -0
- package/src/domain/quests/interpreter/dbscript/registryWinterspring.ts +235 -0
- package/src/domain/quests/interpreter/dbscript/types.ts +817 -0
- package/src/domain/quests/interpreter/dbscript/vm.ts +171 -0
- package/src/domain/quests/interpreter/diff.ts +349 -0
- package/src/domain/quests/interpreter/fixtures/oracle-questlog-qi2.json +2417 -0
- package/src/domain/quests/interpreter/flags.ts +101 -0
- package/src/domain/quests/interpreter/index.ts +113 -0
- package/src/domain/quests/interpreter/live.ts +178 -0
- package/src/domain/quests/interpreter/types.ts +81 -0
- package/src/domain/quests/interpreter/updaters.ts +412 -0
- package/src/domain/quests/questCorpseUse.ts +155 -0
- package/src/domain/quests/questDialog.ts +43 -0
- package/src/domain/quests/questFight.ts +34 -0
- package/src/domain/quests/questObjectiveLabel.ts +39 -0
- package/src/domain/quests/questRewardChoice.ts +85 -0
- package/src/domain/quests/questScriptCredit.ts +26 -0
- package/src/domain/quests/questScriptItemUse.ts +74 -0
- package/src/domain/quests/questTameRods.ts +79 -0
- package/src/domain/quests/questlog.ts +1545 -0
- package/src/domain/quests/talkDeliver.ts +170 -0
- package/src/domain/raid/globalActionBar.ts +195 -0
- package/src/domain/raid/instanceRoster.ts +194 -0
- package/src/domain/raid/partySummon.ts +198 -0
- package/src/domain/raid/partyVault.ts +320 -0
- package/src/domain/raid/raidBossAbilities.ts +268 -0
- package/src/domain/raid/raidComp.ts +335 -0
- package/src/domain/raid/raidCustomRows.ts +453 -0
- package/src/domain/raid/raidEncounterGear.ts +298 -0
- package/src/domain/raid/raidEncounterTactics.ts +412 -0
- package/src/domain/raid/raidPlan.ts +509 -0
- package/src/domain/raid/raidPlanEdits.ts +98 -0
- package/src/domain/raid/raidPlanPacks.ts +480 -0
- package/src/domain/raid/raidRecovery.ts +183 -0
- package/src/domain/raid/raidRosterTemplate.ts +138 -0
- package/src/domain/rotation/auraSide.ts +68 -0
- package/src/domain/rotation/build.ts +3031 -0
- package/src/domain/rotation/classes/druid.ts +58 -0
- package/src/domain/rotation/classes/hooks.ts +59 -0
- package/src/domain/rotation/classes/hunter.ts +156 -0
- package/src/domain/rotation/classes/index.ts +104 -0
- package/src/domain/rotation/classes/mage.ts +99 -0
- package/src/domain/rotation/classes/paladin.ts +296 -0
- package/src/domain/rotation/classes/priest.ts +94 -0
- package/src/domain/rotation/classes/pullOpener.ts +92 -0
- package/src/domain/rotation/classes/rogue.ts +69 -0
- package/src/domain/rotation/classes/shaman.ts +29 -0
- package/src/domain/rotation/classes/supportSpec.ts +94 -0
- package/src/domain/rotation/classes/warlock.ts +81 -0
- package/src/domain/rotation/classes/warrior.ts +402 -0
- package/src/domain/rotation/classify.ts +1381 -0
- package/src/domain/rotation/condMetricPicker.ts +379 -0
- package/src/domain/rotation/consumables.ts +242 -0
- package/src/domain/rotation/evaluate.ts +1115 -0
- package/src/domain/rotation/finisherLadder.ts +145 -0
- package/src/domain/rotation/invent.ts +938 -0
- package/src/domain/rotation/killOrder.ts +30 -0
- package/src/domain/rotation/openerForm.ts +22 -0
- package/src/domain/rotation/paladinBuffs.ts +568 -0
- package/src/domain/rotation/prebuff.ts +283 -0
- package/src/domain/rotation/raidRowTuning.ts +34 -0
- package/src/domain/rotation/rotation.ts +11 -0
- package/src/domain/rotation/rotationProfiles.ts +180 -0
- package/src/domain/rotation/rotationSuggestions.ts +851 -0
- package/src/domain/rotation/ruleAfterChain.ts +49 -0
- package/src/domain/rotation/spec.ts +70 -0
- package/src/domain/rotation/spellPicker.ts +140 -0
- package/src/domain/rotation/stand.ts +143 -0
- package/src/domain/rotation/types.ts +718 -0
- package/src/domain/run/battlegroundRun.ts +111 -0
- package/src/domain/run/canEnterContext.ts +32 -0
- package/src/domain/run/death.ts +561 -0
- package/src/domain/run/deathRecovery.ts +289 -0
- package/src/domain/run/duel.ts +141 -0
- package/src/domain/run/dungeonRun.ts +344 -0
- package/src/domain/run/floorRest.ts +159 -0
- package/src/domain/run/honor.ts +557 -0
- package/src/domain/run/honorWeek.ts +180 -0
- package/src/domain/run/whenMap.ts +977 -0
- package/src/domain/scriptdev/arathiHighlands.ts +445 -0
- package/src/domain/scriptdev/ashenvale.ts +635 -0
- package/src/domain/scriptdev/ashenvaleHelpers.ts +1215 -0
- package/src/domain/scriptdev/azshara.ts +892 -0
- package/src/domain/scriptdev/blackfathomDeeps.ts +212 -0
- package/src/domain/scriptdev/blackrockDepths.ts +1434 -0
- package/src/domain/scriptdev/blackrockSpire.ts +730 -0
- package/src/domain/scriptdev/blackwingLair.ts +521 -0
- package/src/domain/scriptdev/burningSteppes.ts +62 -0
- package/src/domain/scriptdev/classFilter.ts +43 -0
- package/src/domain/scriptdev/darkshore.ts +817 -0
- package/src/domain/scriptdev/darkshoreHelpers.ts +853 -0
- package/src/domain/scriptdev/deadmines.ts +331 -0
- package/src/domain/scriptdev/desolace.ts +1239 -0
- package/src/domain/scriptdev/direMaul.ts +859 -0
- package/src/domain/scriptdev/durotar.ts +532 -0
- package/src/domain/scriptdev/dustwallowMarsh.ts +758 -0
- package/src/domain/scriptdev/dustwallowMarshHelpers.ts +994 -0
- package/src/domain/scriptdev/easternPlaguelands.ts +21 -0
- package/src/domain/scriptdev/felwood.ts +1055 -0
- package/src/domain/scriptdev/feralas.ts +571 -0
- package/src/domain/scriptdev/feralasHelpers.ts +838 -0
- package/src/domain/scriptdev/gnomeregan.ts +466 -0
- package/src/domain/scriptdev/guards.ts +616 -0
- package/src/domain/scriptdev/hinterlands.ts +693 -0
- package/src/domain/scriptdev/host.ts +1134 -0
- package/src/domain/scriptdev/index.ts +123 -0
- package/src/domain/scriptdev/instanceRaids.ts +136 -0
- package/src/domain/scriptdev/itemScripts.ts +37 -0
- package/src/domain/scriptdev/lochModan.ts +283 -0
- package/src/domain/scriptdev/maraudon.ts +232 -0
- package/src/domain/scriptdev/moltenCore.ts +831 -0
- package/src/domain/scriptdev/moonglade.ts +659 -0
- package/src/domain/scriptdev/moongladeHelpers.ts +933 -0
- package/src/domain/scriptdev/naxxramas.ts +577 -0
- package/src/domain/scriptdev/naxxramasConstruct.ts +364 -0
- package/src/domain/scriptdev/naxxramasFrostwyrm.ts +378 -0
- package/src/domain/scriptdev/naxxramasMilitary.ts +276 -0
- package/src/domain/scriptdev/npcProfessions.ts +1025 -0
- package/src/domain/scriptdev/npcsSpecial.ts +1379 -0
- package/src/domain/scriptdev/onyxiasLair.ts +313 -0
- package/src/domain/scriptdev/orgrimmar.ts +147 -0
- package/src/domain/scriptdev/professionSpecConsumer.ts +481 -0
- package/src/domain/scriptdev/razorfenDowns.ts +468 -0
- package/src/domain/scriptdev/razorfenKraul.ts +410 -0
- package/src/domain/scriptdev/redridgeMountains.ts +163 -0
- package/src/domain/scriptdev/registry.ts +945 -0
- package/src/domain/scriptdev/ruinsOfAhnqiraj.ts +356 -0
- package/src/domain/scriptdev/scarletMonastery.ts +713 -0
- package/src/domain/scriptdev/scholomance.ts +682 -0
- package/src/domain/scriptdev/searingGorge.ts +295 -0
- package/src/domain/scriptdev/shadowfangKeep.ts +181 -0
- package/src/domain/scriptdev/silithus.ts +71 -0
- package/src/domain/scriptdev/silverpineForest.ts +662 -0
- package/src/domain/scriptdev/stonetalonMountains.ts +493 -0
- package/src/domain/scriptdev/stormwindCity.ts +1192 -0
- package/src/domain/scriptdev/stranglethornVale.ts +402 -0
- package/src/domain/scriptdev/stratholme.ts +650 -0
- package/src/domain/scriptdev/stratholmeScripts.ts +505 -0
- package/src/domain/scriptdev/sunkenTemple.ts +736 -0
- package/src/domain/scriptdev/swampOfSorrows.ts +22 -0
- package/src/domain/scriptdev/tanaris.ts +391 -0
- package/src/domain/scriptdev/tanarisHelpers.ts +661 -0
- package/src/domain/scriptdev/teldrassil.ts +143 -0
- package/src/domain/scriptdev/templeOfAhnqiraj.ts +1013 -0
- package/src/domain/scriptdev/theBarrens.ts +709 -0
- package/src/domain/scriptdev/theBarrensHelpers.ts +1026 -0
- package/src/domain/scriptdev/thousandNeedles.ts +426 -0
- package/src/domain/scriptdev/thousandNeedlesHelpers.ts +566 -0
- package/src/domain/scriptdev/tirisfalGlades.ts +533 -0
- package/src/domain/scriptdev/types.ts +1026 -0
- package/src/domain/scriptdev/uldaman.ts +437 -0
- package/src/domain/scriptdev/ungoroCrater.ts +549 -0
- package/src/domain/scriptdev/ungoroCraterHelpers.ts +1006 -0
- package/src/domain/scriptdev/wailingCaverns.ts +700 -0
- package/src/domain/scriptdev/warEffort.ts +371 -0
- package/src/domain/scriptdev/westernPlaguelands.ts +952 -0
- package/src/domain/scriptdev/westfall.ts +767 -0
- package/src/domain/scriptdev/wetlands.ts +660 -0
- package/src/domain/scriptdev/winterspring.ts +482 -0
- package/src/domain/scriptdev/winterspringHelpers.ts +801 -0
- package/src/domain/scriptdev/worldBosses.ts +605 -0
- package/src/domain/scriptdev/zulfarrak.ts +478 -0
- package/src/domain/scriptdev/zulgurub.ts +1152 -0
- package/src/domain/sim/dummySim.ts +408 -0
- package/src/domain/sim/targetDummy.ts +29 -0
- package/src/domain/social/guild.ts +148 -0
- package/src/domain/spells/areaAuraMembership.ts +93 -0
- package/src/domain/spells/breakableStunCc.ts +166 -0
- package/src/domain/spells/cancelAura.ts +80 -0
- package/src/domain/spells/diminishing.ts +167 -0
- package/src/domain/spells/dispel.ts +149 -0
- package/src/domain/spells/dispelMechanic.ts +105 -0
- package/src/domain/spells/equipSpells.ts +247 -0
- package/src/domain/spells/learnOnTargets.ts +260 -0
- package/src/domain/spells/mergeSchoolImmunityFromRaw.ts +66 -0
- package/src/domain/spells/resurrectSpell.ts +124 -0
- package/src/domain/spells/spellPushback.ts +39 -0
- package/src/domain/spells/spellReflect.ts +43 -0
- package/src/domain/spells/stealth.ts +183 -0
- package/src/domain/spells/totem.ts +394 -0
- package/src/domain/spells/worldCast.ts +187 -0
- package/src/domain/world/areaTriggerLocks.ts +177 -0
- package/src/domain/world/dungeonMusic.ts +108 -0
- package/src/domain/world/gameEvents.ts +119 -0
- package/src/domain/world/gameObjects.ts +1030 -0
- package/src/domain/world/goEventFire.ts +234 -0
- package/src/domain/world/goMoTransport.ts +74 -0
- package/src/domain/world/goTransport.ts +81 -0
- package/src/domain/world/hazards.ts +459 -0
- package/src/domain/world/openLock.ts +398 -0
- package/src/domain/world/pools.ts +470 -0
- package/src/domain/world/restArea.ts +37 -0
- package/src/domain/world/weather.ts +201 -0
- package/src/domain/zoneAmbience.mjs +87 -0
- package/src/domain/zoneMusic.mjs +62 -0
- package/src/domain/zoneMusicQueue.mjs +7 -0
- package/src/engine/combat/activeSeal.ts +39 -0
- package/src/engine/combat/aiTargetResolve.ts +64 -0
- package/src/engine/combat/aoeCast.ts +289 -0
- package/src/engine/combat/applyConsumeAura.ts +74 -0
- package/src/engine/combat/applyDemonicSacrifice.ts +70 -0
- package/src/engine/combat/applyDispelMechanic.ts +30 -0
- package/src/engine/combat/applyHealEffect.ts +301 -0
- package/src/engine/combat/applySchoolAbsorb.ts +114 -0
- package/src/engine/combat/applySpell.ts +3169 -0
- package/src/engine/combat/applySpellLate.ts +2026 -0
- package/src/engine/combat/applySpellLateBag.ts +144 -0
- package/src/engine/combat/areaAura.ts +283 -0
- package/src/engine/combat/attackTable.ts +508 -0
- package/src/engine/combat/battleRez.ts +87 -0
- package/src/engine/combat/castAction.ts +36 -0
- package/src/engine/combat/castTargetGates.ts +75 -0
- package/src/engine/combat/castableKit.ts +68 -0
- package/src/engine/combat/ccMirrorUpgrade.ts +39 -0
- package/src/engine/combat/chainFan.ts +210 -0
- package/src/engine/combat/channel.ts +423 -0
- package/src/engine/combat/chaseCloseness.ts +95 -0
- package/src/engine/combat/cmangosCastGates.ts +129 -0
- package/src/engine/combat/combatFlag.ts +77 -0
- package/src/engine/combat/combatGeometry.ts +1329 -0
- package/src/engine/combat/combustion.ts +68 -0
- package/src/engine/combat/context.ts +730 -0
- package/src/engine/combat/createSession.ts +1165 -0
- package/src/engine/combat/creatureLeash.ts +38 -0
- package/src/engine/combat/crowdControl.ts +1259 -0
- package/src/engine/combat/dispelDuty.ts +54 -0
- package/src/engine/combat/dispelReflect.ts +609 -0
- package/src/engine/combat/displaceFloor.ts +113 -0
- package/src/engine/combat/duelBounds.ts +47 -0
- package/src/engine/combat/equippedItemGate.ts +297 -0
- package/src/engine/combat/evadeLifecycle.ts +63 -0
- package/src/engine/combat/eventAi.ts +2220 -0
- package/src/engine/combat/facing.ts +74 -0
- package/src/engine/combat/fearFlee.ts +137 -0
- package/src/engine/combat/fighterFactory.ts +1144 -0
- package/src/engine/combat/forceDespawnAction.ts +51 -0
- package/src/engine/combat/formulas.ts +807 -0
- package/src/engine/combat/friendlyFan.ts +55 -0
- package/src/engine/combat/groundPoolTick.ts +210 -0
- package/src/engine/combat/hazards.ts +114 -0
- package/src/engine/combat/healTargets.ts +226 -0
- package/src/engine/combat/heartbeatResist.ts +49 -0
- package/src/engine/combat/hostileItemUse.ts +75 -0
- package/src/engine/combat/interruptAuras.ts +66 -0
- package/src/engine/combat/itemRescue.ts +49 -0
- package/src/engine/combat/itemUse.ts +260 -0
- package/src/engine/combat/kitById.ts +23 -0
- package/src/engine/combat/knockBack.ts +201 -0
- package/src/engine/combat/leap.ts +89 -0
- package/src/engine/combat/mitigation.ts +587 -0
- package/src/engine/combat/modTaunt.ts +43 -0
- package/src/engine/combat/motionClaim.ts +268 -0
- package/src/engine/combat/motionGate.ts +150 -0
- package/src/engine/combat/motionGenerator.ts +27 -0
- package/src/engine/combat/navSight.ts +138 -0
- package/src/engine/combat/perfSink.ts +28 -0
- package/src/engine/combat/periodicDue.ts +55 -0
- package/src/engine/combat/petAuras.ts +86 -0
- package/src/engine/combat/pickAction.ts +3449 -0
- package/src/engine/combat/powerForm.ts +735 -0
- package/src/engine/combat/powerPools.ts +49 -0
- package/src/engine/combat/predicates.ts +538 -0
- package/src/engine/combat/procsDamage.ts +1823 -0
- package/src/engine/combat/reactiveGates.ts +135 -0
- package/src/engine/combat/roles.ts +389 -0
- package/src/engine/combat/rotationSubject.ts +78 -0
- package/src/engine/combat/ruleAfter.ts +106 -0
- package/src/engine/combat/seedDisplayAuras.ts +203 -0
- package/src/engine/combat/seedOocEffects.ts +317 -0
- package/src/engine/combat/seedSchoolImmunities.ts +45 -0
- package/src/engine/combat/session-types.ts +458 -0
- package/src/engine/combat/sessionApi.ts +1785 -0
- package/src/engine/combat/sessionCharge.ts +124 -0
- package/src/engine/combat/sessionChase.ts +869 -0
- package/src/engine/combat/sessionDeaths.ts +469 -0
- package/src/engine/combat/sessionFocus.ts +506 -0
- package/src/engine/combat/sessionFollow.ts +167 -0
- package/src/engine/combat/sessionGeometry.ts +188 -0
- package/src/engine/combat/sessionHome.ts +75 -0
- package/src/engine/combat/sessionInject.ts +719 -0
- package/src/engine/combat/sessionMechanicMove.ts +555 -0
- package/src/engine/combat/sessionMotion.ts +1553 -0
- package/src/engine/combat/sessionMotionKit.ts +247 -0
- package/src/engine/combat/sessionMoveIntent.ts +49 -0
- package/src/engine/combat/sessionMoveOrder.ts +200 -0
- package/src/engine/combat/sessionPathTo.ts +657 -0
- package/src/engine/combat/sessionPools.ts +688 -0
- package/src/engine/combat/sessionSteer.ts +144 -0
- package/src/engine/combat/sessionStepBack.ts +151 -0
- package/src/engine/combat/sessionStepWrap.ts +116 -0
- package/src/engine/combat/sessionView.ts +442 -0
- package/src/engine/combat/simEffects.ts +32 -0
- package/src/engine/combat/simFacade.ts +620 -0
- package/src/engine/combat/simPump.ts +264 -0
- package/src/engine/combat/simSnapshot.ts +165 -0
- package/src/engine/combat/simThreadPool.ts +35 -0
- package/src/engine/combat/skeramImages.ts +57 -0
- package/src/engine/combat/slowUpdate.ts +178 -0
- package/src/engine/combat/snapToFloor.ts +42 -0
- package/src/engine/combat/speedAura.ts +29 -0
- package/src/engine/combat/spellReagents.ts +71 -0
- package/src/engine/combat/stealthDetect.ts +93 -0
- package/src/engine/combat/stepBackMotion.ts +171 -0
- package/src/engine/combat/stepSession.ts +3102 -0
- package/src/engine/combat/summonCast.ts +243 -0
- package/src/engine/combat/thaddiusPolarity.ts +97 -0
- package/src/engine/combat/threat.ts +388 -0
- package/src/engine/combat/threatOps.ts +272 -0
- package/src/engine/combat/tickWorkerBody.ts +211 -0
- package/src/engine/combat/totemAuras.ts +122 -0
- package/src/engine/combat/triggerPayload.ts +42 -0
- package/src/engine/combat/triggeredCompanion.ts +63 -0
- package/src/engine/combat/types.ts +1897 -0
- package/src/engine/combat/useObjectTrap.ts +140 -0
- package/src/engine/combat/walkSurface.ts +54 -0
- package/src/engine/combat/weapon.ts +1248 -0
- package/src/engine/combat/worldFrame.ts +43 -0
- package/src/engine/combat.solo-golden.json +2242 -0
- package/src/engine/combat.ts +84 -0
- package/src/engine/core/detMath.ts +289 -0
- package/src/engine/core/events.ts +357 -0
- package/src/engine/core/rng.ts +36 -0
- package/src/engine/game/actionBars.ts +124 -0
- package/src/engine/game/activateObjectFromSpell.ts +320 -0
- package/src/engine/game/applyActiveObjectFromDbScript.ts +98 -0
- package/src/engine/game/applyDeathAndSpellScripts.ts +268 -0
- package/src/engine/game/applyDoorFromDbScript.ts +388 -0
- package/src/engine/game/applyEscortFromDbScript.ts +290 -0
- package/src/engine/game/applyGoSpellcasterCast.ts +40 -0
- package/src/engine/game/applyHoverFromDbScript.ts +110 -0
- package/src/engine/game/applyOocResurrect.ts +71 -0
- package/src/engine/game/applySpellDurability.ts +115 -0
- package/src/engine/game/applyTailFromDbScript.ts +478 -0
- package/src/engine/game/applyTerminateFromDbScript.ts +95 -0
- package/src/engine/game/auctionMail.ts +269 -0
- package/src/engine/game/bagOverflow.ts +130 -0
- package/src/engine/game/bank.ts +110 -0
- package/src/engine/game/barAutofill.ts +26 -0
- package/src/engine/game/battleground.ts +369 -0
- package/src/engine/game/combatEnemySpec.ts +216 -0
- package/src/engine/game/combatObjectTraps.ts +167 -0
- package/src/engine/game/combatSeed.ts +320 -0
- package/src/engine/game/combatSession.ts +3241 -0
- package/src/engine/game/combatSessionClock.ts +62 -0
- package/src/engine/game/companionQuestActions.ts +242 -0
- package/src/engine/game/companionTraining.ts +40 -0
- package/src/engine/game/consumables.ts +624 -0
- package/src/engine/game/context.ts +53 -0
- package/src/engine/game/createHealthstone.ts +45 -0
- package/src/engine/game/deathFlow.ts +127 -0
- package/src/engine/game/devGrant.ts +117 -0
- package/src/engine/game/dynamicObject.ts +365 -0
- package/src/engine/game/enchantItem.ts +177 -0
- package/src/engine/game/equipmentHelper.ts +806 -0
- package/src/engine/game/factionState.ts +108 -0
- package/src/engine/game/garmentsOoc.ts +69 -0
- package/src/engine/game/globalActionBar.ts +179 -0
- package/src/engine/game/goInteractQuestCredit.ts +51 -0
- package/src/engine/game/goMoTransportUse.ts +61 -0
- package/src/engine/game/goTransportUse.ts +60 -0
- package/src/engine/game/healthstoneUpkeep.ts +59 -0
- package/src/engine/game/killSkin.ts +124 -0
- package/src/engine/game/learnFromItem.ts +118 -0
- package/src/engine/game/loadReconcile.ts +551 -0
- package/src/engine/game/loot.ts +294 -0
- package/src/engine/game/macros.ts +125 -0
- package/src/engine/game/mail.ts +293 -0
- package/src/engine/game/meetingStoneQueue.ts +75 -0
- package/src/engine/game/meetingStoneUse.ts +54 -0
- package/src/engine/game/newGameState.ts +363 -0
- package/src/engine/game/oocAuraInterrupt.ts +92 -0
- package/src/engine/game/oocCast.ts +241 -0
- package/src/engine/game/oocCastEffects.ts +803 -0
- package/src/engine/game/oocCastMethods.ts +1077 -0
- package/src/engine/game/openLockFromSpell.ts +174 -0
- package/src/engine/game/outdoorPvp.ts +187 -0
- package/src/engine/game/outfitter.ts +644 -0
- package/src/engine/game/paladinBoard.ts +393 -0
- package/src/engine/game/partyAuras.ts +121 -0
- package/src/engine/game/persistCombatAuras.ts +91 -0
- package/src/engine/game/pets.ts +459 -0
- package/src/engine/game/prePullHealthstones.ts +154 -0
- package/src/engine/game/professions.ts +2227 -0
- package/src/engine/game/pruneStaleRuntime.ts +39 -0
- package/src/engine/game/questFightCredit.ts +36 -0
- package/src/engine/game/questItemOnCorpse.ts +166 -0
- package/src/engine/game/questItemOnCreature.ts +103 -0
- package/src/engine/game/questLog.ts +879 -0
- package/src/engine/game/questSpellComplete.ts +21 -0
- package/src/engine/game/questTurnIn.ts +598 -0
- package/src/engine/game/raidParty.ts +32 -0
- package/src/engine/game/reagentBuyIn.ts +39 -0
- package/src/engine/game/regenRest.ts +186 -0
- package/src/engine/game/rotation.ts +425 -0
- package/src/engine/game/runFullDungeon.ts +611 -0
- package/src/engine/game/runSupply.ts +80 -0
- package/src/engine/game/sanitizeDriftedItems.ts +135 -0
- package/src/engine/game/scriptDevGoUse.ts +397 -0
- package/src/engine/game/scriptDevInnkeeper.ts +150 -0
- package/src/engine/game/scriptDevProfessionSpec.ts +99 -0
- package/src/engine/game/sendEventFromSpell.ts +87 -0
- package/src/engine/game/sortContainers.ts +85 -0
- package/src/engine/game/spellReputation.ts +69 -0
- package/src/engine/game/squad/squadDungeonSeating.ts +197 -0
- package/src/engine/game/squadDungeon.ts +4222 -0
- package/src/engine/game/squadQuestShare.ts +260 -0
- package/src/engine/game/summonObjectSlot.ts +69 -0
- package/src/engine/game/summonObjectWild.ts +73 -0
- package/src/engine/game/summoningRitualUse.ts +141 -0
- package/src/engine/game/talents.ts +356 -0
- package/src/engine/game/tamingRodUse.ts +66 -0
- package/src/engine/game/tempSpawnCreature.ts +136 -0
- package/src/engine/game/tickDungeonPatrolScripts.ts +205 -0
- package/src/engine/game/tickTimedQuests.ts +28 -0
- package/src/engine/game/trade.ts +586 -0
- package/src/engine/game/travel.ts +1155 -0
- package/src/engine/game/types.ts +1855 -0
- package/src/engine/game/vendorOffers.ts +244 -0
- package/src/engine/game/weaponImbueItem.ts +281 -0
- package/src/engine/game/worldSession.ts +183 -0
- package/src/engine/game/worldState.ts +166 -0
- package/src/engine/game.ts +968 -0
- package/src/engine/spells/GAP.md +67 -0
- package/src/engine/spells/absorbs.ts +376 -0
- package/src/engine/spells/addTargetTrigger.ts +53 -0
- package/src/engine/spells/auraPerSecondCost.ts +50 -0
- package/src/engine/spells/auraStacking.ts +497 -0
- package/src/engine/spells/cmangos-special-cases-combustion.ts +13 -0
- package/src/engine/spells/cmangos-special-cases-s18.ts +445 -0
- package/src/engine/spells/cmangos-special-cases-s19.ts +324 -0
- package/src/engine/spells/cmangos-special-cases-s20.ts +385 -0
- package/src/engine/spells/cmangos-special-cases-s21.ts +116 -0
- package/src/engine/spells/cmangos-special-cases-s22.ts +24 -0
- package/src/engine/spells/cmangos-special-cases-s23.ts +52 -0
- package/src/engine/spells/cmangos-special-cases.ts +1570 -0
- package/src/engine/spells/conditions.ts +718 -0
- package/src/engine/spells/effects.ts +203 -0
- package/src/engine/spells/fixtures/oracle-effects-lock9a.json +1 -0
- package/src/engine/spells/immunity.ts +942 -0
- package/src/engine/spells/intentEffects.ts +351 -0
- package/src/engine/spells/interpreter/GAPS.md +21 -0
- package/src/engine/spells/interpreter/amount.ts +109 -0
- package/src/engine/spells/interpreter/class-scripts-kit.ts +478 -0
- package/src/engine/spells/interpreter/diff.ts +246 -0
- package/src/engine/spells/interpreter/duration.ts +90 -0
- package/src/engine/spells/interpreter/form-attrs.json +1 -0
- package/src/engine/spells/interpreter/form-attrs.ts +95 -0
- package/src/engine/spells/interpreter/handlers/aura-remove.ts +113 -0
- package/src/engine/spells/interpreter/handlers/auras-control.ts +1547 -0
- package/src/engine/spells/interpreter/handlers/auras-core.ts +1583 -0
- package/src/engine/spells/interpreter/handlers/auras-misc.ts +1774 -0
- package/src/engine/spells/interpreter/handlers/effect-disenchant.ts +17 -0
- package/src/engine/spells/interpreter/handlers/effect-skinning.ts +20 -0
- package/src/engine/spells/interpreter/handlers/effects-action-utility.ts +1455 -0
- package/src/engine/spells/interpreter/handlers/effects-core.ts +432 -0
- package/src/engine/spells/interpreter/handlers/effects-remainder.ts +105 -0
- package/src/engine/spells/interpreter/handlers/effects-summon-item.ts +687 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy-percent.ts +36 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy.ts +36 -0
- package/src/engine/spells/interpreter/handlers/periodic-trigger-zero.ts +327 -0
- package/src/engine/spells/interpreter/handlers/procs.ts +131 -0
- package/src/engine/spells/interpreter/handlers/registry.ts +975 -0
- package/src/engine/spells/interpreter/handlers/shared.ts +667 -0
- package/src/engine/spells/interpreter/handlers.ts +9 -0
- package/src/engine/spells/interpreter/hunter-kit.ts +202 -0
- package/src/engine/spells/interpreter/index.ts +525 -0
- package/src/engine/spells/interpreter/item-triggers.ts +1121 -0
- package/src/engine/spells/interpreter/lift-consume-energy.ts +37 -0
- package/src/engine/spells/interpreter/mage-portals.ts +37 -0
- package/src/engine/spells/interpreter/materialize-charm.ts +88 -0
- package/src/engine/spells/interpreter/materialize-dispel-mechanic.ts +25 -0
- package/src/engine/spells/interpreter/materialize-rating-buffs.ts +81 -0
- package/src/engine/spells/interpreter/materialize-speed.ts +109 -0
- package/src/engine/spells/interpreter/materialize-spell-magnet.ts +22 -0
- package/src/engine/spells/interpreter/opcodes.ts +789 -0
- package/src/engine/spells/interpreter/paladin-kit.ts +95 -0
- package/src/engine/spells/interpreter/paladin-seals.ts +499 -0
- package/src/engine/spells/interpreter/priest-warlock-kit.ts +135 -0
- package/src/engine/spells/interpreter/proc.ts +443 -0
- package/src/engine/spells/interpreter/registry/helpers.ts +16 -0
- package/src/engine/spells/interpreter/registry/index.ts +216 -0
- package/src/engine/spells/interpreter/registry/packs/class-abilities.ts +304 -0
- package/src/engine/spells/interpreter/registry/packs/dire-maul.ts +44 -0
- package/src/engine/spells/interpreter/registry/packs/dummy-script-tail.ts +1065 -0
- package/src/engine/spells/interpreter/registry/packs/ex-wave-m.ts +70 -0
- package/src/engine/spells/interpreter/registry/packs/life-tap.ts +107 -0
- package/src/engine/spells/interpreter/registry/packs/paladin.ts +246 -0
- package/src/engine/spells/interpreter/registry/packs/raid-script-summons.ts +26 -0
- package/src/engine/spells/interpreter/registry/packs/raid-threat-wipe.ts +22 -0
- package/src/engine/spells/interpreter/registry/packs/shaman.ts +214 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-a.ts +269 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-b.ts +370 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-c.ts +172 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-hunter.ts +60 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-warrior.ts +31 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-a.ts +114 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-b.ts +249 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-c.ts +233 -0
- package/src/engine/spells/interpreter/registry/types.ts +48 -0
- package/src/engine/spells/interpreter/talent-scripted.ts +329 -0
- package/src/engine/spells/interpreter/targeting.ts +90 -0
- package/src/engine/spells/interpreter/types-intent.ts +1501 -0
- package/src/engine/spells/interpreter/types.ts +419 -0
- package/src/engine/spells/interpreter/warrior-druid-kit.ts +314 -0
- package/src/engine/spells/interpreter/weapon-imbue-kit.ts +384 -0
- package/src/engine/spells/interrupt.ts +217 -0
- package/src/engine/spells/meleeAttackReset.ts +60 -0
- package/src/engine/spells/oocTriggerSpell.ts +49 -0
- package/src/engine/spells/overrideClassScripts.ts +319 -0
- package/src/engine/spells/parryHaste.ts +20 -0
- package/src/engine/spells/procs.ts +300 -0
- package/src/engine/spells/recovery.ts +203 -0
- package/src/engine/spells/scriptTargetDest.ts +76 -0
- package/src/engine/spells/scriptTargets.ts +85 -0
- package/src/engine/spells/singleTargetAura.ts +82 -0
- package/src/engine/spells/specialCasePayloads.ts +57 -0
- package/src/engine/spells/spellAttributes.ts +249 -0
- package/src/engine/spells/spellBonus.ts +143 -0
- package/src/engine/spells/spellModIntents.ts +419 -0
- package/src/engine/spells/spellMods.ts +283 -0
- package/src/engine/spells/spellRadius.ts +15 -0
- package/src/engine/spells/trapObjects.ts +26 -0
- package/src/json.d.ts +7 -0
- package/src/persistence/memoryRepository.ts +23 -0
- package/src/persistence/saveBackups.ts +162 -0
- package/src/persistence/saveFile.ts +68 -0
- package/src/persistence/saveRepository.ts +11 -0
- package/src/persistence/saveShape.ts +668 -0
- package/src/progression/leveling.ts +89 -0
- package/src/progression/rest.ts +1434 -0
- package/src/progression/training.ts +226 -0
- package/src/progression/xpGain.ts +369 -0
- package/src/quests/quests.ts +1580 -0
- package/src/world/aoePull.ts +198 -0
- package/src/world/areaTableDbc.ts +39 -0
- package/src/world/areaTableMapIdPairs.ts +141 -0
- package/src/world/bakeSlug.ts +43 -0
- package/src/world/continuousDungeon.ts +1250 -0
- package/src/world/dungeonBakeProjection.ts +190 -0
- package/src/world/dungeonMapDensity.ts +342 -0
- package/src/world/dungeonMapProjection.ts +135 -0
- package/src/world/dungeonNav.ts +904 -0
- package/src/world/dungeonNpcSim.ts +147 -0
- package/src/world/dungeonObjectives.ts +234 -0
- package/src/world/dungeonPreset.ts +35 -0
- package/src/world/dungeonRoute.ts +311 -0
- package/src/world/dungeonRouteGeometry.ts +732 -0
- package/src/world/dungeonRouteOrder.ts +1037 -0
- package/src/world/dungeonWingRooms.ts +426 -0
- package/src/world/escort.ts +296 -0
- package/src/world/goPoolRoll.ts +75 -0
- package/src/world/instanceObjects.ts +785 -0
- package/src/world/instances.ts +1572 -0
- package/src/world/meetingStones.ts +56 -0
- package/src/world/navmeshFloors.ts +145 -0
- package/src/world/nearGrid.ts +167 -0
- package/src/world/packBudget.ts +613 -0
- package/src/world/rareRoll.ts +335 -0
- package/src/world/routeAuthoring.ts +132 -0
- package/src/world/routeEdit.ts +209 -0
- package/src/world/world.ts +812 -0
- package/src/world/zoneHazards.ts +47 -0
|
@@ -0,0 +1,817 @@
|
|
|
1
|
+
// Darkshore ScriptDev IR ports. Source: scripts/kalimdor/darkshore.cpp — Kerlonian, Remtravel,
|
|
2
|
+
// Threshwackonator, Volcor, Therylune, the rabid bear, the Blackwood pair and the food GOs.
|
|
3
|
+
|
|
4
|
+
import type { ScriptDevIR } from './types.ts';
|
|
5
|
+
|
|
6
|
+
// Shared faction / tempfaction / stand-state constants
|
|
7
|
+
|
|
8
|
+
/** FACTION_ESCORT_N_FRIEND_PASSIVE. Cite: ScriptDevAIMgr.h:52 = 290; darkshore.cpp:207 Kerlonian */
|
|
9
|
+
export const FACTION_ESCORT_N_FRIEND_PASSIVE = 290;
|
|
10
|
+
|
|
11
|
+
/** FACTION_ESCORT_A_PASSIVE. Cite: ScriptDevAIMgr.h:55 = 774; darkshore.cpp:294 Remtravel */
|
|
12
|
+
export const FACTION_ESCORT_A_PASSIVE = 774;
|
|
13
|
+
|
|
14
|
+
/** FACTION_ESCORT_A_NEUTRAL_ACTIVE. Cite: ScriptDevAIMgr.h:48 = 231; darkshore.cpp:535 Therylune */
|
|
15
|
+
export const FACTION_ESCORT_A_NEUTRAL_ACTIVE = 231;
|
|
16
|
+
|
|
17
|
+
/** FACTION_HOSTILE (Threshwackonator end). Cite: darkshore.cpp:311 FACTION_HOSTILE = 14 */
|
|
18
|
+
export const FACTION_HOSTILE = 14;
|
|
19
|
+
|
|
20
|
+
// FACTION_BLACKWOOD (purified furbolg — cpp note: guessed). Cite: darkshore.cpp:666 FACTION_BLACKWOOD = 35
|
|
21
|
+
export const FACTION_BLACKWOOD = 35;
|
|
22
|
+
|
|
23
|
+
/** TEMPFACTION_RESTORE_RESPAWN. Cite: Creature.h; darkshore.cpp:294,341,535 */
|
|
24
|
+
export const TEMPFACTION_RESTORE_RESPAWN = 0x01;
|
|
25
|
+
|
|
26
|
+
/** TEMPFACTION_RESTORE_COMBAT_STOP. Cite: Creature.h; darkshore.cpp:699 purified faction flags */
|
|
27
|
+
export const TEMPFACTION_RESTORE_COMBAT_STOP = 0x02;
|
|
28
|
+
|
|
29
|
+
/** TEMPFACTION_TOGGLE_IMMUNE_TO_NPC. Cite: Creature.h:582 = 0x20; darkshore.cpp:535 */
|
|
30
|
+
export const TEMPFACTION_TOGGLE_IMMUNE_TO_NPC = 0x20;
|
|
31
|
+
|
|
32
|
+
/** UNIT_STAND_STATE_STAND / SLEEP / SIT. Cite: Unit.h; darkshore.cpp:153 SLEEP, :160 STAND, :413 SIT */
|
|
33
|
+
export const UNIT_STAND_STATE_STAND = 0;
|
|
34
|
+
export const UNIT_STAND_STATE_SIT = 1;
|
|
35
|
+
export const UNIT_STAND_STATE_SLEEP = 3;
|
|
36
|
+
|
|
37
|
+
/** INTERACTION_DISTANCE. Cite: ObjectDefines.h:25 = 5.0f; darkshore.cpp:108,584 */
|
|
38
|
+
export const INTERACTION_DISTANCE = 5;
|
|
39
|
+
|
|
40
|
+
/** AI_EVENT_CUSTOM_A — Awaken Kerlonian spell → ClearSleeping. Cite: AIDefines.h; darkshore.cpp:125,223 */
|
|
41
|
+
export const AI_EVENT_CUSTOM_A = 1000;
|
|
42
|
+
|
|
43
|
+
// Constants — npc_kerlonian
|
|
44
|
+
|
|
45
|
+
// darkshore.cpp:53–79
|
|
46
|
+
/** Cite: darkshore.cpp:55 SAY_KER_START = -1000434 */
|
|
47
|
+
export const SAY_KER_START = -1000434;
|
|
48
|
+
/** Cite: darkshore.cpp:57–59 EMOTE_KER_SLEEP_* */
|
|
49
|
+
export const EMOTE_KER_SLEEP_1 = -1000435;
|
|
50
|
+
export const EMOTE_KER_SLEEP_2 = -1000436;
|
|
51
|
+
export const EMOTE_KER_SLEEP_3 = -1000437;
|
|
52
|
+
/** Cite: darkshore.cpp:61–64 SAY_KER_SLEEP_* */
|
|
53
|
+
export const SAY_KER_SLEEP_1 = -1000438;
|
|
54
|
+
export const SAY_KER_SLEEP_2 = -1000439;
|
|
55
|
+
export const SAY_KER_SLEEP_3 = -1000440;
|
|
56
|
+
export const SAY_KER_SLEEP_4 = -1000441;
|
|
57
|
+
/** Cite: darkshore.cpp:66 EMOTE_KER_AWAKEN = -1000445 */
|
|
58
|
+
export const EMOTE_KER_AWAKEN = -1000445;
|
|
59
|
+
/** Cite: darkshore.cpp:68–69 SAY_KER_ALERT_* (road attackers — TODO in cpp) */
|
|
60
|
+
export const SAY_KER_ALERT_1 = -1000442;
|
|
61
|
+
export const SAY_KER_ALERT_2 = -1000443;
|
|
62
|
+
/** Cite: darkshore.cpp:71 SAY_KER_END = -1000444 */
|
|
63
|
+
export const SAY_KER_END = -1000444;
|
|
64
|
+
|
|
65
|
+
/** Cite: darkshore.cpp:73 SPELL_BEAR_FORM = 18309 */
|
|
66
|
+
export const SPELL_BEAR_FORM = 18309;
|
|
67
|
+
/** Cite: darkshore.cpp:74 SPELL_SLEEP_VISUAL = 25148 */
|
|
68
|
+
export const SPELL_SLEEP_VISUAL = 25148;
|
|
69
|
+
/** Cite: darkshore.cpp:75 SPELL_AWAKEN = 17536 */
|
|
70
|
+
export const SPELL_AWAKEN = 17536;
|
|
71
|
+
|
|
72
|
+
/** Cite: darkshore.cpp:77 QUEST_SLEEPER_AWAKENED = 5321 */
|
|
73
|
+
export const QUEST_SLEEPER_AWAKENED = 5321;
|
|
74
|
+
/** Cite: darkshore.cpp:79 NPC_LILADRIS = 11219 */
|
|
75
|
+
export const NPC_LILADRIS = 11219;
|
|
76
|
+
/** DB binding. Cite: scriptdev2.sql entry 11218 */
|
|
77
|
+
export const NPC_KERLONIAN = 11218;
|
|
78
|
+
|
|
79
|
+
// Fall-asleep timer on Reset (while not following still arms). Cite: darkshore.cpp:91 m_uiFallAsleepTimer =
|
|
80
|
+
// urand(10000, 45000)
|
|
81
|
+
export const KERLONIAN_SLEEP_INIT_MIN_MS = 10_000;
|
|
82
|
+
export const KERLONIAN_SLEEP_INIT_MAX_MS = 45_000;
|
|
83
|
+
|
|
84
|
+
// Re-arm after SetSleeping while following. Cite: darkshore.cpp:179 m_uiFallAsleepTimer = urand(25000,
|
|
85
|
+
// 90000)
|
|
86
|
+
export const KERLONIAN_SLEEP_REPEAT_MIN_MS = 25_000;
|
|
87
|
+
export const KERLONIAN_SLEEP_REPEAT_MAX_MS = 90_000;
|
|
88
|
+
|
|
89
|
+
// Liladris complete LOS range = INTERACTION_DISTANCE * 5. Cite: darkshore.cpp:108 IsWithinDistInMap(...,
|
|
90
|
+
// INTERACTION_DISTANCE * 5)
|
|
91
|
+
export const KERLONIAN_LILADRIS_RANGE_YD = INTERACTION_DISTANCE * 5;
|
|
92
|
+
|
|
93
|
+
/** Aggro distance sound. Cite: darkshore.cpp:99 PlayDistanceSound(6701) */
|
|
94
|
+
export const KERLONIAN_AGGRO_SOUND = 6701;
|
|
95
|
+
|
|
96
|
+
// Constants — npc_prospector_remtravel
|
|
97
|
+
|
|
98
|
+
// darkshore.cpp:231–242
|
|
99
|
+
/** Cite: darkshore.cpp:233 QUEST_ABSENT_MINDED_PT2 = 731 */
|
|
100
|
+
export const QUEST_ABSENT_MINDED_PT2 = 731;
|
|
101
|
+
/** Cite: darkshore.cpp:234 REMTRAVEL_ESCORT_PATH = 2917 */
|
|
102
|
+
export const REMTRAVEL_ESCORT_PATH = 2917;
|
|
103
|
+
/** Cite: darkshore.cpp:236–241 SAY_REM_AGGRO_* broadcast texts */
|
|
104
|
+
export const SAY_REM_AGGRO = [938, 939, 940, 941, 942, 943] as const;
|
|
105
|
+
/** DB binding. Cite: scriptdev2.sql entry 2917 */
|
|
106
|
+
export const NPC_PROSPECTOR_REMTRAVEL = 2917;
|
|
107
|
+
|
|
108
|
+
// Constants — npc_threshwackonator
|
|
109
|
+
|
|
110
|
+
// darkshore.cpp:305–316
|
|
111
|
+
/** Cite: darkshore.cpp:307 EMOTE_START = -1000325 */
|
|
112
|
+
export const EMOTE_THRESH_START = -1000325;
|
|
113
|
+
/** Cite: darkshore.cpp:308 SAY_AT_CLOSE = -1000326 */
|
|
114
|
+
export const SAY_THRESH_AT_CLOSE = -1000326;
|
|
115
|
+
/** Cite: darkshore.cpp:309 QUEST_GYROMAST_REV = 2078 */
|
|
116
|
+
export const QUEST_GYROMAST_REV = 2078;
|
|
117
|
+
/** Cite: darkshore.cpp:310 NPC_GELKAK = 6667 */
|
|
118
|
+
export const NPC_GELKAK = 6667;
|
|
119
|
+
/** Cite: darkshore.cpp:313 TEXT_ID_THRESH_DEFAULT = 718 */
|
|
120
|
+
export const TEXT_ID_THRESH_DEFAULT = 718;
|
|
121
|
+
/** Cite: darkshore.cpp:314 TEXT_ID_KEY_READY = 758 */
|
|
122
|
+
export const TEXT_ID_KEY_READY = 758;
|
|
123
|
+
/** DB binding. Cite: scriptdev2.sql entry 6669 */
|
|
124
|
+
export const NPC_THRESHWACKONATOR = 6669;
|
|
125
|
+
|
|
126
|
+
/** Gelkak end LOS. Cite: darkshore.cpp:331 IsWithinDistInMap(..., 10.0f) */
|
|
127
|
+
export const THRESH_GELKAK_RANGE_YD = 10;
|
|
128
|
+
|
|
129
|
+
// Constants — npc_volcor
|
|
130
|
+
|
|
131
|
+
// darkshore.cpp:388–399
|
|
132
|
+
/** Cite: darkshore.cpp:390–393 SAY_AGGRO_* */
|
|
133
|
+
export const SAY_VOLCOR_AGGRO = [1250, 1251, 1252, 1253] as const;
|
|
134
|
+
/** Cite: darkshore.cpp:395 VOLCOR_PATH_01 = 3692 (stealth) */
|
|
135
|
+
export const VOLCOR_PATH_STEALTH = 3692;
|
|
136
|
+
/** Cite: darkshore.cpp:396 VOLCOR_PATH_02 = 3693 (force) */
|
|
137
|
+
export const VOLCOR_PATH_FORCE = 3693;
|
|
138
|
+
/** Cite: darkshore.cpp:398 QUEST_ESCAPE_THROUGH_FORCE = 994 */
|
|
139
|
+
export const QUEST_ESCAPE_THROUGH_FORCE = 994;
|
|
140
|
+
/** Cite: darkshore.cpp:399 QUEST_ESCAPE_THROUGH_STEALTH = 995 */
|
|
141
|
+
export const QUEST_ESCAPE_THROUGH_STEALTH = 995;
|
|
142
|
+
/** DB binding. Cite: scriptdev2.sql entry 3692 */
|
|
143
|
+
export const NPC_VOLCOR = 3692;
|
|
144
|
+
|
|
145
|
+
/** ForcedDespawn after stealth credit. Cite: darkshore.cpp:454 ForcedDespawn(1000) */
|
|
146
|
+
export const VOLCOR_STEALTH_DESPAWN_MS = 1000;
|
|
147
|
+
|
|
148
|
+
// Constants — npc_therylune
|
|
149
|
+
|
|
150
|
+
// darkshore.cpp:483–490
|
|
151
|
+
/** Cite: darkshore.cpp:485 SAY_THERYLUNE_START = -1000905 */
|
|
152
|
+
export const SAY_THERYLUNE_START = -1000905;
|
|
153
|
+
/** Cite: darkshore.cpp:486 SAY_THERYLUNE_FINISH = -1000906 */
|
|
154
|
+
export const SAY_THERYLUNE_FINISH = -1000906;
|
|
155
|
+
/** Cite: darkshore.cpp:488 NPC_THERYSIL = 3585 */
|
|
156
|
+
export const NPC_THERYSIL = 3585;
|
|
157
|
+
/** Cite: darkshore.cpp:490 QUEST_ID_THERYLUNE_ESCAPE = 945 */
|
|
158
|
+
export const QUEST_ID_THERYLUNE_ESCAPE = 945;
|
|
159
|
+
/** DB binding. Cite: scriptdev2.sql entry 3584 */
|
|
160
|
+
export const NPC_THERYLUNE = 3584;
|
|
161
|
+
|
|
162
|
+
// Constants — npc_rabid_bear
|
|
163
|
+
|
|
164
|
+
// darkshore.cpp:547–556
|
|
165
|
+
/** Cite: darkshore.cpp:549 QUEST_PLAGUED_LANDS = 2118 */
|
|
166
|
+
export const QUEST_PLAGUED_LANDS = 2118;
|
|
167
|
+
/** Cite: darkshore.cpp:551 NPC_CAPTURED_RABID_THISTLE_BEAR = 11836 */
|
|
168
|
+
export const NPC_CAPTURED_RABID_THISTLE_BEAR = 11836;
|
|
169
|
+
/** Cite: darkshore.cpp:552 NPC_THARNARIUN_TREETENDER = 3701 */
|
|
170
|
+
export const NPC_THARNARIUN_TREETENDER = 3701;
|
|
171
|
+
/** Cite: darkshore.cpp:553 GO_NIGHT_ELVEN_BEAR_TRAP = 111148 */
|
|
172
|
+
export const GO_NIGHT_ELVEN_BEAR_TRAP = 111148;
|
|
173
|
+
/** Cite: darkshore.cpp:555 SPELL_RABIES = 3150 */
|
|
174
|
+
export const SPELL_RABIES = 3150;
|
|
175
|
+
/** Cite: darkshore.cpp:556 SPELL_BEAR_CAPTURED = 9439 */
|
|
176
|
+
export const SPELL_BEAR_CAPTURED = 9439;
|
|
177
|
+
/** DB binding. Cite: scriptdev2.sql entry 2164 */
|
|
178
|
+
export const NPC_RABID_BEAR = 2164;
|
|
179
|
+
|
|
180
|
+
/** Rabies timer init + re-arm. Cite: darkshore.cpp:573,642 m_uiRabiesTimer = urand(12000, 18000) */
|
|
181
|
+
export const RABIES_MIN_MS = 12_000;
|
|
182
|
+
export const RABIES_MAX_MS = 18_000;
|
|
183
|
+
|
|
184
|
+
/** JustRespawned check timer. Cite: darkshore.cpp:578 m_uiCheckTimer = 1000 */
|
|
185
|
+
export const RABID_BEAR_CHECK_TIMER_MS = 1000;
|
|
186
|
+
|
|
187
|
+
// Post-capture OOC despawn (3 minutes). Cite: darkshore.cpp:619 m_uiDespawnTimer = 3 * MINUTE *
|
|
188
|
+
// IN_MILLISECONDS
|
|
189
|
+
export const RABID_BEAR_CAPTURE_DESPAWN_MS = 3 * 60 * 1000;
|
|
190
|
+
|
|
191
|
+
// Tharnariun hand-off LOS = 2 * INTERACTION_DISTANCE. Cite: darkshore.cpp:585 IsWithinDist(..., 2 *
|
|
192
|
+
// INTERACTION_DISTANCE, false)
|
|
193
|
+
export const RABID_BEAR_THARNARIUN_RANGE_YD = 2 * INTERACTION_DISTANCE;
|
|
194
|
+
|
|
195
|
+
// ForcedDespawn delay on Tharnariun LOS / unexpected capture. Cite: darkshore.cpp:588,614
|
|
196
|
+
// ForcedDespawn(1000)
|
|
197
|
+
export const RABID_BEAR_HANDOFF_DESPAWN_MS = 1000;
|
|
198
|
+
|
|
199
|
+
// Constants — npc_corrupted_furbolg (blackwood warrior / totemic)
|
|
200
|
+
|
|
201
|
+
// darkshore.cpp:660–687
|
|
202
|
+
/** Cite: darkshore.cpp:661 NPC_BLACKWOOD_WARRIOR = 2168 */
|
|
203
|
+
export const NPC_BLACKWOOD_WARRIOR = 2168;
|
|
204
|
+
/** Cite: darkshore.cpp:662 NPC_BLACKWOOD_TOTEMIC = 2169 */
|
|
205
|
+
export const NPC_BLACKWOOD_TOTEMIC = 2169;
|
|
206
|
+
/** Cite: darkshore.cpp:664 GO_PURIFIED_FOOD = 175336 */
|
|
207
|
+
export const GO_PURIFIED_FOOD = 175336;
|
|
208
|
+
/** Cite: darkshore.cpp:668 EMOTE_LURED = -1010027 */
|
|
209
|
+
export const EMOTE_LURED = -1010027;
|
|
210
|
+
/** Cite: darkshore.cpp:669 EMOTE_PURIFIED = -1010028 */
|
|
211
|
+
export const EMOTE_PURIFIED = -1010028;
|
|
212
|
+
/** Cite: darkshore.cpp:670 EMOTE_GENERIC_FLEE = -1000007 */
|
|
213
|
+
export const EMOTE_GENERIC_FLEE = -1000007;
|
|
214
|
+
/** Cite: darkshore.cpp:672 SPELL_BATTLE_STANCE = 7165 */
|
|
215
|
+
export const SPELL_BATTLE_STANCE = 7165;
|
|
216
|
+
/** Cite: darkshore.cpp:673 SPELL_THUNDERCLAP = 8078 */
|
|
217
|
+
export const SPELL_THUNDERCLAP = 8078;
|
|
218
|
+
/** Cite: darkshore.cpp:674 SPELL_HEALING_WARD = 5605 */
|
|
219
|
+
export const SPELL_HEALING_WARD = 5605;
|
|
220
|
+
/** Cite: darkshore.cpp:686 BOWL_DISTANCE = 5 */
|
|
221
|
+
export const BOWL_DISTANCE = 5;
|
|
222
|
+
|
|
223
|
+
/** Flee HP% gate (timerless ACTION_FLEE). Cite: darkshore.cpp:794 GetHealthPercent() <= 15.f */
|
|
224
|
+
export const BLACKWOOD_FLEE_HP_PCT = 15;
|
|
225
|
+
|
|
226
|
+
// Thunderclap init + re-arm. Cite: darkshore.cpp:733 AddCombatAction ACTION_THUNDERCLAP 16000, 21000 Cite:
|
|
227
|
+
// darkshore.cpp:763 GetSubsequentActionTimer urand(16, 21) * IN_MILLISECONDS
|
|
228
|
+
export const THUNDERCLAP_MIN_MS = 16_000;
|
|
229
|
+
export const THUNDERCLAP_MAX_MS = 21_000;
|
|
230
|
+
|
|
231
|
+
/** Healing Ward init. Cite: darkshore.cpp:734 AddCombatAction ACTION_HEALING_WARD 6000, 12000 */
|
|
232
|
+
export const HEALING_WARD_INIT_MIN_MS = 6000;
|
|
233
|
+
export const HEALING_WARD_INIT_MAX_MS = 12_000;
|
|
234
|
+
|
|
235
|
+
/** Healing Ward re-arm after CAST_OK. Cite: darkshore.cpp:764 urand(30, 36) * IN_MILLISECONDS */
|
|
236
|
+
export const HEALING_WARD_REPEAT_MIN_MS = 30_000;
|
|
237
|
+
export const HEALING_WARD_REPEAT_MAX_MS = 36_000;
|
|
238
|
+
|
|
239
|
+
// EVENT_BECOME_PURIFIED delay after MovePoint land. Cite: darkshore.cpp:785
|
|
240
|
+
// ResetTimer(EVENT_BECOME_PURIFIED, 5 * IN_MILLISECONDS)
|
|
241
|
+
export const PURIFY_BECOME_DELAY_MS = 5000;
|
|
242
|
+
|
|
243
|
+
// EVENT_FURBOLG_RESET after purification roam. Cite: darkshore.cpp:702 ResetTimer(EVENT_FURBOLG_RESET, 90s)
|
|
244
|
+
export const PURIFY_RESET_MS = 90_000;
|
|
245
|
+
|
|
246
|
+
// Non-first furbolg start delay. Cite: darkshore.cpp:776 ResetTimer(EVENT_START_PURIFICATION, urand(0, 5 *
|
|
247
|
+
// IN_MILLISECONDS))
|
|
248
|
+
export const PURIFY_START_STAGGER_MAX_MS = 5000;
|
|
249
|
+
|
|
250
|
+
// Seek purification max squared distance to bowl (3600 = 60yd²). Cite: darkshore.cpp:713
|
|
251
|
+
// m_bowlCoords.GetDistance(...) <= 3600.f
|
|
252
|
+
export const PURIFY_BOWL_DIST_SQ = 3600;
|
|
253
|
+
|
|
254
|
+
// Furbolg grid search + event summon radius. Cite: darkshore.cpp:835 GetCreatureListWithEntryInGrid(...,
|
|
255
|
+
// 40.f) Cite: darkshore.cpp:842 GetRandomPoint(..., 30.0f)
|
|
256
|
+
export const PURIFY_FURBOLG_SEARCH_YD = 40;
|
|
257
|
+
export const PURIFY_SUMMON_RADIUS_YD = 30;
|
|
258
|
+
|
|
259
|
+
// Event/GO warrior temp summon despawn. Cite: darkshore.cpp:843,880 TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN
|
|
260
|
+
// 120000
|
|
261
|
+
export const BLACKWOOD_TEMP_DESPAWN_MS = 120_000;
|
|
262
|
+
|
|
263
|
+
/** Extra warriors summoned by purify event. Cite: darkshore.cpp:840 for (int8 i = 0; i < 2; ++i) */
|
|
264
|
+
export const PURIFY_EXTRA_WARRIORS = 2;
|
|
265
|
+
|
|
266
|
+
// go_furbolg_food search / summon radius. Cite: darkshore.cpp:870 GetClosestCreatureWithEntry(..., 20.0f)
|
|
267
|
+
// Cite: darkshore.cpp:879 GetRandomPoint(..., 20.0f)
|
|
268
|
+
export const FURBOLG_FOOD_RANGE_YD = 20;
|
|
269
|
+
|
|
270
|
+
// go_furbolg_food bound entries (scriptdev2.sql). Cite: UPDATE gameobject_template ScriptName
|
|
271
|
+
// go_furbolg_food WHERE entry=175329/175330/175331
|
|
272
|
+
export const GO_FURBOLG_FOOD_ENTRIES = [175329, 175330, 175331] as const;
|
|
273
|
+
|
|
274
|
+
/** ProcessEventId binding. Cite: scriptdev2.sql (3938,'event_purify_food') */
|
|
275
|
+
export const EVENT_ID_PURIFY_FOOD = 3938;
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
// Pure helpers live in darkshoreHelpers.ts (file-size split ≤1500).
|
|
279
|
+
export {
|
|
280
|
+
kerlonianQuestAccept,
|
|
281
|
+
kerlonianSetSleeping,
|
|
282
|
+
kerlonianClearSleeping,
|
|
283
|
+
kerlonianLiladrisLos,
|
|
284
|
+
remtravelQuestAccept,
|
|
285
|
+
remtravelWaypointReached,
|
|
286
|
+
remtravelAggroText,
|
|
287
|
+
threshGossipHello,
|
|
288
|
+
threshGossipSelect,
|
|
289
|
+
threshGelkakLos,
|
|
290
|
+
volcorQuestAccept,
|
|
291
|
+
volcorWaypointReached,
|
|
292
|
+
volcorAggroText,
|
|
293
|
+
theryluneQuestAccept,
|
|
294
|
+
theryluneWaypointReached,
|
|
295
|
+
rabidBearSpellHit,
|
|
296
|
+
rabidBearTharnariunLos,
|
|
297
|
+
blackwoodFleeCheck,
|
|
298
|
+
blackwoodSeekPurification,
|
|
299
|
+
blackwoodStartPurification,
|
|
300
|
+
blackwoodBecomePurified,
|
|
301
|
+
purifyFoodProcessEvent,
|
|
302
|
+
furbolgFoodUse,
|
|
303
|
+
} from './darkshoreHelpers.ts';
|
|
304
|
+
export type {
|
|
305
|
+
KerlonianQuestAcceptResult,
|
|
306
|
+
KerlonianSleepFireResult,
|
|
307
|
+
KerlonianClearSleepResult,
|
|
308
|
+
KerlonianLiladrisLosResult,
|
|
309
|
+
RemtravelQuestAcceptResult,
|
|
310
|
+
RemtravelWaypointResult,
|
|
311
|
+
ThreshGossipHelloResult,
|
|
312
|
+
ThreshGossipSelectResult,
|
|
313
|
+
ThreshGelkakLosResult,
|
|
314
|
+
VolcorQuestAcceptResult,
|
|
315
|
+
VolcorWaypointResult,
|
|
316
|
+
TheryluneQuestAcceptResult,
|
|
317
|
+
TheryluneWaypointResult,
|
|
318
|
+
RabidBearSpellHitResult,
|
|
319
|
+
RabidBearTharnariunLosResult,
|
|
320
|
+
BlackwoodFleeResult,
|
|
321
|
+
PurifySeekResult,
|
|
322
|
+
PurifyStartResult,
|
|
323
|
+
PurifyBecomeResult,
|
|
324
|
+
PurifyFoodEventResult,
|
|
325
|
+
FurbolgFoodUseResult,
|
|
326
|
+
} from './darkshoreHelpers.ts';
|
|
327
|
+
|
|
328
|
+
// ScriptDev IR — npc_kerlonian
|
|
329
|
+
// ---------------------------------------------------------------------------
|
|
330
|
+
|
|
331
|
+
// Cite: darkshore.cpp npc_kerlonianAI (FollowerAI) Binding: 11218 Kerlonian Evershade (in bake). No combat
|
|
332
|
+
// cast schedule — sleep/awaken/quest complete are pure helpers + flavor lifecycle.
|
|
333
|
+
export const NPC_KERLONIAN_SCRIPT: ScriptDevIR = {
|
|
334
|
+
name: 'npc_kerlonian',
|
|
335
|
+
boundCreatures: [NPC_KERLONIAN],
|
|
336
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
337
|
+
spellIds: [SPELL_BEAR_FORM, SPELL_SLEEP_VISUAL, SPELL_AWAKEN],
|
|
338
|
+
timers: [],
|
|
339
|
+
lifecycle: {
|
|
340
|
+
onReset: [
|
|
341
|
+
{
|
|
342
|
+
kind: 'cast_self',
|
|
343
|
+
spellId: SPELL_BEAR_FORM,
|
|
344
|
+
cite: 'darkshore.cpp:93-94 !following → DoCastSpellIfCan SPELL_BEAR_FORM 18309',
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
kind: 'flavor',
|
|
348
|
+
text: `m_uiFallAsleepTimer=urand(${KERLONIAN_SLEEP_INIT_MIN_MS},${KERLONIAN_SLEEP_INIT_MAX_MS})`,
|
|
349
|
+
cite: 'darkshore.cpp:91 Reset fall-asleep urand(10000,45000)',
|
|
350
|
+
},
|
|
351
|
+
],
|
|
352
|
+
onAggro: [
|
|
353
|
+
{
|
|
354
|
+
kind: 'flavor',
|
|
355
|
+
text: `PlayDistanceSound(${KERLONIAN_AGGRO_SOUND})`,
|
|
356
|
+
cite: 'darkshore.cpp:99 Aggro PlayDistanceSound 6701',
|
|
357
|
+
},
|
|
358
|
+
],
|
|
359
|
+
},
|
|
360
|
+
spellHits: [
|
|
361
|
+
{
|
|
362
|
+
spellId: SPELL_AWAKEN,
|
|
363
|
+
playerCaster: true,
|
|
364
|
+
actions: [
|
|
365
|
+
{
|
|
366
|
+
kind: 'remove_auras',
|
|
367
|
+
spellId: SPELL_SLEEP_VISUAL,
|
|
368
|
+
cite: 'darkshore.cpp:159 ClearSleeping RemoveAurasDueToSpell 25148',
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
kind: 'flavor',
|
|
372
|
+
text: 'AI_EVENT_CUSTOM_A → ClearSleeping stand + EMOTE_KER_AWAKEN + SetFollowPaused false',
|
|
373
|
+
cite: 'darkshore.cpp:123-129,157-164,214-224 AwakenKerlonian SpellScript',
|
|
374
|
+
},
|
|
375
|
+
],
|
|
376
|
+
cite: 'darkshore.cpp:214-224 spell_awaken_kerlonian → AI_EVENT_CUSTOM_A',
|
|
377
|
+
},
|
|
378
|
+
],
|
|
379
|
+
cites: [
|
|
380
|
+
'darkshore.cpp:49-225 npc_kerlonian + AwakenKerlonian',
|
|
381
|
+
'darkshore.cpp:73-75 SPELL_BEAR_FORM=18309 SLEEP_VISUAL=25148 AWAKEN=17536',
|
|
382
|
+
'darkshore.cpp:77-79 QUEST=5321 NPC_LILADRIS=11219',
|
|
383
|
+
'darkshore.cpp:89-95 Reset fall-asleep + bear form',
|
|
384
|
+
'darkshore.cpp:102-120 Liladris LOS complete 5321',
|
|
385
|
+
'darkshore.cpp:123-189 sleep/awaken/UpdateFollowerAI',
|
|
386
|
+
'darkshore.cpp:197-211 QuestAccept 5321',
|
|
387
|
+
'scriptdev2.sql entry 11218',
|
|
388
|
+
],
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// ScriptDev IR — npc_prospector_remtravel
|
|
392
|
+
|
|
393
|
+
// Cite: darkshore.cpp npc_prospector_remtravelAI (npc_escortAI) Binding: 2917 Prospector Remtravel (in
|
|
394
|
+
// bake). No combat cast timers — aggro yells + WP38/39 pure helpers.
|
|
395
|
+
export const NPC_PROSPECTOR_REMTRAVEL_SCRIPT: ScriptDevIR = {
|
|
396
|
+
name: 'npc_prospector_remtravel',
|
|
397
|
+
boundCreatures: [NPC_PROSPECTOR_REMTRAVEL],
|
|
398
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
399
|
+
spellIds: [],
|
|
400
|
+
timers: [],
|
|
401
|
+
lifecycle: {
|
|
402
|
+
onAggro: [
|
|
403
|
+
{
|
|
404
|
+
kind: 'yell',
|
|
405
|
+
textId: SAY_REM_AGGRO[0],
|
|
406
|
+
cite: 'darkshore.cpp:251-261 Aggro urand(0,5) DoBroadcastText 938-943 (remtravelAggroText)',
|
|
407
|
+
},
|
|
408
|
+
],
|
|
409
|
+
},
|
|
410
|
+
cites: [
|
|
411
|
+
'darkshore.cpp:227-299 npc_prospector_remtravel',
|
|
412
|
+
'darkshore.cpp:233-234 QUEST=731 path=2917',
|
|
413
|
+
'darkshore.cpp:251-261 Aggro texts 938-943',
|
|
414
|
+
'darkshore.cpp:264-268 ReceiveAIEvent CUSTOM_EVENTAI_A → AttackStart',
|
|
415
|
+
'darkshore.cpp:271-285 WP38 credit 731 WP39 End',
|
|
416
|
+
'darkshore.cpp:288-298 QuestAccept faction 774 path 2917',
|
|
417
|
+
'scriptdev2.sql entry 2917',
|
|
418
|
+
],
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
// ScriptDev IR — npc_threshwackonator
|
|
422
|
+
|
|
423
|
+
// Cite: darkshore.cpp npc_threshwackonatorAI (FollowerAI) Binding: 6669 The Threshwackonator 4100 (in
|
|
424
|
+
// bake). Gossip + Gelkak end pure helpers; no combat cast timers (hostile melee after end).
|
|
425
|
+
export const NPC_THRESHWACKONATOR_SCRIPT: ScriptDevIR = {
|
|
426
|
+
name: 'npc_threshwackonator',
|
|
427
|
+
boundCreatures: [NPC_THRESHWACKONATOR],
|
|
428
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
429
|
+
spellIds: [],
|
|
430
|
+
timers: [],
|
|
431
|
+
gossipHello: {
|
|
432
|
+
defaultTextId: TEXT_ID_THRESH_DEFAULT,
|
|
433
|
+
branches: [
|
|
434
|
+
{
|
|
435
|
+
// Host models quest-incomplete branch via pure helper threshGossipHello;
|
|
436
|
+
// IR documents both text ids (758 key ready / 718 default).
|
|
437
|
+
gates: [],
|
|
438
|
+
textId: TEXT_ID_KEY_READY,
|
|
439
|
+
cite: 'darkshore.cpp:357-360 quest 2078 incomplete → text 758',
|
|
440
|
+
},
|
|
441
|
+
],
|
|
442
|
+
cite: 'darkshore.cpp:355-365 GossipHello',
|
|
443
|
+
},
|
|
444
|
+
lifecycle: {
|
|
445
|
+
onReset: [
|
|
446
|
+
{
|
|
447
|
+
kind: 'flavor',
|
|
448
|
+
text: 'FollowerAI Reset empty',
|
|
449
|
+
cite: 'darkshore.cpp:323 Reset {}',
|
|
450
|
+
},
|
|
451
|
+
],
|
|
452
|
+
},
|
|
453
|
+
cites: [
|
|
454
|
+
'darkshore.cpp:301-382 npc_threshwackonator',
|
|
455
|
+
'darkshore.cpp:307-314 EMOTE/SAY/QUEST/NPC/FACTION/TEXT ids',
|
|
456
|
+
'darkshore.cpp:325-347 Gelkak LOS ≤10yd → hostile AttackStart',
|
|
457
|
+
'darkshore.cpp:355-381 GossipHello/Select turn key → StartFollow',
|
|
458
|
+
'scriptdev2.sql entry 6669',
|
|
459
|
+
],
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
// ScriptDev IR — npc_volcor
|
|
463
|
+
|
|
464
|
+
// Cite: darkshore.cpp npc_volcorAI (npc_escortAI) Binding: 3692 Volcor (in bake). Dual quest escort pure
|
|
465
|
+
// helpers; no combat casts.
|
|
466
|
+
export const NPC_VOLCOR_SCRIPT: ScriptDevIR = {
|
|
467
|
+
name: 'npc_volcor',
|
|
468
|
+
boundCreatures: [NPC_VOLCOR],
|
|
469
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
470
|
+
spellIds: [],
|
|
471
|
+
timers: [],
|
|
472
|
+
lifecycle: {
|
|
473
|
+
onReset: [
|
|
474
|
+
{
|
|
475
|
+
kind: 'flavor',
|
|
476
|
+
text: '!escorting → m_uiQuestId=0 + UNIT_STAND_STATE_SIT',
|
|
477
|
+
cite: 'darkshore.cpp:408-414 Reset sit when not escorting',
|
|
478
|
+
},
|
|
479
|
+
],
|
|
480
|
+
onAggro: [
|
|
481
|
+
{
|
|
482
|
+
kind: 'yell',
|
|
483
|
+
textId: SAY_VOLCOR_AGGRO[0],
|
|
484
|
+
cite: 'darkshore.cpp:417-426 Aggro urand(0,5) cases 0-3 texts 1250-1253 (volcorAggroText)',
|
|
485
|
+
},
|
|
486
|
+
],
|
|
487
|
+
},
|
|
488
|
+
cites: [
|
|
489
|
+
'darkshore.cpp:384-477 npc_volcor',
|
|
490
|
+
'darkshore.cpp:390-399 SAY_AGGRO paths 3692/3693 quests 994/995',
|
|
491
|
+
'darkshore.cpp:408-414 Reset sit',
|
|
492
|
+
'darkshore.cpp:430-465 StartEscort + WaypointReached',
|
|
493
|
+
'darkshore.cpp:468-476 QuestAccept 994/995',
|
|
494
|
+
'scriptdev2.sql entry 3692',
|
|
495
|
+
],
|
|
496
|
+
};
|
|
497
|
+
|
|
498
|
+
// ScriptDev IR — npc_therylune
|
|
499
|
+
|
|
500
|
+
// Cite: darkshore.cpp npc_theryluneAI (npc_escortAI) Binding: 3584 Therylune (in bake). Escort pure
|
|
501
|
+
// helpers; no combat casts.
|
|
502
|
+
export const NPC_THERYLUNE_SCRIPT: ScriptDevIR = {
|
|
503
|
+
name: 'npc_therylune',
|
|
504
|
+
boundCreatures: [NPC_THERYLUNE],
|
|
505
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
506
|
+
spellIds: [],
|
|
507
|
+
timers: [],
|
|
508
|
+
lifecycle: {
|
|
509
|
+
onReset: [
|
|
510
|
+
{
|
|
511
|
+
kind: 'flavor',
|
|
512
|
+
text: 'Reset empty; JustRespawned sets UNIT_FLAG_IMMUNE_TO_NPC',
|
|
513
|
+
cite: 'darkshore.cpp:498-504',
|
|
514
|
+
},
|
|
515
|
+
],
|
|
516
|
+
},
|
|
517
|
+
cites: [
|
|
518
|
+
'darkshore.cpp:479-541 npc_therylune',
|
|
519
|
+
'darkshore.cpp:485-490 SAY_* NPC_THERYSIL QUEST=945',
|
|
520
|
+
'darkshore.cpp:500-504 JustRespawned immune NPC',
|
|
521
|
+
'darkshore.cpp:506-519 WP18 credit 945 WP20 finish + SetRun',
|
|
522
|
+
'darkshore.cpp:528-540 QuestAccept faction 231 + SAY start',
|
|
523
|
+
'scriptdev2.sql entry 3584',
|
|
524
|
+
],
|
|
525
|
+
};
|
|
526
|
+
|
|
527
|
+
// ScriptDev IR — npc_rabid_bear
|
|
528
|
+
|
|
529
|
+
// Cite: darkshore.cpp npc_rabid_bearAI Binding: 2164 Rabid Thistle Bear (in bake). Combat Rabies schedule +
|
|
530
|
+
// SpellHit capture machine (pure helpers + IR spellHits).
|
|
531
|
+
export const NPC_RABID_BEAR_SCRIPT: ScriptDevIR = {
|
|
532
|
+
name: 'npc_rabid_bear',
|
|
533
|
+
boundCreatures: [NPC_RABID_BEAR],
|
|
534
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
535
|
+
spellIds: [SPELL_RABIES, SPELL_BEAR_CAPTURED],
|
|
536
|
+
timers: [
|
|
537
|
+
{
|
|
538
|
+
id: 'rabies',
|
|
539
|
+
spellId: SPELL_RABIES,
|
|
540
|
+
initialMinMs: RABIES_MIN_MS,
|
|
541
|
+
initialMaxMs: RABIES_MAX_MS,
|
|
542
|
+
repeatMinMs: RABIES_MIN_MS,
|
|
543
|
+
repeatMaxMs: RABIES_MAX_MS,
|
|
544
|
+
target: 'victim',
|
|
545
|
+
cite: 'darkshore.cpp:573,638-642 m_uiRabiesTimer urand(12000,18000) SelectAttackingTarget TOPAGGRO SPELL_RABIES 3150',
|
|
546
|
+
},
|
|
547
|
+
],
|
|
548
|
+
spellHits: [
|
|
549
|
+
{
|
|
550
|
+
spellId: SPELL_BEAR_CAPTURED,
|
|
551
|
+
playerCaster: true,
|
|
552
|
+
requireQuestIncomplete: QUEST_PLAGUED_LANDS,
|
|
553
|
+
actions: [
|
|
554
|
+
{
|
|
555
|
+
kind: 'update_entry',
|
|
556
|
+
entry: NPC_CAPTURED_RABID_THISTLE_BEAR,
|
|
557
|
+
cite: 'darkshore.cpp:606 UpdateEntry NPC_CAPTURED_RABID_THISTLE_BEAR 11836',
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
kind: 'quest_credit',
|
|
561
|
+
entry: NPC_CAPTURED_RABID_THISTLE_BEAR,
|
|
562
|
+
credit: 'creature',
|
|
563
|
+
cite: 'darkshore.cpp:610 KilledMonsterCredit captured entry',
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
kind: 'force_despawn',
|
|
567
|
+
delayMs: RABID_BEAR_CAPTURE_DESPAWN_MS,
|
|
568
|
+
cite: 'darkshore.cpp:619 m_uiDespawnTimer = 3 * MINUTE * IN_MILLISECONDS',
|
|
569
|
+
},
|
|
570
|
+
],
|
|
571
|
+
cite: 'darkshore.cpp:597-620 SpellHit 9439 player + quest 2118',
|
|
572
|
+
},
|
|
573
|
+
],
|
|
574
|
+
lifecycle: {
|
|
575
|
+
onReset: [
|
|
576
|
+
{
|
|
577
|
+
kind: 'flavor',
|
|
578
|
+
text: `m_uiRabiesTimer=urand(${RABIES_MIN_MS},${RABIES_MAX_MS})`,
|
|
579
|
+
cite: 'darkshore.cpp:571-574 Reset Rabies timer',
|
|
580
|
+
},
|
|
581
|
+
],
|
|
582
|
+
},
|
|
583
|
+
unusedBindings: [
|
|
584
|
+
{
|
|
585
|
+
entry: GO_NIGHT_ELVEN_BEAR_TRAP,
|
|
586
|
+
kind: 'go',
|
|
587
|
+
reason:
|
|
588
|
+
'GO 111148 Night Elven Bear Trap is the visual spell-focus for SPELL_BEAR_CAPTURED 9439 (darkshore.cpp:553) - not a ScriptName binding; absent from product tables/gameObjects.json (present in gameobject-data.json). Capture is driven by SpellHit on the bear, not GO AI.',
|
|
589
|
+
cite: 'darkshore.cpp:553; gameobject-data 111148; tables/gameObjects missing 111148',
|
|
590
|
+
},
|
|
591
|
+
],
|
|
592
|
+
cites: [
|
|
593
|
+
'darkshore.cpp:543-654 npc_rabid_bear',
|
|
594
|
+
'darkshore.cpp:549-556 QUEST=2118 NPCs spells GO trap',
|
|
595
|
+
'darkshore.cpp:571-574 Reset Rabies urand(12-18)s',
|
|
596
|
+
'darkshore.cpp:576-580 JustRespawned checkTimer=1000',
|
|
597
|
+
'darkshore.cpp:582-591 Tharnariun LOS hand-off',
|
|
598
|
+
'darkshore.cpp:597-620 SpellHit capture 9439',
|
|
599
|
+
'darkshore.cpp:623-648 UpdateAI despawn OOC + Rabies combat',
|
|
600
|
+
'scriptdev2.sql entry 2164',
|
|
601
|
+
],
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
// ScriptDev IR — npc_blackwood_warrior
|
|
605
|
+
|
|
606
|
+
// Cite: darkshore.cpp npc_corrupted_furbolgAI (entry 2168 branch) Binding: 2168 Blackwood Warrior (in
|
|
607
|
+
// bake). Battle Stance onReset + Thunderclap combat + flee ≤15% + purification pure helpers.
|
|
608
|
+
export const NPC_BLACKWOOD_WARRIOR_SCRIPT: ScriptDevIR = {
|
|
609
|
+
name: 'npc_blackwood_warrior',
|
|
610
|
+
boundCreatures: [NPC_BLACKWOOD_WARRIOR],
|
|
611
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
612
|
+
spellIds: [SPELL_BATTLE_STANCE, SPELL_THUNDERCLAP],
|
|
613
|
+
timers: [
|
|
614
|
+
{
|
|
615
|
+
id: 'battle_stance',
|
|
616
|
+
spellId: SPELL_BATTLE_STANCE,
|
|
617
|
+
initialMinMs: 0,
|
|
618
|
+
initialMaxMs: 0,
|
|
619
|
+
repeatMinMs: 0,
|
|
620
|
+
repeatMaxMs: 0,
|
|
621
|
+
target: 'self',
|
|
622
|
+
onReset: true,
|
|
623
|
+
cite: 'darkshore.cpp:748 Reset DoCastSpellIfCan SPELL_BATTLE_STANCE 7165 (warrior only)',
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
id: 'thunderclap',
|
|
627
|
+
spellId: SPELL_THUNDERCLAP,
|
|
628
|
+
initialMinMs: THUNDERCLAP_MIN_MS,
|
|
629
|
+
initialMaxMs: THUNDERCLAP_MAX_MS,
|
|
630
|
+
repeatMinMs: THUNDERCLAP_MIN_MS,
|
|
631
|
+
repeatMaxMs: THUNDERCLAP_MAX_MS,
|
|
632
|
+
target: 'self',
|
|
633
|
+
// The IN_MELEE_RANGE flag is an EXISTENCE test here, not a pick: the cast goes to nullptr and
|
|
634
|
+
// only happens while somebody is in reach. `select: { notInMelee: false }` was a no-op.
|
|
635
|
+
requireMeleeTargetExists: true,
|
|
636
|
+
cite: 'darkshore.cpp:733,763,803-809 SelectAttackingTarget(RANDOM, 0, 0, SELECT_FLAG_IN_MELEE_RANGE) then DoCastSpellIfCan(nullptr, SPELL_THUNDERCLAP 8078), init/re-arm urand(16,21)s',
|
|
637
|
+
},
|
|
638
|
+
],
|
|
639
|
+
phases: [
|
|
640
|
+
{
|
|
641
|
+
phase: 1,
|
|
642
|
+
hpBelowPct: BLACKWOOD_FLEE_HP_PCT,
|
|
643
|
+
actions: [
|
|
644
|
+
{
|
|
645
|
+
kind: 'yell',
|
|
646
|
+
textId: EMOTE_GENERIC_FLEE,
|
|
647
|
+
cite: 'darkshore.cpp:797 DoScriptText(EMOTE_GENERIC_FLEE) then DoFlee',
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
kind: 'flavor',
|
|
651
|
+
text: 'DoFlee() + DisableCombatAction(ACTION_FLEE); m_hasFled=true',
|
|
652
|
+
cite: 'darkshore.cpp:794-799',
|
|
653
|
+
},
|
|
654
|
+
],
|
|
655
|
+
cite: 'darkshore.cpp:792-801 ACTION_FLEE GetHealthPercent() <= 15.f',
|
|
656
|
+
},
|
|
657
|
+
],
|
|
658
|
+
lifecycle: {
|
|
659
|
+
onReset: [
|
|
660
|
+
{
|
|
661
|
+
kind: 'flavor',
|
|
662
|
+
text: 'CombatAI::Reset + Battle Stance + clear purify flags REACT_AGGRESSIVE strip immune player',
|
|
663
|
+
cite: 'darkshore.cpp:742-757',
|
|
664
|
+
},
|
|
665
|
+
],
|
|
666
|
+
},
|
|
667
|
+
cites: [
|
|
668
|
+
'darkshore.cpp:656-820 npc_corrupted_furbolg (warrior branch)',
|
|
669
|
+
'darkshore.cpp:661-674 entries + spells + emotes',
|
|
670
|
+
'darkshore.cpp:733 Thunderclap 16-21s',
|
|
671
|
+
'darkshore.cpp:748 Battle Stance on Reset',
|
|
672
|
+
'darkshore.cpp:763,803-809 Thunderclap re-arm + cast',
|
|
673
|
+
'darkshore.cpp:792-801 flee ≤15%',
|
|
674
|
+
'darkshore.cpp:769-786 SeekPurification + MovementInform',
|
|
675
|
+
'scriptdev2.sql entry 2168',
|
|
676
|
+
],
|
|
677
|
+
};
|
|
678
|
+
|
|
679
|
+
// ScriptDev IR — npc_blackwood_totemic
|
|
680
|
+
|
|
681
|
+
// Cite: darkshore.cpp npc_corrupted_furbolgAI (entry 2169 branch) Binding: 2169 Blackwood Totemic (in
|
|
682
|
+
// bake). Healing Ward combat + flee ≤15%.
|
|
683
|
+
export const NPC_BLACKWOOD_TOTEMIC_SCRIPT: ScriptDevIR = {
|
|
684
|
+
name: 'npc_blackwood_totemic',
|
|
685
|
+
boundCreatures: [NPC_BLACKWOOD_TOTEMIC],
|
|
686
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
687
|
+
spellIds: [SPELL_HEALING_WARD],
|
|
688
|
+
timers: [
|
|
689
|
+
{
|
|
690
|
+
id: 'healing_ward',
|
|
691
|
+
spellId: SPELL_HEALING_WARD,
|
|
692
|
+
initialMinMs: HEALING_WARD_INIT_MIN_MS,
|
|
693
|
+
initialMaxMs: HEALING_WARD_INIT_MAX_MS,
|
|
694
|
+
repeatMinMs: HEALING_WARD_REPEAT_MIN_MS,
|
|
695
|
+
repeatMaxMs: HEALING_WARD_REPEAT_MAX_MS,
|
|
696
|
+
target: 'self',
|
|
697
|
+
cite: 'darkshore.cpp:734,764,812-816 Healing Ward 5605 self init urand(6,12)s re-arm urand(30,36)s',
|
|
698
|
+
},
|
|
699
|
+
],
|
|
700
|
+
phases: [
|
|
701
|
+
{
|
|
702
|
+
phase: 1,
|
|
703
|
+
hpBelowPct: BLACKWOOD_FLEE_HP_PCT,
|
|
704
|
+
actions: [
|
|
705
|
+
{
|
|
706
|
+
kind: 'yell',
|
|
707
|
+
textId: EMOTE_GENERIC_FLEE,
|
|
708
|
+
cite: 'darkshore.cpp:797 DoScriptText(EMOTE_GENERIC_FLEE) then DoFlee',
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
kind: 'flavor',
|
|
712
|
+
text: 'DoFlee() + DisableCombatAction(ACTION_FLEE); m_hasFled=true',
|
|
713
|
+
cite: 'darkshore.cpp:794-799',
|
|
714
|
+
},
|
|
715
|
+
],
|
|
716
|
+
cite: 'darkshore.cpp:792-801 ACTION_FLEE GetHealthPercent() <= 15.f',
|
|
717
|
+
},
|
|
718
|
+
],
|
|
719
|
+
lifecycle: {
|
|
720
|
+
onReset: [
|
|
721
|
+
{
|
|
722
|
+
kind: 'flavor',
|
|
723
|
+
text: 'CombatAI::Reset; totemic no Battle Stance; clear purify flags',
|
|
724
|
+
cite: 'darkshore.cpp:742-757 totemic case break',
|
|
725
|
+
},
|
|
726
|
+
],
|
|
727
|
+
},
|
|
728
|
+
cites: [
|
|
729
|
+
'darkshore.cpp:656-820 npc_corrupted_furbolg (totemic branch)',
|
|
730
|
+
'darkshore.cpp:662,674,734,764,812-816 Healing Ward',
|
|
731
|
+
'darkshore.cpp:792-801 flee ≤15%',
|
|
732
|
+
'darkshore.cpp:769-786 SeekPurification + MovementInform',
|
|
733
|
+
'scriptdev2.sql entry 2169',
|
|
734
|
+
],
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
// ScriptDev IR — event_purify_food
|
|
738
|
+
|
|
739
|
+
// Cite: darkshore.cpp ProcessEventId_event_purify_food Binding: scriptdev2.sql event 3938 (no creature
|
|
740
|
+
// ScriptName). Host models ProcessEventId as goUse-shaped event (no GO entries) like event_arcanite_buoy.
|
|
741
|
+
export const EVENT_PURIFY_FOOD: ScriptDevIR = {
|
|
742
|
+
name: 'event_purify_food',
|
|
743
|
+
boundCreatures: [],
|
|
744
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
745
|
+
spellIds: [],
|
|
746
|
+
timers: [],
|
|
747
|
+
goUse: {
|
|
748
|
+
goEntries: [],
|
|
749
|
+
actions: [
|
|
750
|
+
{
|
|
751
|
+
kind: 'summon_count',
|
|
752
|
+
creatureEntry: NPC_BLACKWOOD_WARRIOR,
|
|
753
|
+
count: PURIFY_EXTRA_WARRIORS,
|
|
754
|
+
radiusYd: PURIFY_SUMMON_RADIUS_YD,
|
|
755
|
+
cite: 'darkshore.cpp:840-844 SummonCreature ×2 NPC_BLACKWOOD_WARRIOR r30 TEMPSPAWN 120000',
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
kind: 'flavor',
|
|
759
|
+
text: `player bowl @ BOWL_DISTANCE=${BOWL_DISTANCE}; grid furbolgs 2168/2169 ≤${PURIFY_FURBOLG_SEARCH_YD}yd SeekPurification(last=first); skip in-combat/dead/!CanAttack`,
|
|
760
|
+
cite: 'darkshore.cpp:830-855',
|
|
761
|
+
},
|
|
762
|
+
],
|
|
763
|
+
cite: `darkshore.cpp:826-860 ProcessEventId_event_purify_food; scriptdev2.sql event ${EVENT_ID_PURIFY_FOOD}`,
|
|
764
|
+
},
|
|
765
|
+
unusedBindings: [
|
|
766
|
+
{
|
|
767
|
+
entry: GO_PURIFIED_FOOD,
|
|
768
|
+
kind: 'go',
|
|
769
|
+
reason:
|
|
770
|
+
'GO 175336 Purified Food is referenced by the Blackwood purification quest chain (darkshore.cpp:664) but is not a ScriptName binding for event_purify_food (ProcessEventId 3938). Absent from product tables/gameObjects.json; present in gameobject-data.json.',
|
|
771
|
+
cite: 'darkshore.cpp:664; scriptdev2.sql event 3938; tables/gameObjects missing 175336',
|
|
772
|
+
},
|
|
773
|
+
],
|
|
774
|
+
cites: [
|
|
775
|
+
'darkshore.cpp:822-860 event_purify_food',
|
|
776
|
+
'darkshore.cpp:835-855 grid + summons + SeekPurification',
|
|
777
|
+
'darkshore.cpp:936-938 RegisterSelf pProcessEventId',
|
|
778
|
+
'scriptdev2.sql (3938,event_purify_food)',
|
|
779
|
+
],
|
|
780
|
+
};
|
|
781
|
+
|
|
782
|
+
// ScriptDev IR — go_furbolg_food
|
|
783
|
+
|
|
784
|
+
// GOUse_go_furbolg_food, GO 175329/175330/175331. All three are absent from
|
|
785
|
+
// tables/gameObjects.json, so the bindings are unused; the IR and pure helper are ported.
|
|
786
|
+
export const GO_FURBOLG_FOOD_SCRIPT: ScriptDevIR = {
|
|
787
|
+
name: 'go_furbolg_food',
|
|
788
|
+
boundCreatures: [],
|
|
789
|
+
boundGos: [...GO_FURBOLG_FOOD_ENTRIES],
|
|
790
|
+
sourceFile: 'kalimdor/darkshore.cpp',
|
|
791
|
+
spellIds: [],
|
|
792
|
+
timers: [],
|
|
793
|
+
goUse: {
|
|
794
|
+
goEntries: [...GO_FURBOLG_FOOD_ENTRIES],
|
|
795
|
+
actions: [
|
|
796
|
+
{
|
|
797
|
+
kind: 'flavor',
|
|
798
|
+
text: `closest warrior 2168 ≤${FURBOLG_FOOD_RANGE_YD}yd AttackStart else SummonCreature 2168 r${FURBOLG_FOOD_RANGE_YD} TEMPSPAWN ${BLACKWOOD_TEMP_DESPAWN_MS} + AttackStart (furbolgFoodUse)`,
|
|
799
|
+
cite: 'darkshore.cpp:867-884',
|
|
800
|
+
},
|
|
801
|
+
],
|
|
802
|
+
cite: 'darkshore.cpp:867-884 GOUse_go_furbolg_food',
|
|
803
|
+
},
|
|
804
|
+
unusedBindings: GO_FURBOLG_FOOD_ENTRIES.map((entry) => ({
|
|
805
|
+
entry,
|
|
806
|
+
kind: 'go' as const,
|
|
807
|
+
reason: `GO ${entry} is DB-bound ScriptName go_furbolg_food but absent from product tables/gameObjects.json (present in gameobject-data.json) - IR + pure helper ported; product GO use not spawnable until tables row.`,
|
|
808
|
+
cite: `scriptdev2.sql entry ${entry}; darkshore.cpp:867-884; tables/gameObjects missing ${entry}`,
|
|
809
|
+
})),
|
|
810
|
+
cites: [
|
|
811
|
+
'darkshore.cpp:863-884 go_furbolg_food',
|
|
812
|
+
'darkshore.cpp:870-881 warrior search 20yd or summon AttackStart',
|
|
813
|
+
'darkshore.cpp:940-943 RegisterSelf pGOUse',
|
|
814
|
+
'scriptdev2.sql entries 175329/175330/175331',
|
|
815
|
+
],
|
|
816
|
+
};
|
|
817
|
+
|