mod-playerbots/src/strategy/raids/ulduar/RaidUlduarTriggers.h
kadeshar 7c49a7b681 - Added tactic for Freya Nature bomb
- Added tactic for Freya Eonar's gift
2025-03-06 19:06:27 +01:00

116 lines
2.8 KiB
C++

#ifndef _PLAYERBOT_RAIDULDUARTRIGGERS_H
#define _PLAYERBOT_RAIDULDUARTRIGGERS_H
#include "EventMap.h"
#include "GenericTriggers.h"
#include "PlayerbotAIConfig.h"
#include "RaidUlduarBossHelper.h"
#include "Trigger.h"
enum UlduarIDs
{
// Freya
NPC_EONARS_GIFT = 33228,
GOBJECT_NATURE_BOMB = 194902,
};
//
// Flame Levi
//
class FlameLeviathanOnVehicleTrigger : public Trigger
{
public:
FlameLeviathanOnVehicleTrigger(PlayerbotAI* ai) : Trigger(ai, "flame leviathan on vehicle") {}
bool IsActive() override;
};
class FlameLeviathanVehicleNearTrigger : public Trigger
{
public:
FlameLeviathanVehicleNearTrigger(PlayerbotAI* ai) : Trigger(ai, "flame leviathan vehicle near") {}
bool IsActive() override;
};
//
// Razorscale
//
class RazorscaleFlyingAloneTrigger : public Trigger
{
public:
RazorscaleFlyingAloneTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale flying alone") {}
bool IsActive() override;
};
class RazorscaleDevouringFlamesTrigger : public Trigger
{
public:
RazorscaleDevouringFlamesTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale avoid devouring flames") {}
bool IsActive() override;
};
class RazorscaleAvoidSentinelTrigger : public Trigger
{
public:
RazorscaleAvoidSentinelTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale avoid sentinel") {}
bool IsActive() override;
};
class RazorscaleAvoidWhirlwindTrigger : public Trigger
{
public:
RazorscaleAvoidWhirlwindTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale avoid whirlwind") {}
bool IsActive() override;
};
class RazorscaleGroundedTrigger : public Trigger
{
public:
RazorscaleGroundedTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale grounded") {}
bool IsActive() override;
};
class RazorscaleHarpoonAvailableTrigger : public Trigger
{
public:
RazorscaleHarpoonAvailableTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale harpoon trigger") {}
bool IsActive() override;
};
class RazorscaleFuseArmorTrigger : public Trigger
{
public:
RazorscaleFuseArmorTrigger(PlayerbotAI* ai) : Trigger(ai, "razorscale fuse armor trigger") {}
bool IsActive() override;
};
class HodirBitingColdTrigger : public Trigger
{
public:
HodirBitingColdTrigger(PlayerbotAI* ai) : Trigger(ai, "hodir biting cold") {}
bool IsActive() override;
};
class HodirNearSnowpackedIcicleTrigger : public Trigger
{
public:
HodirNearSnowpackedIcicleTrigger(PlayerbotAI* ai) : Trigger(ai, "hodir near snowpacked icicle") {}
bool IsActive() override;
};
class FreyaNearNatureBombTrigger : public Trigger
{
public:
FreyaNearNatureBombTrigger(PlayerbotAI* ai) : Trigger(ai, "freya near nature bomb") {}
bool IsActive() override;
};
class FreyaTankNearEonarsGiftTrigger : public Trigger
{
public:
FreyaTankNearEonarsGiftTrigger(PlayerbotAI* ai) : Trigger(ai, "freya tank near eonars gift") {}
bool IsActive() override;
};
#endif