From 37e69ae02973e29efc168a3ae62e0cf1a6e12335 Mon Sep 17 00:00:00 2001 From: crow Date: Wed, 19 Aug 2026 21:40:58 -0500 Subject: [PATCH] initial commit --- src/Ai/Base/ActionContext.h | 2 +- src/Ai/Base/Actions/AttackAction.cpp | 12 ++ src/Ai/Base/Actions/AttackAction.h | 9 + src/Ai/Base/Actions/GenericActions.cpp | 232 --------------------- src/Ai/Base/Actions/GenericActions.h | 47 ----- src/Ai/Base/Actions/PetsAction.cpp | 208 ++++++++++++++++++ src/Ai/Base/Actions/PetsAction.h | 22 ++ src/Ai/Dungeon/TOC/TOCActions.cpp | 1 - src/Ai/Raid/BWL/BWLMultipliers.cpp | 1 - src/Ai/Raid/EoE/EoEMultipliers.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_BPC.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_BQL.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_DBS.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_Dogs.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_FG.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_GSB.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_LDW.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_LK.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_LM.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_PP.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_RF.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_SG.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_SS.cpp | 1 - src/Ai/Raid/ICC/Action/ICCActions_VT.cpp | 1 - src/Ai/Raid/ICC/ICCMultipliers.cpp | 2 +- src/Ai/Raid/Kara/KaraMultipliers.cpp | 2 +- src/Ai/Raid/Naxx/Action/NaxxActions.h | 1 - src/Ai/Raid/Naxx/NaxxMultipliers.cpp | 2 +- src/Ai/Raid/OS/OSMultipliers.cpp | 1 - src/Ai/Raid/RS/RSMultipliers.cpp | 3 +- src/Ai/Raid/Uld/UldActions.h | 1 - 31 files changed, 257 insertions(+), 304 deletions(-) delete mode 100644 src/Ai/Base/Actions/GenericActions.cpp delete mode 100644 src/Ai/Base/Actions/GenericActions.h diff --git a/src/Ai/Base/ActionContext.h b/src/Ai/Base/ActionContext.h index aa5e4175ef7..d49d1421997 100644 --- a/src/Ai/Base/ActionContext.h +++ b/src/Ai/Base/ActionContext.h @@ -29,7 +29,6 @@ #include "EmoteAction.h" #include "FishingAction.h" #include "FollowActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "GiveItemAction.h" #include "GreetAction.h" @@ -48,6 +47,7 @@ #include "NewRpgOutdoorPvP.h" #include "NonCombatActions.h" #include "OutfitAction.h" +#include "PetsAction.h" #include "PositionAction.h" #include "PullActions.h" #include "RandomBotUpdateAction.h" diff --git a/src/Ai/Base/Actions/AttackAction.cpp b/src/Ai/Base/Actions/AttackAction.cpp index 39aa8a355e4..5badda1ced2 100644 --- a/src/Ai/Base/Actions/AttackAction.cpp +++ b/src/Ai/Base/Actions/AttackAction.cpp @@ -220,3 +220,15 @@ bool AttackAction::Attack(Unit* target, bool /*with_pet*/ /*true*/) bool AttackDuelOpponentAction::isUseful() { return AI_VALUE(Unit*, "duel target"); } bool AttackDuelOpponentAction::Execute(Event /*event*/) { return Attack(AI_VALUE(Unit*, "duel target")); } + +bool MeleeAction::isUseful() +{ + // do not allow if can't attack from vehicle + if (botAI->IsInVehicle() && !botAI->IsInVehicle(false, false, true)) + return false; + + // Do not start autoattack while prowled — let opener spells break stealth intentionally. + // Future rogue stealth implementation should use this instead: + // return !(botAI->HasAura("stealth", bot) || botAI->HasAura("prowl", bot)); + return !botAI->HasAura("prowl", bot); +} diff --git a/src/Ai/Base/Actions/AttackAction.h b/src/Ai/Base/Actions/AttackAction.h index 33db7e6b90c..2911924f005 100644 --- a/src/Ai/Base/Actions/AttackAction.h +++ b/src/Ai/Base/Actions/AttackAction.h @@ -43,4 +43,13 @@ class AttackDuelOpponentAction : public AttackAction bool isUseful() override; }; +class MeleeAction : public AttackAction +{ +public: + MeleeAction(PlayerbotAI* botAI) : AttackAction(botAI, "melee") {} + + std::string const GetTargetName() override { return "current target"; } + bool isUseful() override; +}; + #endif diff --git a/src/Ai/Base/Actions/GenericActions.cpp b/src/Ai/Base/Actions/GenericActions.cpp deleted file mode 100644 index 1c8354dd09a..00000000000 --- a/src/Ai/Base/Actions/GenericActions.cpp +++ /dev/null @@ -1,232 +0,0 @@ -/* - * This file is part of the mod-playerbots module for AzerothCore. See AUTHORS file for Copyright - * information; released under GNU GPL v2 license, redistribute/modify under version 2 of the License, - * or (at your option) any later version. - */ - -#include "GenericActions.h" -#include "CharmInfo.h" -#include "CreatureAI.h" -#include "Pet.h" -#include "Player.h" -#include "PlayerbotAI.h" -#include "PlayerbotAIConfig.h" -#include "PlayerbotTextMgr.h" -#include "Playerbots.h" -#include "SpellInfo.h" -#include "SpellMgr.h" -#include -#include - -enum PetSpells -{ - PET_PROWL_1 = 24450, - PET_PROWL_2 = 24452, - PET_PROWL_3 = 24453, - PET_COWER = 1742, - PET_LEAP = 47482, - PET_SPELL_LOCK_1 = 19244, - PET_SPELL_LOCK_2 = 19647, - PET_DEVOUR_MAGIC_1 = 19505, - PET_DEVOUR_MAGIC_2 = 19731, - PET_DEVOUR_MAGIC_3 = 19734, - PET_DEVOUR_MAGIC_4 = 19736, - PET_DEVOUR_MAGIC_5 = 27276, - PET_DEVOUR_MAGIC_6 = 27277, - PET_DEVOUR_MAGIC_7 = 48011, - PET_SPIRIT_WOLF_LEAP = 58867 -}; - -static std::vector disabledPetSpells = { - PET_PROWL_1, PET_PROWL_2, PET_PROWL_3, - PET_COWER, PET_LEAP, - PET_SPELL_LOCK_1, PET_SPELL_LOCK_2, - PET_DEVOUR_MAGIC_1, PET_DEVOUR_MAGIC_2, PET_DEVOUR_MAGIC_3, - PET_DEVOUR_MAGIC_4, PET_DEVOUR_MAGIC_5, PET_DEVOUR_MAGIC_6, PET_DEVOUR_MAGIC_7, PET_SPIRIT_WOLF_LEAP -}; - -bool MeleeAction::isUseful() -{ - // do not allow if can't attack from vehicle - if (botAI->IsInVehicle() && !botAI->IsInVehicle(false, false, true)) - return false; - - // Do not start autoattack while prowled — let opener spells break stealth intentionally. - // Future rogue stealth implementation should use this instead: - // return !(botAI->HasAura("stealth", bot) || botAI->HasAura("prowl", bot)); - return !botAI->HasAura("prowl", bot); -} - -bool TogglePetSpellAutoCastAction::Execute(Event /*event*/) -{ - Pet* pet = bot->GetPet(); - if (!pet) - { - return false; - } - // hack on high level spell after low level initialization - std::vector shouldRemove; - for (unsigned int& m_autospell : pet->m_autospells) - { - if (!pet->HasSpell(m_autospell)) - { - shouldRemove.push_back(m_autospell); - } - } - for (unsigned int spellId : shouldRemove) - { - auto autospellItr = std::find(pet->m_autospells.begin(), pet->m_autospells.end(), spellId); - if (autospellItr != pet->m_autospells.end()) - pet->m_autospells.erase(autospellItr); - } - bool toggled = false; - for (PetSpellMap::const_iterator itr = pet->m_spells.begin(); itr != pet->m_spells.end(); ++itr) - { - if (itr->second.state == PETSPELL_REMOVED) - continue; - - uint32 spellId = itr->first; - const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(spellId); - if (!spellInfo || !spellInfo->IsAutocastable()) - continue; - - bool shouldApply = true; - for (uint32 disabledSpell : disabledPetSpells) - { - if (spellId == disabledSpell) - { - shouldApply = false; - break; - } - } - bool isAutoCast = false; - for (unsigned int& m_autospell : pet->m_autospells) - { - if (m_autospell == spellId) - { - isAutoCast = true; - break; - } - } - if (shouldApply != isAutoCast) - { - pet->ToggleAutocast(spellInfo, shouldApply); - toggled = true; - } - } - - // Debug message if pet spells have been toggled and debug is enabled - if (toggled && sPlayerbotAIConfig.petChatCommandDebug == 1) - botAI->TellMaster("Pet autocast spells have been toggled."); - - return toggled; -} - -bool PetAttackAction::Execute(Event /*event*/) -{ - Guardian* pet = bot->GetGuardianPet(); - if (!pet) - return false; - - // Do not attack if the pet's stance is set to "passive". - if (pet->GetReactState() == REACT_PASSIVE) - return false; - - Unit* target = AI_VALUE(Unit*, "current target"); - if (!target) - return false; - - if (!bot->IsValidAttackTarget(target)) - return false; - - // This section has been commented because it was overriding the - // pet's stance to "passive" every time the attack action was executed. - // pet->SetReactState(REACT_PASSIVE); - - pet->ClearUnitState(UNIT_STATE_FOLLOW); - pet->AttackStop(); - pet->SetTarget(target->GetGUID()); - - pet->GetCharmInfo()->SetIsCommandAttack(true); - pet->GetCharmInfo()->SetIsAtStay(false); - pet->GetCharmInfo()->SetIsFollowing(false); - pet->GetCharmInfo()->SetIsCommandFollow(false); - pet->GetCharmInfo()->SetIsReturning(false); - - pet->ToCreature()->AI()->AttackStart(target); - return true; -} - -bool SetPetStanceAction::Execute(Event /*event*/) -{ - // Prepare a list to hold all controlled pet and guardian creatures - std::vector targets; - - // Add the bot's main pet (if it exists) to the target list - Pet* pet = bot->GetPet(); - if (pet) - targets.push_back(pet); - - // Loop through all units controlled by the bot (could be pets, guardians, etc.) - for (Unit::ControlSet::const_iterator itr = bot->m_Controlled.begin(); itr != bot->m_Controlled.end(); ++itr) - { - // Only add creatures (skip players, vehicles, etc.) - Creature* creature = dynamic_cast(*itr); - if (!creature) - continue; - // Avoid adding the main pet twice - if (pet && creature == pet) - continue; - targets.push_back(creature); - } - - // If there are no controlled pets or guardians, notify the player and exit - if (targets.empty()) - { - botAI->TellError(PlayerbotTextMgr::instance().GetBotTextOrDefault( - "pet_no_pet_error", "You have no pet or guardian pet.", {})); - return false; - } - - // Get the default pet stance from the configuration - int32 stance = sPlayerbotAIConfig.defaultPetStance; - ReactStates react = REACT_DEFENSIVE; - std::string stanceText = "defensive (from config, fallback)"; - - // Map the config stance integer to a ReactStates value and a message - switch (stance) - { - case 0: - react = REACT_PASSIVE; - stanceText = "passive (from config)"; - break; - case 1: - react = REACT_DEFENSIVE; - stanceText = "defensive (from config)"; - break; - case 2: - react = REACT_AGGRESSIVE; - stanceText = "aggressive (from config)"; - break; - default: - react = REACT_DEFENSIVE; - stanceText = "defensive (from config, fallback)"; - break; - } - - // Apply the stance to all target creatures (pets/guardians) - for (Creature* target : targets) - { - target->SetReactState(react); - CharmInfo* charmInfo = target->GetCharmInfo(); - // If the creature has a CharmInfo, set the player-visible stance as well - if (charmInfo) - charmInfo->SetPlayerReactState(react); - } - - // If debug is enabled in config, inform the master of the new stance - if (sPlayerbotAIConfig.petChatCommandDebug == 1) - botAI->TellMaster("Pet stance set to " + stanceText + " (applied to all pets/guardians)."); - - return true; -} diff --git a/src/Ai/Base/Actions/GenericActions.h b/src/Ai/Base/Actions/GenericActions.h deleted file mode 100644 index cd35af93ced..00000000000 --- a/src/Ai/Base/Actions/GenericActions.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This file is part of the mod-playerbots module for AzerothCore. See AUTHORS file for Copyright - * information; released under GNU GPL v2 license, redistribute/modify under version 2 of the License, - * or (at your option) any later version. - */ - -#ifndef PLAYERBOTS_GENERICACTIONS_H -#define PLAYERBOTS_GENERICACTIONS_H - -#include "Action.h" -#include "AttackAction.h" -#include "PlayerbotAI.h" - -class PlayerbotAI; - -class MeleeAction : public AttackAction -{ -public: - MeleeAction(PlayerbotAI* botAI) : AttackAction(botAI, "melee") {} - - std::string const GetTargetName() override { return "current target"; } - bool isUseful() override; -}; - -class TogglePetSpellAutoCastAction : public Action -{ -public: - TogglePetSpellAutoCastAction(PlayerbotAI* ai) : Action(ai, "toggle pet spell") {} - virtual bool Execute(Event event) override; -}; - -class PetAttackAction : public Action -{ -public: - PetAttackAction(PlayerbotAI* ai) : Action(ai, "pet attack") {} - virtual bool Execute(Event event) override; -}; - -class SetPetStanceAction : public Action -{ -public: - SetPetStanceAction(PlayerbotAI* botAI) : Action(botAI, "set pet stance") {} - - bool Execute(Event event) override; -}; - -#endif diff --git a/src/Ai/Base/Actions/PetsAction.cpp b/src/Ai/Base/Actions/PetsAction.cpp index 6eac782e20b..ba8dec30777 100644 --- a/src/Ai/Base/Actions/PetsAction.cpp +++ b/src/Ai/Base/Actions/PetsAction.cpp @@ -11,6 +11,40 @@ #include "Pet.h" #include "Player.h" #include "PlayerbotAI.h" +#include "PlayerbotAIConfig.h" +#include "PlayerbotTextMgr.h" +#include "Playerbots.h" +#include "SpellInfo.h" +#include "SpellMgr.h" +#include +#include + +enum PetSpells +{ + PET_PROWL_1 = 24450, + PET_PROWL_2 = 24452, + PET_PROWL_3 = 24453, + PET_COWER = 1742, + PET_LEAP = 47482, + PET_SPELL_LOCK_1 = 19244, + PET_SPELL_LOCK_2 = 19647, + PET_DEVOUR_MAGIC_1 = 19505, + PET_DEVOUR_MAGIC_2 = 19731, + PET_DEVOUR_MAGIC_3 = 19734, + PET_DEVOUR_MAGIC_4 = 19736, + PET_DEVOUR_MAGIC_5 = 27276, + PET_DEVOUR_MAGIC_6 = 27277, + PET_DEVOUR_MAGIC_7 = 48011, + PET_SPIRIT_WOLF_LEAP = 58867 +}; + +static std::vector disabledPetSpells = { + PET_PROWL_1, PET_PROWL_2, PET_PROWL_3, + PET_COWER, PET_LEAP, + PET_SPELL_LOCK_1, PET_SPELL_LOCK_2, + PET_DEVOUR_MAGIC_1, PET_DEVOUR_MAGIC_2, PET_DEVOUR_MAGIC_3, + PET_DEVOUR_MAGIC_4, PET_DEVOUR_MAGIC_5, PET_DEVOUR_MAGIC_6, PET_DEVOUR_MAGIC_7, PET_SPIRIT_WOLF_LEAP +}; bool PetsAction::Execute(Event event) { @@ -304,3 +338,177 @@ bool PetsAction::Execute(Event event) return true; } + +bool TogglePetSpellAutoCastAction::Execute(Event /*event*/) +{ + Pet* pet = bot->GetPet(); + if (!pet) + { + return false; + } + // hack on high level spell after low level initialization + std::vector shouldRemove; + for (unsigned int& m_autospell : pet->m_autospells) + { + if (!pet->HasSpell(m_autospell)) + { + shouldRemove.push_back(m_autospell); + } + } + for (unsigned int spellId : shouldRemove) + { + auto autospellItr = std::find(pet->m_autospells.begin(), pet->m_autospells.end(), spellId); + if (autospellItr != pet->m_autospells.end()) + pet->m_autospells.erase(autospellItr); + } + bool toggled = false; + for (PetSpellMap::const_iterator itr = pet->m_spells.begin(); itr != pet->m_spells.end(); ++itr) + { + if (itr->second.state == PETSPELL_REMOVED) + continue; + + uint32 spellId = itr->first; + const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(spellId); + if (!spellInfo || !spellInfo->IsAutocastable()) + continue; + + bool shouldApply = true; + for (uint32 disabledSpell : disabledPetSpells) + { + if (spellId == disabledSpell) + { + shouldApply = false; + break; + } + } + bool isAutoCast = false; + for (unsigned int& m_autospell : pet->m_autospells) + { + if (m_autospell == spellId) + { + isAutoCast = true; + break; + } + } + if (shouldApply != isAutoCast) + { + pet->ToggleAutocast(spellInfo, shouldApply); + toggled = true; + } + } + + // Debug message if pet spells have been toggled and debug is enabled + if (toggled && sPlayerbotAIConfig.petChatCommandDebug == 1) + botAI->TellMaster("Pet autocast spells have been toggled."); + + return toggled; +} + +bool PetAttackAction::Execute(Event /*event*/) +{ + Guardian* pet = bot->GetGuardianPet(); + if (!pet) + return false; + + // Do not attack if the pet's stance is set to "passive". + if (pet->GetReactState() == REACT_PASSIVE) + return false; + + Unit* target = AI_VALUE(Unit*, "current target"); + if (!target) + return false; + + if (!bot->IsValidAttackTarget(target)) + return false; + + // This section has been commented because it was overriding the + // pet's stance to "passive" every time the attack action was executed. + // pet->SetReactState(REACT_PASSIVE); + + pet->ClearUnitState(UNIT_STATE_FOLLOW); + pet->AttackStop(); + pet->SetTarget(target->GetGUID()); + + pet->GetCharmInfo()->SetIsCommandAttack(true); + pet->GetCharmInfo()->SetIsAtStay(false); + pet->GetCharmInfo()->SetIsFollowing(false); + pet->GetCharmInfo()->SetIsCommandFollow(false); + pet->GetCharmInfo()->SetIsReturning(false); + + pet->ToCreature()->AI()->AttackStart(target); + return true; +} + +bool SetPetStanceAction::Execute(Event /*event*/) +{ + // Prepare a list to hold all controlled pet and guardian creatures + std::vector targets; + + // Add the bot's main pet (if it exists) to the target list + Pet* pet = bot->GetPet(); + if (pet) + targets.push_back(pet); + + // Loop through all units controlled by the bot (could be pets, guardians, etc.) + for (Unit::ControlSet::const_iterator itr = bot->m_Controlled.begin(); itr != bot->m_Controlled.end(); ++itr) + { + // Only add creatures (skip players, vehicles, etc.) + Creature* creature = dynamic_cast(*itr); + if (!creature) + continue; + // Avoid adding the main pet twice + if (pet && creature == pet) + continue; + targets.push_back(creature); + } + + // If there are no controlled pets or guardians, notify the player and exit + if (targets.empty()) + { + botAI->TellError(PlayerbotTextMgr::instance().GetBotTextOrDefault( + "pet_no_pet_error", "You have no pet or guardian pet.", {})); + return false; + } + + // Get the default pet stance from the configuration + int32 stance = sPlayerbotAIConfig.defaultPetStance; + ReactStates react = REACT_DEFENSIVE; + std::string stanceText = "defensive (from config, fallback)"; + + // Map the config stance integer to a ReactStates value and a message + switch (stance) + { + case 0: + react = REACT_PASSIVE; + stanceText = "passive (from config)"; + break; + case 1: + react = REACT_DEFENSIVE; + stanceText = "defensive (from config)"; + break; + case 2: + react = REACT_AGGRESSIVE; + stanceText = "aggressive (from config)"; + break; + default: + react = REACT_DEFENSIVE; + stanceText = "defensive (from config, fallback)"; + break; + } + + // Apply the stance to all target creatures (pets/guardians) + for (Creature* target : targets) + { + target->SetReactState(react); + CharmInfo* charmInfo = target->GetCharmInfo(); + // If the creature has a CharmInfo, set the player-visible stance as well + if (charmInfo) + charmInfo->SetPlayerReactState(react); + } + + // If debug is enabled in config, inform the master of the new stance + if (sPlayerbotAIConfig.petChatCommandDebug == 1) + botAI->TellMaster("Pet stance set to " + stanceText + " (applied to all pets/guardians)."); + + return true; +} diff --git a/src/Ai/Base/Actions/PetsAction.h b/src/Ai/Base/Actions/PetsAction.h index cfa12f7335f..65b7ad1e138 100644 --- a/src/Ai/Base/Actions/PetsAction.h +++ b/src/Ai/Base/Actions/PetsAction.h @@ -23,4 +23,26 @@ class PetsAction : public Action std::string defaultCmd; }; +class TogglePetSpellAutoCastAction : public Action +{ +public: + TogglePetSpellAutoCastAction(PlayerbotAI* ai) : Action(ai, "toggle pet spell") {} + virtual bool Execute(Event event) override; +}; + +class PetAttackAction : public Action +{ +public: + PetAttackAction(PlayerbotAI* ai) : Action(ai, "pet attack") {} + virtual bool Execute(Event event) override; +}; + +class SetPetStanceAction : public Action +{ +public: + SetPetStanceAction(PlayerbotAI* botAI) : Action(botAI, "set pet stance") {} + + bool Execute(Event event) override; +}; + #endif diff --git a/src/Ai/Dungeon/TOC/TOCActions.cpp b/src/Ai/Dungeon/TOC/TOCActions.cpp index 8be7d033a48..c5d0fabeef2 100644 --- a/src/Ai/Dungeon/TOC/TOCActions.cpp +++ b/src/Ai/Dungeon/TOC/TOCActions.cpp @@ -5,7 +5,6 @@ */ #include "TOCActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "NearestNpcsValue.h" #include "ObjectAccessor.h" diff --git a/src/Ai/Raid/BWL/BWLMultipliers.cpp b/src/Ai/Raid/BWL/BWLMultipliers.cpp index d0848695267..148dafdddca 100644 --- a/src/Ai/Raid/BWL/BWLMultipliers.cpp +++ b/src/Ai/Raid/BWL/BWLMultipliers.cpp @@ -8,7 +8,6 @@ #include "BWLActions.h" #include "BWLHelpers.h" #include "ChooseTargetActions.h" -#include "GenericActions.h" #include "HunterActions.h" #include "Playerbots.h" #include "ReachTargetActions.h" diff --git a/src/Ai/Raid/EoE/EoEMultipliers.cpp b/src/Ai/Raid/EoE/EoEMultipliers.cpp index 4ba835cac1e..ce46a5500a1 100644 --- a/src/Ai/Raid/EoE/EoEMultipliers.cpp +++ b/src/Ai/Raid/EoE/EoEMultipliers.cpp @@ -12,7 +12,6 @@ #include "EoEActions.h" #include "EoETriggers.h" #include "FollowActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "MovementActions.h" #include "PaladinActions.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_BPC.cpp b/src/Ai/Raid/ICC/Action/ICCActions_BPC.cpp index 345c5ba3698..91024a22c2d 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_BPC.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_BPC.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_BQL.cpp b/src/Ai/Raid/ICC/Action/ICCActions_BQL.cpp index fd0aa33312f..7d8b924713a 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_BQL.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_BQL.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_DBS.cpp b/src/Ai/Raid/ICC/Action/ICCActions_DBS.cpp index 7d75a1a7ade..f99334145ae 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_DBS.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_DBS.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_Dogs.cpp b/src/Ai/Raid/ICC/Action/ICCActions_Dogs.cpp index 0ade4d5834e..5820aabbf20 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_Dogs.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_Dogs.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_FG.cpp b/src/Ai/Raid/ICC/Action/ICCActions_FG.cpp index 1bbbd384c34..9c9f5b1fec0 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_FG.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_FG.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCScripts.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_GSB.cpp b/src/Ai/Raid/ICC/Action/ICCActions_GSB.cpp index eb836a7ba2d..70c4b7691e4 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_GSB.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_GSB.cpp @@ -5,7 +5,6 @@ */ #include "EquipAction.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_LDW.cpp b/src/Ai/Raid/ICC/Action/ICCActions_LDW.cpp index 74bc2b21282..0bc57761594 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_LDW.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_LDW.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_LK.cpp b/src/Ai/Raid/ICC/Action/ICCActions_LK.cpp index 32bca5dbdfa..638d35cf29b 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_LK.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_LK.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCScripts.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_LM.cpp b/src/Ai/Raid/ICC/Action/ICCActions_LM.cpp index 7ba40c2a854..2694bfeee3a 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_LM.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_LM.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_PP.cpp b/src/Ai/Raid/ICC/Action/ICCActions_PP.cpp index 3c567883aff..a65ea686c1f 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_PP.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_PP.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCScripts.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_RF.cpp b/src/Ai/Raid/ICC/Action/ICCActions_RF.cpp index e696dc08c98..4be4f606d23 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_RF.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_RF.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCScripts.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_SG.cpp b/src/Ai/Raid/ICC/Action/ICCActions_SG.cpp index fa096d3008e..a96bd2ee60e 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_SG.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_SG.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_SS.cpp b/src/Ai/Raid/ICC/Action/ICCActions_SS.cpp index 01b29ed7813..c9894a8a5c9 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_SS.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_SS.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/Action/ICCActions_VT.cpp b/src/Ai/Raid/ICC/Action/ICCActions_VT.cpp index 9e673ec1832..13c64964d82 100644 --- a/src/Ai/Raid/ICC/Action/ICCActions_VT.cpp +++ b/src/Ai/Raid/ICC/Action/ICCActions_VT.cpp @@ -4,7 +4,6 @@ * or (at your option) any later version. */ -#include "GenericActions.h" #include "GenericSpellActions.h" #include "ICCActions.h" #include "ICCTriggers.h" diff --git a/src/Ai/Raid/ICC/ICCMultipliers.cpp b/src/Ai/Raid/ICC/ICCMultipliers.cpp index 2517e7b7a98..154fd8a516b 100644 --- a/src/Ai/Raid/ICC/ICCMultipliers.cpp +++ b/src/Ai/Raid/ICC/ICCMultipliers.cpp @@ -11,7 +11,6 @@ #include "DruidActions.h" #include "DruidBearActions.h" #include "FollowActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "HunterActions.h" #include "ICCActions.h" @@ -20,6 +19,7 @@ #include "MageActions.h" #include "MovementActions.h" #include "PaladinActions.h" +#include "PetsAction.h" #include "PlayerbotAI.h" #include "PriestActions.h" #include "ReachTargetActions.h" diff --git a/src/Ai/Raid/Kara/KaraMultipliers.cpp b/src/Ai/Raid/Kara/KaraMultipliers.cpp index eafe2366075..37d3386f6e1 100644 --- a/src/Ai/Raid/Kara/KaraMultipliers.cpp +++ b/src/Ai/Raid/Kara/KaraMultipliers.cpp @@ -10,12 +10,12 @@ #include "DKActions.h" #include "DruidActions.h" #include "FollowActions.h" -#include "GenericActions.h" #include "HunterActions.h" #include "KaraActions.h" #include "KaraHelpers.h" #include "MageActions.h" #include "PaladinActions.h" +#include "PetsAction.h" #include "Playerbots.h" #include "PriestActions.h" #include "ReachTargetActions.h" diff --git a/src/Ai/Raid/Naxx/Action/NaxxActions.h b/src/Ai/Raid/Naxx/Action/NaxxActions.h index 9cbbc9f2867..1fa7524eed9 100644 --- a/src/Ai/Raid/Naxx/Action/NaxxActions.h +++ b/src/Ai/Raid/Naxx/Action/NaxxActions.h @@ -9,7 +9,6 @@ #include "Action.h" #include "AttackAction.h" -#include "GenericActions.h" #include "MovementActions.h" #include "NaxxBossHelper.h" #include "PlayerbotAI.h" diff --git a/src/Ai/Raid/Naxx/NaxxMultipliers.cpp b/src/Ai/Raid/Naxx/NaxxMultipliers.cpp index 668defdd46a..70d5cc8bd8e 100644 --- a/src/Ai/Raid/Naxx/NaxxMultipliers.cpp +++ b/src/Ai/Raid/Naxx/NaxxMultipliers.cpp @@ -10,7 +10,6 @@ #include "DruidActions.h" #include "DruidBearActions.h" #include "FollowActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "HunterActions.h" #include "MageActions.h" @@ -18,6 +17,7 @@ #include "NaxxActions.h" #include "NaxxSpellIds.h" #include "PaladinActions.h" +#include "PetsAction.h" #include "PriestActions.h" #include "ReachTargetActions.h" #include "RogueActions.h" diff --git a/src/Ai/Raid/OS/OSMultipliers.cpp b/src/Ai/Raid/OS/OSMultipliers.cpp index 7211aa85537..7061c6f5ca0 100644 --- a/src/Ai/Raid/OS/OSMultipliers.cpp +++ b/src/Ai/Raid/OS/OSMultipliers.cpp @@ -10,7 +10,6 @@ #include "DruidActions.h" #include "DruidBearActions.h" #include "FollowActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "MovementActions.h" #include "OSActions.h" diff --git a/src/Ai/Raid/RS/RSMultipliers.cpp b/src/Ai/Raid/RS/RSMultipliers.cpp index d099f7904c1..87c1059a92e 100644 --- a/src/Ai/Raid/RS/RSMultipliers.cpp +++ b/src/Ai/Raid/RS/RSMultipliers.cpp @@ -5,13 +5,13 @@ */ #include "RSMultipliers.h" +#include "AttackAction.h" #include "ChooseTargetActions.h" #include "DKActions.h" #include "DruidActions.h" #include "DruidBearActions.h" #include "DruidCatActions.h" #include "FollowActions.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "HunterActions.h" #include "ICCActions.h" @@ -19,6 +19,7 @@ #include "MovementActions.h" #include "NearestNpcsValue.h" #include "PaladinActions.h" +#include "PetsAction.h" #include "Playerbots.h" #include "PriestActions.h" #include "RSActions.h" diff --git a/src/Ai/Raid/Uld/UldActions.h b/src/Ai/Raid/Uld/UldActions.h index f28d6b6344c..a282dc39018 100644 --- a/src/Ai/Raid/Uld/UldActions.h +++ b/src/Ai/Raid/Uld/UldActions.h @@ -9,7 +9,6 @@ #include "Action.h" #include "AttackAction.h" -#include "GenericActions.h" #include "GenericSpellActions.h" #include "MovementActions.h" #include "PlayerbotAI.h"