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,295 @@
|
|
|
1
|
+
// The data contract between the offline ETL and the runtime engine: the ETL bakes FINAL numbers
|
|
2
|
+
// into JSON matching these shapes. No TS `enum`/`namespace` — only erasable syntax.
|
|
3
|
+
|
|
4
|
+
export type Stat = 'str' | 'agi' | 'sta' | 'int' | 'spi' |
|
|
5
|
+
// secondary combat ratings (Item 5 data track + later engine)
|
|
6
|
+
'crit' | 'hit' | 'haste' | 'dodge' | 'parry' | 'block' | 'defense' |
|
|
7
|
+
// SPELL_AURA_MOD_SPELL_HIT_CHANCE (55) / MOD_SPELL_CRIT_CHANCE (57) — not melee hit/crit.
|
|
8
|
+
// Cite: SpellAuras.cpp HandleModSpellHitChance; HandleModSpellCritChance.
|
|
9
|
+
'spellHit' | 'spellCrit' |
|
|
10
|
+
'spellPower' | 'mp5' |
|
|
11
|
+
// flat pools (ITEM_MOD_MANA 0 / ITEM_MOD_HEALTH 1)
|
|
12
|
+
'mana' | 'health' |
|
|
13
|
+
// resistances (by school)
|
|
14
|
+
'resHoly' | 'resFire' | 'resNature' | 'resFrost' | 'resShadow' | 'resArcane' |
|
|
15
|
+
// per-school flat +spell damage (SPELL_AURA_MOD_DAMAGE_DONE one-school). Mirrors resHoly..resArcane.
|
|
16
|
+
'spellHoly' | 'spellFire' | 'spellNature' | 'spellFrost' | 'spellShadow' | 'spellArcane';
|
|
17
|
+
export type School =
|
|
18
|
+
| 'physical' | 'holy' | 'fire' | 'nature' | 'frost' | 'shadow' | 'arcane';
|
|
19
|
+
// 'focus' is pet-only and 'energy' is the rogue's fixed 0..100 pool. 'health' is only a spell COST
|
|
20
|
+
// power type (POWER_HEALTH = −2), never an active bar. Cite: SharedDefines.h Powers.
|
|
21
|
+
export type PowerType = 'mana' | 'rage' | 'focus' | 'energy' | 'health';
|
|
22
|
+
|
|
23
|
+
// Shapeshift form id from SpellShapeshiftForm / spell_template EffectMiscValue of SPELL_AURA_MOD_SHAPESHIFT
|
|
24
|
+
// (36). Values match CMaNGOS `ShapeshiftForm` (SpellDefines.h). 0 / absent = humanoid (no form).
|
|
25
|
+
export type ShapeshiftFormId = number;
|
|
26
|
+
|
|
27
|
+
export type ItemQuality = 0 | 1 | 2 | 3 | 4 | 5; // poor, common, uncommon, rare, epic, legendary
|
|
28
|
+
|
|
29
|
+
// The kind of slot an item can go into, its intrinsic WoW InventoryType mapped to a name.
|
|
30
|
+
// `twohand` occupies the main hand but blocks the off hand; `bag` grows the backpack.
|
|
31
|
+
export type ItemSlot =
|
|
32
|
+
| 'head' | 'neck' | 'shoulder' | 'back' | 'chest' | 'wrist'
|
|
33
|
+
| 'hands' | 'waist' | 'legs' | 'feet' | 'finger' | 'trinket'
|
|
34
|
+
| 'shirt' // INVTYPE_BODY (4) — starter harnesses/shirts; under chest on paperdoll
|
|
35
|
+
| 'mainhand' | 'offhand' | 'twohand' | 'ranged' | 'bag';
|
|
36
|
+
|
|
37
|
+
// A physical slot on the character's paperdoll. Rings and trinkets have two each, a two-hander
|
|
38
|
+
// keeps `offhand` empty, `bag1..4` extend the backpack, and `shirt` is INVTYPE_BODY.
|
|
39
|
+
export type EquipSlot =
|
|
40
|
+
| 'head' | 'neck' | 'shoulder' | 'back' | 'chest' | 'shirt' | 'wrist'
|
|
41
|
+
| 'hands' | 'waist' | 'legs' | 'feet' | 'finger1' | 'finger2'
|
|
42
|
+
| 'trinket1' | 'trinket2' | 'mainhand' | 'offhand' | 'ranged'
|
|
43
|
+
| 'bag1' | 'bag2' | 'bag3' | 'bag4';
|
|
44
|
+
|
|
45
|
+
export interface PrimaryStats {
|
|
46
|
+
str: number;
|
|
47
|
+
agi: number;
|
|
48
|
+
sta: number;
|
|
49
|
+
int: number;
|
|
50
|
+
spi: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ---- Spells ---------------------------------------------------------------
|
|
54
|
+
|
|
55
|
+
// One conditions-table row (ConditionEntry) for cast/use/loot/gossip gates. Combinators are
|
|
56
|
+
// AND/OR/NOT (-1/-2/-3) with value1/value2 as nested ids. Production data must be ETL-sourced.
|
|
57
|
+
export type ConditionTypeId =
|
|
58
|
+
| -3 | -2 | -1 // NOT, OR, AND
|
|
59
|
+
| 0 // NONE
|
|
60
|
+
| 1 // AURA
|
|
61
|
+
| 2 // ITEM
|
|
62
|
+
| 3 // ITEM_EQUIPPED
|
|
63
|
+
| 4 // AREAID
|
|
64
|
+
| 5 // REPUTATION_RANK_MIN (Conditions.h)
|
|
65
|
+
| 6 // TEAM
|
|
66
|
+
| 7 // SKILL
|
|
67
|
+
| 8 // QUESTREWARDED
|
|
68
|
+
| 9 // QUESTTAKEN
|
|
69
|
+
| 10 // AD_COMMISSION_AURA (Conditions.h)
|
|
70
|
+
| 11 // PVP_RANK (Conditions.h)
|
|
71
|
+
| 12 // ACTIVE_GAME_EVENT
|
|
72
|
+
| 26 // ACTIVE_HOLIDAY
|
|
73
|
+
| 14 // RACE_CLASS
|
|
74
|
+
| 15 // LEVEL
|
|
75
|
+
| 17 // SPELL
|
|
76
|
+
| 22 // QUEST_NONE
|
|
77
|
+
| 30 // REPUTATION_RANK_MAX
|
|
78
|
+
| 31 // COMPLETED_ENCOUNTER
|
|
79
|
+
| 35 // GENDER
|
|
80
|
+
| 43 // IS_IN_COMBAT
|
|
81
|
+
| number; // allow full enum for future types
|
|
82
|
+
|
|
83
|
+
export interface ConditionDef {
|
|
84
|
+
id: number;
|
|
85
|
+
type: ConditionTypeId;
|
|
86
|
+
value1: number;
|
|
87
|
+
value2?: number;
|
|
88
|
+
value3?: number;
|
|
89
|
+
value4?: number;
|
|
90
|
+
/** CONDITION_FLAG_REVERSE_RESULT = 0x1 */
|
|
91
|
+
flags?: number;
|
|
92
|
+
// Optional nested defs for AND/OR/NOT when not using a flat id→def map (value1/value2 still hold nested
|
|
93
|
+
// condition ids when map lookup is used).
|
|
94
|
+
nested?: ConditionDef[];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// What a `buff` effect raises. Every mod here is applied live, and the primary-stat names cascade
|
|
98
|
+
// to the same derivatives the sheet folds them into. Cite: characterStats effectiveStats.
|
|
99
|
+
export type BuffMod =
|
|
100
|
+
// MOD_ATTACK_POWER (99) and MOD_RANGED_ATTACK_POWER (124) are different auras and different
|
|
101
|
+
// pools: UpdateAttackPowerAndDamage runs twice, the ranged pass reading its own.
|
|
102
|
+
| 'attack_power' | 'ranged_attack_power' | 'armor'
|
|
103
|
+
// Percent armor modifier (aura 101 with the physical school mask — Pierce Armor, Expose Armor).
|
|
104
|
+
// TOTAL_PCT: effective armor = armor × (1 + Σamount/100). Cite: HandleModResistancePercent.
|
|
105
|
+
| 'armor_pct'
|
|
106
|
+
// Percent modifier on BASE (item) armor only (aura 142, physical mask — Toughness, Thick Hide).
|
|
107
|
+
// BASE_PCT, so the agility and flat-buff terms are NOT multiplied. Cite: Unit.cpp:9067.
|
|
108
|
+
| 'armor_base_pct'
|
|
109
|
+
| 'strength' | 'agility' | 'stamina' | 'intellect' | 'spirit' | 'all_stats'
|
|
110
|
+
// Auras 80 / 137 with a SINGLE stat in EffectMiscValue — whole percent on that stat's TOTAL_PCT.
|
|
111
|
+
// Not interchangeable with the flat names: Demonic Embrace is +15% Stamina, not +15 Stamina.
|
|
112
|
+
| 'strength_pct' | 'agility_pct' | 'stamina_pct' | 'intellect_pct' | 'spirit_pct'
|
|
113
|
+
| 'spell_power' | 'mp5'
|
|
114
|
+
// SPELL_AURA_MOD_DAMAGE_DONE (13) with EXACTLY ONE magic school bit in EffectMiscValue.
|
|
115
|
+
// Paperdoll Stat spellFire..spellArcane; live map spellDamageBySchool. Cite: Unit.cpp ~7129.
|
|
116
|
+
| 'spell_damage_holy' | 'spell_damage_fire' | 'spell_damage_nature'
|
|
117
|
+
| 'spell_damage_frost' | 'spell_damage_shadow' | 'spell_damage_arcane'
|
|
118
|
+
// SPELL_AURA_MOD_POWER_REGEN_PERCENT (110) for POWER_MANA — whole percent on the spirit OCT
|
|
119
|
+
// (Evocation +1500 → ×16). Cite: StatSystem.cpp:551–552; Unit.cpp:4611–4622.
|
|
120
|
+
| 'mana_regen_pct'
|
|
121
|
+
// SPELL_AURA_MOD_POWER_REGEN_PERCENT (110) for POWER_ENERGY — whole percent on energy regen (Adrenaline Rush +100%).
|
|
122
|
+
| 'energy_regen_pct'
|
|
123
|
+
// SPELL_AURA_MOD_MANA_REGEN_INTERRUPT (134) — additive % of spirit regen while casting
|
|
124
|
+
// (Evocation/Innervate 100; Meditation talent ranks). Cite: StatSystem.cpp:558–562.
|
|
125
|
+
| 'mana_regen_interrupt'
|
|
126
|
+
// Melee haste % (Slice and Dice SPELL_AURA_MOD_MELEE_HASTE = 138). Applied live on Fighter.haste.
|
|
127
|
+
| 'haste'
|
|
128
|
+
// Cast speed % (aura 65), applied live on Fighter.castHaste. Separate from 'haste' because the
|
|
129
|
+
// C++ never routes it to a swing timer: Burning Adrenaline's 100000 would be 1001x attack speed.
|
|
130
|
+
| 'cast_haste'
|
|
131
|
+
// Flat physical damage taken modifier (SPELL_AURA_MOD_DAMAGE_TAKEN = 125). Stoneskin Totem stores
|
|
132
|
+
// a negative amount (e.g. -5) so incoming melee is reduced by that many points after armor.
|
|
133
|
+
| 'physical_taken'
|
|
134
|
+
// Flat RANGED damage taken (aura 113) — the ranged-only twin of physical_taken, and the whole
|
|
135
|
+
// content of Windwall Totem. Cite: SpellAuras.cpp:174 → Unit::MeleeDamageBonusTaken.
|
|
136
|
+
| 'ranged_taken'
|
|
137
|
+
// Percent physical damage taken (aura 87 physical mask, aura 126). dealDamage multiplies by
|
|
138
|
+
// (1 + Σamount/100) after armor and flat physical_taken. Cite: Unit.cpp:7628 / :7634.
|
|
139
|
+
| 'physical_taken_pct'
|
|
140
|
+
// School-scoped percent damage taken (aura 87 with a magic or multi-bit mask): CoE fire|frost +6,
|
|
141
|
+
// CoS shadow|arcane +8. The buff carries `school` or `schoolMask`; absent mask → all schools.
|
|
142
|
+
| 'damage_taken_pct'
|
|
143
|
+
// Flat spell/magic damage taken (aura 14 with a magic school mask). Negative reduces incoming
|
|
144
|
+
// spell damage and Amplify Magic is positive. Applied on the non-physical dealDamage path.
|
|
145
|
+
| 'spell_taken'
|
|
146
|
+
// Flat healing taken modifier (SPELL_AURA_MOD_HEALING = 115) — Dampen/Amplify Magic effect 2.
|
|
147
|
+
| 'healing_taken'
|
|
148
|
+
// Percent healing taken (aura 118). The heal path multiplies by (1 + Σamount/100) after flat
|
|
149
|
+
// healing_taken. Mortal Strike −50, Wound Poison −75. Cite: Unit.cpp:7239–7245.
|
|
150
|
+
| 'healing_taken_pct'
|
|
151
|
+
// Victim aura granting attackers +AP (aura 127), applied on the VICTIM — attackers use the bonus
|
|
152
|
+
// when striking the marked target. Hunter's Mark effect 2, not +AP on the mob itself.
|
|
153
|
+
| 'attacker_attack_power'
|
|
154
|
+
// Victim aura granting attackers +spell crit % for the schools in schoolMask (aura 179, Winter's
|
|
155
|
+
// Chill). Whole percentage points. Cite: Unit.cpp:3516–3536 GetCritTakenChance.
|
|
156
|
+
| 'attacker_spell_crit'
|
|
157
|
+
// SPELL_AURA_MOD_TOTAL_THREAT (103) — Fade: signed temporary total-threat modifier on the caster.
|
|
158
|
+
// Amount is EffectBasePoints+dice (Fade R1 bp −56 → −55). Live wire multiplies threat generation.
|
|
159
|
+
| 'threat_mod'
|
|
160
|
+
// Temporary max-health % (aura 137, Last Stand's 12976 +30% for 20s). The engine converts it to a
|
|
161
|
+
// flat `max_health` delta at apply time so expiry reverses the exact amount.
|
|
162
|
+
| 'max_health_pct'
|
|
163
|
+
| 'max_health'
|
|
164
|
+
// Flat max mana (aura 35 with EffectMiscValue POWER_MANA = 0) — Flask of Distilled Wisdom +2000.
|
|
165
|
+
// Cite: SpellAuras.cpp HandleAuraModIncreaseEnergy; map-spell-effects.mjs aura === 35.
|
|
166
|
+
| 'max_mana'
|
|
167
|
+
// SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT = 132 for POWER_MANA.
|
|
168
|
+
// Mental Strength +10% max mana. Cite: SpellAuras.cpp HandleAuraModIncreaseEnergyPercent.
|
|
169
|
+
| 'max_mana_pct'
|
|
170
|
+
// Flat parry / dodge / block percentage points (auras 47 / 49 / 51). The engine applies
|
|
171
|
+
// amount/100 to the fighter's chance and reverses it on expiry. Cite: SpellAuras.cpp:3789–3800.
|
|
172
|
+
| 'parry'
|
|
173
|
+
| 'dodge'
|
|
174
|
+
| 'block'
|
|
175
|
+
// MOD_CRIT_PERCENT (52) / MOD_HIT_CHANCE (54) — whole percentage points, from gear equip auras
|
|
176
|
+
// and temporary buffs. Paperdoll Stat.crit / Stat.hit; combat spec.critChance / hitChance.
|
|
177
|
+
| 'crit'
|
|
178
|
+
| 'hit'
|
|
179
|
+
// SPELL_AURA_MOD_AOE_AVOIDANCE (160) — whole miss %points vs area spells.
|
|
180
|
+
// Cite: Unit.cpp:3713–3715 MagicSpellHitResult GetTotalAuraModifier.
|
|
181
|
+
| 'aoe_avoidance'
|
|
182
|
+
// SPELL_AURA_MOD_SKILL (30) with EffectMiscValue = SKILL_DEFENSE (95) — flat defense skill, not
|
|
183
|
+
// a chance field. Paperdoll Stat.defense → defenseSkill(). Cite: SpellAuras.cpp:2055.
|
|
184
|
+
| 'defense'
|
|
185
|
+
// SPELL_AURA_MOD_HEALING_DONE (135) — flat +healing from Increase Healing N equip auras,
|
|
186
|
+
// consumed by SpellHealingBonusDone. Distinct from healing_done_pct (136).
|
|
187
|
+
| 'healing_done'
|
|
188
|
+
// SPELL_AURA_MOD_SHIELD_BLOCKVALUE (158) — flat shield block value points.
|
|
189
|
+
// Player HandleBaseModValue(SHIELD_BLOCK_VALUE, FLAT_MOD). Cite: SpellAuras.cpp:4426–4433.
|
|
190
|
+
| 'block_value' | 'block_value_pct'
|
|
191
|
+
// SPELL_AURA_MOD_SPELL_DAMAGE_OF_STAT_PERCENT (174) — spell power equal to a % of spirit,
|
|
192
|
+
// pre-converted to a flat `spell_power` delta at apply so expiry reverses the exact amount.
|
|
193
|
+
| 'spell_power_of_spirit_pct'
|
|
194
|
+
// SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT (175) — healing equal to a % of spirit,
|
|
195
|
+
// pre-converted to a flat `healing_done` delta using the target's spirit at apply time.
|
|
196
|
+
| 'healing_power_of_spirit_pct'
|
|
197
|
+
// SPELL_AURA_MOD_DAMAGE_PERCENT_DONE (79) — whole percent added live to damagePctBySchool. A
|
|
198
|
+
// `school` on the buff raises only that school; absent raises every one. Reverses on expiry.
|
|
199
|
+
| 'damage_done_pct'
|
|
200
|
+
// SPELL_AURA_MOD_HEALING_DONE_PERCENT (136) — % increase to healing done (Power Infusion +20%).
|
|
201
|
+
// Whole percent; raises the fighter's live `healingPct`, read when a heal amount is rolled.
|
|
202
|
+
| 'healing_done_pct'
|
|
203
|
+
// Aura 137 with EffectMiscValue −1 (all stats) — Blessing of Kings +10%. The engine holds
|
|
204
|
+
// derived stats, so this moves attack power and max health only; spell power is fixed at build.
|
|
205
|
+
| 'all_stats_pct'
|
|
206
|
+
// SPELL_AURA_MOD_ATTACK_POWER_PCT (166) — TOTAL_PCT on UNIT_MOD_ATTACK_POWER, so AP only.
|
|
207
|
+
// Converted to a flat attack_power delta at apply so expiry reverses instead of compounding.
|
|
208
|
+
| 'attack_power_pct'
|
|
209
|
+
// Auras 73 (flat) and 72 (percent), both scoped to the EffectMiscValue school mask.
|
|
210
|
+
// CalculatePowerCost is (base + flat) × (1 + pct/100), clamped at 0. Cite: Spell.cpp:6358/:6368.
|
|
211
|
+
| 'power_cost'
|
|
212
|
+
| 'power_cost_pct'
|
|
213
|
+
// SPELL_AURA_MOD_SPELL_HIT_CHANCE (55) — whole percentage points off the magic miss roll.
|
|
214
|
+
// Distinct from 'hit' (aura 54), which is the melee/ranged table.
|
|
215
|
+
| 'spell_hit'
|
|
216
|
+
// SPELL_AURA_MOD_SPELL_CRIT_CHANCE (57) — whole percentage points of SPELL crit, the twin of
|
|
217
|
+
// 'crit' (aura 52). Raises spec.spellCritChance, which defaults from critChance when unset.
|
|
218
|
+
| 'spell_crit'
|
|
219
|
+
// Auras 102 / 131 — flat AP only when the target's creature type matches the EffectMiscValue
|
|
220
|
+
// MASK (1 << (type−1)). Applied in MeleeDamageBonusDone as APbonus, not sheet AP.
|
|
221
|
+
| 'attack_power_versus'
|
|
222
|
+
| 'ranged_attack_power_versus'
|
|
223
|
+
// SPELL_AURA_MOD_FLAT_SPELL_DAMAGE_VERSUS (180). Flat spell damage when target type matches
|
|
224
|
+
// creature-type mask. Cite: Unit.cpp:7055 SpellDamageBonusDone.
|
|
225
|
+
| 'spell_damage_versus'
|
|
226
|
+
// SPELL_AURA_MOD_DAMAGE_DONE_VERSUS (168) — whole-percent multiplier on melee, ranged AND spell
|
|
227
|
+
// damage vs a creature-type mask. Percent, not flat, which is why it is not spell_damage_versus.
|
|
228
|
+
| 'damage_done_versus_pct'
|
|
229
|
+
// SPELL_AURA_MOD_DAMAGE_DONE_CREATURE (59) - flat damage vs a creature-type mask
|
|
230
|
+
// (Beastslayer / Elemental Slayer). Cite: Unit.cpp:7061 SpellDamageBonusDone; :7465 melee.
|
|
231
|
+
| 'damage_done_creature'
|
|
232
|
+
// SPELL_AURA_MOD_TARGET_RESISTANCE (123). The aura amount is typically NEGATIVE in the DBC, so
|
|
233
|
+
// penetration = −amount. The buff carries `schoolMask`. Cite: Unit.cpp:3890–3894.
|
|
234
|
+
| 'target_resistance'
|
|
235
|
+
// SPELL_AURA_MOD_OFFHAND_DAMAGE_PCT (122) — whole percent onto UNIT_MOD_DAMAGE_OFFHAND
|
|
236
|
+
// TOTAL_PCT, which starts at 0.5, so Dual Wield Specialization 5/5 makes it 0.625.
|
|
237
|
+
| 'offhand_damage_pct'
|
|
238
|
+
// SPELL_AURA_MOD_CRIT_PERCENT_VERSUS (169) — whole percent onto the crit MULTIPLIER, not the
|
|
239
|
+
// chance, when the type matches: Monster Slaying 3/3 turns a 2x melee crit into 2.06x.
|
|
240
|
+
| 'crit_damage_versus_pct'
|
|
241
|
+
// SPELL_AURA_MOD_RESISTANCE_OF_STAT_PERCENT (182) — armor gains `amount`% of INTELLECT. Classic
|
|
242
|
+
// only supports the NORMAL school mask; others log an error. Cite: StatSystem.cpp:125-138.
|
|
243
|
+
| 'armor_from_intellect_pct'
|
|
244
|
+
// Victim-side "attacker chance" auras. The amount is the DBC value, normally NEGATIVE on a
|
|
245
|
+
// defensive talent, and is SUBTRACTED from the attacker's roll. Cite: Unit.cpp:3525-3528.
|
|
246
|
+
| 'attacker_melee_crit'
|
|
247
|
+
| 'attacker_ranged_crit'
|
|
248
|
+
| 'attacker_ranged_hit'
|
|
249
|
+
| 'attacker_spell_hit';
|
|
250
|
+
|
|
251
|
+
/** Classic shaman totem element slot (CMaNGOS TotemSlot: FIRE=0 EARTH=1 WATER=2 AIR=3). */
|
|
252
|
+
export type TotemSlot = 'fire' | 'earth' | 'water' | 'air';
|
|
253
|
+
|
|
254
|
+
// A crowd-control school of effect; `root` lives here so all loss-of-control shares one path.
|
|
255
|
+
// stun/fear/incapacitate lock out fully, silence blocks casts, disarm melee, snare only speed.
|
|
256
|
+
export type ControlKind = 'stun' | 'fear' | 'incapacitate' | 'silence' | 'disarm' | 'root' | 'snare' | 'charm';
|
|
257
|
+
|
|
258
|
+
// The DB "Mechanic": groups diminishing-returns categories and gates creature-type immunity. A
|
|
259
|
+
// superset of ControlKind, since a damage spell can carry one. Cite: SharedDefines.h:351–384.
|
|
260
|
+
export type Mechanic =
|
|
261
|
+
| 'none'
|
|
262
|
+
| 'charm' // 1
|
|
263
|
+
| 'disoriented' // 2
|
|
264
|
+
| 'disarm' // 3
|
|
265
|
+
| 'distract' // 4
|
|
266
|
+
| 'fear' // 5
|
|
267
|
+
| 'fumble' // 6
|
|
268
|
+
| 'root' // 7
|
|
269
|
+
| 'pacify' // 8
|
|
270
|
+
| 'silence' // 9
|
|
271
|
+
| 'sleep' // 10
|
|
272
|
+
| 'snare' // 11
|
|
273
|
+
| 'stun' // 12
|
|
274
|
+
| 'freeze' // 13
|
|
275
|
+
| 'knockout' // 14
|
|
276
|
+
| 'bleed' // 15
|
|
277
|
+
| 'bandage' // 16
|
|
278
|
+
| 'polymorph' // 17
|
|
279
|
+
| 'banish' // 18
|
|
280
|
+
| 'shield' // 19
|
|
281
|
+
| 'shackle' // 20
|
|
282
|
+
| 'mount' // 21
|
|
283
|
+
| 'persuade' // 22
|
|
284
|
+
| 'turn' // 23
|
|
285
|
+
| 'horror' // 24
|
|
286
|
+
| 'invulnerability' // 25
|
|
287
|
+
| 'interrupt' // 26
|
|
288
|
+
| 'daze' // 27
|
|
289
|
+
| 'discovery' // 28
|
|
290
|
+
| 'immune_shield' // 29
|
|
291
|
+
| 'sap'; // 30 MECHANIC_SAPPED
|
|
292
|
+
|
|
293
|
+
// Paladin seal school — a 30s self-aura whose per-swing holy the engine computes from the real
|
|
294
|
+
// formula, since the DB stores coefficients. `crusader` has no on-swing holy, only the Judgement.
|
|
295
|
+
export type SealKind = 'righteousness' | 'command' | 'light' | 'wisdom' | 'justice' | 'crusader';
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import type { ItemQuality, ItemSlot, Stat } from './primitives.ts';
|
|
2
|
+
|
|
3
|
+
// ---- Professions ----------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
export type SkillLine =
|
|
6
|
+
| 'mining' | 'herbalism' | 'skinning' // gathering
|
|
7
|
+
| 'blacksmithing' | 'leatherworking' | 'tailoring'
|
|
8
|
+
| 'alchemy' | 'engineering' | 'enchanting' // crafting
|
|
9
|
+
| 'cooking' | 'firstaid' | 'fishing' | 'poisons'; // secondary
|
|
10
|
+
|
|
11
|
+
export type ProfessionKind = 'gathering' | 'crafting' | 'secondary';
|
|
12
|
+
|
|
13
|
+
// CMaNGOS skill-line id → our SkillLine key: the DB speaks numeric ids while SkillMap keys on the
|
|
14
|
+
// name. Mirrors extract-professions.mjs SKILL_LINE — keep the two in step.
|
|
15
|
+
export const SKILL_LINE_BY_ID: Readonly<Record<number, SkillLine>> = Object.freeze({
|
|
16
|
+
164: 'blacksmithing',
|
|
17
|
+
165: 'leatherworking',
|
|
18
|
+
197: 'tailoring',
|
|
19
|
+
171: 'alchemy',
|
|
20
|
+
202: 'engineering',
|
|
21
|
+
333: 'enchanting',
|
|
22
|
+
186: 'mining',
|
|
23
|
+
185: 'cooking',
|
|
24
|
+
129: 'firstaid',
|
|
25
|
+
356: 'fishing',
|
|
26
|
+
182: 'herbalism',
|
|
27
|
+
393: 'skinning',
|
|
28
|
+
40: 'poisons',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// A rung on a profession's mastery ladder. Learning a rank raises the skill cap and gates on level
|
|
32
|
+
// and skill; when `reqSkill` is absent the domain falls back to current-cap − 25.
|
|
33
|
+
export interface ProfessionRank {
|
|
34
|
+
rank: number; // 1 = Apprentice, 2 = Journeyman, …
|
|
35
|
+
name: string; // "Apprentice"
|
|
36
|
+
cap: number; // max skill this rank permits (75 / 150 / 225 / …)
|
|
37
|
+
reqLevel: number; // character level required to train it
|
|
38
|
+
cost: number; // copper
|
|
39
|
+
/** Min profession skill to train this rank (0/absent = first rank or use classic margin). */
|
|
40
|
+
reqSkill?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface ProfessionDef {
|
|
43
|
+
id: SkillLine;
|
|
44
|
+
name: string; // "Mining"
|
|
45
|
+
kind: ProfessionKind;
|
|
46
|
+
ranks: ProfessionRank[];
|
|
47
|
+
icon?: string; // WoW icon name (e.g. "trade_mining"); UI-only, absent => fallback
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// WoW's orange/yellow/green/gray difficulty thresholds. Below `orange` you cannot perform it and
|
|
51
|
+
// at or above `gray` it grants no skill-ups; in between the skill-up chance falls off.
|
|
52
|
+
export interface SkillCurve {
|
|
53
|
+
orange: number;
|
|
54
|
+
yellow: number;
|
|
55
|
+
green: number;
|
|
56
|
+
gray: number;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** A crafting recipe: reagents in, product out, gated by one profession's skill. */
|
|
60
|
+
export interface RecipeDef extends SkillCurve {
|
|
61
|
+
id: number;
|
|
62
|
+
skill: SkillLine;
|
|
63
|
+
name: string;
|
|
64
|
+
// `count` is the roll's minimum, `countMax` its top when the spell's dieSides exceed baseDice
|
|
65
|
+
// (Large Copper Bomb 2-4). Cite: SpellEffects.cpp:1971; Object.cpp:2949.
|
|
66
|
+
product: { item: number; count: number; countMax?: number };
|
|
67
|
+
reagents: { item: number; count: number }[];
|
|
68
|
+
// SpellEntry.Totem1/2 — tool items the crafter must be CARRYING, never consumed (Blacksmith
|
|
69
|
+
// Hammer 5956 on 334 recipes). 380 of 1,135. Cite: Spell.cpp:6599-6615 SPELL_FAILED_TOTEMS.
|
|
70
|
+
requiredTools?: number[];
|
|
71
|
+
// SpellEntry.RequiresSpellFocus — a SpellFocusObject.dbc id the crafter must reach (anvil 1 on
|
|
72
|
+
// 311 recipes). Checked against the zone's `craftingFocus`, since there is no in-zone position.
|
|
73
|
+
requiresSpellFocus?: number;
|
|
74
|
+
// SpellEntry.RecoveryTime / Category / CategoryRecoveryTime. Mooncloth is a 4-day personal CD;
|
|
75
|
+
// the 12 transmutes and Refined Scale of Onyxia share category 310. Cite: Player.cpp:20117-20200
|
|
76
|
+
// Player::AddCooldown. Absent = the craft has no cooldown (1,121 of the 1,135 baked recipes).
|
|
77
|
+
cooldownMs?: number;
|
|
78
|
+
cooldownCategory?: number;
|
|
79
|
+
categoryCooldownMs?: number;
|
|
80
|
+
source: 'trainer' | 'drop' | 'vendor'; // how the recipe is acquired
|
|
81
|
+
trainer?: number; // prof-trainer entry that teaches it (source === 'trainer' ONLY)
|
|
82
|
+
recipeItem?: number; // the item entry that teaches it when used (source === 'drop' | 'vendor')
|
|
83
|
+
cost?: number; // copper to learn (trainer); default 0
|
|
84
|
+
// npc_trainer.reqlevel — character level the trainer demands before teaching it. 0/absent = none.
|
|
85
|
+
// Real on the rogue poison ranks (Mind-numbing r1: reqlevel 24); 0 on crafting-trainer rows.
|
|
86
|
+
reqLevel?: number;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** A single yield roll on a gather node (independent chance, like ungrouped loot). */
|
|
90
|
+
export interface GatherYield {
|
|
91
|
+
item: number;
|
|
92
|
+
chance: number; // percent (0..100)
|
|
93
|
+
minCount: number;
|
|
94
|
+
maxCount: number;
|
|
95
|
+
}
|
|
96
|
+
// A harvestable resource. Mining/herbalism/fishing nodes live in a zone's `nodes` list; skinning nodes are
|
|
97
|
+
// referenced by `skinnable` creatures and become available on a fresh corpse.
|
|
98
|
+
export interface GatherNodeDef extends SkillCurve {
|
|
99
|
+
id: number;
|
|
100
|
+
skill: SkillLine; // the gathering profession that works it
|
|
101
|
+
name: string; // "Copper Vein", "Peacebloom", "Skin"
|
|
102
|
+
yield: GatherYield[];
|
|
103
|
+
// DB provenance: 'gameobject' means the node id IS a gameobject_template entry, 'fishing' that
|
|
104
|
+
// sourceId is the fishing area id, 'skinning' the SkinningLootId. Absent on pre-DB fixtures.
|
|
105
|
+
source?: 'gameobject' | 'fishing' | 'skinning';
|
|
106
|
+
sourceId?: number; // the DB row id the yield came from (fishing area / skinning loot)
|
|
107
|
+
// How many harvests a fresh node has and how long it takes to respawn, from the CMaNGOS
|
|
108
|
+
// gameobject_template: herbs [1,1], ore veins [2,4], fishing schools [3,3].
|
|
109
|
+
charges?: [number, number]; // [min, max] harvests on a fresh spawn
|
|
110
|
+
cooldownMs?: number; // respawn delay once depleted (absent => default)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** A profession trainer NPC. Teaches one skill line's ranks and its trainer recipes. */
|
|
114
|
+
export interface ProfTrainerDef {
|
|
115
|
+
entry: number;
|
|
116
|
+
name: string;
|
|
117
|
+
skill: SkillLine;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** Which gather node a creature's corpse offers when skinned. */
|
|
121
|
+
export interface SkinnableDef {
|
|
122
|
+
creature: number; // creature entry
|
|
123
|
+
node: number; // GatherNodeDef id (a skinning node)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// GameObjects (chests, containers, quest interactables) from gameobject_template plus its loot.
|
|
127
|
+
// Every field decodes one dataN slot of the GameObjectInfo union; zero values are omitted at bake.
|
|
128
|
+
export interface GameObjectDef {
|
|
129
|
+
entry: number;
|
|
130
|
+
name: string;
|
|
131
|
+
type: number; // GAMEOBJECT_TYPE_* (SharedDefines.h:515–548)
|
|
132
|
+
displayId?: number;
|
|
133
|
+
/** Per-type lock id (GetLockId switch, GameObject.h:400–417 — door/button use data1, chest/trap
|
|
134
|
+
* data0, fishinghole data4, …). Resolves into DataBundle.locks (Lock.dbc). */
|
|
135
|
+
lockId?: number;
|
|
136
|
+
/** First LOCK_KEY_ITEM entry of that lock (same rule as extract.mjs) — the key item that opens it. */
|
|
137
|
+
keyId?: number;
|
|
138
|
+
/** gameobject_loot_template id — ONLY chest data1 / fishinghole data1 (GetLootId, GameObject.h:496–504). */
|
|
139
|
+
lootId?: number;
|
|
140
|
+
// ---- per-type payloads (at most one present, keyed by `type`) ----
|
|
141
|
+
door?: { startOpen?: boolean; autoCloseSecs?: number };
|
|
142
|
+
button?: { startOpen?: boolean; autoCloseSecs?: number; linkedTrapId?: number };
|
|
143
|
+
questgiver?: { gossipId?: number };
|
|
144
|
+
chest?: {
|
|
145
|
+
restockTime?: number; // data2 secs (restock loop GameObject.cpp:353–372)
|
|
146
|
+
consumable?: boolean; // data3 — despawn at action; overrides restock (GameObject.cpp:627)
|
|
147
|
+
minSuccessOpens?: number; maxSuccessOpens?: number;
|
|
148
|
+
eventId?: number; linkedTrapId?: number;
|
|
149
|
+
questId?: number; // data8 — quest required for GO activation
|
|
150
|
+
level?: number;
|
|
151
|
+
};
|
|
152
|
+
trap?: {
|
|
153
|
+
level?: number; // disarm skill req = level*5 (Spell.cpp CanOpenLock)
|
|
154
|
+
radius?: number; // data2 diameter/2, EXCEPT lockId 12 (hunter traps): diameter IS radius (GameObject.cpp:442–447)
|
|
155
|
+
spellId?: number; charges?: number; cooldown?: number; startDelay?: number;
|
|
156
|
+
stealthed?: boolean; invisible?: boolean;
|
|
157
|
+
};
|
|
158
|
+
spellFocus?: { focusId?: number; dist?: number; linkedTrapId?: number; questId?: number };
|
|
159
|
+
goober?: {
|
|
160
|
+
questId?: number; // data1 — quest must be INCOMPLETE to use (GameObject.cpp:1628–1633)
|
|
161
|
+
eventId?: number; autoCloseSecs?: number; consumable?: boolean; cooldown?: number;
|
|
162
|
+
pageId?: number;
|
|
163
|
+
spellId?: number; // data10 — cast on user at Use (GameObject.cpp:1645; fan-out :592–603)
|
|
164
|
+
linkedTrapId?: number; gossipId?: number;
|
|
165
|
+
};
|
|
166
|
+
fishnode?: { lootId?: number }; // bobber loot is LOOT_FISHING by zone skill, NOT GetLootId
|
|
167
|
+
summoningRitual?: {
|
|
168
|
+
reqParticipants?: number; spellId?: number; animSpell?: number;
|
|
169
|
+
ritualPersistent?: boolean; castersGrouped?: boolean;
|
|
170
|
+
};
|
|
171
|
+
spellcaster?: { spellId?: number; charges?: number; partyOnly?: boolean };
|
|
172
|
+
meetingstone?: { minLevel?: number; maxLevel?: number; areaId?: number };
|
|
173
|
+
fishinghole?: { radius?: number; lootId?: number; minSuccessOpens?: number; maxSuccessOpens?: number };
|
|
174
|
+
/** Reverse quest links (gameobject_questrelation / _involvedrelation) — see QuestDef.goStarter/goEnder. */
|
|
175
|
+
questsStarted?: number[];
|
|
176
|
+
questsEnded?: number[];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Locks (Lock.dbc), the same shape as domain/world/openLock.ts. Type 1 LOCK_KEY_ITEM indexes the
|
|
180
|
+
// key item entry; type 2 LOCK_KEY_SKILL indexes LockType.dbc with a required value.
|
|
181
|
+
export interface LockCaseDef { type: number; index: number; skill: number }
|
|
182
|
+
export interface LockDataDef { id: number; cases: LockCaseDef[] }
|
|
183
|
+
|
|
184
|
+
// Enchanting is the odd craft out: it applies a permanent bonus to equipped gear instead of making
|
|
185
|
+
// an item, its mats come from disenchanting, and a tiered ROD in the bags gates which tier applies.
|
|
186
|
+
|
|
187
|
+
// An enchanting rod (tool). `tier` orders the five rods (1 Runed Copper … 5 Runed Arcanite); an enchant
|
|
188
|
+
// needs a rod of at least its `minRodTier`, and any higher rod satisfies a lower one.
|
|
189
|
+
export interface EnchantRodDef {
|
|
190
|
+
entry: number; // the rod's item entry
|
|
191
|
+
tier: number; // 1..5
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// An enchant formula, applying to any equipped item whose ItemSlot is listed in `slots`. The GRANT
|
|
195
|
+
// lives on ItemEnchantDef; prefer `gearEnchantGrant` over reading the cached stats/armor directly.
|
|
196
|
+
export interface EnchantDef extends SkillCurve {
|
|
197
|
+
id: number;
|
|
198
|
+
name: string; // "Enchant Bracer - Minor Stamina"
|
|
199
|
+
slots: ItemSlot[]; // gear ItemSlots this can target (e.g. ['wrist'])
|
|
200
|
+
minRodTier: number; // lowest rod tier that can apply it
|
|
201
|
+
reagents: { item: number; count: number }[];
|
|
202
|
+
// SpellItemEnchantment.ID this formula writes onto the item, resolved through ds.itemEnchant.
|
|
203
|
+
// Required on every baked row; 0 of 63 carried it before W7, so grants were hand-authored.
|
|
204
|
+
enchantId: number;
|
|
205
|
+
/** @deprecated Prefer gearEnchantGrant — kept one release as a resolved cache of primary stats. */
|
|
206
|
+
stats?: { stat: Stat; value: number }[];
|
|
207
|
+
/** @deprecated Prefer gearEnchantGrant — kept one release as a resolved cache of armor. */
|
|
208
|
+
armor?: number;
|
|
209
|
+
source: 'trainer' | 'drop' | 'vendor'; // how the formula is acquired
|
|
210
|
+
trainer?: number; // enchanting-trainer entry that teaches it (source === 'trainer' ONLY)
|
|
211
|
+
recipeItem?: number; // the Formula: item that teaches it when used (source === 'drop' | 'vendor')
|
|
212
|
+
cost?: number; // copper to learn (trainer); default 0
|
|
213
|
+
// npc_trainer.reqlevel — character level the trainer demands before teaching it. 0/absent = none.
|
|
214
|
+
// Real on the rogue poison ranks (Mind-numbing r1: reqlevel 24); 0 on crafting-trainer rows.
|
|
215
|
+
reqLevel?: number;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// A disenchant outcome band: destroying an equippable item of exactly `quality` within the item
|
|
219
|
+
// level range rolls each `yield` entry independently. `reqSkill` is the enchanting skill needed.
|
|
220
|
+
export interface DisenchantRuleDef {
|
|
221
|
+
quality: ItemQuality;
|
|
222
|
+
minItemLevel: number;
|
|
223
|
+
maxItemLevel: number;
|
|
224
|
+
reqSkill: number;
|
|
225
|
+
yield: GatherYield[];
|
|
226
|
+
}
|