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 InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid const &, 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 *)
 
virtual void SummonedCreatureEvade (Creature *)
 

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
856 : GameObjectAI(gameObject),
857 _checkTimer(0)
858 {
859 }
Definition GameObjectAI.h:33
uint32 _checkTimer
Definition zone_wintergrasp.cpp:893

Member Function Documentation

◆ IsFriendly()

bool go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::IsFriendly ( Unit passenger)
inline
862 {
863 return ((me->GetUInt32Value(GAMEOBJECT_FACTION) == WintergraspFaction[TEAM_HORDE] && passenger->getRaceMask() & sRaceMgr->GetHordeRaceMask()) ||
864 (me->GetUInt32Value(GAMEOBJECT_FACTION) == WintergraspFaction[TEAM_ALLIANCE] && passenger->getRaceMask() & sRaceMgr->GetAllianceRaceMask()));
865 }
uint32 const WintergraspFaction[3]
Definition BattlefieldWG.h:44
#define sRaceMgr
Definition RaceMgr.h:52
@ TEAM_ALLIANCE
Definition SharedDefines.h:748
@ TEAM_HORDE
Definition SharedDefines.h:749
@ GAMEOBJECT_FACTION
Definition UpdateFields.h:402
GameObject *const me
Definition GameObjectAI.h:35
uint32 GetUInt32Value(uint16 index) const
Definition Object.cpp:294
uint32 getRaceMask() const
Definition Unit.h:838

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

Referenced by IsValidVehicle().

◆ IsValidVehicle()

Creature * go_wg_vehicle_teleporter::go_wg_vehicle_teleporterAI::IsValidVehicle ( Creature cVeh)
inline
868 {
870 if (Vehicle* vehicle = cVeh->GetVehicleKit())
871 if (Unit* passenger = vehicle->GetPassenger(0))
872 if (IsFriendly(passenger))
873 if (Creature* teleportTrigger = passenger->SummonTrigger(me->GetPositionX() - 60.0f, me->GetPositionY(), me->GetPositionZ() + 1.0f, cVeh->GetOrientation(), 1000))
874 return teleportTrigger;
875
876 return nullptr;
877 }
Definition Creature.h:47
Definition Unit.h:664
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition Unit.cpp:5982
Vehicle * GetVehicleKit() const
Definition Unit.h:1925
Definition Vehicle.h:28
Creature * SummonTrigger(float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
Definition Object.cpp:2443
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
bool IsFriendly(Unit *passenger)
Definition zone_wintergrasp.cpp:861
@ SPELL_VEHICLE_TELEPORT
Definition zone_wintergrasp.cpp:62

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.

880 {
881 _checkTimer += diff;
882 if (_checkTimer >= 1000)
883 {
884 for (uint8 i = 0; i < MAX_WINTERGRASP_VEHICLES; i++)
885 if (Creature* vehicleCreature = me->FindNearestCreature(vehiclesList[i], 3.0f, true))
886 if (Creature* teleportTrigger = IsValidVehicle(vehicleCreature))
887 teleportTrigger->CastSpell(vehicleCreature, SPELL_VEHICLE_TELEPORT, true);
888
889 _checkTimer = 0;
890 }
891 }
std::uint8_t uint8
Definition Define.h:109
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition Object.cpp:2499
Creature * IsValidVehicle(Creature *cVeh)
Definition zone_wintergrasp.cpp:867
uint32 const vehiclesList[MAX_WINTERGRASP_VEHICLES]
Definition zone_wintergrasp.cpp:119
uint8 const MAX_WINTERGRASP_VEHICLES
Definition zone_wintergrasp.cpp:117

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().


The documentation for this struct was generated from the following file: