Files
mod-playerbots/src/strategy/dungeons/wotlk/utgardekeep/UtgardeKeepTriggers.h
Bobblybook dd73fe8a90 Dungeon botAI bugfixes
- Utgarde Keep (Keleseth): Bots continue combat correctly after killing a frost tomb
- Utgarde Keep (Dalronn & Skarvald): Bots continue combat correctly after killing Dalronn
- Utgarde Keep (Ingvar): Tank correctly avoids Dark Smash in second phase
- Oculus (Drake combat): Bots more consistently attack the drakes in the air when flying around
- Halls of Lightning (Bjarngrim): Bots no longer acquire priority targets until in combat
2024-11-05 19:11:24 +11:00

83 lines
2.4 KiB
C++

#ifndef _PLAYERBOT_WOTLKDUNGEONUKTRIGGERS_H
#define _PLAYERBOT_WOTLKDUNGEONUKTRIGGERS_H
#include "Trigger.h"
#include "PlayerbotAIConfig.h"
#include "GenericTriggers.h"
#include "DungeonStrategyUtils.h"
enum UtgardeKeepIDs
{
// Prince Keleseth
SPELL_FROST_TOMB = 48400,
NPC_FROST_TOMB = 23965,
// Ingvar the Plunderer
SPELL_STAGGERING_ROAR_N = 42708,
SPELL_STAGGERING_ROAR_H = 59708,
SPELL_SMASH_N = 42669,
SPELL_SMASH_H = 59706,
SPELL_DREADFUL_ROAR_N = 42729,
SPELL_DREADFUL_ROAR_H = 59734,
SPELL_WOE_STRIKE_N = 42730,
SPELL_WOE_STRIKE_H = 59735,
SPELL_DARK_SMASH_N = 42723,
SPELL_DARK_SMASH_H = 59709,
};
#define SPELL_STAGGERING_ROAR DUNGEON_MODE(bot, SPELL_STAGGERING_ROAR_N, SPELL_STAGGERING_ROAR_H)
#define SPELL_DREADFUL_ROAR DUNGEON_MODE(bot, SPELL_DREADFUL_ROAR_N, SPELL_DREADFUL_ROAR_H)
#define SPELL_SMASH DUNGEON_MODE(bot, SPELL_SMASH_N, SPELL_SMASH_H)
#define SPELL_DARK_SMASH DUNGEON_MODE(bot, SPELL_DARK_SMASH_N, SPELL_DARK_SMASH_H)
class KelesethFrostTombTrigger : public Trigger
{
public:
KelesethFrostTombTrigger(PlayerbotAI* ai) : Trigger(ai, "keleseth frost tomb") {}
bool IsActive() override;
};
class DalronnDpsTrigger : public Trigger
{
public:
DalronnDpsTrigger(PlayerbotAI* ai) : Trigger(ai, "dalronn dps") {}
bool IsActive() override;
};
class IngvarStaggeringRoarTrigger : public Trigger
{
public:
IngvarStaggeringRoarTrigger(PlayerbotAI* ai) : Trigger(ai, "ingvar staggering roar") {}
bool IsActive() override;
};
class IngvarDreadfulRoarTrigger : public Trigger
{
public:
IngvarDreadfulRoarTrigger(PlayerbotAI* ai) : Trigger(ai, "ingvar dreadful roar") {}
bool IsActive() override;
};
class IngvarSmashTankTrigger : public Trigger
{
public:
IngvarSmashTankTrigger(PlayerbotAI* ai) : Trigger(ai, "ingvar smash tank") {}
bool IsActive() override;
};
class IngvarSmashTankReturnTrigger : public Trigger
{
public:
IngvarSmashTankReturnTrigger(PlayerbotAI* ai) : Trigger(ai, "ingvar smash tank return") {}
bool IsActive() override;
};
class NotBehindIngvarTrigger : public Trigger
{
public:
NotBehindIngvarTrigger(PlayerbotAI* ai) : Trigger(ai, "not behind ingvar") {}
bool IsActive() override;
};
#endif