azeroth-shell 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -2
- package/bin/azsh.mjs +19 -0
- package/docs/aifid/eventai-texts.json +4414 -0
- package/docs/dungeons/atlas/atlas-rows-dungeons.json +8989 -0
- package/docs/dungeons/survey/pack-id-migration.json +2418 -0
- package/package.json +26 -4
- package/src/autopilot/bossSkip.ts +26 -0
- package/src/autopilot/combatRotation.ts +824 -0
- package/src/autopilot/config.ts +533 -0
- package/src/autopilot/consumables.ts +58 -0
- package/src/autopilot/encounterStand.ts +121 -0
- package/src/autopilot/objectGatePlan.ts +53 -0
- package/src/autopilot/pathEngage.ts +229 -0
- package/src/autopilot/plan.ts +1643 -0
- package/src/autopilot/questPolicy.ts +274 -0
- package/src/autopilot/routeStep.ts +69 -0
- package/src/autopilot/sessionReport.ts +88 -0
- package/src/autopilot/topOffPower.ts +26 -0
- package/src/autopilot/view.ts +476 -0
- package/src/cli/bootCheck.mjs +34 -0
- package/src/cli/bootData.mjs +57 -0
- package/src/cli/combatLogFilter.ts +153 -0
- package/src/cli/combatLogFormat.ts +613 -0
- package/src/cli/fileRepository.mjs +105 -0
- package/src/cli/gzLoader.mjs +31 -0
- package/src/cli/liveGauntletEscort.ts +978 -0
- package/src/cli/liveStratUndead.ts +305 -0
- package/src/cli/macroHostCombat.ts +545 -0
- package/src/cli/macroHostWorld.ts +330 -0
- package/src/cli/prefs.mjs +31 -0
- package/src/cli/register.mjs +4 -0
- package/src/cli/repl.mjs +693 -0
- package/src/cli/rotationText.mjs +226 -0
- package/src/cli/squad.mjs +105 -0
- package/src/cli/term.mjs +126 -0
- package/src/cli/text.mjs +122 -0
- package/src/cli/tui.mjs +626 -0
- package/src/cli/tuiArena.mjs +109 -0
- package/src/cli/tuiAutopilotSettings.mjs +93 -0
- package/src/cli/tuiBags.mjs +180 -0
- package/src/cli/tuiBars.mjs +133 -0
- package/src/cli/tuiBg.mjs +243 -0
- package/src/cli/tuiBulk.mjs +162 -0
- package/src/cli/tuiCheck.mjs +1882 -0
- package/src/cli/tuiCity.mjs +396 -0
- package/src/cli/tuiCompanionKit.mjs +300 -0
- package/src/cli/tuiCompanions.mjs +471 -0
- package/src/cli/tuiDev.mjs +62 -0
- package/src/cli/tuiDungeon.mjs +606 -0
- package/src/cli/tuiEnchantTarget.mjs +120 -0
- package/src/cli/tuiFight.mjs +577 -0
- package/src/cli/tuiFightPanes.mjs +228 -0
- package/src/cli/tuiFloor.mjs +506 -0
- package/src/cli/tuiGear.mjs +158 -0
- package/src/cli/tuiHonor.mjs +74 -0
- package/src/cli/tuiLoot.mjs +97 -0
- package/src/cli/tuiMacros.mjs +144 -0
- package/src/cli/tuiOutfitter.mjs +115 -0
- package/src/cli/tuiPet.mjs +116 -0
- package/src/cli/tuiProfessions.mjs +800 -0
- package/src/cli/tuiRaid.mjs +127 -0
- package/src/cli/tuiRep.mjs +65 -0
- package/src/cli/tuiSaves.mjs +69 -0
- package/src/cli/tuiSearch.mjs +363 -0
- package/src/cli/tuiSettings.mjs +151 -0
- package/src/cli/tuiSimLab.mjs +80 -0
- package/src/cli/tuiTalents.mjs +60 -0
- package/src/cli/tuiViews.mjs +1178 -0
- package/src/cli/tuiWiki.mjs +181 -0
- package/src/cli/tuiWorld.mjs +361 -0
- package/src/cli/wikiIndex.ts +259 -0
- package/src/cli/wikiSources.ts +355 -0
- package/src/data/alteracValley.ts +176 -0
- package/src/data/appearanceOptions.ts +534 -0
- package/src/data/applyLootChanceSanity.ts +21 -0
- package/src/data/createFlavor.ts +96 -0
- package/src/data/customItems.ts +33 -0
- package/src/data/dataStore.ts +1904 -0
- package/src/data/dungeonGameObjects.ts +84 -0
- package/src/data/dungeonPlateCover.ts +66 -0
- package/src/data/dungeonSpawns.ts +294 -0
- package/src/data/dungeons/alterac-valley.ts +135 -0
- package/src/data/dungeons/apply-dungeon-rooms.ts +29 -0
- package/src/data/dungeons/apply-encounter-outdoors.ts +72 -0
- package/src/data/dungeons/apply-instance-geometry.ts +65 -0
- package/src/data/dungeons/apply-spawn-placement.ts +171 -0
- package/src/data/dungeons/blackfathom-deeps.ts +539 -0
- package/src/data/dungeons/blackrock-depths.ts +1410 -0
- package/src/data/dungeons/blackwing-lair.ts +129 -0
- package/src/data/dungeons/boss-eventai.ts +8 -0
- package/src/data/dungeons/deadmines.ts +410 -0
- package/src/data/dungeons/dire-maul-east.ts +980 -0
- package/src/data/dungeons/dire-maul-north.ts +661 -0
- package/src/data/dungeons/dire-maul-west.ts +785 -0
- package/src/data/dungeons/dungeon-rooms.json +5479 -0
- package/src/data/dungeons/encounter-outdoors.json +359 -0
- package/src/data/dungeons/eventai/blackfathom-deeps.ts +308 -0
- package/src/data/dungeons/eventai/blackrock-depths.ts +1257 -0
- package/src/data/dungeons/eventai/deadmines.ts +264 -0
- package/src/data/dungeons/eventai/dire-maul-east.ts +320 -0
- package/src/data/dungeons/eventai/gnomeregan.ts +213 -0
- package/src/data/dungeons/eventai/helpers.ts +79 -0
- package/src/data/dungeons/eventai/index.ts +133 -0
- package/src/data/dungeons/eventai/lbrs.ts +372 -0
- package/src/data/dungeons/eventai/maraudon.ts +323 -0
- package/src/data/dungeons/eventai/ragefire-chasm.ts +108 -0
- package/src/data/dungeons/eventai/razorfen-downs.ts +207 -0
- package/src/data/dungeons/eventai/razorfen-kraul.ts +326 -0
- package/src/data/dungeons/eventai/scholomance.ts +680 -0
- package/src/data/dungeons/eventai/shadowfang-keep.ts +230 -0
- package/src/data/dungeons/eventai/sm-cathedral.ts +75 -0
- package/src/data/dungeons/eventai/sm-graveyard.ts +150 -0
- package/src/data/dungeons/eventai/sm-library.ts +55 -0
- package/src/data/dungeons/eventai/stratholme-undead.ts +127 -0
- package/src/data/dungeons/eventai/sunken-temple.ts +582 -0
- package/src/data/dungeons/eventai/the-stockade.ts +228 -0
- package/src/data/dungeons/eventai/ubrs.ts +225 -0
- package/src/data/dungeons/eventai/uldaman.ts +355 -0
- package/src/data/dungeons/eventai/wailing-caverns.ts +396 -0
- package/src/data/dungeons/eventai/zul-farrak.ts +591 -0
- package/src/data/dungeons/gnomeregan.ts +909 -0
- package/src/data/dungeons/index.ts +126 -0
- package/src/data/dungeons/instance-geometry.json +5233 -0
- package/src/data/dungeons/key-sources.json +169 -0
- package/src/data/dungeons/lbrs.ts +996 -0
- package/src/data/dungeons/maraudon.ts +786 -0
- package/src/data/dungeons/molten-core.ts +194 -0
- package/src/data/dungeons/naxxramas.ts +173 -0
- package/src/data/dungeons/onyxias-lair.ts +71 -0
- package/src/data/dungeons/pack-from-clusters.ts +1256 -0
- package/src/data/dungeons/ragefire-chasm.ts +238 -0
- package/src/data/dungeons/razorfen-downs.ts +698 -0
- package/src/data/dungeons/razorfen-kraul.ts +766 -0
- package/src/data/dungeons/ruins-of-ahnqiraj.ts +121 -0
- package/src/data/dungeons/scholomance.ts +1076 -0
- package/src/data/dungeons/shadowfang-keep.ts +740 -0
- package/src/data/dungeons/sm-armory.ts +266 -0
- package/src/data/dungeons/sm-cathedral.ts +430 -0
- package/src/data/dungeons/sm-graveyard.ts +482 -0
- package/src/data/dungeons/sm-library.ts +337 -0
- package/src/data/dungeons/stratholme-live.ts +808 -0
- package/src/data/dungeons/stratholme-undead.ts +1164 -0
- package/src/data/dungeons/sunken-temple.ts +931 -0
- package/src/data/dungeons/temple-of-ahnqiraj.ts +119 -0
- package/src/data/dungeons/the-stockade.ts +282 -0
- package/src/data/dungeons/ubrs.ts +1286 -0
- package/src/data/dungeons/uldaman.ts +685 -0
- package/src/data/dungeons/wailing-caverns.ts +356 -0
- package/src/data/dungeons/zul-farrak.ts +686 -0
- package/src/data/dungeons/zul-gurub.ts +142 -0
- package/src/data/dungeons.ts +42 -0
- package/src/data/fixtures.ts +446 -0
- package/src/data/gameobject-data.json.gz +0 -0
- package/src/data/item-data.json.gz +0 -0
- package/src/data/loot-data.json.gz +0 -0
- package/src/data/maps/atlas-approach-maps.json +1425 -0
- package/src/data/maps/atlas-landmarks.json +1711 -0
- package/src/data/maps/dungeon-viewports.json +392 -0
- package/src/data/materializeModDamagePercentTaken.ts +70 -0
- package/src/data/materializeModHealthRegen.ts +89 -0
- package/src/data/materializeSpellReputation.ts +26 -0
- package/src/data/pageTexts.ts +19 -0
- package/src/data/profession-data.json.gz +0 -0
- package/src/data/raid-plans/blackfathom-deeps.json +86 -0
- package/src/data/raid-plans/blackrock-depths.json +419 -0
- package/src/data/raid-plans/blackwing-lair.json +328 -0
- package/src/data/raid-plans/deadmines.json +55 -0
- package/src/data/raid-plans/dire-maul-east.json +94 -0
- package/src/data/raid-plans/dire-maul-north.json +70 -0
- package/src/data/raid-plans/dire-maul-west.json +75 -0
- package/src/data/raid-plans/gnomeregan.json +131 -0
- package/src/data/raid-plans/lbrs.json +176 -0
- package/src/data/raid-plans/maraudon.json +102 -0
- package/src/data/raid-plans/molten-core.json +169 -0
- package/src/data/raid-plans/naxxramas.json +354 -0
- package/src/data/raid-plans/onyxias-lair.json +18 -0
- package/src/data/raid-plans/ragefire-chasm.json +30 -0
- package/src/data/raid-plans/razorfen-downs.json +75 -0
- package/src/data/raid-plans/razorfen-kraul.json +53 -0
- package/src/data/raid-plans/ruins-of-ahnqiraj.json +110 -0
- package/src/data/raid-plans/scholomance.json +170 -0
- package/src/data/raid-plans/shadowfang-keep.json +87 -0
- package/src/data/raid-plans/sm-armory.json +53 -0
- package/src/data/raid-plans/sm-cathedral.json +72 -0
- package/src/data/raid-plans/sm-graveyard.json +63 -0
- package/src/data/raid-plans/sm-library.json +23 -0
- package/src/data/raid-plans/stratholme-live.json +129 -0
- package/src/data/raid-plans/stratholme-undead.json +73 -0
- package/src/data/raid-plans/sunken-temple.json +159 -0
- package/src/data/raid-plans/temple-of-ahnqiraj.json +163 -0
- package/src/data/raid-plans/the-stockade.json +42 -0
- package/src/data/raid-plans/ubrs.json +53 -0
- package/src/data/raid-plans/uldaman.json +131 -0
- package/src/data/raid-plans/wailing-caverns.json +90 -0
- package/src/data/raid-plans/zul-farrak.json +156 -0
- package/src/data/raid-plans/zul-gurub.json +307 -0
- package/src/data/raidInstanceCreatures.mjs +473 -0
- package/src/data/rotations/index.ts +152 -0
- package/src/data/rotations/layout.mjs +72 -0
- package/src/data/rotations/pve/druid/balance.json +754 -0
- package/src/data/rotations/pve/druid/feral-tank.json +2448 -0
- package/src/data/rotations/pve/druid/feral.json +2660 -0
- package/src/data/rotations/pve/druid/restoration.json +424 -0
- package/src/data/rotations/pve/hunter/beast-mastery.json +1288 -0
- package/src/data/rotations/pve/hunter/marksmanship.json +1260 -0
- package/src/data/rotations/pve/hunter/survival.json +1373 -0
- package/src/data/rotations/pve/mage/arcane-leveling.json +1798 -0
- package/src/data/rotations/pve/mage/fire-leveling.json +2003 -0
- package/src/data/rotations/pve/mage/frost-leveling.json +1912 -0
- package/src/data/rotations/pve/paladin/holy.json +755 -0
- package/src/data/rotations/pve/paladin/protection.json +962 -0
- package/src/data/rotations/pve/paladin/retribution.json +924 -0
- package/src/data/rotations/pve/priest/discipline.json +772 -0
- package/src/data/rotations/pve/priest/holy.json +707 -0
- package/src/data/rotations/pve/priest/shadow.json +787 -0
- package/src/data/rotations/pve/rogue/assassination.json +2477 -0
- package/src/data/rotations/pve/rogue/combat.json +2483 -0
- package/src/data/rotations/pve/rogue/subtlety.json +2523 -0
- package/src/data/rotations/pve/shaman/elemental.json +1157 -0
- package/src/data/rotations/pve/shaman/enhancement.json +1085 -0
- package/src/data/rotations/pve/shaman/restoration.json +592 -0
- package/src/data/rotations/pve/warlock/affliction.json +1185 -0
- package/src/data/rotations/pve/warlock/demonology.json +1165 -0
- package/src/data/rotations/pve/warlock/destruction.json +1177 -0
- package/src/data/rotations/pve/warrior/arms.json +3020 -0
- package/src/data/rotations/pve/warrior/fury.json +2996 -0
- package/src/data/rotations/pve/warrior/protection.json +2509 -0
- package/src/data/rotations/pvp/druid/balance.json +593 -0
- package/src/data/rotations/pvp/druid/feral.json +3276 -0
- package/src/data/rotations/pvp/druid/restoration.json +662 -0
- package/src/data/rotations/pvp/hunter/beast-mastery.json +665 -0
- package/src/data/rotations/pvp/hunter/marksmanship.json +2406 -0
- package/src/data/rotations/pvp/hunter/survival.json +635 -0
- package/src/data/rotations/pvp/mage/arcane.json +574 -0
- package/src/data/rotations/pvp/mage/fire.json +570 -0
- package/src/data/rotations/pvp/mage/frost.json +4048 -0
- package/src/data/rotations/pvp/paladin/holy.json +1498 -0
- package/src/data/rotations/pvp/paladin/protection.json +567 -0
- package/src/data/rotations/pvp/paladin/retribution.json +1110 -0
- package/src/data/rotations/pvp/priest/discipline.json +1848 -0
- package/src/data/rotations/pvp/priest/holy.json +6340 -0
- package/src/data/rotations/pvp/priest/shadow.json +2329 -0
- package/src/data/rotations/pvp/rogue/assassination.json +1322 -0
- package/src/data/rotations/pvp/rogue/combat.json +5258 -0
- package/src/data/rotations/pvp/rogue/subtlety.json +586 -0
- package/src/data/rotations/pvp/shaman/elemental.json +1404 -0
- package/src/data/rotations/pvp/shaman/enhancement.json +1277 -0
- package/src/data/rotations/pvp/shaman/restoration.json +2490 -0
- package/src/data/rotations/pvp/warlock/affliction.json +1017 -0
- package/src/data/rotations/pvp/warlock/demonology.json +1503 -0
- package/src/data/rotations/pvp/warlock/destruction.json +638 -0
- package/src/data/rotations/pvp/warrior/arms.json +5665 -0
- package/src/data/rotations/pvp/warrior/fury.json +850 -0
- package/src/data/rotations/pvp/warrior/protection.json +777 -0
- package/src/data/schema/bundle.ts +511 -0
- package/src/data/schema/constants.ts +49 -0
- package/src/data/schema/creature.ts +454 -0
- package/src/data/schema/encounter.ts +155 -0
- package/src/data/schema/faction.ts +48 -0
- package/src/data/schema/item.ts +297 -0
- package/src/data/schema/itemEnchant.ts +105 -0
- package/src/data/schema/npc.ts +44 -0
- package/src/data/schema/primitives.ts +295 -0
- package/src/data/schema/profession.ts +226 -0
- package/src/data/schema/quest.ts +154 -0
- package/src/data/schema/spell.ts +1149 -0
- package/src/data/schema/talent.ts +74 -0
- package/src/data/schema/world.ts +124 -0
- package/src/data/schema.ts +19 -0
- package/src/data/skinNodeGapFill.ts +68 -0
- package/src/data/spell-data.json.gz +0 -0
- package/src/data/spell-script-targets.json +1 -0
- package/src/data/tables/ahItemValues.json.gz +0 -0
- package/src/data/tables/alteracValley.json.gz +0 -0
- package/src/data/tables/areatriggerTeleports.json.gz +0 -0
- package/src/data/tables/botNames.json.gz +0 -0
- package/src/data/tables/botPopulation.json.gz +0 -0
- package/src/data/tables/botSpecs.json.gz +0 -0
- package/src/data/tables/classLevelStats.json.gz +0 -0
- package/src/data/tables/combatConditions.json.gz +0 -0
- package/src/data/tables/combatSkillMeta.json.gz +0 -0
- package/src/data/tables/conditions.json.gz +0 -0
- package/src/data/tables/createInfo.json.gz +0 -0
- package/src/data/tables/creatureAggroGroups.json.gz +0 -0
- package/src/data/tables/creatureClassLevelStats.json.gz +0 -0
- package/src/data/tables/creaturePatrolPacks.json.gz +0 -0
- package/src/data/tables/creatureWeapons.json.gz +0 -0
- package/src/data/tables/creatures.json.gz +0 -0
- package/src/data/tables/dbScripts.json.gz +0 -0
- package/src/data/tables/dungeonAuthoredRoutes.json.gz +0 -0
- package/src/data/tables/dungeonCensus.json.gz +0 -0
- package/src/data/tables/dungeonGameObjects.json.gz +0 -0
- package/src/data/tables/dungeonPacks.json.gz +0 -0
- package/src/data/tables/dungeonPlateCover.json.gz +0 -0
- package/src/data/tables/dungeonSpawns.json.gz +0 -0
- package/src/data/tables/dungeonSurvey.json.gz +0 -0
- package/src/data/tables/durabilityCosts.json.gz +0 -0
- package/src/data/tables/durabilityQuality.json.gz +0 -0
- package/src/data/tables/enchantApplicators.json.gz +0 -0
- package/src/data/tables/entranceYards.json.gz +0 -0
- package/src/data/tables/explorationBasexp.json.gz +0 -0
- package/src/data/tables/factionTemplates.json.gz +0 -0
- package/src/data/tables/factions.json.gz +0 -0
- package/src/data/tables/gameEvents.json.gz +0 -0
- package/src/data/tables/gameObjects.json.gz +0 -0
- package/src/data/tables/gossipMenus.json.gz +0 -0
- package/src/data/tables/graveyards.json.gz +0 -0
- package/src/data/tables/instanceMaps.json.gz +0 -0
- package/src/data/tables/itemEnchantmentTemplates.json.gz +0 -0
- package/src/data/tables/itemEnchants.json.gz +0 -0
- package/src/data/tables/itemRandomProperties.json.gz +0 -0
- package/src/data/tables/itemSets.json.gz +0 -0
- package/src/data/tables/items.json.gz +0 -0
- package/src/data/tables/levelStats.json.gz +0 -0
- package/src/data/tables/locks.json.gz +0 -0
- package/src/data/tables/map-pin-overrides.json.gz +0 -0
- package/src/data/tables/nonCombatTrash.json.gz +0 -0
- package/src/data/tables/npcTexts.json.gz +0 -0
- package/src/data/tables/pageTexts.json.gz +0 -0
- package/src/data/tables/petAbilityTP.json.gz +0 -0
- package/src/data/tables/petGenericSpells.json.gz +0 -0
- package/src/data/tables/petLevelStats.json.gz +0 -0
- package/src/data/tables/playerbot-weightscales.json.gz +0 -0
- package/src/data/tables/pools.json.gz +0 -0
- package/src/data/tables/quests.json.gz +0 -0
- package/src/data/tables/races.json.gz +0 -0
- package/src/data/tables/reputationRanks.json.gz +0 -0
- package/src/data/tables/reputationRates.json.gz +0 -0
- package/src/data/tables/reputationSpillover.json.gz +0 -0
- package/src/data/tables/ridingSpells.json.gz +0 -0
- package/src/data/tables/scriptTexts.json.gz +0 -0
- package/src/data/tables/soundClipVolume.json.gz +0 -0
- package/src/data/tables/spellChain.json.gz +0 -0
- package/src/data/tables/spellTeleports.json.gz +0 -0
- package/src/data/tables/spells.json.gz +0 -0
- package/src/data/tables/talents.json.gz +0 -0
- package/src/data/tables/tavernTriggers.json.gz +0 -0
- package/src/data/tables/taxiNodes.json.gz +0 -0
- package/src/data/tables/taxiRoutes.json.gz +0 -0
- package/src/data/tables/trainers.json.gz +0 -0
- package/src/data/tables/transports.json.gz +0 -0
- package/src/data/tables/travelAnchors.json.gz +0 -0
- package/src/data/tables/travelEdges.json.gz +0 -0
- package/src/data/tables/unitConditions.json.gz +0 -0
- package/src/data/tables/vendors.json.gz +0 -0
- package/src/data/tables/weaponEnchantProcs.json.gz +0 -0
- package/src/data/tables/xp.json.gz +0 -0
- package/src/data/tables/zoneWeather.json.gz +0 -0
- package/src/data/tables/zones.json.gz +0 -0
- package/src/data/world-data.ts +56 -0
- package/src/data/zone-music-sets.json +2751 -0
- package/src/dev/etl/lib/loot-chance-sanity.mjs +180 -0
- package/src/domain/audioQuality.mjs +145 -0
- package/src/domain/bg/ab.ts +433 -0
- package/src/domain/bg/arenaComps.ts +644 -0
- package/src/domain/bg/arenaLab.ts +695 -0
- package/src/domain/bg/arenaPace.ts +31 -0
- package/src/domain/bg/arenaRating.ts +110 -0
- package/src/domain/bg/av.ts +758 -0
- package/src/domain/bg/avEnemyPush.ts +219 -0
- package/src/domain/bg/avField.ts +283 -0
- package/src/domain/bg/avInstanceNodes.ts +197 -0
- package/src/domain/bg/avInstanceScore.ts +123 -0
- package/src/domain/bg/avQuestItems.ts +55 -0
- package/src/domain/bg/avQuests.ts +210 -0
- package/src/domain/bg/avSession.ts +196 -0
- package/src/domain/bg/bgConsumes.ts +269 -0
- package/src/domain/bg/bgPrebuff.ts +153 -0
- package/src/domain/bg/bgRest.ts +91 -0
- package/src/domain/bg/bgRoster.ts +305 -0
- package/src/domain/bg/bgTier.ts +61 -0
- package/src/domain/bg/bgWorld.ts +862 -0
- package/src/domain/bg/match.ts +215 -0
- package/src/domain/bg/strategies.ts +552 -0
- package/src/domain/bg/types.ts +291 -0
- package/src/domain/bg/wsg.ts +264 -0
- package/src/domain/bots/actionProviderSpec.ts +38 -0
- package/src/domain/bots/autoConsumables.ts +285 -0
- package/src/domain/bots/betweenPullRest.ts +239 -0
- package/src/domain/bots/botGear.ts +248 -0
- package/src/domain/bots/botInventory.ts +486 -0
- package/src/domain/bots/botPet.ts +535 -0
- package/src/domain/bots/botPool.ts +291 -0
- package/src/domain/bots/botProfessions.ts +334 -0
- package/src/domain/bots/companionActionBar.ts +209 -0
- package/src/domain/bots/companionHireCost.ts +236 -0
- package/src/domain/bots/companionMissions.ts +582 -0
- package/src/domain/bots/companionPrep.ts +254 -0
- package/src/domain/bots/companionQuests.ts +270 -0
- package/src/domain/bots/companionRep.ts +75 -0
- package/src/domain/bots/companionRotation.ts +708 -0
- package/src/domain/bots/companionXp.ts +66 -0
- package/src/domain/bots/consumableShare.ts +811 -0
- package/src/domain/bots/dpsMate.ts +1072 -0
- package/src/domain/bots/groupCompReport.ts +132 -0
- package/src/domain/bots/healthstoneSupply.ts +198 -0
- package/src/domain/bots/outfitter.ts +1056 -0
- package/src/domain/bots/paladinPrePull.ts +231 -0
- package/src/domain/bots/partyRole.ts +40 -0
- package/src/domain/bots/playerbotEquipCache.ts +412 -0
- package/src/domain/bots/playerbotItemEligibility.ts +60 -0
- package/src/domain/bots/playerbotStatWeight.ts +853 -0
- package/src/domain/bots/playerbotUnavailableItems.ts +147 -0
- package/src/domain/bots/prePullBuffs.ts +219 -0
- package/src/domain/bots/prePullStealth.ts +82 -0
- package/src/domain/bots/runSupply.ts +251 -0
- package/src/domain/bots/runSupplyPrefs.ts +28 -0
- package/src/domain/bots/sendTradeGoods.ts +394 -0
- package/src/domain/bots/soulShardCap.ts +35 -0
- package/src/domain/bots/squad.ts +842 -0
- package/src/domain/bots/squadRun.ts +81 -0
- package/src/domain/character/actionbar.ts +346 -0
- package/src/domain/character/appearance.ts +165 -0
- package/src/domain/character/buildCombatant.ts +1726 -0
- package/src/domain/character/character.ts +356 -0
- package/src/domain/character/characterName.ts +43 -0
- package/src/domain/character/characterRatings.ts +424 -0
- package/src/domain/character/characterSpells.ts +282 -0
- package/src/domain/character/characterStats.ts +1559 -0
- package/src/domain/character/characterTalents.ts +398 -0
- package/src/domain/character/combatSkills.ts +994 -0
- package/src/domain/character/displayForm.ts +72 -0
- package/src/domain/character/formTalentAuras.ts +171 -0
- package/src/domain/character/forms.ts +499 -0
- package/src/domain/character/races.ts +40 -0
- package/src/domain/character/resurrectionSickness.ts +49 -0
- package/src/domain/character/spellbook.ts +169 -0
- package/src/domain/character/stanceBar.ts +354 -0
- package/src/domain/character/stancePrereq.ts +70 -0
- package/src/domain/character/talentBuilds.ts +63 -0
- package/src/domain/character/talentImport.ts +130 -0
- package/src/domain/character/talentLink.ts +123 -0
- package/src/domain/character/talents.ts +201 -0
- package/src/domain/core/conditionSnapshot.ts +92 -0
- package/src/domain/core/hover.ts +14 -0
- package/src/domain/core/ids.ts +58 -0
- package/src/domain/core/internalNameTags.ts +5 -0
- package/src/domain/core/runtimeDataPatches.ts +357 -0
- package/src/domain/creature/aiTargeting.ts +588 -0
- package/src/domain/creature/combatCondition.ts +157 -0
- package/src/domain/creature/creatureAggro.ts +804 -0
- package/src/domain/creature/creatureAi.ts +206 -0
- package/src/domain/creature/creatureAiConstants.ts +661 -0
- package/src/domain/creature/creatureCastList.ts +1007 -0
- package/src/domain/creature/creatureEventAi.ts +1409 -0
- package/src/domain/creature/creatureGroups.ts +144 -0
- package/src/domain/creature/creatureLinking.ts +333 -0
- package/src/domain/creature/creatureScaling.ts +320 -0
- package/src/domain/creature/creatureTrigger.ts +53 -0
- package/src/domain/creature/creatureWander.ts +74 -0
- package/src/domain/creature/eventAiTexts.ts +145 -0
- package/src/domain/creature/faction.ts +287 -0
- package/src/domain/creature/forcedReaction.ts +48 -0
- package/src/domain/creature/outdoorHuntable.ts +74 -0
- package/src/domain/creature/patrolPacks.ts +210 -0
- package/src/domain/creature/reputation.ts +967 -0
- package/src/domain/creature/unitFlags.ts +74 -0
- package/src/domain/creature/worldBosses.ts +393 -0
- package/src/domain/dungeonMusic.mjs +48 -0
- package/src/domain/economy/auction.ts +282 -0
- package/src/domain/economy/auctionBot.ts +1060 -0
- package/src/domain/economy/honorPrice.ts +100 -0
- package/src/domain/economy/mail.ts +958 -0
- package/src/domain/economy/money.ts +42 -0
- package/src/domain/economy/syntheticClassTrainers.ts +62 -0
- package/src/domain/economy/trading.ts +296 -0
- package/src/domain/economy/vendorSellAll.ts +252 -0
- package/src/domain/economy/vendorStock.ts +146 -0
- package/src/domain/items/ammo.ts +817 -0
- package/src/domain/items/bank.ts +162 -0
- package/src/domain/items/consumableFamily.ts +205 -0
- package/src/domain/items/craftUpgrades.ts +83 -0
- package/src/domain/items/createItem.ts +93 -0
- package/src/domain/items/durability.ts +581 -0
- package/src/domain/items/equipment.ts +441 -0
- package/src/domain/items/equipmentHelper.ts +767 -0
- package/src/domain/items/inventory.ts +561 -0
- package/src/domain/items/itemBonding.ts +93 -0
- package/src/domain/items/itemContainer.ts +245 -0
- package/src/domain/items/itemDisplayName.ts +33 -0
- package/src/domain/items/itemInstance.ts +181 -0
- package/src/domain/items/itemRandomEnchantOutcomes.ts +315 -0
- package/src/domain/items/itemRandomProps.ts +77 -0
- package/src/domain/items/itemRestrictions.ts +329 -0
- package/src/domain/items/itemTeaches.ts +82 -0
- package/src/domain/items/itemUseCooldown.ts +52 -0
- package/src/domain/items/itemUseTarget.ts +90 -0
- package/src/domain/items/junkCategories.ts +174 -0
- package/src/domain/items/junkFilter.ts +368 -0
- package/src/domain/items/keyring.ts +131 -0
- package/src/domain/items/loot.ts +221 -0
- package/src/domain/items/mounts.ts +190 -0
- package/src/domain/items/onUsePayload.ts +102 -0
- package/src/domain/items/pendingLoot.ts +107 -0
- package/src/domain/items/relic.ts +105 -0
- package/src/domain/items/rocketBoots.ts +36 -0
- package/src/domain/items/sortContainer.ts +139 -0
- package/src/domain/items/spareContainers.ts +71 -0
- package/src/domain/items/spellReagentIndex.ts +131 -0
- package/src/domain/items/staleConsumables.ts +66 -0
- package/src/domain/items/weaponSpender.ts +110 -0
- package/src/domain/listDungeonIds.mjs +28 -0
- package/src/domain/macro/compose.ts +239 -0
- package/src/domain/macro/conditions.ts +260 -0
- package/src/domain/macro/creatureTypes.ts +40 -0
- package/src/domain/macro/describe.ts +169 -0
- package/src/domain/macro/icon.ts +60 -0
- package/src/domain/macro/index.ts +20 -0
- package/src/domain/macro/normalize.ts +112 -0
- package/src/domain/macro/parse.ts +316 -0
- package/src/domain/macro/plan.ts +288 -0
- package/src/domain/macro/rotation.ts +590 -0
- package/src/domain/macro/rotationEnv.ts +173 -0
- package/src/domain/macro/slots.ts +101 -0
- package/src/domain/macro/snapshot.ts +114 -0
- package/src/domain/macro/templates.ts +446 -0
- package/src/domain/macro/types.ts +70 -0
- package/src/domain/macro/units.ts +93 -0
- package/src/domain/macro/weaponTypes.ts +83 -0
- package/src/domain/nav/cityTeleports.ts +10 -0
- package/src/domain/nav/mounting.ts +113 -0
- package/src/domain/nav/nav.ts +43 -0
- package/src/domain/nav/navCollision.ts +606 -0
- package/src/domain/nav/navOutdoors.ts +91 -0
- package/src/domain/nav/navRegistry.ts +179 -0
- package/src/domain/nav/navRoomGraph.ts +302 -0
- package/src/domain/nav/navTypes.ts +43 -0
- package/src/domain/nav/navmesh.ts +1715 -0
- package/src/domain/nav/speed.ts +200 -0
- package/src/domain/nav/storey.ts +10 -0
- package/src/domain/nav/travel.ts +725 -0
- package/src/domain/nav/travelTypes.ts +75 -0
- package/src/domain/pet/pet.ts +1150 -0
- package/src/domain/pet/petActionBar.ts +180 -0
- package/src/domain/pet/petSpellbook.ts +39 -0
- package/src/domain/pet/petStable.ts +81 -0
- package/src/domain/professions/autoDisenchant.ts +236 -0
- package/src/domain/professions/characterEnchants.ts +176 -0
- package/src/domain/professions/craftCooldown.ts +52 -0
- package/src/domain/professions/enchantApply.ts +62 -0
- package/src/domain/professions/enchantTargets.ts +114 -0
- package/src/domain/professions/enchanting.ts +236 -0
- package/src/domain/professions/gatherFilter.ts +149 -0
- package/src/domain/professions/gearEnchant.ts +137 -0
- package/src/domain/professions/heldTools.ts +29 -0
- package/src/domain/professions/learnAllRecipes.ts +146 -0
- package/src/domain/professions/miningHarvest.ts +69 -0
- package/src/domain/professions/partyDisenchant.ts +294 -0
- package/src/domain/professions/partyWork.ts +83 -0
- package/src/domain/professions/pickpocket.ts +172 -0
- package/src/domain/professions/poisons.ts +240 -0
- package/src/domain/professions/professions.ts +677 -0
- package/src/domain/professions/rareNodes.ts +45 -0
- package/src/domain/professions/skinLoot.ts +27 -0
- package/src/domain/professions/vendorReagents.ts +152 -0
- package/src/domain/professions/weaponImbueHand.ts +171 -0
- package/src/domain/questFarmFilter.mjs +42 -0
- package/src/domain/quests/doQuest.ts +1204 -0
- package/src/domain/quests/gossip.ts +308 -0
- package/src/domain/quests/gossipTalk.ts +298 -0
- package/src/domain/quests/interpreter/canComplete.ts +150 -0
- package/src/domain/quests/interpreter/claim.ts +137 -0
- package/src/domain/quests/interpreter/dbscript/handlers.ts +1371 -0
- package/src/domain/quests/interpreter/dbscript/handlersBatch.ts +1251 -0
- package/src/domain/quests/interpreter/dbscript/hooks.ts +331 -0
- package/src/domain/quests/interpreter/dbscript/index.ts +212 -0
- package/src/domain/quests/interpreter/dbscript/opcodes.ts +257 -0
- package/src/domain/quests/interpreter/dbscript/registry.ts +1194 -0
- package/src/domain/quests/interpreter/dbscript/registryAreatriggerScripts.ts +539 -0
- package/src/domain/quests/interpreter/dbscript/registryAshenvale.ts +553 -0
- package/src/domain/quests/interpreter/dbscript/registryAzshara.ts +272 -0
- package/src/domain/quests/interpreter/dbscript/registryDarkshore.ts +637 -0
- package/src/domain/quests/interpreter/dbscript/registryDesolace.ts +501 -0
- package/src/domain/quests/interpreter/dbscript/registryDustwallowMarsh.ts +735 -0
- package/src/domain/quests/interpreter/dbscript/registryFelwood.ts +493 -0
- package/src/domain/quests/interpreter/dbscript/registryFeralas.ts +485 -0
- package/src/domain/quests/interpreter/dbscript/registryGoScripts.ts +203 -0
- package/src/domain/quests/interpreter/dbscript/registryMoonglade.ts +288 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcProfessions.ts +230 -0
- package/src/domain/quests/interpreter/dbscript/registryNpcsSpecial.ts +545 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenDowns.ts +293 -0
- package/src/domain/quests/interpreter/dbscript/registryRazorfenKraul.ts +221 -0
- package/src/domain/quests/interpreter/dbscript/registryRedridge.ts +112 -0
- package/src/domain/quests/interpreter/dbscript/registrySearingGorge.ts +125 -0
- package/src/domain/quests/interpreter/dbscript/registrySiblings.ts +51 -0
- package/src/domain/quests/interpreter/dbscript/registrySilverpineForest.ts +172 -0
- package/src/domain/quests/interpreter/dbscript/registryStonetalonMountains.ts +180 -0
- package/src/domain/quests/interpreter/dbscript/registryStormwindCity.ts +369 -0
- package/src/domain/quests/interpreter/dbscript/registryStranglethornVale.ts +115 -0
- package/src/domain/quests/interpreter/dbscript/registryStratholme.ts +146 -0
- package/src/domain/quests/interpreter/dbscript/registrySunkenTemple.ts +149 -0
- package/src/domain/quests/interpreter/dbscript/registrySwampOfSorrows.ts +163 -0
- package/src/domain/quests/interpreter/dbscript/registryTanaris.ts +318 -0
- package/src/domain/quests/interpreter/dbscript/registryTeldrassil.ts +120 -0
- package/src/domain/quests/interpreter/dbscript/registryTheBarrens.ts +603 -0
- package/src/domain/quests/interpreter/dbscript/registryThousandNeedles.ts +499 -0
- package/src/domain/quests/interpreter/dbscript/registryTirisfalGlades.ts +222 -0
- package/src/domain/quests/interpreter/dbscript/registryUngoroCrater.ts +291 -0
- package/src/domain/quests/interpreter/dbscript/registryWarEffort.ts +773 -0
- package/src/domain/quests/interpreter/dbscript/registryWesternPlaguelands.ts +206 -0
- package/src/domain/quests/interpreter/dbscript/registryWestfall.ts +190 -0
- package/src/domain/quests/interpreter/dbscript/registryWetlands.ts +186 -0
- package/src/domain/quests/interpreter/dbscript/registryWinterspring.ts +235 -0
- package/src/domain/quests/interpreter/dbscript/types.ts +817 -0
- package/src/domain/quests/interpreter/dbscript/vm.ts +171 -0
- package/src/domain/quests/interpreter/diff.ts +349 -0
- package/src/domain/quests/interpreter/fixtures/oracle-questlog-qi2.json +2417 -0
- package/src/domain/quests/interpreter/flags.ts +101 -0
- package/src/domain/quests/interpreter/index.ts +113 -0
- package/src/domain/quests/interpreter/live.ts +178 -0
- package/src/domain/quests/interpreter/types.ts +81 -0
- package/src/domain/quests/interpreter/updaters.ts +412 -0
- package/src/domain/quests/questCorpseUse.ts +155 -0
- package/src/domain/quests/questDialog.ts +43 -0
- package/src/domain/quests/questFight.ts +34 -0
- package/src/domain/quests/questObjectiveLabel.ts +39 -0
- package/src/domain/quests/questRewardChoice.ts +85 -0
- package/src/domain/quests/questScriptCredit.ts +26 -0
- package/src/domain/quests/questScriptItemUse.ts +74 -0
- package/src/domain/quests/questTameRods.ts +79 -0
- package/src/domain/quests/questlog.ts +1545 -0
- package/src/domain/quests/talkDeliver.ts +170 -0
- package/src/domain/raid/globalActionBar.ts +195 -0
- package/src/domain/raid/instanceRoster.ts +194 -0
- package/src/domain/raid/partySummon.ts +198 -0
- package/src/domain/raid/partyVault.ts +320 -0
- package/src/domain/raid/raidBossAbilities.ts +268 -0
- package/src/domain/raid/raidComp.ts +335 -0
- package/src/domain/raid/raidCustomRows.ts +453 -0
- package/src/domain/raid/raidEncounterGear.ts +298 -0
- package/src/domain/raid/raidEncounterTactics.ts +412 -0
- package/src/domain/raid/raidPlan.ts +509 -0
- package/src/domain/raid/raidPlanEdits.ts +98 -0
- package/src/domain/raid/raidPlanPacks.ts +480 -0
- package/src/domain/raid/raidRecovery.ts +183 -0
- package/src/domain/raid/raidRosterTemplate.ts +138 -0
- package/src/domain/rotation/auraSide.ts +68 -0
- package/src/domain/rotation/build.ts +3031 -0
- package/src/domain/rotation/classes/druid.ts +58 -0
- package/src/domain/rotation/classes/hooks.ts +59 -0
- package/src/domain/rotation/classes/hunter.ts +156 -0
- package/src/domain/rotation/classes/index.ts +104 -0
- package/src/domain/rotation/classes/mage.ts +99 -0
- package/src/domain/rotation/classes/paladin.ts +296 -0
- package/src/domain/rotation/classes/priest.ts +94 -0
- package/src/domain/rotation/classes/pullOpener.ts +92 -0
- package/src/domain/rotation/classes/rogue.ts +69 -0
- package/src/domain/rotation/classes/shaman.ts +29 -0
- package/src/domain/rotation/classes/supportSpec.ts +94 -0
- package/src/domain/rotation/classes/warlock.ts +81 -0
- package/src/domain/rotation/classes/warrior.ts +402 -0
- package/src/domain/rotation/classify.ts +1381 -0
- package/src/domain/rotation/condMetricPicker.ts +379 -0
- package/src/domain/rotation/consumables.ts +242 -0
- package/src/domain/rotation/evaluate.ts +1115 -0
- package/src/domain/rotation/finisherLadder.ts +145 -0
- package/src/domain/rotation/invent.ts +938 -0
- package/src/domain/rotation/killOrder.ts +30 -0
- package/src/domain/rotation/openerForm.ts +22 -0
- package/src/domain/rotation/paladinBuffs.ts +568 -0
- package/src/domain/rotation/prebuff.ts +283 -0
- package/src/domain/rotation/raidRowTuning.ts +34 -0
- package/src/domain/rotation/rotation.ts +11 -0
- package/src/domain/rotation/rotationProfiles.ts +180 -0
- package/src/domain/rotation/rotationSuggestions.ts +851 -0
- package/src/domain/rotation/ruleAfterChain.ts +49 -0
- package/src/domain/rotation/spec.ts +70 -0
- package/src/domain/rotation/spellPicker.ts +140 -0
- package/src/domain/rotation/stand.ts +143 -0
- package/src/domain/rotation/types.ts +718 -0
- package/src/domain/run/battlegroundRun.ts +111 -0
- package/src/domain/run/canEnterContext.ts +32 -0
- package/src/domain/run/death.ts +561 -0
- package/src/domain/run/deathRecovery.ts +289 -0
- package/src/domain/run/duel.ts +141 -0
- package/src/domain/run/dungeonRun.ts +344 -0
- package/src/domain/run/floorRest.ts +159 -0
- package/src/domain/run/honor.ts +557 -0
- package/src/domain/run/honorWeek.ts +180 -0
- package/src/domain/run/whenMap.ts +977 -0
- package/src/domain/scriptdev/arathiHighlands.ts +445 -0
- package/src/domain/scriptdev/ashenvale.ts +635 -0
- package/src/domain/scriptdev/ashenvaleHelpers.ts +1215 -0
- package/src/domain/scriptdev/azshara.ts +892 -0
- package/src/domain/scriptdev/blackfathomDeeps.ts +212 -0
- package/src/domain/scriptdev/blackrockDepths.ts +1434 -0
- package/src/domain/scriptdev/blackrockSpire.ts +730 -0
- package/src/domain/scriptdev/blackwingLair.ts +521 -0
- package/src/domain/scriptdev/burningSteppes.ts +62 -0
- package/src/domain/scriptdev/classFilter.ts +43 -0
- package/src/domain/scriptdev/darkshore.ts +817 -0
- package/src/domain/scriptdev/darkshoreHelpers.ts +853 -0
- package/src/domain/scriptdev/deadmines.ts +331 -0
- package/src/domain/scriptdev/desolace.ts +1239 -0
- package/src/domain/scriptdev/direMaul.ts +859 -0
- package/src/domain/scriptdev/durotar.ts +532 -0
- package/src/domain/scriptdev/dustwallowMarsh.ts +758 -0
- package/src/domain/scriptdev/dustwallowMarshHelpers.ts +994 -0
- package/src/domain/scriptdev/easternPlaguelands.ts +21 -0
- package/src/domain/scriptdev/felwood.ts +1055 -0
- package/src/domain/scriptdev/feralas.ts +571 -0
- package/src/domain/scriptdev/feralasHelpers.ts +838 -0
- package/src/domain/scriptdev/gnomeregan.ts +466 -0
- package/src/domain/scriptdev/guards.ts +616 -0
- package/src/domain/scriptdev/hinterlands.ts +693 -0
- package/src/domain/scriptdev/host.ts +1134 -0
- package/src/domain/scriptdev/index.ts +123 -0
- package/src/domain/scriptdev/instanceRaids.ts +136 -0
- package/src/domain/scriptdev/itemScripts.ts +37 -0
- package/src/domain/scriptdev/lochModan.ts +283 -0
- package/src/domain/scriptdev/maraudon.ts +232 -0
- package/src/domain/scriptdev/moltenCore.ts +831 -0
- package/src/domain/scriptdev/moonglade.ts +659 -0
- package/src/domain/scriptdev/moongladeHelpers.ts +933 -0
- package/src/domain/scriptdev/naxxramas.ts +577 -0
- package/src/domain/scriptdev/naxxramasConstruct.ts +364 -0
- package/src/domain/scriptdev/naxxramasFrostwyrm.ts +378 -0
- package/src/domain/scriptdev/naxxramasMilitary.ts +276 -0
- package/src/domain/scriptdev/npcProfessions.ts +1025 -0
- package/src/domain/scriptdev/npcsSpecial.ts +1379 -0
- package/src/domain/scriptdev/onyxiasLair.ts +313 -0
- package/src/domain/scriptdev/orgrimmar.ts +147 -0
- package/src/domain/scriptdev/professionSpecConsumer.ts +481 -0
- package/src/domain/scriptdev/razorfenDowns.ts +468 -0
- package/src/domain/scriptdev/razorfenKraul.ts +410 -0
- package/src/domain/scriptdev/redridgeMountains.ts +163 -0
- package/src/domain/scriptdev/registry.ts +945 -0
- package/src/domain/scriptdev/ruinsOfAhnqiraj.ts +356 -0
- package/src/domain/scriptdev/scarletMonastery.ts +713 -0
- package/src/domain/scriptdev/scholomance.ts +682 -0
- package/src/domain/scriptdev/searingGorge.ts +295 -0
- package/src/domain/scriptdev/shadowfangKeep.ts +181 -0
- package/src/domain/scriptdev/silithus.ts +71 -0
- package/src/domain/scriptdev/silverpineForest.ts +662 -0
- package/src/domain/scriptdev/stonetalonMountains.ts +493 -0
- package/src/domain/scriptdev/stormwindCity.ts +1192 -0
- package/src/domain/scriptdev/stranglethornVale.ts +402 -0
- package/src/domain/scriptdev/stratholme.ts +650 -0
- package/src/domain/scriptdev/stratholmeScripts.ts +505 -0
- package/src/domain/scriptdev/sunkenTemple.ts +736 -0
- package/src/domain/scriptdev/swampOfSorrows.ts +22 -0
- package/src/domain/scriptdev/tanaris.ts +391 -0
- package/src/domain/scriptdev/tanarisHelpers.ts +661 -0
- package/src/domain/scriptdev/teldrassil.ts +143 -0
- package/src/domain/scriptdev/templeOfAhnqiraj.ts +1013 -0
- package/src/domain/scriptdev/theBarrens.ts +709 -0
- package/src/domain/scriptdev/theBarrensHelpers.ts +1026 -0
- package/src/domain/scriptdev/thousandNeedles.ts +426 -0
- package/src/domain/scriptdev/thousandNeedlesHelpers.ts +566 -0
- package/src/domain/scriptdev/tirisfalGlades.ts +533 -0
- package/src/domain/scriptdev/types.ts +1026 -0
- package/src/domain/scriptdev/uldaman.ts +437 -0
- package/src/domain/scriptdev/ungoroCrater.ts +549 -0
- package/src/domain/scriptdev/ungoroCraterHelpers.ts +1006 -0
- package/src/domain/scriptdev/wailingCaverns.ts +700 -0
- package/src/domain/scriptdev/warEffort.ts +371 -0
- package/src/domain/scriptdev/westernPlaguelands.ts +952 -0
- package/src/domain/scriptdev/westfall.ts +767 -0
- package/src/domain/scriptdev/wetlands.ts +660 -0
- package/src/domain/scriptdev/winterspring.ts +482 -0
- package/src/domain/scriptdev/winterspringHelpers.ts +801 -0
- package/src/domain/scriptdev/worldBosses.ts +605 -0
- package/src/domain/scriptdev/zulfarrak.ts +478 -0
- package/src/domain/scriptdev/zulgurub.ts +1152 -0
- package/src/domain/sim/dummySim.ts +408 -0
- package/src/domain/sim/targetDummy.ts +29 -0
- package/src/domain/social/guild.ts +148 -0
- package/src/domain/spells/areaAuraMembership.ts +93 -0
- package/src/domain/spells/breakableStunCc.ts +166 -0
- package/src/domain/spells/cancelAura.ts +80 -0
- package/src/domain/spells/diminishing.ts +167 -0
- package/src/domain/spells/dispel.ts +149 -0
- package/src/domain/spells/dispelMechanic.ts +105 -0
- package/src/domain/spells/equipSpells.ts +247 -0
- package/src/domain/spells/learnOnTargets.ts +260 -0
- package/src/domain/spells/mergeSchoolImmunityFromRaw.ts +66 -0
- package/src/domain/spells/resurrectSpell.ts +124 -0
- package/src/domain/spells/spellPushback.ts +39 -0
- package/src/domain/spells/spellReflect.ts +43 -0
- package/src/domain/spells/stealth.ts +183 -0
- package/src/domain/spells/totem.ts +394 -0
- package/src/domain/spells/worldCast.ts +187 -0
- package/src/domain/world/areaTriggerLocks.ts +177 -0
- package/src/domain/world/dungeonMusic.ts +108 -0
- package/src/domain/world/gameEvents.ts +119 -0
- package/src/domain/world/gameObjects.ts +1030 -0
- package/src/domain/world/goEventFire.ts +234 -0
- package/src/domain/world/goMoTransport.ts +74 -0
- package/src/domain/world/goTransport.ts +81 -0
- package/src/domain/world/hazards.ts +459 -0
- package/src/domain/world/openLock.ts +398 -0
- package/src/domain/world/pools.ts +470 -0
- package/src/domain/world/restArea.ts +37 -0
- package/src/domain/world/weather.ts +201 -0
- package/src/domain/zoneAmbience.mjs +87 -0
- package/src/domain/zoneMusic.mjs +62 -0
- package/src/domain/zoneMusicQueue.mjs +7 -0
- package/src/engine/combat/activeSeal.ts +39 -0
- package/src/engine/combat/aiTargetResolve.ts +64 -0
- package/src/engine/combat/aoeCast.ts +289 -0
- package/src/engine/combat/applyConsumeAura.ts +74 -0
- package/src/engine/combat/applyDemonicSacrifice.ts +70 -0
- package/src/engine/combat/applyDispelMechanic.ts +30 -0
- package/src/engine/combat/applyHealEffect.ts +301 -0
- package/src/engine/combat/applySchoolAbsorb.ts +114 -0
- package/src/engine/combat/applySpell.ts +3169 -0
- package/src/engine/combat/applySpellLate.ts +2026 -0
- package/src/engine/combat/applySpellLateBag.ts +144 -0
- package/src/engine/combat/areaAura.ts +283 -0
- package/src/engine/combat/attackTable.ts +508 -0
- package/src/engine/combat/battleRez.ts +87 -0
- package/src/engine/combat/castAction.ts +36 -0
- package/src/engine/combat/castTargetGates.ts +75 -0
- package/src/engine/combat/castableKit.ts +68 -0
- package/src/engine/combat/ccMirrorUpgrade.ts +39 -0
- package/src/engine/combat/chainFan.ts +210 -0
- package/src/engine/combat/channel.ts +423 -0
- package/src/engine/combat/chaseCloseness.ts +95 -0
- package/src/engine/combat/cmangosCastGates.ts +129 -0
- package/src/engine/combat/combatFlag.ts +77 -0
- package/src/engine/combat/combatGeometry.ts +1329 -0
- package/src/engine/combat/combustion.ts +68 -0
- package/src/engine/combat/context.ts +730 -0
- package/src/engine/combat/createSession.ts +1165 -0
- package/src/engine/combat/creatureLeash.ts +38 -0
- package/src/engine/combat/crowdControl.ts +1259 -0
- package/src/engine/combat/dispelDuty.ts +54 -0
- package/src/engine/combat/dispelReflect.ts +609 -0
- package/src/engine/combat/displaceFloor.ts +113 -0
- package/src/engine/combat/duelBounds.ts +47 -0
- package/src/engine/combat/equippedItemGate.ts +297 -0
- package/src/engine/combat/evadeLifecycle.ts +63 -0
- package/src/engine/combat/eventAi.ts +2220 -0
- package/src/engine/combat/facing.ts +74 -0
- package/src/engine/combat/fearFlee.ts +137 -0
- package/src/engine/combat/fighterFactory.ts +1144 -0
- package/src/engine/combat/forceDespawnAction.ts +51 -0
- package/src/engine/combat/formulas.ts +807 -0
- package/src/engine/combat/friendlyFan.ts +55 -0
- package/src/engine/combat/groundPoolTick.ts +210 -0
- package/src/engine/combat/hazards.ts +114 -0
- package/src/engine/combat/healTargets.ts +226 -0
- package/src/engine/combat/heartbeatResist.ts +49 -0
- package/src/engine/combat/hostileItemUse.ts +75 -0
- package/src/engine/combat/interruptAuras.ts +66 -0
- package/src/engine/combat/itemRescue.ts +49 -0
- package/src/engine/combat/itemUse.ts +260 -0
- package/src/engine/combat/kitById.ts +23 -0
- package/src/engine/combat/knockBack.ts +201 -0
- package/src/engine/combat/leap.ts +89 -0
- package/src/engine/combat/mitigation.ts +587 -0
- package/src/engine/combat/modTaunt.ts +43 -0
- package/src/engine/combat/motionClaim.ts +268 -0
- package/src/engine/combat/motionGate.ts +150 -0
- package/src/engine/combat/motionGenerator.ts +27 -0
- package/src/engine/combat/navSight.ts +138 -0
- package/src/engine/combat/perfSink.ts +28 -0
- package/src/engine/combat/periodicDue.ts +55 -0
- package/src/engine/combat/petAuras.ts +86 -0
- package/src/engine/combat/pickAction.ts +3449 -0
- package/src/engine/combat/powerForm.ts +735 -0
- package/src/engine/combat/powerPools.ts +49 -0
- package/src/engine/combat/predicates.ts +538 -0
- package/src/engine/combat/procsDamage.ts +1823 -0
- package/src/engine/combat/reactiveGates.ts +135 -0
- package/src/engine/combat/roles.ts +389 -0
- package/src/engine/combat/rotationSubject.ts +78 -0
- package/src/engine/combat/ruleAfter.ts +106 -0
- package/src/engine/combat/seedDisplayAuras.ts +203 -0
- package/src/engine/combat/seedOocEffects.ts +317 -0
- package/src/engine/combat/seedSchoolImmunities.ts +45 -0
- package/src/engine/combat/session-types.ts +458 -0
- package/src/engine/combat/sessionApi.ts +1785 -0
- package/src/engine/combat/sessionCharge.ts +124 -0
- package/src/engine/combat/sessionChase.ts +869 -0
- package/src/engine/combat/sessionDeaths.ts +469 -0
- package/src/engine/combat/sessionFocus.ts +506 -0
- package/src/engine/combat/sessionFollow.ts +167 -0
- package/src/engine/combat/sessionGeometry.ts +188 -0
- package/src/engine/combat/sessionHome.ts +75 -0
- package/src/engine/combat/sessionInject.ts +719 -0
- package/src/engine/combat/sessionMechanicMove.ts +555 -0
- package/src/engine/combat/sessionMotion.ts +1553 -0
- package/src/engine/combat/sessionMotionKit.ts +247 -0
- package/src/engine/combat/sessionMoveIntent.ts +49 -0
- package/src/engine/combat/sessionMoveOrder.ts +200 -0
- package/src/engine/combat/sessionPathTo.ts +657 -0
- package/src/engine/combat/sessionPools.ts +688 -0
- package/src/engine/combat/sessionSteer.ts +144 -0
- package/src/engine/combat/sessionStepBack.ts +151 -0
- package/src/engine/combat/sessionStepWrap.ts +116 -0
- package/src/engine/combat/sessionView.ts +442 -0
- package/src/engine/combat/simEffects.ts +32 -0
- package/src/engine/combat/simFacade.ts +620 -0
- package/src/engine/combat/simPump.ts +264 -0
- package/src/engine/combat/simSnapshot.ts +165 -0
- package/src/engine/combat/simThreadPool.ts +35 -0
- package/src/engine/combat/skeramImages.ts +57 -0
- package/src/engine/combat/slowUpdate.ts +178 -0
- package/src/engine/combat/snapToFloor.ts +42 -0
- package/src/engine/combat/speedAura.ts +29 -0
- package/src/engine/combat/spellReagents.ts +71 -0
- package/src/engine/combat/stealthDetect.ts +93 -0
- package/src/engine/combat/stepBackMotion.ts +171 -0
- package/src/engine/combat/stepSession.ts +3102 -0
- package/src/engine/combat/summonCast.ts +243 -0
- package/src/engine/combat/thaddiusPolarity.ts +97 -0
- package/src/engine/combat/threat.ts +388 -0
- package/src/engine/combat/threatOps.ts +272 -0
- package/src/engine/combat/tickWorkerBody.ts +211 -0
- package/src/engine/combat/totemAuras.ts +122 -0
- package/src/engine/combat/triggerPayload.ts +42 -0
- package/src/engine/combat/triggeredCompanion.ts +63 -0
- package/src/engine/combat/types.ts +1897 -0
- package/src/engine/combat/useObjectTrap.ts +140 -0
- package/src/engine/combat/walkSurface.ts +54 -0
- package/src/engine/combat/weapon.ts +1248 -0
- package/src/engine/combat/worldFrame.ts +43 -0
- package/src/engine/combat.solo-golden.json +2242 -0
- package/src/engine/combat.ts +84 -0
- package/src/engine/core/detMath.ts +289 -0
- package/src/engine/core/events.ts +357 -0
- package/src/engine/core/rng.ts +36 -0
- package/src/engine/game/actionBars.ts +124 -0
- package/src/engine/game/activateObjectFromSpell.ts +320 -0
- package/src/engine/game/applyActiveObjectFromDbScript.ts +98 -0
- package/src/engine/game/applyDeathAndSpellScripts.ts +268 -0
- package/src/engine/game/applyDoorFromDbScript.ts +388 -0
- package/src/engine/game/applyEscortFromDbScript.ts +290 -0
- package/src/engine/game/applyGoSpellcasterCast.ts +40 -0
- package/src/engine/game/applyHoverFromDbScript.ts +110 -0
- package/src/engine/game/applyOocResurrect.ts +71 -0
- package/src/engine/game/applySpellDurability.ts +115 -0
- package/src/engine/game/applyTailFromDbScript.ts +478 -0
- package/src/engine/game/applyTerminateFromDbScript.ts +95 -0
- package/src/engine/game/auctionMail.ts +269 -0
- package/src/engine/game/bagOverflow.ts +130 -0
- package/src/engine/game/bank.ts +110 -0
- package/src/engine/game/barAutofill.ts +26 -0
- package/src/engine/game/battleground.ts +369 -0
- package/src/engine/game/combatEnemySpec.ts +216 -0
- package/src/engine/game/combatObjectTraps.ts +167 -0
- package/src/engine/game/combatSeed.ts +320 -0
- package/src/engine/game/combatSession.ts +3241 -0
- package/src/engine/game/combatSessionClock.ts +62 -0
- package/src/engine/game/companionQuestActions.ts +242 -0
- package/src/engine/game/companionTraining.ts +40 -0
- package/src/engine/game/consumables.ts +624 -0
- package/src/engine/game/context.ts +53 -0
- package/src/engine/game/createHealthstone.ts +45 -0
- package/src/engine/game/deathFlow.ts +127 -0
- package/src/engine/game/devGrant.ts +117 -0
- package/src/engine/game/dynamicObject.ts +365 -0
- package/src/engine/game/enchantItem.ts +177 -0
- package/src/engine/game/equipmentHelper.ts +806 -0
- package/src/engine/game/factionState.ts +108 -0
- package/src/engine/game/garmentsOoc.ts +69 -0
- package/src/engine/game/globalActionBar.ts +179 -0
- package/src/engine/game/goInteractQuestCredit.ts +51 -0
- package/src/engine/game/goMoTransportUse.ts +61 -0
- package/src/engine/game/goTransportUse.ts +60 -0
- package/src/engine/game/healthstoneUpkeep.ts +59 -0
- package/src/engine/game/killSkin.ts +124 -0
- package/src/engine/game/learnFromItem.ts +118 -0
- package/src/engine/game/loadReconcile.ts +551 -0
- package/src/engine/game/loot.ts +294 -0
- package/src/engine/game/macros.ts +125 -0
- package/src/engine/game/mail.ts +293 -0
- package/src/engine/game/meetingStoneQueue.ts +75 -0
- package/src/engine/game/meetingStoneUse.ts +54 -0
- package/src/engine/game/newGameState.ts +363 -0
- package/src/engine/game/oocAuraInterrupt.ts +92 -0
- package/src/engine/game/oocCast.ts +241 -0
- package/src/engine/game/oocCastEffects.ts +803 -0
- package/src/engine/game/oocCastMethods.ts +1077 -0
- package/src/engine/game/openLockFromSpell.ts +174 -0
- package/src/engine/game/outdoorPvp.ts +187 -0
- package/src/engine/game/outfitter.ts +644 -0
- package/src/engine/game/paladinBoard.ts +393 -0
- package/src/engine/game/partyAuras.ts +121 -0
- package/src/engine/game/persistCombatAuras.ts +91 -0
- package/src/engine/game/pets.ts +459 -0
- package/src/engine/game/prePullHealthstones.ts +154 -0
- package/src/engine/game/professions.ts +2227 -0
- package/src/engine/game/pruneStaleRuntime.ts +39 -0
- package/src/engine/game/questFightCredit.ts +36 -0
- package/src/engine/game/questItemOnCorpse.ts +166 -0
- package/src/engine/game/questItemOnCreature.ts +103 -0
- package/src/engine/game/questLog.ts +879 -0
- package/src/engine/game/questSpellComplete.ts +21 -0
- package/src/engine/game/questTurnIn.ts +598 -0
- package/src/engine/game/raidParty.ts +32 -0
- package/src/engine/game/reagentBuyIn.ts +39 -0
- package/src/engine/game/regenRest.ts +186 -0
- package/src/engine/game/rotation.ts +425 -0
- package/src/engine/game/runFullDungeon.ts +611 -0
- package/src/engine/game/runSupply.ts +80 -0
- package/src/engine/game/sanitizeDriftedItems.ts +135 -0
- package/src/engine/game/scriptDevGoUse.ts +397 -0
- package/src/engine/game/scriptDevInnkeeper.ts +150 -0
- package/src/engine/game/scriptDevProfessionSpec.ts +99 -0
- package/src/engine/game/sendEventFromSpell.ts +87 -0
- package/src/engine/game/sortContainers.ts +85 -0
- package/src/engine/game/spellReputation.ts +69 -0
- package/src/engine/game/squad/squadDungeonSeating.ts +197 -0
- package/src/engine/game/squadDungeon.ts +4222 -0
- package/src/engine/game/squadQuestShare.ts +260 -0
- package/src/engine/game/summonObjectSlot.ts +69 -0
- package/src/engine/game/summonObjectWild.ts +73 -0
- package/src/engine/game/summoningRitualUse.ts +141 -0
- package/src/engine/game/talents.ts +356 -0
- package/src/engine/game/tamingRodUse.ts +66 -0
- package/src/engine/game/tempSpawnCreature.ts +136 -0
- package/src/engine/game/tickDungeonPatrolScripts.ts +205 -0
- package/src/engine/game/tickTimedQuests.ts +28 -0
- package/src/engine/game/trade.ts +586 -0
- package/src/engine/game/travel.ts +1155 -0
- package/src/engine/game/types.ts +1855 -0
- package/src/engine/game/vendorOffers.ts +244 -0
- package/src/engine/game/weaponImbueItem.ts +281 -0
- package/src/engine/game/worldSession.ts +183 -0
- package/src/engine/game/worldState.ts +166 -0
- package/src/engine/game.ts +968 -0
- package/src/engine/spells/GAP.md +67 -0
- package/src/engine/spells/absorbs.ts +376 -0
- package/src/engine/spells/addTargetTrigger.ts +53 -0
- package/src/engine/spells/auraPerSecondCost.ts +50 -0
- package/src/engine/spells/auraStacking.ts +497 -0
- package/src/engine/spells/cmangos-special-cases-combustion.ts +13 -0
- package/src/engine/spells/cmangos-special-cases-s18.ts +445 -0
- package/src/engine/spells/cmangos-special-cases-s19.ts +324 -0
- package/src/engine/spells/cmangos-special-cases-s20.ts +385 -0
- package/src/engine/spells/cmangos-special-cases-s21.ts +116 -0
- package/src/engine/spells/cmangos-special-cases-s22.ts +24 -0
- package/src/engine/spells/cmangos-special-cases-s23.ts +52 -0
- package/src/engine/spells/cmangos-special-cases.ts +1570 -0
- package/src/engine/spells/conditions.ts +718 -0
- package/src/engine/spells/effects.ts +203 -0
- package/src/engine/spells/fixtures/oracle-effects-lock9a.json +1 -0
- package/src/engine/spells/immunity.ts +942 -0
- package/src/engine/spells/intentEffects.ts +351 -0
- package/src/engine/spells/interpreter/GAPS.md +21 -0
- package/src/engine/spells/interpreter/amount.ts +109 -0
- package/src/engine/spells/interpreter/class-scripts-kit.ts +478 -0
- package/src/engine/spells/interpreter/diff.ts +246 -0
- package/src/engine/spells/interpreter/duration.ts +90 -0
- package/src/engine/spells/interpreter/form-attrs.json +1 -0
- package/src/engine/spells/interpreter/form-attrs.ts +95 -0
- package/src/engine/spells/interpreter/handlers/aura-remove.ts +113 -0
- package/src/engine/spells/interpreter/handlers/auras-control.ts +1547 -0
- package/src/engine/spells/interpreter/handlers/auras-core.ts +1583 -0
- package/src/engine/spells/interpreter/handlers/auras-misc.ts +1774 -0
- package/src/engine/spells/interpreter/handlers/effect-disenchant.ts +17 -0
- package/src/engine/spells/interpreter/handlers/effect-skinning.ts +20 -0
- package/src/engine/spells/interpreter/handlers/effects-action-utility.ts +1455 -0
- package/src/engine/spells/interpreter/handlers/effects-core.ts +432 -0
- package/src/engine/spells/interpreter/handlers/effects-remainder.ts +105 -0
- package/src/engine/spells/interpreter/handlers/effects-summon-item.ts +687 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy-percent.ts +36 -0
- package/src/engine/spells/interpreter/handlers/mod-increase-energy.ts +36 -0
- package/src/engine/spells/interpreter/handlers/periodic-trigger-zero.ts +327 -0
- package/src/engine/spells/interpreter/handlers/procs.ts +131 -0
- package/src/engine/spells/interpreter/handlers/registry.ts +975 -0
- package/src/engine/spells/interpreter/handlers/shared.ts +667 -0
- package/src/engine/spells/interpreter/handlers.ts +9 -0
- package/src/engine/spells/interpreter/hunter-kit.ts +202 -0
- package/src/engine/spells/interpreter/index.ts +525 -0
- package/src/engine/spells/interpreter/item-triggers.ts +1121 -0
- package/src/engine/spells/interpreter/lift-consume-energy.ts +37 -0
- package/src/engine/spells/interpreter/mage-portals.ts +37 -0
- package/src/engine/spells/interpreter/materialize-charm.ts +88 -0
- package/src/engine/spells/interpreter/materialize-dispel-mechanic.ts +25 -0
- package/src/engine/spells/interpreter/materialize-rating-buffs.ts +81 -0
- package/src/engine/spells/interpreter/materialize-speed.ts +109 -0
- package/src/engine/spells/interpreter/materialize-spell-magnet.ts +22 -0
- package/src/engine/spells/interpreter/opcodes.ts +789 -0
- package/src/engine/spells/interpreter/paladin-kit.ts +95 -0
- package/src/engine/spells/interpreter/paladin-seals.ts +499 -0
- package/src/engine/spells/interpreter/priest-warlock-kit.ts +135 -0
- package/src/engine/spells/interpreter/proc.ts +443 -0
- package/src/engine/spells/interpreter/registry/helpers.ts +16 -0
- package/src/engine/spells/interpreter/registry/index.ts +216 -0
- package/src/engine/spells/interpreter/registry/packs/class-abilities.ts +304 -0
- package/src/engine/spells/interpreter/registry/packs/dire-maul.ts +44 -0
- package/src/engine/spells/interpreter/registry/packs/dummy-script-tail.ts +1065 -0
- package/src/engine/spells/interpreter/registry/packs/ex-wave-m.ts +70 -0
- package/src/engine/spells/interpreter/registry/packs/life-tap.ts +107 -0
- package/src/engine/spells/interpreter/registry/packs/paladin.ts +246 -0
- package/src/engine/spells/interpreter/registry/packs/raid-script-summons.ts +26 -0
- package/src/engine/spells/interpreter/registry/packs/raid-threat-wipe.ts +22 -0
- package/src/engine/spells/interpreter/registry/packs/shaman.ts +214 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-a.ts +269 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-b.ts +370 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-generic-c.ts +172 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-hunter.ts +60 -0
- package/src/engine/spells/interpreter/registry/packs/si4-dummy-warrior.ts +31 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-a.ts +114 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-b.ts +249 -0
- package/src/engine/spells/interpreter/registry/packs/si4-script-generic-c.ts +233 -0
- package/src/engine/spells/interpreter/registry/types.ts +48 -0
- package/src/engine/spells/interpreter/talent-scripted.ts +329 -0
- package/src/engine/spells/interpreter/targeting.ts +90 -0
- package/src/engine/spells/interpreter/types-intent.ts +1501 -0
- package/src/engine/spells/interpreter/types.ts +419 -0
- package/src/engine/spells/interpreter/warrior-druid-kit.ts +314 -0
- package/src/engine/spells/interpreter/weapon-imbue-kit.ts +384 -0
- package/src/engine/spells/interrupt.ts +217 -0
- package/src/engine/spells/meleeAttackReset.ts +60 -0
- package/src/engine/spells/oocTriggerSpell.ts +49 -0
- package/src/engine/spells/overrideClassScripts.ts +319 -0
- package/src/engine/spells/parryHaste.ts +20 -0
- package/src/engine/spells/procs.ts +300 -0
- package/src/engine/spells/recovery.ts +203 -0
- package/src/engine/spells/scriptTargetDest.ts +76 -0
- package/src/engine/spells/scriptTargets.ts +85 -0
- package/src/engine/spells/singleTargetAura.ts +82 -0
- package/src/engine/spells/specialCasePayloads.ts +57 -0
- package/src/engine/spells/spellAttributes.ts +249 -0
- package/src/engine/spells/spellBonus.ts +143 -0
- package/src/engine/spells/spellModIntents.ts +419 -0
- package/src/engine/spells/spellMods.ts +283 -0
- package/src/engine/spells/spellRadius.ts +15 -0
- package/src/engine/spells/trapObjects.ts +26 -0
- package/src/json.d.ts +7 -0
- package/src/persistence/memoryRepository.ts +23 -0
- package/src/persistence/saveBackups.ts +162 -0
- package/src/persistence/saveFile.ts +68 -0
- package/src/persistence/saveRepository.ts +11 -0
- package/src/persistence/saveShape.ts +668 -0
- package/src/progression/leveling.ts +89 -0
- package/src/progression/rest.ts +1434 -0
- package/src/progression/training.ts +226 -0
- package/src/progression/xpGain.ts +369 -0
- package/src/quests/quests.ts +1580 -0
- package/src/world/aoePull.ts +198 -0
- package/src/world/areaTableDbc.ts +39 -0
- package/src/world/areaTableMapIdPairs.ts +141 -0
- package/src/world/bakeSlug.ts +43 -0
- package/src/world/continuousDungeon.ts +1250 -0
- package/src/world/dungeonBakeProjection.ts +190 -0
- package/src/world/dungeonMapDensity.ts +342 -0
- package/src/world/dungeonMapProjection.ts +135 -0
- package/src/world/dungeonNav.ts +904 -0
- package/src/world/dungeonNpcSim.ts +147 -0
- package/src/world/dungeonObjectives.ts +234 -0
- package/src/world/dungeonPreset.ts +35 -0
- package/src/world/dungeonRoute.ts +311 -0
- package/src/world/dungeonRouteGeometry.ts +732 -0
- package/src/world/dungeonRouteOrder.ts +1037 -0
- package/src/world/dungeonWingRooms.ts +426 -0
- package/src/world/escort.ts +296 -0
- package/src/world/goPoolRoll.ts +75 -0
- package/src/world/instanceObjects.ts +785 -0
- package/src/world/instances.ts +1572 -0
- package/src/world/meetingStones.ts +56 -0
- package/src/world/navmeshFloors.ts +145 -0
- package/src/world/nearGrid.ts +167 -0
- package/src/world/packBudget.ts +613 -0
- package/src/world/rareRoll.ts +335 -0
- package/src/world/routeAuthoring.ts +132 -0
- package/src/world/routeEdit.ts +209 -0
- package/src/world/world.ts +812 -0
- package/src/world/zoneHazards.ts +47 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import type { BuffMod, ItemQuality, ItemSlot, School, Stat } from './primitives.ts';
|
|
2
|
+
import type { SpellDef } from './spell.ts';
|
|
3
|
+
import type {
|
|
4
|
+
DisenchantRuleDef,
|
|
5
|
+
EnchantDef,
|
|
6
|
+
EnchantRodDef,
|
|
7
|
+
GameObjectDef,
|
|
8
|
+
GatherNodeDef,
|
|
9
|
+
ProfessionDef,
|
|
10
|
+
ProfTrainerDef,
|
|
11
|
+
RecipeDef,
|
|
12
|
+
SkinnableDef,
|
|
13
|
+
} from './profession.ts';
|
|
14
|
+
|
|
15
|
+
// ---- Items ----------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
export interface ItemDef {
|
|
18
|
+
entry: number;
|
|
19
|
+
name: string;
|
|
20
|
+
description?: string; // raw description text from item_template.description (DB flavor/use text; never fabricate)
|
|
21
|
+
quality: ItemQuality;
|
|
22
|
+
requiredLevel: number;
|
|
23
|
+
sellPrice: number; // copper
|
|
24
|
+
buyPrice: number; // copper
|
|
25
|
+
stackable: number; // max stack (1 if not stackable)
|
|
26
|
+
slot?: ItemSlot; // equip slot (absent => not equippable)
|
|
27
|
+
// Class ids from item_template.AllowableClass. Absent = unrestricted (mask -1/0/all-playable).
|
|
28
|
+
// Relics (libram/idol/totem) are not this field — AllowableClass is 32767; see domain/items/relic.ts.
|
|
29
|
+
allowClass?: number[];
|
|
30
|
+
// A pure "Quest" item (item_template.class === 12): useful only for quest objectives, so the
|
|
31
|
+
// runtime never loots/gathers more than the held quests still need (stops quest-item bloat).
|
|
32
|
+
questItem?: boolean;
|
|
33
|
+
// HJ1: a classic-db GM/QA/test row with no baked acquisition path. Name-class sanity only, never
|
|
34
|
+
// an id blocklist. Exclude from botGear pools, AH fill and player-facing browsers.
|
|
35
|
+
notObtainable?: boolean;
|
|
36
|
+
bagSlots?: number; // container capacity when slot === 'bag' (extra backpack slots when equipped)
|
|
37
|
+
icon?: string; // WoW icon name; UI-only, absent => question-mark fallback
|
|
38
|
+
weapon?: { dmgMin: number; dmgMax: number; delayMs: number; school: School };
|
|
39
|
+
// item_template.class (ITEM_CLASS_*), populated on every item from the dump. Sibling fields stay:
|
|
40
|
+
// weaponSubclass (class 2), armorSubclass (class 4), typeName.
|
|
41
|
+
itemClass?: number;
|
|
42
|
+
// item_template.subclass for the item's class. Weapons also set weaponSubclass and armor
|
|
43
|
+
// armorSubclass — do not treat a bare itemSubclass as armor without itemClass === 4.
|
|
44
|
+
itemSubclass?: number;
|
|
45
|
+
// item_template.BagFamily (ARROWS=1, BULLETS=2, …). Used by ItemCanGoIntoBag for quiver/pouch filters.
|
|
46
|
+
// Cite: Item.cpp ItemCanGoIntoBag; ItemPrototype.h.
|
|
47
|
+
bagFamily?: number;
|
|
48
|
+
// item_template.InventoryType, for ammo/thrown gates (24/25/27) and weapons (13 vs 21), so a
|
|
49
|
+
// dual-wield consumer can tell 1H MH/OH from MH-only. Optional: class/subclass often suffices.
|
|
50
|
+
inventoryType?: number;
|
|
51
|
+
// True when InventoryType === 13 (INVTYPE_WEAPON) — equippable mainhand OR offhand. 21 stays
|
|
52
|
+
// mainhand-only. Does not invent dual-wield class rules. Cite: ItemPrototype.h InventoryType.
|
|
53
|
+
canOffhand?: boolean;
|
|
54
|
+
// item_template.subclass when class=2 (weapon). Maps to combat skill via Item::GetSkill. Absent on
|
|
55
|
+
// pre-skill bakes — runtime falls back to typeName.
|
|
56
|
+
weaponSubclass?: number;
|
|
57
|
+
// item_template.subclass when class=4 (armor). Maps to cloth/leather/mail/plate/shield skill. Cite:
|
|
58
|
+
// Item.cpp item_armor_skills. Absent → typeName fallback.
|
|
59
|
+
armorSubclass?: number;
|
|
60
|
+
armor?: number;
|
|
61
|
+
// item_template.block — the shield's own block value, added to the strength term. Cite: Player.cpp
|
|
62
|
+
// GetShieldBlockValue; 330 shields carry it. Absent => 0 (not a shield).
|
|
63
|
+
block?: number;
|
|
64
|
+
stats?: { stat: Stat; value: number }[];
|
|
65
|
+
// Tooltip metadata, extracted from item_template (absent => unknown/not applicable):
|
|
66
|
+
itemLevel?: number; // ItemLevel
|
|
67
|
+
// item_template.FoodType (1 Meat … 8 Raw Fish): the canonical pet-food marker Feed Pet
|
|
68
|
+
// checks (Pet.cpp HaveInDiet). Baked by enrich-pet-diet.mjs; absent => not pet food.
|
|
69
|
+
foodType?: number;
|
|
70
|
+
maxDurability?: number; // real MaxDurability (0/absent => indestructible)
|
|
71
|
+
binding?: number; // bonding: 1 BoP, 2 BoE, 3 BoU, 4 quest item
|
|
72
|
+
typeName?: string; // weapon type ("Sword") or armor material ("Leather"/"Shield")
|
|
73
|
+
// item_template.Material — the ItemMaterials enum for ItemGroupSounds pickup/putdown. Optional;
|
|
74
|
+
// pre-Wave-G bakes omit it and the UI falls back to class/subclass heuristics.
|
|
75
|
+
material?: number;
|
|
76
|
+
consumable?: {
|
|
77
|
+
effect: 'food' | 'drink';
|
|
78
|
+
amountPerTick: number;
|
|
79
|
+
tickMs: number;
|
|
80
|
+
durationMs: number;
|
|
81
|
+
reqLevel: number;
|
|
82
|
+
// Percent-of-max restored per tick, set when the on-use spell ticks aura 20 / 21. It WINS over
|
|
83
|
+
// `amountPerTick`, which stays only as the pre-pctOfMax flat fallback. Cite: SpellAuras.cpp:4706.
|
|
84
|
+
pctOfMax?: number;
|
|
85
|
+
};
|
|
86
|
+
// Instant in-combat use, derived from the on-use spell's real effects: restore_health /
|
|
87
|
+
// restore_power roll a flat restore, and cast_spell replays useSpell through the interpreter.
|
|
88
|
+
useInCombat?: {
|
|
89
|
+
effect: 'restore_health' | 'restore_power' | 'cast_spell';
|
|
90
|
+
/** restore_* only — rolled amount. */
|
|
91
|
+
min?: number;
|
|
92
|
+
max?: number;
|
|
93
|
+
// restore_power only — Powers index the on-use spell fills (0 mana, 1 rage, 2 focus, 3 energy).
|
|
94
|
+
// Cite: SpellEffects.cpp EffectEnergize EffectMiscValue; consumables.ts restoredPowerType.
|
|
95
|
+
powerType?: number;
|
|
96
|
+
/** cast_spell only — spell id to replay (usually === useSpell). */
|
|
97
|
+
spellId?: number;
|
|
98
|
+
/** Personal item CD (spellcooldown_N), ms. */
|
|
99
|
+
cooldownMs?: number;
|
|
100
|
+
/** Shared category id (spellcategory_N). Bombs = 24, potions = 4. */
|
|
101
|
+
category?: number;
|
|
102
|
+
/** Shared category recovery (spellcategorycooldown_N), ms. Bombs = 60000. */
|
|
103
|
+
categoryCooldownMs?: number;
|
|
104
|
+
reqLevel: number;
|
|
105
|
+
};
|
|
106
|
+
// Buff-granting consumable (elixir, scroll, flask, stat food). Populated when a class-0 item's
|
|
107
|
+
// on-use spell has a `buff` SpellEffect; applied with the sourced duration and respecting reqLevel.
|
|
108
|
+
useBuff?: {
|
|
109
|
+
mod: BuffMod;
|
|
110
|
+
amount: number;
|
|
111
|
+
durationMs: number;
|
|
112
|
+
reqLevel: number;
|
|
113
|
+
cooldownMs?: number; // e.g. shared potion CD or elixir sickness
|
|
114
|
+
};
|
|
115
|
+
// The ON_USE slot's cooldown columns, stamped UNCONDITIONALLY whenever the row has one — 626 of
|
|
116
|
+
// 1,122 items with a real cooldown fall through the classifier and were free to spam without it.
|
|
117
|
+
useCooldownMs?: number;
|
|
118
|
+
useCategory?: number;
|
|
119
|
+
useCategoryCooldownMs?: number;
|
|
120
|
+
// General usable: the spell triggered on "Use", from bags or held, populated from spellid_* for
|
|
121
|
+
// class 0 and other usables. Runtime prefers it to dispatch effects.
|
|
122
|
+
useSpell?: number;
|
|
123
|
+
// item_template.spellcharges_1, sign and all: 0 unlimited, < 0 = |n| uses then DESTROYED, > 0 = n
|
|
124
|
+
// uses then kept but refused. Cite: ItemHandler.cpp:366 sign; Spell.cpp:4209 TakeCastItem.
|
|
125
|
+
charges?: number;
|
|
126
|
+
// A book that teaches a PET ability rank when used (the warlock Grimoires). Using it consumes the
|
|
127
|
+
// book and adds this id to Character.petSpells. Absent => not a pet-training book.
|
|
128
|
+
teachPetSpell?: number;
|
|
129
|
+
// A recipe ITEM that teaches a crafting recipe when used — the acquisition path for a recipe
|
|
130
|
+
// whose source is 'drop' or 'vendor'. Using it consumes the item and adds the id to knownRecipes.
|
|
131
|
+
teachRecipe?: number;
|
|
132
|
+
// A Formula: item that teaches an ENCHANT formula the same way (game.learnEnchantFromItem →
|
|
133
|
+
// Character.knownEnchants). Absent => not a formula item.
|
|
134
|
+
teachEnchant?: number;
|
|
135
|
+
// item_template.startquest when > 0 — this item starts that quest entry, the reverse of
|
|
136
|
+
// QuestDef.startedByItem. Cite: item_template.startquest; Player.cpp AcceptQuest.
|
|
137
|
+
startQuest?: number;
|
|
138
|
+
// Equip spells granted by this item (spelltrigger_* = 1), typically passive or while-equipped.
|
|
139
|
+
// The raw spell-id list is retained for fidelity (ammo haste, set tooling).
|
|
140
|
+
equipSpells?: number[];
|
|
141
|
+
// Resolved paperdoll/aura mods from equipSpells, summing the same `mod` across spells and
|
|
142
|
+
// skipping hostile debuffs. Does not replace equipSpells — non-buff auras still need a live cast.
|
|
143
|
+
equipMods?: Array<{ mod: string; amount: number }>;
|
|
144
|
+
// Proc effects (chance on hit / on equip). `chancePct` prefers spell_proc_event.CustomChance over
|
|
145
|
+
// spell_template.ProcChance; `ppm` prefers PPMRate over item_template.spellppmrate_N.
|
|
146
|
+
procs?: Array<{
|
|
147
|
+
spell: number;
|
|
148
|
+
trigger: number;
|
|
149
|
+
chancePct?: number;
|
|
150
|
+
ppm?: number;
|
|
151
|
+
flags?: number;
|
|
152
|
+
procEx?: number;
|
|
153
|
+
cooldownMs?: number;
|
|
154
|
+
schoolMask?: number;
|
|
155
|
+
spellFamilyName?: number;
|
|
156
|
+
spellFamilyMask?: number[];
|
|
157
|
+
}>;
|
|
158
|
+
// If this item belongs to an item set, the set id (from item_template.itemset or DBC).
|
|
159
|
+
setId?: number;
|
|
160
|
+
// ITEM_FLAG_CONJURED (0x2) from item_template.Flags — conjured bread/water/healthstone/… Wave D: replaces
|
|
161
|
+
// isConjuredItem name-rules. Cite: ItemPrototype.h ITEM_FLAG_CONJURED.
|
|
162
|
+
conjured?: boolean;
|
|
163
|
+
// item_template.maxcount when > 0 — a hard ownership cap across bags, bank, keyring and equipped.
|
|
164
|
+
// maxCount 1 is the classic "Unique" line; above 1 is a soft cap. Cite: Player.cpp ~8552.
|
|
165
|
+
maxCount?: number;
|
|
166
|
+
// True when maxCount === 1 (tooltip "Unique"). Baked from maxcount; also set when only the boolean is
|
|
167
|
+
// present on fixtures. Cite: item_template.maxcount.
|
|
168
|
+
unique?: boolean;
|
|
169
|
+
// ITEM_FLAG_UNIQUE_EQUIPPABLE (0x80000) — only one may be equipped at a time; bags may hold more.
|
|
170
|
+
// ClassicDB 1.12 has 0 rows with the bit today. Cite: Player.cpp CanEquipUniqueItem ~19511.
|
|
171
|
+
uniqueEquipped?: boolean;
|
|
172
|
+
// Minimum reputation to buy/equip/use (item_template.RequiredReputationFaction/Rank). Absent =>
|
|
173
|
+
// no reputation requirement. Baked by dev/etl/enrich-reputation.mjs. Cite: Player::CanUseItem.
|
|
174
|
+
requiredRep?: { faction: number; rank: number };
|
|
175
|
+
// item_template.requiredhonorrank — the PvP rank you must have HELD, on the internal 5..18 scale
|
|
176
|
+
// and measured against the HIGHEST rank ever reached. 461 of 21,644 rows. Cite: Player.cpp:17539.
|
|
177
|
+
requiredHonorRank?: number;
|
|
178
|
+
/** item_template.bonding (ItemBondingType). Baked by extract/enrich. */
|
|
179
|
+
bonding?: number;
|
|
180
|
+
// ---- Mounts (P0.7 enrich-mounts.mjs; docs/cmangos_mapping/misc/mounts-riding.md) ----
|
|
181
|
+
// On-use spell carrying aura 78 SPELL_AURA_MOUNTED; its presence marks the item as a mount.
|
|
182
|
+
mountSpell?: number;
|
|
183
|
+
/** Mounted speed bonus from the spell's aura-32 slot: BasePoints+1 (59→60%, 99→100%). */
|
|
184
|
+
mountSpeedPct?: number;
|
|
185
|
+
/** item_template.RequiredSkillRank for skill 762 SKILL_RIDING (75 or 150). */
|
|
186
|
+
requiredRidingRank?: number;
|
|
187
|
+
// item_template.RequiredSkill — the skill line gating USE of this item (202 Engineering on the
|
|
188
|
+
// sapper charge). 0 is ungated, which is correct for every potion. Gate on this, not the rank.
|
|
189
|
+
requiredSkill?: number;
|
|
190
|
+
/** item_template.RequiredSkillRank — value needed in `requiredSkill`. */
|
|
191
|
+
requiredSkillRank?: number;
|
|
192
|
+
/** item_template.AllowableRace mask (CanUseItem, Player.cpp:9774–9803). Absent = unrestricted. */
|
|
193
|
+
allowableRace?: number;
|
|
194
|
+
// Class-6 projectile DPS (item_template.dmg_min1/max1). Wave F / E3b enrich-item-economy. Cite:
|
|
195
|
+
// Player.cpp _ApplyAmmoBonuses.
|
|
196
|
+
ammoDps?: { dpsMin: number; dpsMax: number };
|
|
197
|
+
/** item_template.RandomProperty → item_enchantment_template entry. */
|
|
198
|
+
randomProperty?: number;
|
|
199
|
+
// item_template.BuyCount — units delivered per purchase, and what BuyPrice buys. The price is per
|
|
200
|
+
// BUNDLE, not per unit. Cite: Player.cpp:17516 totalCount and :17551 price.
|
|
201
|
+
buyCount?: number;
|
|
202
|
+
// item_template.lockid → Lock.dbc, set on containers that must be unlocked before their loot
|
|
203
|
+
// opens. A lock needing a skill can never be plain right-clicked. Cite: SpellHandler.cpp:199–217.
|
|
204
|
+
lockId?: number;
|
|
205
|
+
// SpellItemEnchantment TYPE_DAMAGE flat for this enchant id (when known). Prefer resolving via
|
|
206
|
+
// SpellItemEnchantment DBC; optional on item for tests.
|
|
207
|
+
weaponDamageFlat?: number;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Item sets (baked for S3 set-bonus spells). Referenced by items via setId; the bonuses
|
|
211
|
+
// are granted spell ids (resolved via ds.spell when count of equipped pieces met).
|
|
212
|
+
export interface ItemSetDef {
|
|
213
|
+
id: number;
|
|
214
|
+
name?: string;
|
|
215
|
+
items: number[]; // member item entries
|
|
216
|
+
bonuses: Array<{ pieces: number; spell: number }>; // e.g. 2-piece -> spell id
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// ItemRandomProperties.dbc row → hybrid resolve for random "of the X" suffixes. Never invent ids —
|
|
220
|
+
// a missing source omits the map entirely. Cite: DBCStructure.h ItemRandomPropertiesEntry.
|
|
221
|
+
export interface RandomPropertyDef {
|
|
222
|
+
id: number;
|
|
223
|
+
/** Localized name suffix, e.g. "of the Falcon". Absent when DBC string empty. */
|
|
224
|
+
nameSuffix?: string;
|
|
225
|
+
/** Up to 3 SpellItemEnchantment ids (PROP_ENCHANTMENT_SLOT_0..2). */
|
|
226
|
+
enchantIds: number[];
|
|
227
|
+
// Pre-resolved paperdoll bonuses from type-3 equip-spell auras + type 2/4/5 when present. Keys are Stat
|
|
228
|
+
// strings (str/agi/…) or resist keys; only sourced amounts.
|
|
229
|
+
stats?: Partial<Record<string, number>>;
|
|
230
|
+
armor?: number;
|
|
231
|
+
weaponDamageFlat?: number;
|
|
232
|
+
/** Type-3 EQUIP_SPELL args (spell ids) kept for live equip fidelity. */
|
|
233
|
+
equipSpellIds?: number[];
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// ---- Loot -----------------------------------------------------------------
|
|
237
|
+
|
|
238
|
+
export interface LootEntryDef {
|
|
239
|
+
item: number;
|
|
240
|
+
// Drop weight or percent; magnitude is the roll weight (0 = equal chance within its group). A
|
|
241
|
+
// NEGATIVE chance is a quest-required drop, so use Math.abs for weight and the sign for the gate.
|
|
242
|
+
chance: number;
|
|
243
|
+
groupId: number;
|
|
244
|
+
minCount: number;
|
|
245
|
+
maxCount: number;
|
|
246
|
+
/** When true, drop only while the player has a quest needing this item. Prefer signed `chance` for compact tuples. */
|
|
247
|
+
questRequired?: boolean;
|
|
248
|
+
// creature/reference_loot_template.condition_id; omitted or 0 means always eligible. Non-zero ids
|
|
249
|
+
// resolve against DataBundle.conditions, and compact tuples carry it as the optional 6th element.
|
|
250
|
+
conditionId?: number;
|
|
251
|
+
}
|
|
252
|
+
// One loot table in the pre-split bundle. Creature and other bare-id tables use a numeric lootId,
|
|
253
|
+
// GameObject container tables the string form `go:<n>`, so GO and creature loot never collide.
|
|
254
|
+
export interface LootTableDef {
|
|
255
|
+
lootId: number | string;
|
|
256
|
+
entries: LootEntryDef[];
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Compact wire form of the loot tables, split into loot-data.json and lazy-loaded. Each entry is a
|
|
260
|
+
// positional tuple, and the count pair is omitted when it is the near-universal 1..1.
|
|
261
|
+
export type LootTuple =
|
|
262
|
+
| [item: number, chance: number, groupId: number]
|
|
263
|
+
| [item: number, chance: number, groupId: number, minCount: number, maxCount: number]
|
|
264
|
+
/** QI1/FQ4: 6th element is conditionId when non-zero (loot-data compact encoding). */
|
|
265
|
+
| [item: number, chance: number, groupId: number, minCount: number, maxCount: number, conditionId: number];
|
|
266
|
+
export type CompactLoot = Record<string, LootTuple[]>;
|
|
267
|
+
|
|
268
|
+
// The profession mechanics are split into profession-data.json and lazy-loaded: nothing touches
|
|
269
|
+
// them at boot, only post-mount. Every field is optional so a partial chunk still attaches.
|
|
270
|
+
export interface CompactProfessions {
|
|
271
|
+
professions?: ProfessionDef[];
|
|
272
|
+
recipes?: RecipeDef[];
|
|
273
|
+
gatherNodes?: GatherNodeDef[];
|
|
274
|
+
profTrainers?: ProfTrainerDef[];
|
|
275
|
+
skinnable?: SkinnableDef[];
|
|
276
|
+
enchants?: EnchantDef[];
|
|
277
|
+
enchantRods?: EnchantRodDef[];
|
|
278
|
+
disenchantRules?: DisenchantRuleDef[];
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// The non-core spells are split into spell-data.json and attached by an idempotent merge.
|
|
282
|
+
// Player-reachable core spells stay in the boot tables so the spellbook works immediately.
|
|
283
|
+
export interface CompactSpells {
|
|
284
|
+
spells?: SpellDef[];
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// GameObject bulk (~10k templates) is split to gameobject-data.json for the same reason as loot.
|
|
288
|
+
// A minimal quest/current-zone set may stay in the core bundle; attachGameObjects merges the rest.
|
|
289
|
+
export interface CompactGameObjects {
|
|
290
|
+
gameObjects?: GameObjectDef[];
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Item bulk (~17k templates) is split to item-data.json. Boot keeps createInfo starters and
|
|
294
|
+
// attachItems merges the rest idempotently. Full ItemDef[], not tuple-encoded.
|
|
295
|
+
export interface CompactItems {
|
|
296
|
+
items?: ItemDef[];
|
|
297
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// SpellItemEnchantment — what an enchant GRANTS (keyed by enchant id) and which slots an apply
|
|
2
|
+
// spell may target (keyed by apply spell). Separate because 16 enchant ids are shared across slots.
|
|
3
|
+
|
|
4
|
+
import type { School, Stat } from './primitives.ts';
|
|
5
|
+
|
|
6
|
+
/** School index for ITEM_ENCHANTMENT_TYPE_RESISTANCE: 0 is ARMOR, 1..6 are the magic schools. */
|
|
7
|
+
export type EnchantResistSchool = 'armor' | School;
|
|
8
|
+
|
|
9
|
+
// What an EQUIP_SPELL (type 3) enchant grants, resolved from the arg spell's aura. 111 of 134
|
|
10
|
+
// permanent enchants are EQUIP_SPELL, which is why a stats[]-only shape covered 10 of 201 ids.
|
|
11
|
+
export type EnchantGrant =
|
|
12
|
+
| { kind: 'stat'; stat: Stat; amount: number } // aura 29 MOD_STAT
|
|
13
|
+
/** aura 29 with EffectMiscValue -1 — "+N to all stats". */
|
|
14
|
+
| { kind: 'all_stats'; amount: number }
|
|
15
|
+
| { kind: 'resist'; school: EnchantResistSchool; amount: number } // aura 22 MOD_RESISTANCE
|
|
16
|
+
| { kind: 'armor'; amount: number } // type 4, arg 0
|
|
17
|
+
| { kind: 'health'; amount: number } // aura 34
|
|
18
|
+
| { kind: 'mana'; amount: number } // aura 35
|
|
19
|
+
| { kind: 'attack_power'; amount: number } // aura 99
|
|
20
|
+
| { kind: 'ranged_attack_power'; amount: number } // aura 124
|
|
21
|
+
| { kind: 'spell_power'; amount: number; school?: School } // aura 13
|
|
22
|
+
| { kind: 'healing_power'; amount: number } // aura 135
|
|
23
|
+
| { kind: 'mp5'; amount: number } // aura 85
|
|
24
|
+
| { kind: 'hp5'; amount: number } // aura 84
|
|
25
|
+
| { kind: 'haste_pct'; amount: number } // aura 138 / 140
|
|
26
|
+
| { kind: 'crit_pct'; amount: number } // aura 52
|
|
27
|
+
| { kind: 'hit_pct'; amount: number } // aura 54
|
|
28
|
+
| { kind: 'dodge_pct'; amount: number } // aura 49
|
|
29
|
+
| { kind: 'block_pct'; amount: number } // aura 51
|
|
30
|
+
| { kind: 'skill'; skillLine: number; amount: number } // aura 30
|
|
31
|
+
| { kind: 'threat_pct'; amount: number } // aura 10
|
|
32
|
+
| { kind: 'stealth_level'; amount: number } // aura 154
|
|
33
|
+
| { kind: 'move_speed_pct'; amount: number } // aura 31
|
|
34
|
+
| { kind: 'mount_speed_pct'; amount: number } // aura 130
|
|
35
|
+
| { kind: 'attack_power_vs'; creatureTypeMask: number; amount: number } // aura 102 / 131
|
|
36
|
+
| { kind: 'spell_damage_vs'; creatureTypeMask: number; amount: number } // aura 180
|
|
37
|
+
| { kind: 'damage_done_creature'; creatureTypeMask: number; amount: number }// aura 59
|
|
38
|
+
| { kind: 'mechanic_immunity'; mechanic: number } // aura 77 — Weapon Chain → disarm
|
|
39
|
+
| { kind: 'hp5_combat'; amount: number } // aura 161 (in combat only)
|
|
40
|
+
| { kind: 'spell_crit_pct'; amount: number } // aura 57
|
|
41
|
+
| { kind: 'spell_hit_pct'; amount: number } // aura 55
|
|
42
|
+
| { kind: 'block_value'; amount: number } // aura 158
|
|
43
|
+
/** aura 42 PROC_TRIGGER_SPELL — Crusader, Fiery Weapon, Lifestealing. The chance lives on the
|
|
44
|
+
* arg spell's ProcChance, the payload on its EffectTriggerSpell. */
|
|
45
|
+
| { kind: 'proc_spell'; spellId: number; chancePct?: number }
|
|
46
|
+
/** aura 43 PROC_TRIGGER_DAMAGE — flat damage back on the attacker (thorns-shaped). */
|
|
47
|
+
| { kind: 'proc_damage'; amount: number }
|
|
48
|
+
/** An arg spell whose aura this decode does not model yet. Kept so the row is never silently
|
|
49
|
+
* dropped — a reader can see the enchant grants SOMETHING and go look it up. */
|
|
50
|
+
| { kind: 'unmapped_aura'; auraId: number; amount: number };
|
|
51
|
+
|
|
52
|
+
/** One of the three effect slots on a SpellItemEnchantment row, as ApplyEnchantment iterates 0..2. */
|
|
53
|
+
export type ItemEnchantEffect =
|
|
54
|
+
| { type: 'combat_spell'; spellId: number; chancePct?: number; ppm?: number } // 1
|
|
55
|
+
| { type: 'weapon_damage'; amount: number } // 2
|
|
56
|
+
| { type: 'equip_spell'; spellId: number; grants: EnchantGrant[] } // 3
|
|
57
|
+
| { type: 'resistance'; school: EnchantResistSchool; amount: number } // 4
|
|
58
|
+
| { type: 'stat'; stat: Stat; amount: number } // 5
|
|
59
|
+
| { type: 'totem'; amountPerSecOfSpeed: number }; // 6
|
|
60
|
+
|
|
61
|
+
// One SpellItemEnchantment row, slot-agnostic on purpose — see the file header.
|
|
62
|
+
// Cite: DBCStructure.h SpellItemEnchantmentEntry (24 fields, recordSize 96); DBCEnums.h.
|
|
63
|
+
export interface ItemEnchantDef {
|
|
64
|
+
/** SpellItemEnchantment.ID — the link that did not exist in the bake at all. */
|
|
65
|
+
id: number;
|
|
66
|
+
/** Recovered name from the DBC string block. */
|
|
67
|
+
name: string;
|
|
68
|
+
/** Up to three, in DBC slot order. */
|
|
69
|
+
effects: ItemEnchantEffect[];
|
|
70
|
+
// DBC Flags 0x01 — blocks application to an item in the TRADE window. Cite: Spell.cpp CheckCast, effect
|
|
71
|
+
// 53 / effect 54 branches.
|
|
72
|
+
soulbound?: boolean;
|
|
73
|
+
/** DBC Flags 0x04 — main hand only. Cite: Item::IsMainHandOnlyEnchant. */
|
|
74
|
+
mainhandOnly?: boolean;
|
|
75
|
+
/** ItemVisual / aura_id (DBC field 22). Cosmetic; kept because the column exists. */
|
|
76
|
+
itemVisual?: number;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// One apply spell — an item's `useSpell`, or a shaman/rogue cast — carrying pure targeting and
|
|
80
|
+
// duration. This is what a "where do you want it?" picker reads. Cite: Item::IsFitToSpellRequirements.
|
|
81
|
+
export interface EnchantApplicatorDef {
|
|
82
|
+
spellId: number;
|
|
83
|
+
/** → ItemEnchantDef.id */
|
|
84
|
+
enchantId: number;
|
|
85
|
+
/** effect 53 (PERM_ENCHANTMENT_SLOT) vs effect 54 (TEMP_ENCHANTMENT_SLOT). */
|
|
86
|
+
permanent: boolean;
|
|
87
|
+
/** Effect 54 only. cmangos: `damage > 0 ? damage : 3600` seconds. Cite: SpellEffects.cpp
|
|
88
|
+
* EffectEnchantItemTmp. */
|
|
89
|
+
durationMs?: number;
|
|
90
|
+
target: {
|
|
91
|
+
/** 2 weapon | 4 armor | -1 any. */
|
|
92
|
+
itemClass: 2 | 4 | -1;
|
|
93
|
+
/** 0 = any. Bit per ItemPrototype subclass. */
|
|
94
|
+
subClassMask: number;
|
|
95
|
+
/** 0 = any. Bit per InventoryType. */
|
|
96
|
+
inventoryTypeMask: number;
|
|
97
|
+
// Permanent only: spell_template.BaseLevel as weapon/armor ItemLevel floor (Spell.cpp:6672-6673).
|
|
98
|
+
// Temporary applicators always 0 — baseLevel is player rank, not ilvl.
|
|
99
|
+
minItemLevel: number;
|
|
100
|
+
};
|
|
101
|
+
/** Targets & TARGET_FLAG_ITEM. */
|
|
102
|
+
requiresItemTarget: boolean;
|
|
103
|
+
/** AttributesEx2 & 0x2000 — refuses an item in the trade window (someone else's). */
|
|
104
|
+
ownItemOnly: boolean;
|
|
105
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// ---- Trainers -------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
export interface TrainerSpellDef {
|
|
4
|
+
spell: number;
|
|
5
|
+
cost: number; // copper
|
|
6
|
+
reqLevel: number;
|
|
7
|
+
reqSkill: number;
|
|
8
|
+
reqSkillValue: number;
|
|
9
|
+
}
|
|
10
|
+
export interface TrainerDef {
|
|
11
|
+
entry: number;
|
|
12
|
+
name: string;
|
|
13
|
+
/** creature_template.SubName — e.g. "Weapon Master" for TrainerType=2 masters. */
|
|
14
|
+
subname?: string;
|
|
15
|
+
spells: TrainerSpellDef[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ---- Vendors --------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
// An NPC merchant. `items` lists every offered item id, and rows with a non-zero npc_vendor
|
|
21
|
+
// condition_id are ALSO recorded in `itemConditions` so the conditions engine can gate them.
|
|
22
|
+
export interface VendorDef {
|
|
23
|
+
entry: number;
|
|
24
|
+
name: string;
|
|
25
|
+
subname?: string; // the NPC's trade title ("Reagent Vendor", "General Goods") — creature_template.SubName; UI label + icon
|
|
26
|
+
items: number[]; // item entries offered for sale (includes conditional stock item ids)
|
|
27
|
+
// Conditional stock only (npc_vendor / npc_vendor_template condition_id ≠ 0). Each `item` also appears in
|
|
28
|
+
// `items`. Absent / empty ⇒ all stock is unconditional.
|
|
29
|
+
itemConditions?: Array<{ item: number; conditionId: number }>;
|
|
30
|
+
/** Limited stock rows (npc_vendor maxcount/incrtime). Absent ⇒ unlimited. */
|
|
31
|
+
stock?: Array<{ item: number; maxcount: number; incrtime: number }>;
|
|
32
|
+
/** Offers the repair service (creature_template.NpcFlags & UNIT_NPC_FLAG_REPAIR). */
|
|
33
|
+
canRepair?: boolean;
|
|
34
|
+
// Visual PvP rank (1..14) needed to REACH this vendor, for the NPCs behind a rank-gated door.
|
|
35
|
+
// Those maps have no WorldMapArea rect, so the door check travels on the vendor row.
|
|
36
|
+
requiredVisualRank?: number;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// One npc_text row: the body an NPC says above its gossip options, up to 8 weighted slots.
|
|
40
|
+
// `female` appears only when it differs from `male`. Cite: ObjectMgr.cpp:5555-5673 LoadGossipText.
|
|
41
|
+
export interface NpcTextDef {
|
|
42
|
+
id: number;
|
|
43
|
+
slots: Array<{ prob: number; male: string; female?: string }>;
|
|
44
|
+
}
|