|
| boss_ragnarosAI (Creature *creature) |
|
void | Reset () override |
|
void | DamageTaken (Unit *, uint32 &damage, DamageEffectType, SpellSchoolMask) override |
|
void | DoAction (int32 action) override |
|
void | JustSummoned (Creature *summon) override |
|
void | SetGUID (ObjectGuid guid, int32 index) override |
|
void | SummonedCreatureDies (Creature *summon, Unit *) override |
|
void | EnterCombat (Unit *) override |
|
void | JustDied (Unit *) override |
|
void | KilledUnit (Unit *victim) override |
|
void | AttackStart (Unit *target) override |
|
void | EnterEvadeMode (EvadeReason why) override |
|
bool | CanAIAttack (Unit const *victim) const override |
|
void | UpdateAI (uint32 diff) override |
|
| BossAI (Creature *creature, uint32 bossId) |
|
| ~BossAI () override |
|
void | JustSummoned (Creature *summon) override |
|
void | SummonedCreatureDespawn (Creature *summon) override |
|
void | SummonedCreatureDespawnAll () override |
|
void | UpdateAI (uint32 diff) override |
|
virtual void | ExecuteEvent (uint32) |
|
void | Reset () override |
|
void | EnterCombat (Unit *) override |
|
void | JustDied (Unit *) override |
|
void | JustReachedHome () override |
|
| ScriptedAI (Creature *creature) |
|
| ~ScriptedAI () override |
|
void | AttackStartNoMove (Unit *target) |
|
void | DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) override |
|
void | UpdateAI (uint32 diff) override |
|
void | JustDied (Unit *) override |
|
void | KilledUnit (Unit *) override |
|
void | JustSummoned (Creature *) override |
|
void | SummonedCreatureDespawn (Creature *) override |
|
void | SpellHit (Unit *, SpellInfo const *) override |
|
void | SpellHitTarget (Unit *, SpellInfo const *) override |
|
void | MovementInform (uint32, uint32) override |
|
void | OnPossess (bool) |
|
bool | IsInRoom (const Position *pos, Axis axis, bool above) |
|
void | Reset () override |
|
void | EnterCombat (Unit *) override |
|
void | AttackStart (Unit *) override |
|
void | DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f) |
|
void | DoStartNoMovement (Unit *target) |
|
void | DoStopAttack () |
|
void | DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false) |
|
void | DoPlaySoundToSet (WorldObject *source, uint32 soundId) |
|
void | DoPlayMusic (uint32 soundId, bool zone) |
|
void | DoAddThreat (Unit *unit, float amount) |
|
void | DoModifyThreatByPercent (Unit *unit, int32 pct) |
|
void | DoResetThreat (Unit *unit) |
|
void | DoResetThreatList () |
|
float | DoGetThreat (Unit *unit) |
|
void | DoTeleportPlayer (Unit *unit, float x, float y, float z, float o) |
|
void | DoTeleportAll (float x, float y, float z, float o) |
|
Unit * | DoSelectLowestHpFriendly (float range, uint32 minHPDiff=1) |
|
std::list< Creature * > | DoFindFriendlyCC (float range) |
|
std::list< Creature * > | DoFindFriendlyMissingBuff (float range, uint32 spellId) |
|
Player * | GetPlayerAtMinimumRange (float minRange) |
|
Creature * | DoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime) |
|
bool | HealthBelowPct (uint32 pct) const |
|
bool | HealthAbovePct (uint32 pct) const |
|
SpellInfo const * | SelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, uint32 powerCostMin, uint32 powerCostMax, float rangeMin, float rangeMax, SelectEffect effect) |
|
void | SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE) |
|
void | SetCombatMovement (bool allowMovement) |
|
bool | IsCombatMovementAllowed () const |
|
virtual bool | CheckEvadeIfOutOfCombatArea () const |
|
bool | IsHeroic () const |
|
Difficulty | GetDifficulty () const |
|
bool | Is25ManRaid () const |
|
template<class T > |
const T & | DUNGEON_MODE (const T &normal5, const T &heroic10) const |
|
template<class T > |
const T & | RAID_MODE (const T &normal10, const T &normal25) const |
|
template<class T > |
const T & | RAID_MODE (const T &normal10, const T &normal25, const T &heroic10, const T &heroic25) const |
|
Player * | SelectTargetFromPlayerList (float maxdist, uint32 excludeAura=0, bool mustBeInLOS=false) const |
|
void | Talk (uint8 id, WorldObject const *whisperTarget=nullptr) |
|
| CreatureAI (Creature *creature) |
|
| ~CreatureAI () override |
|
void | MoveCircleChecks () |
|
void | MoveBackwardsChecks () |
|
void | MoveInLineOfSight_Safe (Unit *who) |
| == Reactions At ================================= More...
|
|
void | TriggerAlert (Unit const *who) const |
|
virtual bool | CanRespawn () |
|
virtual void | EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER) |
|
virtual void | EnterCombat (Unit *) |
|
virtual void | JustDied (Unit *) |
|
virtual void | KilledUnit (Unit *) |
|
virtual void | JustSummoned (Creature *) |
|
virtual void | IsSummonedBy (Unit *) |
|
virtual void | SummonedCreatureDespawn (Creature *) |
|
virtual void | SummonedCreatureDies (Creature *, Unit *) |
|
virtual void | SummonedCreatureDespawnAll () |
|
virtual void | SpellHit (Unit *, SpellInfo const *) |
|
virtual void | SpellHitTarget (Unit *, SpellInfo const *) |
|
virtual void | AttackedBy (Unit *) |
|
virtual bool | IsEscorted () |
|
virtual void | JustRespawned () |
|
virtual void | MovementInform (uint32, uint32) |
|
virtual void | PathEndReached (uint32) |
|
void | OnCharmed (bool apply) override |
|
virtual void | JustReachedHome () |
|
void | DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f) |
|
virtual void | ReceiveEmote (Player *, uint32) |
|
virtual void | OwnerAttackedBy (Unit *) |
|
virtual void | OwnerAttacked (Unit *) |
|
virtual void | CorpseRemoved (uint32 &) |
| == Triggered Actions Requested ================== More...
|
|
virtual void | PassengerBoarded (Unit *, int8, bool) |
| == Fields ======================================= More...
|
|
virtual bool | BeforeSpellClick (Unit *) |
|
virtual void | OnSpellClick (Unit *, bool &) |
|
virtual bool | CanSeeAlways (WorldObject const *) |
|
virtual bool | CanBeSeen (Player const *) |
|
virtual bool | CanAlwaysBeDetectable (WorldObject const *) |
|
virtual void | PetStopAttack () |
|
virtual bool | CheckInRoom () |
|
CreatureBoundary const * | GetBoundary () const |
|
void | SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false) |
|
bool | IsInBoundary (Position const *who=nullptr) const |
|
virtual void | CalculateThreat (Unit *, float &, SpellInfo const *) |
|
virtual bool | OnTeleportUnreacheablePlayer (Player *) |
|
| UnitAI (Unit *unit) |
|
virtual | ~UnitAI () |
|
virtual bool | CanAIAttack (Unit const *) const |
|
virtual void | AttackStart (Unit *) |
|
virtual void | UpdateAI (uint32)=0 |
|
virtual void | InitializeAI () |
|
virtual void | Reset () |
|
virtual void | OnCharmed (bool apply)=0 |
|
virtual void | DoAction (int32) |
|
virtual uint32 | GetData (uint32) const |
|
virtual void | SetData (uint32, uint32) |
|
virtual void | SetGUID (ObjectGuid, int32=0) |
|
virtual ObjectGuid | GetGUID (int32=0) const |
|
Unit * | SelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0) |
|
template<class PREDICATE > |
Unit * | SelectTarget (SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate) |
|
void | SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0) |
|
template<class PREDICATE > |
void | SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate) |
|
virtual void | DamageDealt (Unit *, uint32 &, DamageEffectType) |
|
virtual void | DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) |
|
virtual void | HealReceived (Unit *, uint32 &) |
|
virtual void | HealDone (Unit *, uint32 &) |
|
void | AttackStartCaster (Unit *victim, float dist) |
|
SpellCastResult | DoAddAuraToAllHostilePlayers (uint32 spellid) |
|
SpellCastResult | DoCast (uint32 spellId) |
|
SpellCastResult | DoCast (Unit *victim, uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastSelf (uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false) |
|
SpellCastResult | DoCastVictim (uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastAOE (uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false) |
|
float | DoGetSpellMaxRange (uint32 spellId, bool positive=false) |
|
void | DoMeleeAttackIfReady () |
|
bool | DoSpellAttackIfReady (uint32 spell) |
|
void | DoSpellAttackToRandomTargetIfReady (uint32 spell, uint32 threatTablePosition=0, float dist=0.f, bool playerOnly=true) |
|
virtual void | SummonMovementInform (Creature *, uint32, uint32) |
|
virtual void | sGossipHello (Player *) |
|
virtual void | sGossipSelect (Player *, uint32, uint32) |
|
virtual void | sGossipSelectCode (Player *, uint32, uint32, char const *) |
|
virtual void | sQuestAccept (Player *, Quest const *) |
|
virtual void | sQuestSelect (Player *, Quest const *) |
|
virtual void | sQuestComplete (Player *, Quest const *) |
|
virtual void | sQuestReward (Player *, Quest const *, uint32) |
|
virtual void | sOnGameEvent (bool, uint16) |
|
virtual std::string | GetDebugInfo () const |
|
void boss_ragnaros::boss_ragnarosAI::UpdateAI |
( |
uint32 |
diff | ) |
|
|
inlineoverridevirtual |
Reimplemented from BossAI.
260 {
262 {
264
266 {
267 switch (eventId)
268 {
269
271 {
274 break;
275 }
277 {
285 break;
286 }
287
289 {
291 break;
292 }
294 {
296 break;
297 }
299 {
301 {
303
305 {
307 go->SendCustomAnim(0);
308 }
309
312 }
313 else
314 {
316 }
317
318 break;
319 }
320 }
321 }
322 }
323
325 {
327 {
328 return;
329 }
330 }
331
333
335 {
336 return;
337 }
338
339
341 {
342 switch (eventId)
343 {
345 {
347
349 {
351 }
352 events.RepeatEvent(25000);
353 break;
354 }
356 {
359 {
363 }
364 events.RepeatEvent(20000);
365 break;
366 }
368 {
370 break;
371 }
373 {
375
377 {
379
381 {
384 }
385 }
386
387 break;
388 }
390 {
392 {
394 }))
395 {
397 {
401 }
402 }
404 break;
405 }
407 {
418
419
421
423
425 {
427 }
428
430 break;
431 }
432 }
433
435 {
436 return;
437 }
438 }
439
441 }
std::uint32_t uint32
Definition: Define.h:108
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ REACT_PASSIVE
Definition: Unit.h:1023
@ UNIT_STATE_CASTING
Definition: Unit.h:340
@ SPELL_WRATH_OF_RAGNAROS
Definition: boss_ragnaros.cpp:41
@ SPELL_RAGNAROS_SUBMERGE_EFFECT
Definition: boss_ragnaros.cpp:48
@ SPELL_MAGMA_BLAST
Definition: boss_ragnaros.cpp:43
@ SPELL_HAND_OF_RAGNAROS
Definition: boss_ragnaros.cpp:40
@ SPELL_SUMMON_SONS_FLAME
Definition: boss_ragnaros.cpp:52
@ SPELL_LAVA_BURST
Definition: boss_ragnaros.cpp:42
@ SPELL_LAVA_BURST_TRAP
Definition: boss_ragnaros.cpp:62
@ SPELL_MIGHT_OF_RAGNAROS
Definition: boss_ragnaros.cpp:50
@ SAY_ARRIVAL5_RAG
Definition: boss_ragnaros.cpp:29
@ SAY_MAGMABURST
Definition: boss_ragnaros.cpp:35
@ SAY_REINFORCEMENTS1
Definition: boss_ragnaros.cpp:30
@ SAY_KNOCKBACK
Definition: boss_ragnaros.cpp:32
@ SAY_REINFORCEMENTS2
Definition: boss_ragnaros.cpp:31
@ SAY_WRATH
Definition: boss_ragnaros.cpp:33
@ EVENT_EMERGE
Definition: boss_ragnaros.cpp:86
@ EVENT_INTRO_MAKE_ATTACKABLE
Definition: boss_ragnaros.cpp:90
@ EVENT_RESET_KNOCKBACK_EMOTE
Definition: boss_ragnaros.cpp:93
@ EMOTE_STATE_SUBMERGED
Definition: SharedDefines.h:1940
@ POWER_MANA
Definition: SharedDefines.h:241
@ SPELL_CAST_OK
Definition: SharedDefines.h:1110
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:135
GameObject * GetGameObject(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:189
uint32 ExecuteEvent()
Definition: EventMap.cpp:114
void Update(uint32 time)
Definition: EventMap.h:54
bool Empty() const
Definition: EventMap.h:96
void RepeatEvent(uint32 time)
Definition: EventMap.cpp:99
void RescheduleEvent(uint32 eventId, uint32 time, uint32 groupId=0, uint32 phase=0)
Definition: EventMap.cpp:81
SpellCastResult DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:249
void DoMeleeAttackIfReady()
Definition: UnitAI.cpp:40
SpellCastResult DoCastVictim(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:241
SpellCastResult DoCastSelf(uint32 spellId, bool triggered=false)
Definition: UnitAI.h:354
SpellCastResult DoCastRandomTarget(uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
Definition: UnitAI.cpp:257
bool UpdateVictim()
Definition: CreatureAI.cpp:268
void DoResetThreatList()
Definition: ScriptedCreature.cpp:411
Definition: GameObject.h:813
Definition: ObjectGuid.h:120
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true, bool bySelf=false)
Definition: Unit.cpp:4057
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1398
Powers getPowerType() const
Definition: Unit.h:1458
void SetUnitFlag(UnitFlags flags)
Definition: Unit.h:1480
bool AttackStop()
Definition: Unit.cpp:10356
bool IsVictimWithinMeleeRange() const
Definition: boss_ragnaros.cpp:488
References _hasSubmergedOnce, _hasYelledMagmaBurst, _isIntroDone, _isKnockbackEmoteAllowed, _lavaBurstGUIDS, _processingMagmaBurst, Unit::AttackStop(), Unit::CastSpell(), UnitAI::DoCastAOE(), UnitAI::DoCastRandomTarget(), UnitAI::DoCastSelf(), UnitAI::DoCastVictim(), UnitAI::DoMeleeAttackIfReady(), ScriptedAI::DoResetThreatList(), CreatureAI::DoZoneInCombat(), EMOTE_STATE_SUBMERGED, EventMap::Empty(), EVENT_EMERGE, EVENT_HAND_OF_RAGNAROS, EVENT_INTRO_MAKE_ATTACKABLE, EVENT_INTRO_SAY, EVENT_LAVA_BURST, EVENT_LAVA_BURST_TRIGGER, EVENT_MAGMA_BLAST, EVENT_MIGHT_OF_RAGNAROS, EVENT_RESET_KNOCKBACK_EMOTE, EVENT_SUBMERGE, EVENT_WRATH_OF_RAGNAROS, EventMap::ExecuteEvent(), extraEvents, ObjectAccessor::GetGameObject(), Unit::getPowerType(), HandleEmerge(), Unit::HasUnitState(), Unit::InterruptNonMeleeSpells(), Object::IsPlayer(), IsVictimWithinMeleeRange(), ScriptedAI::me, PHASE_EMERGED, PHASE_INTRO, PHASE_SUBMERGED, POWER_MANA, REACT_AGGRESSIVE, REACT_PASSIVE, Unit::RemoveAurasDueToSpell(), Unit::RemoveUnitFlag(), EventMap::RepeatEvent(), EventMap::RescheduleEvent(), SAY_ARRIVAL5_RAG, SAY_KNOCKBACK, SAY_MAGMABURST, SAY_REINFORCEMENTS1, SAY_REINFORCEMENTS2, SAY_WRATH, EventMap::ScheduleEvent(), Acore::Containers::SelectRandomContainerElement(), UnitAI::SelectTarget(), Unit::SetImmuneToAll(), EventMap::SetPhase(), Creature::SetReactState(), Object::SetUInt32Value(), Unit::SetUnitFlag(), SPELL_CAST_OK, SPELL_HAND_OF_RAGNAROS, SPELL_LAVA_BURST, SPELL_LAVA_BURST_TRAP, SPELL_MAGMA_BLAST, SPELL_MIGHT_OF_RAGNAROS, SPELL_RAGNA_SUBMERGE_VISUAL, SPELL_RAGNAROS_SUBMERGE_EFFECT, SPELL_SUMMON_SONS_FLAME, SPELL_WRATH_OF_RAGNAROS, UNIT_FLAG_NON_ATTACKABLE, UNIT_FLAG_NOT_SELECTABLE, UNIT_NPC_EMOTESTATE, UNIT_STATE_CASTING, EventMap::Update(), CreatureAI::UpdateVictim(), and urand().