mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
181 lines
4.6 KiB
C++
181 lines
4.6 KiB
C++
/*
|
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, 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_HUNTERTRIGGERS_H
|
|
#define _PLAYERBOT_HUNTERTRIGGERS_H
|
|
|
|
#include "CureTriggers.h"
|
|
#include "GenericTriggers.h"
|
|
#include "Trigger.h"
|
|
|
|
class PlayerbotAI;
|
|
|
|
class HunterNoStingsActiveTrigger : public DebuffTrigger
|
|
{
|
|
public:
|
|
HunterNoStingsActiveTrigger(PlayerbotAI* botAI) : DebuffTrigger(botAI, "no stings") {}
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class AutoShotTrigger : public Trigger
|
|
{
|
|
public:
|
|
AutoShotTrigger(PlayerbotAI* botAI) : Trigger(botAI, "auto shot") {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class HunterAspectOfTheMonkeyTrigger : public BuffTrigger
|
|
{
|
|
public:
|
|
HunterAspectOfTheMonkeyTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "aspect of the monkey") {}
|
|
};
|
|
|
|
class HunterAspectOfTheHawkTrigger : public BuffTrigger
|
|
{
|
|
public:
|
|
HunterAspectOfTheHawkTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "aspect of the hawk") {}
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class HunterAspectOfTheWildTrigger : public BuffTrigger
|
|
{
|
|
public:
|
|
HunterAspectOfTheWildTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "aspect of the wild") {}
|
|
};
|
|
|
|
class HunterAspectOfTheViperTrigger : public BuffTrigger
|
|
{
|
|
public:
|
|
HunterAspectOfTheViperTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "aspect of the viper") {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class HunterAspectOfThePackTrigger : public BuffTrigger
|
|
{
|
|
public:
|
|
HunterAspectOfThePackTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "aspect of the pack") {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
BEGIN_TRIGGER(HuntersPetDeadTrigger, Trigger)
|
|
END_TRIGGER()
|
|
|
|
BEGIN_TRIGGER(HuntersPetLowHealthTrigger, Trigger)
|
|
END_TRIGGER()
|
|
|
|
BEGIN_TRIGGER(HuntersPetMediumHealthTrigger, Trigger)
|
|
END_TRIGGER()
|
|
|
|
class BlackArrowTrigger : public DebuffTrigger
|
|
{
|
|
public:
|
|
BlackArrowTrigger(PlayerbotAI* botAI) : DebuffTrigger(botAI, "black arrow", 1, true) {}
|
|
};
|
|
|
|
class HuntersMarkTrigger : public DebuffTrigger
|
|
{
|
|
public:
|
|
HuntersMarkTrigger(PlayerbotAI* botAI) : DebuffTrigger(botAI, "hunter's mark", 1, false, 25.0f) {}
|
|
};
|
|
|
|
class FreezingTrapTrigger : public HasCcTargetTrigger
|
|
{
|
|
public:
|
|
FreezingTrapTrigger(PlayerbotAI* botAI) : HasCcTargetTrigger(botAI, "freezing trap") {}
|
|
};
|
|
|
|
class RapidFireTrigger : public BoostTrigger
|
|
{
|
|
public:
|
|
RapidFireTrigger(PlayerbotAI* botAI) : BoostTrigger(botAI, "rapid fire") {}
|
|
};
|
|
|
|
class TrueshotAuraTrigger : public BuffTrigger
|
|
{
|
|
public:
|
|
TrueshotAuraTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "trueshot aura") {}
|
|
};
|
|
|
|
class SerpentStingOnAttackerTrigger : public DebuffOnAttackerTrigger
|
|
{
|
|
public:
|
|
SerpentStingOnAttackerTrigger(PlayerbotAI* botAI) : DebuffOnAttackerTrigger(botAI, "serpent sting", true) {}
|
|
};
|
|
|
|
BEGIN_TRIGGER(HunterPetNotHappy, Trigger)
|
|
END_TRIGGER()
|
|
|
|
class ConsussiveShotSnareTrigger : public SnareTargetTrigger
|
|
{
|
|
public:
|
|
ConsussiveShotSnareTrigger(PlayerbotAI* botAI) : SnareTargetTrigger(botAI, "concussive shot") {}
|
|
};
|
|
|
|
class ScareBeastTrigger : public HasCcTargetTrigger
|
|
{
|
|
public:
|
|
ScareBeastTrigger(PlayerbotAI* botAI) : HasCcTargetTrigger(botAI, "scare beast") {}
|
|
};
|
|
|
|
class HunterLowAmmoTrigger : public AmmoCountTrigger
|
|
{
|
|
public:
|
|
HunterLowAmmoTrigger(PlayerbotAI* botAI) : AmmoCountTrigger(botAI, "ammo", 1, 30) {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class HunterNoAmmoTrigger : public AmmoCountTrigger
|
|
{
|
|
public:
|
|
HunterNoAmmoTrigger(PlayerbotAI* botAI) : AmmoCountTrigger(botAI, "ammo", 1, 10) {}
|
|
};
|
|
|
|
class HunterHasAmmoTrigger : public AmmoCountTrigger
|
|
{
|
|
public:
|
|
HunterHasAmmoTrigger(PlayerbotAI* botAI) : AmmoCountTrigger(botAI, "ammo", 1, 10) {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class SwitchToRangedTrigger : public Trigger
|
|
{
|
|
public:
|
|
SwitchToRangedTrigger(PlayerbotAI* botAI) : Trigger(botAI, "switch to ranged") {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class SwitchToMeleeTrigger : public Trigger
|
|
{
|
|
public:
|
|
SwitchToMeleeTrigger(PlayerbotAI* botAI) : Trigger(botAI, "switch to melee") {}
|
|
|
|
bool IsActive() override;
|
|
};
|
|
|
|
class MisdirectionOnMainTankTrigger : public BuffOnMainTankTrigger
|
|
{
|
|
public:
|
|
MisdirectionOnMainTankTrigger(PlayerbotAI* ai) : BuffOnMainTankTrigger(ai, "misdirection", true) {}
|
|
};
|
|
|
|
class TargetRemoveEnrageTrigger : public TargetAuraDispelTrigger
|
|
{
|
|
public:
|
|
TargetRemoveEnrageTrigger(PlayerbotAI* ai) : TargetAuraDispelTrigger(ai, "tranquilizing shot", DISPEL_ENRAGE) {}
|
|
};
|
|
|
|
class TargetRemoveMagicTrigger : public TargetAuraDispelTrigger
|
|
{
|
|
public:
|
|
TargetRemoveMagicTrigger(PlayerbotAI* ai) : TargetAuraDispelTrigger(ai, "tranquilizing shot", DISPEL_MAGIC) {}
|
|
};
|
|
#endif
|