/* * 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_ROGUETRIGGERS_H #define _PLAYERBOT_ROGUETRIGGERS_H #include "GenericTriggers.h" class PlayerbotAI; class KickInterruptSpellTrigger : public InterruptSpellTrigger { public: KickInterruptSpellTrigger(PlayerbotAI* botAI) : InterruptSpellTrigger(botAI, "kick") { } }; class SliceAndDiceTrigger : public BuffTrigger { public: SliceAndDiceTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "slice and dice") { } }; class AdrenalineRushTrigger : public BoostTrigger { public: AdrenalineRushTrigger(PlayerbotAI* botAI) : BoostTrigger(botAI, "adrenaline rush") { } // bool isPossible(); }; class RuptureTrigger : public DebuffTrigger { public: RuptureTrigger(PlayerbotAI* botAI) : DebuffTrigger(botAI, "rupture", 1, true) { } }; class ExposeArmorTrigger : public DebuffTrigger { public: ExposeArmorTrigger(PlayerbotAI* botAI) : DebuffTrigger(botAI, "expose armor") { } virtual bool IsActive() override; }; class KickInterruptEnemyHealerSpellTrigger : public InterruptEnemyHealerTrigger { public: KickInterruptEnemyHealerSpellTrigger(PlayerbotAI* botAI) : InterruptEnemyHealerTrigger(botAI, "kick") { } }; class InStealthTrigger : public HasAuraTrigger { public: InStealthTrigger(PlayerbotAI* botAI) : HasAuraTrigger(botAI, "stealth") { } }; class NoStealthTrigger : public HasNoAuraTrigger { public: NoStealthTrigger(PlayerbotAI* botAI) : HasNoAuraTrigger(botAI, "stealth") { } }; class UnstealthTrigger : public BuffTrigger { public: UnstealthTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "stealth", 3) { } bool IsActive() override; }; class StealthTrigger : public Trigger { public: StealthTrigger(PlayerbotAI* botAI) : Trigger(botAI, "stealth") { } bool IsActive() override; }; class SapTrigger : public HasCcTargetTrigger { public: SapTrigger(PlayerbotAI* botAI) : HasCcTargetTrigger(botAI, "sap") { } bool IsPossible(); }; class SprintTrigger : public BuffTrigger { public: SprintTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "sprint", 3) { } bool IsPossible(); bool IsActive() override; }; class MainHandWeaponNoEnchantTrigger : public BuffTrigger { public: MainHandWeaponNoEnchantTrigger(PlayerbotAI* ai) : BuffTrigger(ai, "main hand", 1) {} virtual bool IsActive(); }; class OffHandWeaponNoEnchantTrigger : public BuffTrigger { public: OffHandWeaponNoEnchantTrigger(PlayerbotAI* ai) : BuffTrigger(ai, "off hand", 1) {} virtual bool IsActive(); }; class TricksOfTheTradeOnMainTankTrigger : public BuffOnMainTankTrigger { public: TricksOfTheTradeOnMainTankTrigger(PlayerbotAI* ai) : BuffOnMainTankTrigger(ai, "tricks of the trade", true) {} }; #endif