AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI Struct Reference
Inheritance diagram for go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI:
GameObjectAI

Public Member Functions

 go_wg_vehicle_teleporterAI (GameObject *gameObject)
 
bool IsFriendly (Unit *passenger)
 
CreatureIsValidVehicle (Creature *cVeh)
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from GameObjectAI
 GameObjectAI (GameObject *go)
 
virtual ~GameObjectAI ()
 
virtual void UpdateAI (uint32)
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid, int32)
 
virtual ObjectGuid GetGUID (int32) const
 
virtual bool GossipHello (Player *, bool)
 
virtual bool GossipSelect (Player *, uint32, uint32)
 
virtual bool GossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual bool QuestAccept (Player *, Quest const *)
 
virtual bool QuestReward (Player *, Quest const *, uint32)
 
virtual uint32 GetDialogStatus (Player *)
 
virtual void Destroyed (Player *, uint32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void OnGameEvent (bool, uint16)
 
virtual void OnStateChanged (uint32, Unit *)
 
virtual void EventInform (uint32)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual bool CanBeSeen (Player const *)
 
virtual void JustSummoned (Creature *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 

Private Attributes

uint32 _checkTimer
 

Additional Inherited Members

- Static Public Member Functions inherited from GameObjectAI
static int32 Permissible (GameObject const *go)
 
- Protected Attributes inherited from GameObjectAI
GameObject *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ go_wg_vehicle_teleporterAI()

go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::go_wg_vehicle_teleporterAI ( GameObject gameObject)
inline
851 : GameObjectAI(gameObject),
852 _checkTimer(0)
853 {
854 }
Definition: GameObjectAI.h:34
uint32 _checkTimer
Definition: zone_wintergrasp.cpp:888

Member Function Documentation

◆ IsFriendly()

bool go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::IsFriendly ( Unit passenger)
inline
857 {
860 }
const uint32 WintergraspFaction[3]
Definition: BattlefieldWG.h:43
@ GAMEOBJECT_FACTION
Definition: UpdateFields.h:402
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
@ TEAM_HORDE
Definition: SharedDefines.h:733
#define RACEMASK_HORDE
Definition: SharedDefines.h:106
#define RACEMASK_ALLIANCE
Definition: SharedDefines.h:102
GameObject *const me
Definition: GameObjectAI.h:36
uint32 GetUInt32Value(uint16 index) const
Definition: Object.cpp:305
uint32 getRaceMask() const
Definition: Unit.h:1425

References GAMEOBJECT_FACTION, Unit::getRaceMask(), Object::GetUInt32Value(), GameObjectAI::me, RACEMASK_ALLIANCE, RACEMASK_HORDE, TEAM_ALLIANCE, TEAM_HORDE, and WintergraspFaction.

Referenced by IsValidVehicle().

◆ IsValidVehicle()

Creature * go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::IsValidVehicle ( Creature cVeh)
inline
863 {
865 if (Vehicle* vehicle = cVeh->GetVehicleKit())
866 if (Unit* passenger = vehicle->GetPassenger(0))
867 if (IsFriendly(passenger))
868 if (Creature* teleportTrigger = passenger->SummonTrigger(me->GetPositionX() - 60.0f, me->GetPositionY(), me->GetPositionZ() + 1.0f, cVeh->GetOrientation(), 1000))
869 return teleportTrigger;
870
871 return nullptr;
872 }
@ SPELL_VEHICLE_TELEPORT
Definition: zone_wintergrasp.cpp:57
Definition: Creature.h:46
Creature * SummonTrigger(float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
Definition: Object.cpp:2367
float GetPositionZ() const
Definition: Position.h:119
float GetOrientation() const
Definition: Position.h:120
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
Definition: Unit.h:1290
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition: Unit.cpp:5610
Vehicle * GetVehicleKit() const
Definition: Unit.h:2353
Definition: Vehicle.h:30
bool IsFriendly(Unit *passenger)
Definition: zone_wintergrasp.cpp:856

References Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Unit::GetVehicleKit(), Unit::HasAura(), IsFriendly(), GameObjectAI::me, SPELL_VEHICLE_TELEPORT, and WorldObject::SummonTrigger().

Referenced by UpdateAI().

◆ UpdateAI()

void go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

875 {
876 _checkTimer += diff;
877 if (_checkTimer >= 1000)
878 {
879 for (uint8 i = 0; i < MAX_WINTERGRASP_VEHICLES; i++)
880 if (Creature* vehicleCreature = me->FindNearestCreature(vehiclesList[i], 3.0f, true))
881 if (Creature* teleportTrigger = IsValidVehicle(vehicleCreature))
882 teleportTrigger->CastSpell(vehicleCreature, SPELL_VEHICLE_TELEPORT, true);
883
884 _checkTimer = 0;
885 }
886 }
std::uint8_t uint8
Definition: Define.h:110
uint32 const vehiclesList[MAX_WINTERGRASP_VEHICLES]
Definition: zone_wintergrasp.cpp:114
uint8 const MAX_WINTERGRASP_VEHICLES
Definition: zone_wintergrasp.cpp:112
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2409
Creature * IsValidVehicle(Creature *cVeh)
Definition: zone_wintergrasp.cpp:862

References _checkTimer, WorldObject::FindNearestCreature(), IsValidVehicle(), MAX_WINTERGRASP_VEHICLES, GameObjectAI::me, SPELL_VEHICLE_TELEPORT, and vehiclesList.

Member Data Documentation

◆ _checkTimer

uint32 go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::_checkTimer
private

Referenced by UpdateAI().