/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it * and/or modify it under version 2 of the License, or (at your option), any later version. */ #ifndef _PLAYERBOT_COMBATSTRATEGY_H #define _PLAYERBOT_COMBATSTRATEGY_H #include "Strategy.h" class PlayerbotAI; class CombatStrategy : public Strategy { public: CombatStrategy(PlayerbotAI* botAI) : Strategy(botAI) {} void InitTriggers(std::vector& triggers) override; uint32 GetType() const override { return STRATEGY_TYPE_COMBAT; } }; class AvoidAoeStrategy : public Strategy { public: explicit AvoidAoeStrategy(PlayerbotAI* ai); const std::string getName() override { return "avoid aoe"; } NextAction** getDefaultActions() override; void InitMultipliers(std::vector& multipliers) override; void InitTriggers(std::vector& triggers) override; }; class TankFaceStrategy : public Strategy { public: explicit TankFaceStrategy(PlayerbotAI* ai); const std::string getName() override { return "tank face"; } NextAction** getDefaultActions() override; void InitTriggers(std::vector& triggers) override; }; class CombatFormationStrategy : public Strategy { public: CombatFormationStrategy(PlayerbotAI* ai) : Strategy(ai) {} const std::string getName() override { return "formation"; } NextAction** getDefaultActions() override; }; #endif