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,369 @@
|
|
|
1
|
+
// QI4 — eastern_kingdoms/stormwind_city residual, extracted for the 1500-line ratchet. Accept hooks
|
|
2
|
+
// for quests 1640, 1447 and 6403, plus the Squire Rowe gossip for 6402. Cite: stormwind_city.cpp.
|
|
3
|
+
|
|
4
|
+
import type { DbScriptIntent } from './types.ts';
|
|
5
|
+
import {
|
|
6
|
+
NPC_FLAG_CHANGE_REMOVE,
|
|
7
|
+
TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN,
|
|
8
|
+
} from './opcodes.ts';
|
|
9
|
+
|
|
10
|
+
/** Matches registry.ts QuestScriptHook — local to avoid circular import. */
|
|
11
|
+
type QuestScriptHook = 'accept' | 'reward' | 'complete' | 'frame';
|
|
12
|
+
|
|
13
|
+
// ── sourced constants ────────────────────────────────────────────────────────
|
|
14
|
+
|
|
15
|
+
/** Cite: stormwind_city.cpp:46 QUEST_BEAT = 1640 Beat Bartleby — duel Bartleby for his mug. */
|
|
16
|
+
export const QUEST_BEAT = 1640;
|
|
17
|
+
// Cite: stormwind_city.cpp:100 QUEST_MISSING_DIPLO_PT8 = 1447 The Missing Diplomat (pt8) — defeat Dashel
|
|
18
|
+
// Stonefist in Old Town.
|
|
19
|
+
export const QUEST_MISSING_DIPLO_PT8 = 1447;
|
|
20
|
+
// Cite: stormwind_city.cpp:521 QUEST_STORMWIND_RENDEZVOUS = 6402 Stormwind Rendezvous — meet Windsor at the
|
|
21
|
+
// city gates (Squire Rowe gossip).
|
|
22
|
+
export const QUEST_STORMWIND_RENDEZVOUS = 6402;
|
|
23
|
+
// Cite: stormwind_city.cpp:522 QUEST_THE_GREAT_MASQUERADE = 6403 The Great Masquerade — escort Reginald
|
|
24
|
+
// Windsor to keep / expose Prestor.
|
|
25
|
+
export const QUEST_THE_GREAT_MASQUERADE = 6403;
|
|
26
|
+
|
|
27
|
+
// Cite: bake starterCreatureEntries / classic-db creature_questrelation Bartleby (npc_bartleby script
|
|
28
|
+
// name).
|
|
29
|
+
const NPC_BARTLEBY = 6090;
|
|
30
|
+
/** Cite: bake starterCreatureEntries — Dashel Stonefist (npc_dashel_stonefist script name). */
|
|
31
|
+
const NPC_DASHEL_STONEFIST = 4961;
|
|
32
|
+
/** Cite: stormwind_city.cpp:102 NPC_OLD_TOWN_THUG = 4969 Thugs summoned on Missing Diplomat accept. */
|
|
33
|
+
const NPC_OLD_TOWN_THUG = 4969;
|
|
34
|
+
// Cite: world_eastern_kingdoms.h:12 NPC_WINDSOR = 12580 Reginald Windsor (npc_reginald_windsor); also ender
|
|
35
|
+
// of 6402 / starter of 6403.
|
|
36
|
+
const NPC_WINDSOR = 12580;
|
|
37
|
+
// Cite: scriptdev2.sql ScriptName='npc_squire_rowe' WHERE entry=17804 Squire Rowe — gossip starts Windsor
|
|
38
|
+
// summon escort for 6402 turn-in.
|
|
39
|
+
const NPC_SQUIRE_ROWE = 17804;
|
|
40
|
+
// Cite: bake enderCreatureEntries quest 6403 — Highlord Bolvar Fordragon world_eastern_kingdoms.h:10
|
|
41
|
+
// NPC_BOLVAR = 1748
|
|
42
|
+
const NPC_BOLVAR = 1748;
|
|
43
|
+
/** Cite: bake starterCreatureEntries quest 6402 — Marshal Maxwell */
|
|
44
|
+
const NPC_MARSHAL_MAXWELL = 9560;
|
|
45
|
+
|
|
46
|
+
/** Cite: stormwind_city.cpp:45 FACTION_ENEMY = 168 Bartleby accept SetFactionTemporary. */
|
|
47
|
+
const FACTION_ENEMY = 168;
|
|
48
|
+
// Cite: stormwind_city.cpp:104 FACTION_NEUTRAL = 189 Dashel accept SetFactionTemporary (hostile enough to
|
|
49
|
+
// fight player).
|
|
50
|
+
const FACTION_NEUTRAL = 189;
|
|
51
|
+
// Cite: stormwind_city.cpp:105 FACTION_FRIENDLY_TO_ALL = 35 Dashel low-HP surrender faction (not
|
|
52
|
+
// accept-hook — FO6 fight end).
|
|
53
|
+
const FACTION_FRIENDLY_TO_ALL = 35;
|
|
54
|
+
|
|
55
|
+
/** Cite: Creature.h:577 TEMPFACTION_RESTORE_RESPAWN = 0x01 */
|
|
56
|
+
const TEMPFACTION_RESTORE_RESPAWN = 0x01;
|
|
57
|
+
/** Cite: Creature.h:578 TEMPFACTION_RESTORE_COMBAT_STOP = 0x02 */
|
|
58
|
+
const TEMPFACTION_RESTORE_COMBAT_STOP = 0x02;
|
|
59
|
+
// Cite: stormwind_city.cpp:76 TEMPFACTION_RESTORE_RESPAWN | TEMPFACTION_RESTORE_COMBAT_STOP = 0x01 | 0x02 =
|
|
60
|
+
// 0x03
|
|
61
|
+
const BARTLEBY_TEMP_FACTION_FLAGS =
|
|
62
|
+
TEMPFACTION_RESTORE_RESPAWN | TEMPFACTION_RESTORE_COMBAT_STOP;
|
|
63
|
+
|
|
64
|
+
// Cite: stormwind_city.cpp:94 SAY_PROGRESS_1_DAS = 1961 DoBroadcastText on Dashel accept ("Now you're gonna
|
|
65
|
+
// get it good…").
|
|
66
|
+
const SAY_PROGRESS_1_DAS = 1961;
|
|
67
|
+
/** Cite: stormwind_city.cpp:95 SAY_PROGRESS_2_DAS = 1712 Low-HP surrender line (FO6 fight end). */
|
|
68
|
+
const SAY_PROGRESS_2_DAS = 1712;
|
|
69
|
+
// Cite: stormwind_city.cpp:96–98 SAY_PROGRESS_3_DAS / 4_THU / 5_THU End-event thug dialogue after credit
|
|
70
|
+
// path (FO6).
|
|
71
|
+
const SAY_PROGRESS_3_DAS = 1713;
|
|
72
|
+
// Cite: stormwind_city.cpp:709 SAY_WINDSOR_QUEST_ACCEPT = -1000825 DoStartEscort StartNextDialogueText
|
|
73
|
+
// first line.
|
|
74
|
+
const SAY_WINDSOR_QUEST_ACCEPT = -1000825;
|
|
75
|
+
// Cite: stormwind_city.cpp:710 SAY_WINDSOR_GET_READY = -1000826 Dialogue follow-up after accept (FO6
|
|
76
|
+
// dialogue timer).
|
|
77
|
+
const SAY_WINDSOR_GET_READY = -1000826;
|
|
78
|
+
// Cite: stormwind_city.cpp:507 SAY_WELCOME = -1000824 Squire Rowe intro dialogue — Windsor greets player
|
|
79
|
+
// (FO6 6402 path).
|
|
80
|
+
const SAY_WELCOME = -1000824;
|
|
81
|
+
/** Cite: stormwind_city.cpp:505 SAY_SIGNAL_SENT = -1000822 Rowe WP7 signal (FO6 6402 path). */
|
|
82
|
+
const SAY_SIGNAL_SENT = -1000822;
|
|
83
|
+
|
|
84
|
+
/** Cite: Unit.h:511 UNIT_NPC_FLAG_QUESTGIVER = 0x00000002 Dashel accept RemoveFlag(UNIT_NPC_FLAGS, …). */
|
|
85
|
+
const UNIT_NPC_FLAG_QUESTGIVER = 0x00000002;
|
|
86
|
+
|
|
87
|
+
/** Cite: stormwind_city.cpp:110–113 aThugSpawnPosition[0] First Old Town thug summon position on accept. */
|
|
88
|
+
const THUG0_SPAWN = {
|
|
89
|
+
x: -8687.311,
|
|
90
|
+
y: 446.7531,
|
|
91
|
+
z: 100.05593,
|
|
92
|
+
o: 5.12632,
|
|
93
|
+
} as const;
|
|
94
|
+
/** Cite: stormwind_city.cpp:110–113 aThugSpawnPosition[1] */
|
|
95
|
+
const THUG1_SPAWN = {
|
|
96
|
+
x: -8669.205,
|
|
97
|
+
y: 448.4405,
|
|
98
|
+
z: 99.74935,
|
|
99
|
+
o: 3.75387,
|
|
100
|
+
} as const;
|
|
101
|
+
// Cite: stormwind_city.cpp:427 TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN, 120000 SummonCreature despawn delay for
|
|
102
|
+
// both thugs.
|
|
103
|
+
const THUG_DESPAWN_MS = 120000;
|
|
104
|
+
// Cite: stormwind_city.cpp:202 ResetTimer(DASHEL_START_EVENT, 2000) Delay before Dashel AttackStart after
|
|
105
|
+
// accept.
|
|
106
|
+
const DASHEL_START_EVENT_MS = 2000;
|
|
107
|
+
// Cite: stormwind_city.cpp:374 GetHealthPercent() <= 20.f Low-HP threshold that awards fight end / explore
|
|
108
|
+
// path (FO6).
|
|
109
|
+
const DASHEL_LOW_HP_PCT = 20;
|
|
110
|
+
// Cite: stormwind_city.cpp:60 (GetHealth - damage) * 100 / MaxHealth < 15 Bartleby DamageTaken explore
|
|
111
|
+
// credit threshold (FO6 fight).
|
|
112
|
+
const BARTLEBY_CREDIT_HP_PCT = 15;
|
|
113
|
+
|
|
114
|
+
// QuestAccept_npc_bartleby — quest 1640 Beat Bartleby: turn him hostile and attack; taking him
|
|
115
|
+
// under 15% health credits the quest and evades. Cite: stormwind_city.cpp:72–79, :58–68.
|
|
116
|
+
function runBartlebyAccept(): DbScriptIntent[] {
|
|
117
|
+
const citeFaction =
|
|
118
|
+
`stormwind_city.cpp:76 npc_bartleby (${NPC_BARTLEBY}) ` +
|
|
119
|
+
`SetFactionTemporary(FACTION_ENEMY=${FACTION_ENEMY}, ` +
|
|
120
|
+
'TEMPFACTION_RESTORE_RESPAWN | TEMPFACTION_RESTORE_COMBAT_STOP)';
|
|
121
|
+
const citeAttack =
|
|
122
|
+
`stormwind_city.cpp:77 AI()->AttackStart(player)`;
|
|
123
|
+
const citeCredit =
|
|
124
|
+
`stormwind_city.cpp:60–65 DamageTaken HP<${BARTLEBY_CREDIT_HP_PCT}% ` +
|
|
125
|
+
`AreaExploredOrEventHappens(${QUEST_BEAT}) + EnterEvadeMode - FO6 finishEscort`;
|
|
126
|
+
return [
|
|
127
|
+
{
|
|
128
|
+
kind: 'set_faction',
|
|
129
|
+
factionId: FACTION_ENEMY,
|
|
130
|
+
flags: BARTLEBY_TEMP_FACTION_FLAGS,
|
|
131
|
+
cleared: false,
|
|
132
|
+
cite: citeFaction,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
kind: 'attack_start',
|
|
136
|
+
canAttack: true,
|
|
137
|
+
cite: citeAttack,
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
kind: 'skip',
|
|
141
|
+
reason:
|
|
142
|
+
`DamageTaken HP<${BARTLEBY_CREDIT_HP_PCT}% AreaExploredOrEventHappens(${QUEST_BEAT}) - FO6 finishEscort`,
|
|
143
|
+
cite: citeCredit,
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// QuestAccept_npc_dashel_stonefist — quest 1447 The Missing Diplomat pt8: talk, go neutral, strip
|
|
149
|
+
// QUESTGIVER and summon two thugs; his surrender at 20% credits. Cite: stormwind_city.cpp:413–447.
|
|
150
|
+
function runDashelStonefistAccept(): DbScriptIntent[] {
|
|
151
|
+
const citeTalk =
|
|
152
|
+
`stormwind_city.cpp:421 npc_dashel_stonefist (${NPC_DASHEL_STONEFIST}) ` +
|
|
153
|
+
`DoBroadcastText(SAY_PROGRESS_1_DAS=${SAY_PROGRESS_1_DAS})`;
|
|
154
|
+
const citeFaction =
|
|
155
|
+
`stormwind_city.cpp:422 SetFactionTemporary(FACTION_NEUTRAL=${FACTION_NEUTRAL}, TEMPFACTION_RESTORE_RESPAWN)`;
|
|
156
|
+
const citeQg =
|
|
157
|
+
'stormwind_city.cpp:423 RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER)';
|
|
158
|
+
const citeReact =
|
|
159
|
+
'stormwind_city.cpp:424 SetReactState(REACT_AGGRESSIVE) - host AI FO6';
|
|
160
|
+
const citeThug0 =
|
|
161
|
+
`stormwind_city.cpp:427–431 SummonCreature(NPC_OLD_TOWN_THUG=${NPC_OLD_TOWN_THUG}, ` +
|
|
162
|
+
`pos0, TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN, ${THUG_DESPAWN_MS}) + MovePoint + RemoveFlag IMMUNE_TO_NPC`;
|
|
163
|
+
const citeThug1 =
|
|
164
|
+
`stormwind_city.cpp:435–439 SummonCreature(NPC_OLD_TOWN_THUG=${NPC_OLD_TOWN_THUG}, ` +
|
|
165
|
+
`pos1, TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN, ${THUG_DESPAWN_MS}) + MovePoint + RemoveFlag IMMUNE_TO_NPC`;
|
|
166
|
+
const citeStart =
|
|
167
|
+
`stormwind_city.cpp:198–203 StartEvent ResetTimer(DASHEL_START_EVENT, ${DASHEL_START_EVENT_MS}) then AttackStart - FO6`;
|
|
168
|
+
const citeSurrender =
|
|
169
|
+
`stormwind_city.cpp:374–397 HP<=${DASHEL_LOW_HP_PCT}% DoBroadcastText(SAY_PROGRESS_2_DAS=${SAY_PROGRESS_2_DAS}) + ` +
|
|
170
|
+
`SetFactionTemporary(FACTION_FRIENDLY_TO_ALL=${FACTION_FRIENDLY_TO_ALL}) - FO6 fight end`;
|
|
171
|
+
const citeCredit =
|
|
172
|
+
`stormwind_city.cpp:315–317 AreaExploredOrEventHappens(${QUEST_MISSING_DIPLO_PT8}) + ` +
|
|
173
|
+
`SAY_PROGRESS_3_DAS=${SAY_PROGRESS_3_DAS} thug stand-down - FO6 finishEscort`;
|
|
174
|
+
const prior = UNIT_NPC_FLAG_QUESTGIVER;
|
|
175
|
+
const resultFlags = prior & ~UNIT_NPC_FLAG_QUESTGIVER;
|
|
176
|
+
return [
|
|
177
|
+
{
|
|
178
|
+
kind: 'talk',
|
|
179
|
+
textId: SAY_PROGRESS_1_DAS,
|
|
180
|
+
stringTemplateId: 0,
|
|
181
|
+
cite: citeTalk,
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
kind: 'set_faction',
|
|
185
|
+
factionId: FACTION_NEUTRAL,
|
|
186
|
+
flags: TEMPFACTION_RESTORE_RESPAWN,
|
|
187
|
+
cleared: false,
|
|
188
|
+
cite: citeFaction,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
kind: 'modify_npc_flags',
|
|
192
|
+
flag: UNIT_NPC_FLAG_QUESTGIVER,
|
|
193
|
+
changeFlag: NPC_FLAG_CHANGE_REMOVE,
|
|
194
|
+
mode: 'remove',
|
|
195
|
+
resultFlags,
|
|
196
|
+
cite: citeQg,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
kind: 'skip',
|
|
200
|
+
reason: 'SetReactState(REACT_AGGRESSIVE) - host AI FO6',
|
|
201
|
+
cite: citeReact,
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
kind: 'temp_spawn_creature',
|
|
205
|
+
creatureEntry: NPC_OLD_TOWN_THUG,
|
|
206
|
+
x: THUG0_SPAWN.x,
|
|
207
|
+
y: THUG0_SPAWN.y,
|
|
208
|
+
z: THUG0_SPAWN.z,
|
|
209
|
+
o: THUG0_SPAWN.o,
|
|
210
|
+
despawnDelay: THUG_DESPAWN_MS,
|
|
211
|
+
pathId: 0,
|
|
212
|
+
setRun: false,
|
|
213
|
+
summonActive: false,
|
|
214
|
+
spawnDataEntry: 0,
|
|
215
|
+
spawnType: TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN,
|
|
216
|
+
cite: citeThug0,
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
kind: 'temp_spawn_creature',
|
|
220
|
+
creatureEntry: NPC_OLD_TOWN_THUG,
|
|
221
|
+
x: THUG1_SPAWN.x,
|
|
222
|
+
y: THUG1_SPAWN.y,
|
|
223
|
+
z: THUG1_SPAWN.z,
|
|
224
|
+
o: THUG1_SPAWN.o,
|
|
225
|
+
despawnDelay: THUG_DESPAWN_MS,
|
|
226
|
+
pathId: 0,
|
|
227
|
+
setRun: false,
|
|
228
|
+
summonActive: false,
|
|
229
|
+
spawnDataEntry: 0,
|
|
230
|
+
spawnType: TEMPSPAWN_TIMED_OOC_OR_DEAD_DESPAWN,
|
|
231
|
+
cite: citeThug1,
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
kind: 'skip',
|
|
235
|
+
reason:
|
|
236
|
+
`thug MovePoint + RemoveFlag IMMUNE_TO_NPC + StartEvent ${DASHEL_START_EVENT_MS}ms AttackStart - FO6 combat`,
|
|
237
|
+
cite: citeStart,
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
kind: 'skip',
|
|
241
|
+
reason:
|
|
242
|
+
`HP<=${DASHEL_LOW_HP_PCT}% surrender SAY_PROGRESS_2_DAS (${SAY_PROGRESS_2_DAS}) + FACTION_FRIENDLY_TO_ALL (${FACTION_FRIENDLY_TO_ALL}) - FO6`,
|
|
243
|
+
cite: citeSurrender,
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
kind: 'skip',
|
|
247
|
+
reason:
|
|
248
|
+
`AreaExploredOrEventHappens(${QUEST_MISSING_DIPLO_PT8}) + SAY_PROGRESS_3_DAS (${SAY_PROGRESS_3_DAS}) - FO6 finishEscort`,
|
|
249
|
+
cite: citeCredit,
|
|
250
|
+
},
|
|
251
|
+
];
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// QuestAccept_npc_reginald_windsor — quest 6403 The Great Masquerade: the accept talk starts the
|
|
255
|
+
// city escort, and the keep reveal carries the explore credit. Cite: stormwind_city.cpp:1273–1281.
|
|
256
|
+
function runReginaldWindsorAccept(): DbScriptIntent[] {
|
|
257
|
+
const citeAccept =
|
|
258
|
+
`stormwind_city.cpp:1275–1278 npc_reginald_windsor (${NPC_WINDSOR}) ` +
|
|
259
|
+
'DoStartEscort(player)';
|
|
260
|
+
const citeTalk =
|
|
261
|
+
`stormwind_city.cpp:1214 DoStartEscort StartNextDialogueText(SAY_WINDSOR_QUEST_ACCEPT=${SAY_WINDSOR_QUEST_ACCEPT})`;
|
|
262
|
+
const citeDlg =
|
|
263
|
+
`stormwind_city.cpp:802–804 dialogue SAY_WINDSOR_GET_READY=${SAY_WINDSOR_GET_READY} + Prestor sieze - FO6 dialogue`;
|
|
264
|
+
const citeEscort =
|
|
265
|
+
'stormwind_city.cpp:920–1177 masquerade escort + keep dialogue (Jonathan/Bolvar/Prestor) - FO6 escort';
|
|
266
|
+
const citeCredit =
|
|
267
|
+
`stormwind_city.cpp:1173–1177 RewardPlayerAndGroupAtEventExplored(${QUEST_THE_GREAT_MASQUERADE}) - FO6 finishEscort`;
|
|
268
|
+
const citeTurnIn =
|
|
269
|
+
`stormwind_city.cpp ender Highlord Bolvar Fordragon (${NPC_BOLVAR}) after explore credit`;
|
|
270
|
+
return [
|
|
271
|
+
{
|
|
272
|
+
kind: 'talk',
|
|
273
|
+
textId: SAY_WINDSOR_QUEST_ACCEPT,
|
|
274
|
+
stringTemplateId: 0,
|
|
275
|
+
cite: citeTalk,
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
kind: 'skip',
|
|
279
|
+
reason:
|
|
280
|
+
`DoStartEscort on npc_reginald_windsor (${NPC_WINDSOR}) - FO6 degraded escort`,
|
|
281
|
+
cite: citeAccept,
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
kind: 'skip',
|
|
285
|
+
reason:
|
|
286
|
+
`dialogue SAY_WINDSOR_GET_READY (${SAY_WINDSOR_GET_READY}) + Prestor line - FO6`,
|
|
287
|
+
cite: citeDlg,
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
kind: 'skip',
|
|
291
|
+
reason:
|
|
292
|
+
'masquerade city escort + keep reveal (Jonathan/Bolvar/Prestor) - FO6 escort',
|
|
293
|
+
cite: citeEscort,
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
kind: 'skip',
|
|
297
|
+
reason:
|
|
298
|
+
`RewardPlayerAndGroupAtEventExplored(${QUEST_THE_GREAT_MASQUERADE}) - FO6 finishEscort`,
|
|
299
|
+
cite: citeCredit,
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
kind: 'skip',
|
|
303
|
+
reason:
|
|
304
|
+
`turn-in to Bolvar (${NPC_BOLVAR}) after explore credit - host turnIn`,
|
|
305
|
+
cite: citeTurnIn,
|
|
306
|
+
},
|
|
307
|
+
];
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Quest 6402 Stormwind Rendezvous has no accept hook. The related residual is Squire Rowe's
|
|
311
|
+
// gossip, which escorts in and summons Windsor as the ender. Cite: stormwind_city.cpp:663–700.
|
|
312
|
+
function runStormwindRendezvousAccept(): DbScriptIntent[] {
|
|
313
|
+
const citeGossip =
|
|
314
|
+
`stormwind_city.cpp:663–687 GossipHello_npc_squire_rowe (${NPC_SQUIRE_ROWE}) ` +
|
|
315
|
+
`gates on QUEST_STORMWIND_RENDEZVOUS=${QUEST_STORMWIND_RENDEZVOUS} / MASQUERADE=${QUEST_THE_GREAT_MASQUERADE}`;
|
|
316
|
+
const citeStart =
|
|
317
|
+
`stormwind_city.cpp:690–698 GossipSelect Start(true, player) escort - FO6`;
|
|
318
|
+
const citeSummon =
|
|
319
|
+
`stormwind_city.cpp:594 SummonCreature(NPC_WINDSOR=${NPC_WINDSOR}) + WP7 SAY_SIGNAL_SENT=${SAY_SIGNAL_SENT} - FO6`;
|
|
320
|
+
const citeWelcome =
|
|
321
|
+
`stormwind_city.cpp:635 DoScriptText(SAY_WELCOME=${SAY_WELCOME}) + SetFlag QUESTGIVER - FO6 ender ready`;
|
|
322
|
+
const citeStarter =
|
|
323
|
+
`bake starter Marshal Maxwell (${NPC_MARSHAL_MAXWELL}) → ender Reginald Windsor (${NPC_WINDSOR})`;
|
|
324
|
+
return [
|
|
325
|
+
{
|
|
326
|
+
kind: 'skip',
|
|
327
|
+
reason:
|
|
328
|
+
`no pQuestAcceptNPC for ${QUEST_STORMWIND_RENDEZVOUS}; Squire Rowe (${NPC_SQUIRE_ROWE}) gossip FO6 summons Windsor`,
|
|
329
|
+
cite: citeGossip,
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
kind: 'skip',
|
|
333
|
+
reason: 'Squire Rowe GossipSelect Start(true, player) escort - FO6',
|
|
334
|
+
cite: citeStart,
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
kind: 'skip',
|
|
338
|
+
reason:
|
|
339
|
+
`SummonCreature Windsor (${NPC_WINDSOR}) + SAY_SIGNAL_SENT (${SAY_SIGNAL_SENT}) - FO6`,
|
|
340
|
+
cite: citeSummon,
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
kind: 'skip',
|
|
344
|
+
reason:
|
|
345
|
+
`SAY_WELCOME (${SAY_WELCOME}) + QUESTGIVER on Windsor for turn-in - FO6`,
|
|
346
|
+
cite: citeWelcome,
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
kind: 'skip',
|
|
350
|
+
reason:
|
|
351
|
+
`Maxwell (${NPC_MARSHAL_MAXWELL}) → Windsor (${NPC_WINDSOR}) turn-in chain`,
|
|
352
|
+
cite: citeStarter,
|
|
353
|
+
},
|
|
354
|
+
];
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
// Family pack: eastern_kingdoms/stormwind_city.cpp Hooks: pQuestAcceptNPC bartleby (1640), dashel (1447),
|
|
358
|
+
// reginald (6403); related residual squire_rowe gossip for 6402.
|
|
359
|
+
export function runStormwindCity(
|
|
360
|
+
phase: QuestScriptHook,
|
|
361
|
+
questId: number,
|
|
362
|
+
): DbScriptIntent[] {
|
|
363
|
+
if (phase !== 'accept') return [];
|
|
364
|
+
if (questId === QUEST_BEAT) return runBartlebyAccept();
|
|
365
|
+
if (questId === QUEST_MISSING_DIPLO_PT8) return runDashelStonefistAccept();
|
|
366
|
+
if (questId === QUEST_THE_GREAT_MASQUERADE) return runReginaldWindsorAccept();
|
|
367
|
+
if (questId === QUEST_STORMWIND_RENDEZVOUS) return runStormwindRendezvousAccept();
|
|
368
|
+
return [];
|
|
369
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// QI4 — eastern_kingdoms/stranglethorn_vale residual, extracted for the 1500-line ratchet. Only
|
|
2
|
+
// the mob_yenniku SpellHit for quest 592; there is no accept hook. Cite: stranglethorn_vale.cpp.
|
|
3
|
+
|
|
4
|
+
import type { DbScriptIntent } from './types.ts';
|
|
5
|
+
|
|
6
|
+
/** Matches registry.ts QuestScriptHook — local to avoid circular import. */
|
|
7
|
+
type QuestScriptHook = 'accept' | 'reward' | 'complete' | 'frame';
|
|
8
|
+
|
|
9
|
+
// ── sourced constants ────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
// Cite: stranglethorn_vale.cpp:42 QUEST_ID_SAVING_YENNIKU = 592 Saving Yenniku — stun Yenniku with the Soul
|
|
12
|
+
// Gem, fill it, return to Nimboya.
|
|
13
|
+
export const QUEST_SAVING_YENNIKU = 592;
|
|
14
|
+
// Cite: stranglethorn_vale.cpp:40 SPELL_YENNIKUS_RELEASE = 3607 Soul Gem (item 3912) spell that hits
|
|
15
|
+
// Yenniku while 592 is incomplete.
|
|
16
|
+
const SPELL_YENNIKUS_RELEASE = 3607;
|
|
17
|
+
// Cite: stranglethorn_vale.cpp:44 FACTION_ID_HORDE_GENERIC = 83 Temporary faction after SpellHit
|
|
18
|
+
// EnterEvadeMode (comment: may not be correct).
|
|
19
|
+
const FACTION_ID_HORDE_GENERIC = 83;
|
|
20
|
+
// Cite: Creature.h:579 TEMPFACTION_RESTORE_REACH_HOME = 0x04 SetFactionTemporary flags on Yenniku after
|
|
21
|
+
// release.
|
|
22
|
+
const TEMPFACTION_RESTORE_REACH_HOME = 0x04;
|
|
23
|
+
// Cite: SharedDefines.h:795 EMOTE_STATE_STUN = 64 HandleEmote on EnterEvadeMode while reset timer is
|
|
24
|
+
// active.
|
|
25
|
+
const EMOTE_STATE_STUN = 64;
|
|
26
|
+
// Cite: stranglethorn_vale.cpp:61 m_uiResetTimer = 60000 Duration (ms) of stun/faction window before
|
|
27
|
+
// EMOTE_STATE_NONE + re-evade.
|
|
28
|
+
const YENNIKU_RESET_TIMER_MS = 60000;
|
|
29
|
+
// Cite: classic-db / ACID acid_classic.sql "Yenniku 2530 - mob_yenniku" Creature entry for ScriptName
|
|
30
|
+
// mob_yenniku.
|
|
31
|
+
const NPC_YENNIKU = 2530;
|
|
32
|
+
// Cite: classic-db item_template 3912 Soul Gem (spell 3607); 3913 Filled Soul Gem Objective item for quest
|
|
33
|
+
// 592 (ReqItemId1=3913).
|
|
34
|
+
const ITEM_SOUL_GEM = 3912;
|
|
35
|
+
const ITEM_FILLED_SOUL_GEM = 3913;
|
|
36
|
+
|
|
37
|
+
// mob_yenniku SpellHit — quest 592 Saving Yenniku: the Soul Gem release evades him into a stunned
|
|
38
|
+
// Horde-faction state for 60 s. Cite: stranglethorn_vale.cpp:55–96. The bake lacks quest 592.
|
|
39
|
+
function runYennikuSpellHit(): DbScriptIntent[] {
|
|
40
|
+
const citeSpell =
|
|
41
|
+
`stranglethorn_vale.cpp:55–65 mob_yenniku (${NPC_YENNIKU}) SpellHit(` +
|
|
42
|
+
`SPELL_YENNIKUS_RELEASE=${SPELL_YENNIKUS_RELEASE}) incomplete quest 592`;
|
|
43
|
+
const citeTimer =
|
|
44
|
+
`stranglethorn_vale.cpp:61 m_uiResetTimer=${YENNIKU_RESET_TIMER_MS}; EnterEvadeMode()`;
|
|
45
|
+
const citeEvade =
|
|
46
|
+
'stranglethorn_vale.cpp:71–75 RemoveAllAurasOnEvade + CombatStop + LoadCreatureAddon + SetLootRecipient - host FO6';
|
|
47
|
+
const citeEmote =
|
|
48
|
+
`stranglethorn_vale.cpp:77 HandleEmote(EMOTE_STATE_STUN=${EMOTE_STATE_STUN})`;
|
|
49
|
+
const citeFaction =
|
|
50
|
+
`stranglethorn_vale.cpp:78 SetFactionTemporary(FACTION_ID_HORDE_GENERIC=${FACTION_ID_HORDE_GENERIC}, ` +
|
|
51
|
+
`TEMPFACTION_RESTORE_REACH_HOME=${TEMPFACTION_RESTORE_REACH_HOME})`;
|
|
52
|
+
const citeReset =
|
|
53
|
+
`stranglethorn_vale.cpp:88–92 UpdateAI after ${YENNIKU_RESET_TIMER_MS}ms ` +
|
|
54
|
+
'EMOTE_STATE_NONE + EnterEvadeMode restore - FO6 timer';
|
|
55
|
+
const citeItem =
|
|
56
|
+
`classic-db quest 592 ReqItemId1=${ITEM_FILLED_SOUL_GEM} from Soul Gem ${ITEM_SOUL_GEM} spell ${SPELL_YENNIKUS_RELEASE} - host item grant`;
|
|
57
|
+
return [
|
|
58
|
+
{
|
|
59
|
+
kind: 'skip',
|
|
60
|
+
reason:
|
|
61
|
+
`SpellHit SPELL_YENNIKUS_RELEASE (${SPELL_YENNIKUS_RELEASE}) on npc_yenniku (${NPC_YENNIKU}) with incomplete 592`,
|
|
62
|
+
cite: citeSpell,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
kind: 'skip',
|
|
66
|
+
reason: `m_uiResetTimer=${YENNIKU_RESET_TIMER_MS} then EnterEvadeMode - FO6 timer start`,
|
|
67
|
+
cite: citeTimer,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
kind: 'skip',
|
|
71
|
+
reason:
|
|
72
|
+
'RemoveAllAurasOnEvade + CombatStop + LoadCreatureAddon + clear loot recipient - host FO6',
|
|
73
|
+
cite: citeEvade,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
kind: 'emote',
|
|
77
|
+
emoteId: EMOTE_STATE_STUN,
|
|
78
|
+
cite: citeEmote,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
kind: 'set_faction',
|
|
82
|
+
factionId: FACTION_ID_HORDE_GENERIC,
|
|
83
|
+
flags: TEMPFACTION_RESTORE_REACH_HOME,
|
|
84
|
+
cleared: false,
|
|
85
|
+
cite: citeFaction,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
kind: 'skip',
|
|
89
|
+
reason:
|
|
90
|
+
`timer ${YENNIKU_RESET_TIMER_MS}ms EMOTE_STATE_NONE + re-evade (TEMPFACTION_RESTORE_REACH_HOME) - FO6`,
|
|
91
|
+
cite: citeReset,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
kind: 'skip',
|
|
95
|
+
reason:
|
|
96
|
+
`Filled Soul Gem (${ITEM_FILLED_SOUL_GEM}) from spell/item host - not AI residual`,
|
|
97
|
+
cite: citeItem,
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Family pack: eastern_kingdoms/stranglethorn_vale.cpp Residual: mob_yenniku SpellHit for quest 592
|
|
103
|
+
// (frame/complete). No accept/reward NPC hooks in this file.
|
|
104
|
+
export function runStranglethornVale(
|
|
105
|
+
phase: QuestScriptHook,
|
|
106
|
+
questId: number,
|
|
107
|
+
): DbScriptIntent[] {
|
|
108
|
+
if (
|
|
109
|
+
(phase === 'frame' || phase === 'complete') &&
|
|
110
|
+
questId === QUEST_SAVING_YENNIKU
|
|
111
|
+
) {
|
|
112
|
+
return runYennikuSpellHit();
|
|
113
|
+
}
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
// QI4 — stratholmeScripts residual, extracted for the 1500-line ratchet: the Aurius reward hook
|
|
2
|
+
// for 5122 and the restless-soul kill credit for 5282. Cite: stratholme/stratholmeScripts.cpp.
|
|
3
|
+
|
|
4
|
+
import type { DbScriptIntent } from './types.ts';
|
|
5
|
+
import { NPC_FLAG_CHANGE_REMOVE } from './opcodes.ts';
|
|
6
|
+
|
|
7
|
+
/** Matches registry.ts QuestScriptHook — local to avoid circular import. */
|
|
8
|
+
type QuestScriptHook = 'accept' | 'reward' | 'complete' | 'frame';
|
|
9
|
+
|
|
10
|
+
// ── sourced constants ────────────────────────────────────────────────────────
|
|
11
|
+
|
|
12
|
+
// Cite: stratholme.h:76 QUEST_MEDALLION_FAITH = 5122 Turn-in of the Medallion of Faith at Aurius (chapel)
|
|
13
|
+
// arms the Baron ally event.
|
|
14
|
+
export const QUEST_MEDALLION_FAITH = 5122;
|
|
15
|
+
// Cite: stratholmeScripts.cpp:139 QUEST_RESTLESS_SOUL = 5282 The Restless Souls — free 15 Restless Souls
|
|
16
|
+
// with Egan's Blaster.
|
|
17
|
+
export const QUEST_RESTLESS_SOUL = 5282;
|
|
18
|
+
// Cite: stratholme.h:21 TYPE_AURIUS = 7 Instance encounter slot set DONE when Medallion of Faith is
|
|
19
|
+
// rewarded.
|
|
20
|
+
const TYPE_AURIUS = 7;
|
|
21
|
+
/** Cite: sc_instance.h:17 DONE = 3 EncounterState written by SetData(TYPE_AURIUS, DONE). */
|
|
22
|
+
const ENCOUNTER_DONE = 3;
|
|
23
|
+
/** Cite: stratholme.h:48 NPC_AURIUS = 10917 Quest giver for 5122 / 5125; script name npc_aurius. */
|
|
24
|
+
const NPC_AURIUS = 10917;
|
|
25
|
+
// Cite: Unit.h:511 UNIT_NPC_FLAG_QUESTGIVER = 0x00000002 Removed on Aurius when TYPE_AURIUS becomes DONE
|
|
26
|
+
// (SetData special).
|
|
27
|
+
const UNIT_NPC_FLAG_QUESTGIVER = 0x00000002;
|
|
28
|
+
// Cite: stratholmeScripts.cpp:145 NPC_RESTLESS_SOUL = 11122 Kill-credit entry for
|
|
29
|
+
// RewardPlayerAndGroupAtEventCredit after blaster tag.
|
|
30
|
+
const NPC_RESTLESS_SOUL = 11122;
|
|
31
|
+
/** Cite: stratholmeScripts.cpp:146 NPC_FREED_SOUL = 11136 UpdateEntry target after the 1s die timer. */
|
|
32
|
+
const NPC_FREED_SOUL = 11136;
|
|
33
|
+
// Cite: stratholmeScripts.cpp:141 SPELL_EGAN_BLASTER = 17368 Item spell (Egan's Blaster 13289) that tags
|
|
34
|
+
// Restless Souls while 5282 incomplete.
|
|
35
|
+
const SPELL_EGAN_BLASTER = 17368;
|
|
36
|
+
// Cite: stratholmeScripts.cpp:161 m_uiDieTimer = 1000 Delay (ms) from blaster tag to UpdateEntry + kill
|
|
37
|
+
// credit.
|
|
38
|
+
const RESTLESS_DIE_TIMER_MS = 1000;
|
|
39
|
+
/** Cite: stratholmeScripts.cpp:187 ForcedDespawn(60000) Despawn delay (ms) after the soul is freed. */
|
|
40
|
+
const FREED_SOUL_DESPAWN_MS = 60000;
|
|
41
|
+
|
|
42
|
+
// QuestRewarded_npc_aurius — quest 5122 The Medallion of Faith: sets TYPE_AURIUS DONE, which
|
|
43
|
+
// strips his QUESTGIVER flag and arms him as a Baron ally. Cite: stratholmeScripts.cpp:316–329.
|
|
44
|
+
function runAuriusReward(): DbScriptIntent[] {
|
|
45
|
+
const citeSet =
|
|
46
|
+
'stratholmeScripts.cpp:326–327 SetData(TYPE_AURIUS, DONE) for QUEST_MEDALLION_FAITH';
|
|
47
|
+
const citeFlag =
|
|
48
|
+
'stratholme.cpp:478–480 TYPE_AURIUS DONE RemoveFlag(UNIT_NPC_FLAG_QUESTGIVER) on Aurius';
|
|
49
|
+
const citeBaron =
|
|
50
|
+
'stratholme.cpp:356–358,1109–1135 TYPE_AURIUS DONE → auriusSummonTimer 5s on Baron engage - instance FO6';
|
|
51
|
+
// Prior: typical questgiver QUESTGIVER only for this residual strip path.
|
|
52
|
+
const prior = UNIT_NPC_FLAG_QUESTGIVER;
|
|
53
|
+
const resultFlags = prior & ~UNIT_NPC_FLAG_QUESTGIVER;
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
kind: 'set_instance_data',
|
|
57
|
+
type: TYPE_AURIUS,
|
|
58
|
+
data: ENCOUNTER_DONE,
|
|
59
|
+
cite: citeSet,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
kind: 'modify_npc_flags',
|
|
63
|
+
flag: UNIT_NPC_FLAG_QUESTGIVER,
|
|
64
|
+
changeFlag: NPC_FLAG_CHANGE_REMOVE,
|
|
65
|
+
mode: 'remove',
|
|
66
|
+
resultFlags,
|
|
67
|
+
cite: citeFlag,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
kind: 'skip',
|
|
71
|
+
reason:
|
|
72
|
+
`npc_aurius (${NPC_AURIUS}) Baron-ally summon after TYPE_AURIUS DONE - instance FO6`,
|
|
73
|
+
cite: citeBaron,
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// mob_restless_soul SpellHit — quest 5282 The Restless Souls: Egan's Blaster tags the soul, and a
|
|
79
|
+
// second later it frees, despawns and credits 11122. Cite: stratholmeScripts.cpp:165–198.
|
|
80
|
+
function runRestlessSoulCredit(): DbScriptIntent[] {
|
|
81
|
+
const citeSpell =
|
|
82
|
+
`stratholmeScripts.cpp:165–174 SpellHit SPELL_EGAN_BLASTER=${SPELL_EGAN_BLASTER} incomplete ${QUEST_RESTLESS_SOUL}`;
|
|
83
|
+
const citeTimer =
|
|
84
|
+
`stratholmeScripts.cpp:161,183–186 m_uiDieTimer=${RESTLESS_DIE_TIMER_MS} then transform`;
|
|
85
|
+
const citeEntry =
|
|
86
|
+
`stratholmeScripts.cpp:186 UpdateEntry(NPC_FREED_SOUL=${NPC_FREED_SOUL})`;
|
|
87
|
+
const citeDespawn =
|
|
88
|
+
`stratholmeScripts.cpp:187 ForcedDespawn(${FREED_SOUL_DESPAWN_MS})`;
|
|
89
|
+
const citeTalk =
|
|
90
|
+
'stratholmeScripts.cpp:188–195 urand SAY_ZAPPED0–3 - FO6 random talk';
|
|
91
|
+
const citeCredit =
|
|
92
|
+
`stratholmeScripts.cpp:196–197 RewardPlayerAndGroupAtEventCredit(NPC_RESTLESS_SOUL=${NPC_RESTLESS_SOUL})`;
|
|
93
|
+
return [
|
|
94
|
+
{
|
|
95
|
+
kind: 'skip',
|
|
96
|
+
reason:
|
|
97
|
+
`SpellHit SPELL_EGAN_BLASTER (${SPELL_EGAN_BLASTER}) on Restless Soul with incomplete 5282`,
|
|
98
|
+
cite: citeSpell,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
kind: 'skip',
|
|
102
|
+
reason: `m_uiDieTimer=${RESTLESS_DIE_TIMER_MS}ms then UpdateEntry/credit - FO6 timer`,
|
|
103
|
+
cite: citeTimer,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
kind: 'update_template',
|
|
107
|
+
oldEntry: NPC_RESTLESS_SOUL,
|
|
108
|
+
newTemplate: NPC_FREED_SOUL,
|
|
109
|
+
changed: true,
|
|
110
|
+
cite: citeEntry,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
kind: 'despawn_self',
|
|
114
|
+
despawnDelay: FREED_SOUL_DESPAWN_MS,
|
|
115
|
+
cite: citeDespawn,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
kind: 'skip',
|
|
119
|
+
reason: 'optional DoScriptText SAY_ZAPPED0–3 via urand(0,6) - FO6 random',
|
|
120
|
+
cite: citeTalk,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
kind: 'kill_credit',
|
|
124
|
+
creatureEntry: NPC_RESTLESS_SOUL,
|
|
125
|
+
cite: citeCredit,
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Family pack: stratholme/stratholmeScripts.cpp. The Aurius reward hook for 5122, plus the
|
|
131
|
+
// restless-soul kill credit for 5282 as a residual.
|
|
132
|
+
export function runStratholmeScripts(
|
|
133
|
+
phase: QuestScriptHook,
|
|
134
|
+
questId: number,
|
|
135
|
+
): DbScriptIntent[] {
|
|
136
|
+
if (phase === 'reward' && questId === QUEST_MEDALLION_FAITH) {
|
|
137
|
+
return runAuriusReward();
|
|
138
|
+
}
|
|
139
|
+
if (
|
|
140
|
+
(phase === 'frame' || phase === 'complete') &&
|
|
141
|
+
questId === QUEST_RESTLESS_SOUL
|
|
142
|
+
) {
|
|
143
|
+
return runRestlessSoulCredit();
|
|
144
|
+
}
|
|
145
|
+
return [];
|
|
146
|
+
}
|