#ifndef _PLAYERBOT_WOTLKDUNGEONDTKACTIONS_H #define _PLAYERBOT_WOTLKDUNGEONDTKACTIONS_H #include "Action.h" #include "AttackAction.h" #include "GenericSpellActions.h" #include "PlayerbotAI.h" #include "Playerbots.h" #include "DrakTharonKeepTriggers.h" const Position NOVOS_PARTY_POSITION = Position(-378.852f, -760.349f, 28.587f); class CorpseExplodeSpreadAction : public MovementAction { public: CorpseExplodeSpreadAction(PlayerbotAI* ai) : MovementAction(ai, "corpse explode spread") {} bool Execute(Event event) override; }; class AvoidArcaneFieldAction : public MovementAction { public: AvoidArcaneFieldAction(PlayerbotAI* ai) : MovementAction(ai, "avoid arcane field") {} bool Execute(Event event) override; }; class NovosDefaultPositionAction : public MovementAction { public: NovosDefaultPositionAction(PlayerbotAI* ai) : MovementAction(ai, "novos default position") {} bool Execute(Event event) override; bool isUseful() override; }; class NovosTargetPriorityAction : public AttackAction { public: NovosTargetPriorityAction(PlayerbotAI* ai) : AttackAction(ai, "novos target priority") {} bool Execute(Event event) override; // bool isUseful() override; }; class CastSlayingStrikeAction : public CastMeleeSpellAction { public: CastSlayingStrikeAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "slaying strike") {} }; class CastTauntAction : public CastSpellAction { public: CastTauntAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "taunt") {} }; class CastBoneArmorAction : public CastSpellAction { public: CastBoneArmorAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "bone armor") {} }; class CastTouchOfLifeAction : public CastSpellAction { public: CastTouchOfLifeAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "touch of life") {} }; #endif