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

Public Member Functions

 go_ossirian_crystalAI (GameObject *go)
 
void SetGUID (ObjectGuid guid, int32 type) override
 
bool GossipHello (Player *, bool reportUse) override
 
void DoAction (int32 action) 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

InstanceScript_instance
 
ObjectGuid _triggerGUID
 

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

go_ossirian_crystal::go_ossirian_crystalAI::go_ossirian_crystalAI ( GameObject go)
inline
Definition: GameObjectAI.h:34
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
InstanceScript * _instance
Definition: boss_ossirian.cpp:365

Member Function Documentation

◆ DoAction()

void go_ossirian_crystal::go_ossirian_crystalAI::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from GameObjectAI.

354 {
355 if (action == ACTION_DESPAWN_TRIGGER)
356 {
358 {
359 trigger->DespawnOrUnsummon();
360 }
361 }
362 }
@ ACTION_DESPAWN_TRIGGER
Definition: boss_ossirian.cpp:62
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:213
GameObject *const me
Definition: GameObjectAI.h:36
Definition: Creature.h:46
ObjectGuid _triggerGUID
Definition: boss_ossirian.cpp:366

References _triggerGUID, ACTION_DESPAWN_TRIGGER, ObjectAccessor::GetCreature(), and GameObjectAI::me.

◆ GossipHello()

bool go_ossirian_crystal::go_ossirian_crystalAI::GossipHello ( Player ,
bool  reportUse 
)
inlineoverridevirtual

Reimplemented from GameObjectAI.

330 {
331 if (reportUse)
332 {
333 if (!_instance)
334 return true;
335
337 if (!ossirian)
338 return true;
339
341 {
342 if (!trigger->HasUnitState(UNIT_STATE_CASTING))
343 {
344 ossirian->AI()->SetGUID(me->GetGUID(), ACTION_TRIGGER_WEAKNESS);
345 trigger->CastSpell(trigger, spellWeakness[urand(0, 4)], false);
346 }
347 }
348 }
349
350 return false;
351 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ UNIT_STATE_CASTING
Definition: Unit.h:340
@ ACTION_TRIGGER_WEAKNESS
Definition: boss_ossirian.cpp:61
uint32 const spellWeakness[NUM_WEAKNESS]
Definition: boss_ossirian.cpp:102
@ DATA_OSSIRIAN
Definition: ruins_of_ahnqiraj.h:33
virtual void SetGUID(ObjectGuid, int32=0)
Definition: UnitAI.h:204
CreatureAI * AI() const
Definition: Creature.h:136
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
Creature * GetCreature(uint32 type)
Definition: InstanceScript.cpp:99

References _instance, _triggerGUID, ACTION_TRIGGER_WEAKNESS, Creature::AI(), DATA_OSSIRIAN, InstanceScript::GetCreature(), ObjectAccessor::GetCreature(), Object::GetGUID(), GameObjectAI::me, UnitAI::SetGUID(), spellWeakness, UNIT_STATE_CASTING, and urand().

◆ SetGUID()

void go_ossirian_crystal::go_ossirian_crystalAI::SetGUID ( ObjectGuid  guid,
int32  type 
)
inlineoverridevirtual

Reimplemented from GameObjectAI.

322 {
323 if (type == GUID_TRIGGER_PAIR)
324 {
325 _triggerGUID = guid;
326 }
327 }
@ GUID_TRIGGER_PAIR
Definition: boss_ossirian.cpp:75

References _triggerGUID, and GUID_TRIGGER_PAIR.

Member Data Documentation

◆ _instance

InstanceScript* go_ossirian_crystal::go_ossirian_crystalAI::_instance
private

Referenced by GossipHello().

◆ _triggerGUID

ObjectGuid go_ossirian_crystal::go_ossirian_crystalAI::_triggerGUID
private

Referenced by DoAction(), GossipHello(), and SetGUID().