Files
mod-playerbots/src/strategy/dungeons/wotlk/oculus/OculusActions.h
2024-12-15 23:37:56 +11:00

77 lines
2.0 KiB
C++

#ifndef _PLAYERBOT_WOTLKDUNGEONOCCACTIONS_H
#define _PLAYERBOT_WOTLKDUNGEONOCCACTIONS_H
#include "Action.h"
#include "AttackAction.h"
#include "PlayerbotAI.h"
#include "Playerbots.h"
#include "OculusTriggers.h"
#include "UseItemAction.h"
#include "GenericSpellActions.h"
const Position uromSafePositions[3] =
{
Position(1138.88f, 1052.22f, 508.36f),
Position(1084.62f, 1079.71f, 508.36f),
Position(1087.42f, 1020.132f, 508.36f)
};
class AvoidUnstableSphereAction : public MovementAction
{
public:
AvoidUnstableSphereAction(PlayerbotAI* ai) : MovementAction(ai, "avoid unstable sphere") {}
bool Execute(Event event) override;
};
class MountDrakeAction : public UseItemAction
{
public:
MountDrakeAction(PlayerbotAI* ai) : UseItemAction(ai, "mount drake") {}
bool Execute(Event event) override;
bool isPossible() override;
};
class DismountDrakeAction : public Action
{
public:
DismountDrakeAction(PlayerbotAI* ai) : Action(ai, "dismount drake") {}
bool Execute(Event event) override;
};
class OccFlyDrakeAction : public MovementAction
{
public:
OccFlyDrakeAction(PlayerbotAI* ai) : MovementAction(ai, "occ fly drake") {}
bool Execute(Event event) override;
};
class OccDrakeAttackAction : public Action
{
public:
OccDrakeAttackAction(PlayerbotAI* botAI) : Action(botAI, "occ drake attack") {}
bool Execute(Event event) override;
protected:
Unit* vehicleBase;
bool CastDrakeSpellAction(Unit* target, uint32 spellId, uint32 cooldown);
bool AmberDrakeAction(Unit* target);
bool EmeraldDrakeAction(Unit* target);
bool RubyDrakeAction(Unit* target);
};
class AvoidArcaneExplosionAction : public MovementAction
{
public:
AvoidArcaneExplosionAction(PlayerbotAI* ai) : MovementAction(ai, "avoid arcane explosion") {}
bool Execute(Event event) override;
};
class TimeBombSpreadAction : public MovementAction
{
public:
TimeBombSpreadAction(PlayerbotAI* ai) : MovementAction(ai, "time bomb spread") {}
bool Execute(Event event) override;
};
#endif