AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_varian_wrynn::npc_varian_wrynnAI Struct Reference
Inheritance diagram for npc_varian_wrynn::npc_varian_wrynnAI:
npc_escortAI ScriptedAI CreatureAI UnitAI

Public Member Functions

 npc_varian_wrynnAI (Creature *creature)
 
void EnterEvadeMode (EvadeReason) override
 
void Reset () override
 
void JustSummoned (Creature *summonedCreature) override
 
void SummonedCreatureDies (Creature *summon, Unit *) override
 
void UpdateWorldState (Map *map, uint32 id, uint32 state)
 
void SetHoldState (bool bOnHold)
 
void JumpToNextStep (uint32 uiTimer)
 
void SpawnWave (uint32 waveId)
 
void WaypointReached (uint32 waypointId) override
 
void UpdateAI (uint32 diff) override
 Use to start attacking a target. Called just before JustEngagedWith()
 
virtual void WaypointReached (uint32, uint32)
 
- Public Member Functions inherited from npc_escortAI
 npc_escortAI (Creature *creature)
 
 ~npc_escortAI () override
 
void AttackStart (Unit *who) override
 
void MoveInLineOfSight (Unit *who) override
 
void JustDied (Unit *) override
 
void JustRespawned () override
 
bool IsEscortNPC (bool=true) const override
 
void ReturnToLastPoint ()
 
void JustExitedCombat () override
 Called when the unit leaves combat.
 
virtual void UpdateEscortAI (uint32 diff)
 
void MovementInform (uint32, uint32) override
 
void AddWaypoint (uint32 id, float x, float y, float z, uint32 waitTime=0)
 
bool SetNextWaypoint (uint32 pointId, float x, float y, float z, float orientation)
 
bool SetNextWaypoint (uint32 pointId, bool setPosition=true)
 
bool GetWaypointPosition (uint32 pointId, float &x, float &y, float &z)
 
void GenerateWaypointArray (Movement::PointsArray *points)
 
virtual void WaypointStart (uint32)
 
void Start (bool isActiveAttacker=true, ObjectGuid playerGUID=ObjectGuid::Empty, Quest const *quest=nullptr, bool instantRespawn=false, bool canLoopPath=false, bool resetWaypoints=true)
 
void SetEscortPaused (bool on)
 
bool HasEscortState (uint32 escortState)
 
bool IsEscorted () override
 
void SetMaxPlayerDistance (float newMax)
 
float GetMaxPlayerDistance ()
 
void SetDespawnAtEnd (bool despawn)
 
void SetDespawnAtFar (bool despawn)
 
bool GetAttack ()
 
void SetCanAttack (bool attack)
 
ObjectGuid GetEventStarterGUID ()
 
void AddEscortState (uint32 escortState)
 
void RemoveEscortState (uint32 escortState)
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
 ~ScriptedAI () override
 
void AttackStartNoMove (Unit *target)
 
void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) override
 Called at any Damage from any attacker (before damage apply)
 
void UpdateAI (uint32 diff) override
 Use to start attacking a target. Called just before JustEngagedWith()
 
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 JustEngagedWith (Unit *) override
 Called for reaction when initially engaged - this happens after JustEnteredCombat.
 
void AttackStart (Unit *) override
 
void DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f)
 
void DoStartNoMovement (Unit *target)
 
void DoStopAttack ()
 
void DoRewardPlayersInArea ()
 
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 DoTeleportPlayer (Unit *unit, Position pos)
 
void DoTeleportAll (float x, float y, float z, float o)
 
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
 
std::list< Creature * > DoFindFriendlyCC (float range)
 
std::list< Creature * > DoFindFriendlyMissingBuff (float range, uint32 spellId)
 
PlayerGetPlayerAtMinimumRange (float minRange)
 
CreatureDoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime)
 
bool IsUniqueTimedEventDone (uint32 id) const
 
void SetUniqueTimedEventDone (uint32 id)
 
void ResetUniqueTimedEvent (uint32 id)
 
void ClearUniqueTimedEventsDone ()
 
void ScheduleTimedEvent (Milliseconds timerMin, Milliseconds timerMax, std::function< void()> exec, Milliseconds repeatMin, Milliseconds repeatMax=0ms, uint32 uniqueId=0)
 
void ScheduleTimedEvent (Milliseconds timerMax, std::function< void()> exec, Milliseconds repeatMin, Milliseconds repeatMax=0ms, uint32 uniqueId=0)
 
void ScheduleUniqueTimedEvent (Milliseconds timer, std::function< void()> exec, uint32 uniqueId)
 
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)
 
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
 
PlayerSelectTargetFromPlayerList (float maxdist, uint32 excludeAura=0, bool mustBeInLOS=false) const
 
void SetInvincibility (bool apply)
 
bool IsInvincible () const
 
void SetAutoAttackAllowed (bool allow)
 
bool IsAutoAttackAllowed () const
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0ms)
 Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
 
void Talk (uint8 id, Milliseconds delay)
 
WorldObjectGetSummoner () const
 Returns the summoner creature/object, if the creature is a temporary summon.
 
 CreatureAI (Creature *creature)
 
 ~CreatureAI () override
 
bool IsEngaged () const
 Check if creature is currently engaged in combat.
 
void MoveCircleChecks ()
 
void MoveBackwardsChecks ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At =================================
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
void JustEnteredCombat (Unit *who) override
 Called when the unit enters combat.
 
virtual void JustStartedThreateningMe (Unit *who)
 
void EngagementStart (Unit *who)
 
void EngagementOver ()
 
virtual void IsSummonedBy (WorldObject *)
 
virtual void SummonedCreatureDespawnAll ()
 
virtual void SummonedCreatureEvade (Creature *)
 
virtual void OnSpellStart (SpellInfo const *)
 
virtual void OnSpellCast (SpellInfo const *)
 
virtual void OnSpellFailed (SpellInfo const *)
 
virtual void OnChannelFinished (SpellInfo const *)
 
virtual void AttackedBy (Unit *)
 
virtual void PathEndReached (uint32)
 
virtual void WaypointPathStarted (uint32)
 == Waypoints system =============================
 
virtual void WaypointStarted (uint32, uint32)
 
virtual void WaypointPathEnded (uint32, uint32)
 
void OnCharmed (bool apply) override
 Called when unit is charmed.
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *attacker)
 
virtual void OwnerAttacked (Unit *target)
 
void OnOwnerCombatInteraction (Unit *target)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ==================
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields =======================================
 
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 ()
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false, bool checkZ=false) const
 
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 *)
 
virtual void OnAuraRemove (AuraApplication *, AuraRemoveMode)
 
virtual void DistancingStarted ()
 
virtual void DistancingEnded ()
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void InitializeAI ()
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid const &, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (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)
 Select the best (up to) <num> targets (in <targetType> order) from the threat list that fulfill the following:
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
virtual void EvadeTimerExpired ()
 Called when evade timer expires (target unreachable for too long)
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 Called at any Damage to any victim (before damage apply)
 
virtual void HealReceived (Unit *, uint32 &)
 Called when the creature receives heal.
 
virtual void OnPowerUpdate (Powers, int32, int32, uint32)
 Called when the creature power updates.
 
virtual void HealDone (Unit *, uint32 &)
 Called when the unit heals.
 
virtual void OnCalculateMeleeDamageReceived (uint32 &, Unit *)
 Called during damage calculations.
 
virtual void OnCalculateSpellDamageReceived (int32 &, Unit *)
 
virtual void OnCalculatePeriodicTickReceived (uint32 &, Unit *)
 Called during calculation when receiving periodic healing or damage (DoT or HoT)
 
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)
 To specify the caster as target if the spell is self-cast.
 
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, bool withTank=true)
 Cast the spell on a random unit from the threat list.
 
SpellCastResult DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 Cast spell on the top threat target, which may not be the current victim.
 
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)
 Called when a summon reaches a waypoint or point movement finished.
 
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
 

Public Attributes

bool bStepping
 
bool summoned
 
uint32 step
 
uint32 phaseTimer
 
uint32 whirlwindTimer
 
ObjectGuid jainaGUID
 
ObjectGuid putressGUID
 
ObjectGuid blightWormGUID
 
ObjectGuid khanokGUID
 
ObjectGuid thrallGUID
 
ObjectGuid sylvanasGUID
 
ObjectGuid generatorGUID [GENERATOR_MAXCOUNT]
 
ObjectGuid allianceForcesGUID [ALLIANCE_FORCE_MAXCOUNT]
 
ObjectGuid hordeForcesGUID [HORDE_FORCE_MAXCOUNT]
 
GuidVector allianceGuardsGUID
 
EventMap _events
 
- Public Attributes inherited from ScriptedAI
Creatureme
 

Additional Inherited Members

- Public Types inherited from ScriptedAI
enum class  Axis {
  AXIS_X ,
  AXIS_Y
}
 
- Public Types inherited from CreatureAI
enum  EvadeReason {
  EVADE_REASON_NO_HOSTILES ,
  EVADE_REASON_BOUNDARY ,
  EVADE_REASON_SEQUENCE_BREAK ,
  EVADE_REASON_NO_PATH ,
  EVADE_REASON_OTHER
}
 
- Static Public Member Functions inherited from CreatureAI
static bool IsInBounds (CreatureBoundary const &boundary, Position const *who)
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 
- Protected Member Functions inherited from npc_escortAI
PlayerGetPlayerForEscort ()
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
EventMap events
 
TaskScheduler scheduler
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
bool _isEngaged
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_varian_wrynnAI()

npc_varian_wrynn::npc_varian_wrynnAI::npc_varian_wrynnAI ( Creature creature)
inline
897 : npc_escortAI(creature)
898 {
899 allianceGuardsGUID.clear();
900 }
Definition ScriptedEscortAI.h:53
GuidVector allianceGuardsGUID
Definition zone_undercity.cpp:920

References allianceGuardsGUID.

Member Function Documentation

◆ EnterEvadeMode()

void npc_varian_wrynn::npc_varian_wrynnAI::EnterEvadeMode ( EvadeReason  )
inlineoverridevirtual

Reimplemented from npc_escortAI.

925 {
927 me->CombatStop(true);
928 me->SetLootRecipient(nullptr);
929
931 {
934 }
935 else
936 {
938 Reset();
939 }
940 }
@ STATE_ESCORT_ESCORTING
Definition ScriptedEscortAI.h:47
@ STATE_ESCORT_RETURNING
Definition ScriptedEscortAI.h:48
void SetLootRecipient(Unit *unit, bool withGroup=true)
Definition Creature.cpp:1307
void MoveTargetedHome(bool walk=false)
The unit will return this initial position (owner for pets and summoned creatures)....
Definition MotionMaster.cpp:261
void ClearAllThreat()
Definition ThreatManager.cpp:575
MotionMaster * GetMotionMaster()
Definition Unit.h:1759
ThreatManager & GetThreatMgr()
Definition Unit.h:951
void CombatStop(bool includingCast=false, bool mutualPvP=true)
Definition Unit.cpp:7486
Creature * me
Definition ScriptedCreature.h:281
bool HasEscortState(uint32 escortState)
Definition ScriptedEscortAI.h:102
void AddEscortState(uint32 escortState)
Definition ScriptedEscortAI.h:114
void ReturnToLastPoint()
Definition ScriptedEscortAI.cpp:185
void Reset() override
Definition zone_undercity.cpp:942

References npc_escortAI::AddEscortState(), ThreatManager::ClearAllThreat(), Unit::CombatStop(), Unit::GetMotionMaster(), Unit::GetThreatMgr(), npc_escortAI::HasEscortState(), ScriptedAI::me, MotionMaster::MoveTargetedHome(), Reset(), npc_escortAI::ReturnToLastPoint(), Creature::SetLootRecipient(), STATE_ESCORT_ESCORTING, and STATE_ESCORT_RETURNING.

◆ JumpToNextStep()

void npc_varian_wrynn::npc_varian_wrynnAI::JumpToNextStep ( uint32  uiTimer)
inline
1079 {
1080 phaseTimer = uiTimer;
1081 ++step;
1082 }
uint32 step
Definition zone_undercity.cpp:905
uint32 phaseTimer
Definition zone_undercity.cpp:906

References phaseTimer, and step.

Referenced by UpdateAI().

◆ JustSummoned()

void npc_varian_wrynn::npc_varian_wrynnAI::JustSummoned ( Creature summonedCreature)
inlineoverridevirtual

Reimplemented from CreatureAI.

1026 {
1027 switch (summonedCreature->GetEntry())
1028 {
1029 case NPC_GENERATOR:
1030 summonedCreature->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
1031 summonedCreature->ApplySpellImmune(0, IMMUNITY_ID, SPELL_WRYNN_BUFF, true);
1032 summonedCreature->ApplySpellImmune(0, IMMUNITY_ID, SPELL_THRALL_BUFF, true);
1033 summonedCreature->ApplySpellImmune(0, IMMUNITY_ID, SPELL_SYLVANAS_BUFF, true);
1034 break;
1035 default:
1036 break;
1037 }
1038 }
@ IMMUNITY_ID
Definition SharedDefines.h:1404
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:282
uint32 GetEntry() const
Definition Object.h:117
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply, SpellImmuneBlockType blockType=SPELL_BLOCK_TYPE_ALL)
Definition Unit.cpp:10463
void SetUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:748
@ SPELL_WRYNN_BUFF
Definition zone_undercity.cpp:340
@ SPELL_SYLVANAS_BUFF
Definition zone_undercity.cpp:497
@ NPC_GENERATOR
Definition zone_undercity.cpp:542
@ SPELL_THRALL_BUFF
Definition zone_undercity.cpp:431

References Unit::ApplySpellImmune(), Object::GetEntry(), IMMUNITY_ID, NPC_GENERATOR, Unit::SetUnitFlag(), SPELL_SYLVANAS_BUFF, SPELL_THRALL_BUFF, SPELL_WRYNN_BUFF, and UNIT_FLAG_NOT_SELECTABLE.

◆ Reset()

void npc_varian_wrynn::npc_varian_wrynnAI::Reset ( )
inlineoverridevirtual

Reimplemented from UnitAI.

943 {
945 {
946 me->SetCorpseDelay(1);
947 me->SetRespawnTime(1);
949
950 bStepping = false;
951 step = 0;
952 phaseTimer = 0;
959
961 {
962 putress->DespawnOrUnsummon();
964 }
965
967 {
968 blightWorm->DespawnOrUnsummon();
970 }
971
973 {
974 khanok->DespawnOrUnsummon();
976 }
977
979 {
980 thrall->DespawnOrUnsummon();
982 }
983
985 {
986 sylvanas->DespawnOrUnsummon();
988 }
989
990 for (uint8 i = 0; i < GENERATOR_MAXCOUNT; ++i)
991 {
993 {
994 generatorGUID[i].Clear();
995 temp->DespawnOrUnsummon();
996 }
997 }
998
999 for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
1000 {
1002 {
1004 temp->DespawnOrUnsummon();
1005 }
1006 }
1007
1008 for (ObjectGuid const& guid : allianceGuardsGUID)
1009 if (Creature* temp = ObjectAccessor::GetCreature(*me, guid))
1010 temp->DespawnOrUnsummon();
1011
1012 allianceGuardsGUID.clear();
1013
1014 for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
1015 {
1017 {
1019 temp->DespawnOrUnsummon();
1020 }
1021 }
1022 }
1023 }
std::uint8_t uint8
Definition Define.h:109
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:322
Definition Creature.h:47
void SetRespawnTime(uint32 respawn)
Definition Creature.cpp:3806
void SetCorpseDelay(uint32 delay)
Definition Creature.h:74
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
Definition EventMap.cpp:48
Definition ObjectGuid.h:118
void Clear()
Definition ObjectGuid.h:138
void SetNpcFlag(NPCFlags flags)
Definition Unit.h:764
Definition ObjectAccessor.h:61
Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:210
bool bStepping
Definition zone_undercity.cpp:902
ObjectGuid jainaGUID
Definition zone_undercity.cpp:910
ObjectGuid putressGUID
Definition zone_undercity.cpp:911
ObjectGuid blightWormGUID
Definition zone_undercity.cpp:912
EventMap _events
Definition zone_undercity.cpp:922
ObjectGuid sylvanasGUID
Definition zone_undercity.cpp:915
ObjectGuid allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT]
Definition zone_undercity.cpp:918
ObjectGuid generatorGUID[GENERATOR_MAXCOUNT]
Definition zone_undercity.cpp:917
ObjectGuid khanokGUID
Definition zone_undercity.cpp:913
ObjectGuid hordeForcesGUID[HORDE_FORCE_MAXCOUNT]
Definition zone_undercity.cpp:919
ObjectGuid thrallGUID
Definition zone_undercity.cpp:914
@ EVENT_HEROIC_LEAP
Definition zone_undercity.cpp:345
@ EVENT_WRYNN_BUFF
Definition zone_undercity.cpp:347
@ EVENT_WHIRLWIND
Definition zone_undercity.cpp:344
@ EVENT_AGGRO_JAINA
Definition zone_undercity.cpp:346
@ HORDE_FORCE_MAXCOUNT
Definition zone_undercity.cpp:654
@ ALLIANCE_FORCE_MAXCOUNT
Definition zone_undercity.cpp:653
@ GENERATOR_MAXCOUNT
Definition zone_undercity.cpp:652

References _events, ALLIANCE_FORCE_MAXCOUNT, allianceForcesGUID, allianceGuardsGUID, Unit::ApplySpellImmune(), blightWormGUID, bStepping, ObjectGuid::Clear(), EVENT_AGGRO_JAINA, EVENT_HEROIC_LEAP, EVENT_WHIRLWIND, EVENT_WRYNN_BUFF, GENERATOR_MAXCOUNT, generatorGUID, ObjectAccessor::GetCreature(), npc_escortAI::HasEscortState(), HORDE_FORCE_MAXCOUNT, hordeForcesGUID, IMMUNITY_ID, jainaGUID, khanokGUID, ScriptedAI::me, phaseTimer, putressGUID, EventMap::ScheduleEvent(), Creature::SetCorpseDelay(), Unit::SetNpcFlag(), Creature::SetRespawnTime(), SPELL_SYLVANAS_BUFF, STATE_ESCORT_ESCORTING, step, sylvanasGUID, thrallGUID, and UNIT_NPC_FLAG_GOSSIP.

Referenced by EnterEvadeMode().

◆ SetHoldState()

void npc_varian_wrynn::npc_varian_wrynnAI::SetHoldState ( bool  bOnHold)
inline
1074 {
1075 SetEscortPaused(bOnHold);
1076 }
void SetEscortPaused(bool on)
Definition ScriptedEscortAI.cpp:495

References npc_escortAI::SetEscortPaused().

Referenced by WaypointReached().

◆ SpawnWave()

void npc_varian_wrynn::npc_varian_wrynnAI::SpawnWave ( uint32  waveId)
inline
1085 {
1086 switch (waveId)
1087 {
1088 case 0:
1090 break;
1091 case 1:
1092 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1093 {
1094 switch (urand(0, 12))
1095 {
1096 case 0:
1098 break;
1099 case 1:
1100 case 2:
1101 case 3:
1103 break;
1104 case 4:
1105 case 5:
1106 case 6:
1108 break;
1109 case 7:
1110 case 8:
1111 case 9:
1113 break;
1114 case 10:
1115 case 11:
1116 case 12:
1118 break;
1119 }
1120 }
1121 break;
1122 case 2:
1123 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1124 {
1125 switch (urand(0, 3))
1126 {
1127 case 0:
1129 break;
1130 case 1:
1132 break;
1133 case 2:
1135 break;
1136 case 3:
1138 break;
1139 }
1140 }
1141 break;
1142 case 3:
1143 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1144 {
1145 switch (urand(0, 4))
1146 {
1147 case 0:
1149 break;
1150 case 1:
1151 case 2:
1153 break;
1154 case 3:
1155 case 4:
1157 break;
1158 }
1159 }
1160 break;
1161 case 4:
1162 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1163 {
1164 switch (urand(0, 5))
1165 {
1166 case 0:
1169 break;
1170 case 1:
1172 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1173 break;
1174 case 2:
1176 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1177 break;
1178 case 3:
1180 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1181 break;
1182 case 4:
1184 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1185 break;
1186 case 5:
1188 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1189 break;
1190 }
1191 }
1192 break;
1193 case 5:
1194 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1196 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1197 break;
1198 case 6:
1200 {
1201 blightWormGUID = temp->GetGUID();
1202 temp->AddThreat(me, 100.0f);
1203 me->AddThreat(temp, 100.0f);
1205 {
1206 temp->AddThreat(jaina, 100.0f);
1207 jaina->AddThreat(temp, 100.0f);
1208 }
1209 }
1211 {
1212 khanokGUID = temp->GetGUID();
1214 khanok->setDeathState(DeathState::JustDied);
1215 }
1217 {
1218 putressGUID = temp->GetGUID();
1219 temp->CastSpell(temp, SPELL_PUTRESS_CASTING_STATE);
1220 }
1221 for (uint8 i = 0; i < GENERATOR_MAXCOUNT; ++i)
1222 {
1223 switch (i)
1224 {
1225 case 0:
1226 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1433.142212f, 402.493835f, -80.515945f, TEMPSUMMON_MANUAL_DESPAWN))
1227 {
1228 generatorGUID[i] = temp->GetGUID();
1230 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT);
1231 }
1232 break;
1233 case 1:
1234 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1428.677979f, 399.753418f, -79.141609f, TEMPSUMMON_MANUAL_DESPAWN))
1235 {
1236 generatorGUID[i] = temp->GetGUID();
1238 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1239 }
1240 break;
1241 case 2:
1242 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1425.163330f, 402.268951f, -79.299744f, TEMPSUMMON_MANUAL_DESPAWN))
1243 {
1244 generatorGUID[i] = temp->GetGUID();
1246 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1247 }
1248 break;
1249 case 3:
1250 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1427.323242f, 406.853088f, -78.195641f, TEMPSUMMON_MANUAL_DESPAWN))
1251 {
1252 generatorGUID[i] = temp->GetGUID();
1254 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1255 }
1256 break;
1257 case 4:
1258 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1432.465210f, 407.460022f, -81.689384f, TEMPSUMMON_MANUAL_DESPAWN))
1259 {
1260 generatorGUID[i] = temp->GetGUID();
1262 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1263 }
1264 break;
1265 }
1266 }
1267 break;
1268 case 7:
1270 {
1271 allianceGuardsGUID.push_back(temp->GetGUID());
1272 temp->GetMotionMaster()->MoveWaypoint(NPC_SW_SOLDIER * 10, false);
1273 }
1275 {
1276 allianceGuardsGUID.push_back(temp->GetGUID());
1277 temp->GetMotionMaster()->MoveWaypoint((NPC_SW_SOLDIER * 10) + 1, false);
1278 }
1280 {
1281 allianceGuardsGUID.push_back(temp->GetGUID());
1282 temp->GetMotionMaster()->MoveWaypoint((NPC_SW_SOLDIER * 10) + 2, false);
1283 }
1285 {
1286 allianceGuardsGUID.push_back(temp->GetGUID());
1287 temp->GetMotionMaster()->MoveWaypoint((NPC_SW_SOLDIER * 10) + 3, false);
1288 }
1289 break;
1290 case 8:
1291 break;
1292 case 9:
1293 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1295 break;
1296 case 10:
1298 {
1299 temp->GetMotionMaster()->MoveWaypoint(NPC_DREADLORD * 10, false);
1300 temp->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
1301 temp->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true);
1302 }
1303 break;
1304 case 11:
1305 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1306 {
1307 switch (urand(0, 3))
1308 {
1309 case 0:
1311 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1312 break;
1313 case 1:
1315 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1316 break;
1317 case 2:
1319 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1320 break;
1321 case 3:
1323 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1324 break;
1325 }
1326 }
1327 break;
1328 case 12:
1330 {
1331 thrallGUID = temp->GetGUID();
1332 temp->SetReactState(REACT_PASSIVE);
1333 temp->SetImmuneToAll(true);
1334 temp->CastSpell(temp, SPELL_THRALL_BUFF);
1335 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1336 }
1338 {
1339 sylvanasGUID = temp->GetGUID();
1340 temp->SetReactState(REACT_PASSIVE);
1341 temp->SetImmuneToAll(true);
1342 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1343 }
1344 for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
1345 {
1347 {
1348 hordeForcesGUID[i] = temp->GetGUID();
1349 temp->SetReactState(REACT_PASSIVE);
1350 temp->SetImmuneToAll(true);
1351 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1352 }
1353 }
1354 break;
1355 case 13:
1356 for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
1357 {
1359 {
1360 allianceForcesGUID[i] = temp->GetGUID();
1361 temp->SetImmuneToAll(true);
1362 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1363 }
1364 }
1365 break;
1366 }
1367 }
@ FORCED_MOVEMENT_NONE
Definition MotionMaster.h:86
@ TEMPSUMMON_DEAD_DESPAWN
Definition Object.h:55
@ TEMPSUMMON_MANUAL_DESPAWN
Definition Object.h:56
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:51
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
uint32 rand32()
Definition Random.cpp:80
@ EMOTE_STATE_READY2H
Definition SharedDefines.h:1974
@ SPELL_EFFECT_KNOCK_BACK_DEST
Definition SharedDefines.h:910
@ SPELL_EFFECT_KNOCK_BACK
Definition SharedDefines.h:864
@ IMMUNITY_EFFECT
Definition SharedDefines.h:1398
@ REACT_PASSIVE
Definition Unit.h:566
@ UNIT_NPC_EMOTESTATE
Definition UpdateFields.h:140
void MoveWaypoint(uint32 path_id, bool repeatable, PathSource pathSource=PathSource::WAYPOINT_MGR)
Move the unit following a specific path. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:913
void MovePoint(uint32 id, const Position &pos, ForcedMovement forcedMovement=FORCED_MOVEMENT_NONE, float speed=0.f, bool generatePath=true, bool forceDestination=true, std::optional< AnimTier > animTier=std::nullopt)
Definition MotionMaster.h:240
Definition Unit.h:664
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=nullptr)
Definition Unit.cpp:11439
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2393
float o
Definition zone_undercity.cpp:662
float y
Definition zone_undercity.cpp:662
float x
Definition zone_undercity.cpp:662
float z
Definition zone_undercity.cpp:662
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
@ NPC_GUARDIAN
Definition zone_undercity.cpp:607
@ NPC_CHEMIST
Definition zone_undercity.cpp:608
@ NPC_DOCTOR
Definition zone_undercity.cpp:611
@ NPC_SW_SOLDIER
Definition zone_undercity.cpp:613
@ NPC_FELBEAST
Definition zone_undercity.cpp:610
@ NPC_DREADLORD
Definition zone_undercity.cpp:606
@ NPC_BETRAYER
Definition zone_undercity.cpp:609
@ NPC_COLLABORATOR
Definition zone_undercity.cpp:612
@ NPC_HORDE_SOLDIER
Definition zone_undercity.cpp:614
@ NPC_KHANOK
Definition zone_undercity.cpp:568
@ NPC_SYLVANAS
Definition zone_undercity.cpp:484
static LocationXYZO HordeSpawn[]
Definition zone_undercity.cpp:714
@ WAVE_MAXCOUNT
Definition zone_undercity.cpp:651
static LocationXYZO AllianceSpawn[]
Definition zone_undercity.cpp:665
@ NPC_BLIGHTWORM
Definition zone_undercity.cpp:524
@ NPC_PUTRESS
Definition zone_undercity.cpp:539
@ SPELL_PUTRESS_CASTING_STATE
Definition zone_undercity.cpp:549
@ SPELL_BLIGHT_EMPOWERMENT
Definition zone_undercity.cpp:545
@ NPC_EXPERIMENT
Definition zone_undercity.cpp:541
@ NPC_THRALL
Definition zone_undercity.cpp:382

References Unit::AddThreat(), ALLIANCE_FORCE_MAXCOUNT, allianceForcesGUID, allianceGuardsGUID, AllianceSpawn, blightWormGUID, EMOTE_STATE_READY2H, FORCED_MOVEMENT_NONE, GENERATOR_MAXCOUNT, generatorGUID, ObjectAccessor::GetCreature(), Unit::GetMotionMaster(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), HORDE_FORCE_MAXCOUNT, hordeForcesGUID, HordeSpawn, IMMUNITY_EFFECT, jainaGUID, JustDied, khanokGUID, ScriptedAI::me, MotionMaster::MovePoint(), MotionMaster::MoveWaypoint(), NPC_BETRAYER, NPC_BLIGHTWORM, NPC_CHEMIST, NPC_COLLABORATOR, NPC_DOCTOR, NPC_DREADLORD, NPC_EXPERIMENT, NPC_FELBEAST, NPC_GENERATOR, NPC_GUARDIAN, NPC_HORDE_SOLDIER, NPC_KHANOK, NPC_PUTRESS, NPC_SW_SOLDIER, NPC_SYLVANAS, NPC_THRALL, LocationXYZO::o, putressGUID, rand32(), REACT_PASSIVE, SPELL_BLIGHT_EMPOWERMENT, SPELL_EFFECT_KNOCK_BACK, SPELL_EFFECT_KNOCK_BACK_DEST, SPELL_PUTRESS_CASTING_STATE, SPELL_THRALL_BUFF, WorldObject::SummonCreature(), sylvanasGUID, TEMPSUMMON_DEAD_DESPAWN, TEMPSUMMON_MANUAL_DESPAWN, TEMPSUMMON_TIMED_DESPAWN, thrallGUID, UNIT_NPC_EMOTESTATE, urand(), WAVE_MAXCOUNT, LocationXYZO::x, LocationXYZO::y, and LocationXYZO::z.

Referenced by UpdateAI().

◆ SummonedCreatureDies()

void npc_varian_wrynn::npc_varian_wrynnAI::SummonedCreatureDies ( Creature summon,
Unit  
)
inlineoverridevirtual

Reimplemented from CreatureAI.

1041 {
1042 switch (summon->GetEntry())
1043 {
1044 case NPC_BLIGHTWORM:
1047 bStepping = true;
1048 break;
1049 case NPC_PUTRESS:
1052 bStepping = true;
1053 break;
1054 default:
1055 break;
1056 }
1057 }
@ WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_A
Definition WorldStateDefines.h:529
@ WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_DONE_A
Definition WorldStateDefines.h:526
@ WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_FIGHT_A
Definition WorldStateDefines.h:524
@ WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_A
Definition WorldStateDefines.h:528
Map * GetMap() const
Definition Object.h:625
void UpdateWorldState(Map *map, uint32 id, uint32 state)
Definition zone_undercity.cpp:1059

References bStepping, Object::GetEntry(), WorldObject::GetMap(), ScriptedAI::me, NPC_BLIGHTWORM, NPC_PUTRESS, UpdateWorldState(), WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_DONE_A, and WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_FIGHT_A.

◆ UpdateAI()

void npc_varian_wrynn::npc_varian_wrynnAI::UpdateAI ( uint32  )
inlineoverridevirtual

Use to start attacking a target. Called just before JustEngagedWith()

Reimplemented from npc_escortAI.

1439 {
1441
1442 if (bStepping)
1443 {
1444 if (phaseTimer <= diff)
1445 {
1446 switch (step)
1447 {
1448 //Preparation
1449 case 0:
1450 me->setActive(true);
1454 break;
1455 case 1:
1458 break;
1459 case 2:
1462 break;
1463 case 3:
1466 break;
1467 case 4:
1472 break;
1473 case 5:
1476 break;
1477 case 6:
1480 break;
1481 case 7:
1482 SetEscortPaused(false);
1484 break;
1485 case 8:
1487 {
1488 jaina->GetMotionMaster()->MoveWaypoint(NPC_JAINA * 10, false);
1489 jaina->setActive(true);
1490 }
1491 bStepping = false;
1492 JumpToNextStep(0);
1493 break;
1494 //Sewers
1495 case 9:
1497 SpawnWave(0);
1498 SpawnWave(1);
1499 SpawnWave(2);
1500 SpawnWave(3);
1501 JumpToNextStep(9500);
1502 break;
1503 case 10:
1505 jaina->AI()->Talk(JAINA_SAY_SEWERS_1);
1507 break;
1508 case 11:
1510 jaina->AI()->DoCast(SPELL_JAINA_BUFF);
1512 break;
1513 case 12:
1514 SetEscortPaused(false);
1518 break;
1519 case 13:
1521 {
1522 jaina->GetMotionMaster()->MoveFollow(me, 5, PET_FOLLOW_ANGLE);
1523 jaina->SetReactState(REACT_AGGRESSIVE);
1524 jaina->SetFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
1525 }
1526 bStepping = false;
1527 JumpToNextStep(0);
1528 break;
1529 case 14:
1532 break;
1533 case 15:
1534 SpawnWave(4);
1536 break;
1537 case 16:
1538 SpawnWave(5);
1540 break;
1541 case 17:
1542 SpawnWave(4);
1544 break;
1545 case 18:
1546 SpawnWave(4);
1548 break;
1549 case 19:
1550 SpawnWave(5);
1552 break;
1553 case 20:
1554 SpawnWave(6);
1555 bStepping = false;
1556 JumpToNextStep(0);
1557 break;
1558 case 21:
1560 SpawnWave(7);
1562 break;
1563 case 22:
1565 me->SetWalk(true);
1567 {
1568 jaina->GetMotionMaster()->Clear();
1569 jaina->GetMotionMaster()->MoveFollow(me, 1, 0);
1570 }
1572 break;
1573 case 23:
1574 bStepping = false;
1575 SetEscortPaused(false);
1576 JumpToNextStep(0);
1577 break;
1578 //Apothecarium
1579 case 24:
1581 jaina->AI()->Talk(JAINA_SAY_APO_1);
1583 break;
1584 case 25:
1585 SetEscortPaused(false);
1586 bStepping = false;
1587 JumpToNextStep(0);
1588 break;
1589 case 26:
1593 break;
1594 case 27:
1597 break;
1598 case 28:
1601 break;
1602 case 29:
1605 break;
1606 case 30:
1609 putress->AI()->Talk(PUTRESS_SAY_1);
1610 if (Player* player = GetPlayerForEscort())
1611 player->PlayDirectSound(SOUND_PUTRESS, player);
1612 SpawnWave(9);
1614 break;
1615 case 31:
1616 me->SetWalk(false);
1618 jaina->GetMotionMaster()->MoveFollow(me, 1, 0);
1619 SetEscortPaused(false);
1620 bStepping = false;
1621 JumpToNextStep(0);
1622 break;
1623 case 32:
1625 SpawnWave(10);
1627 break;
1628 case 33:
1629 SpawnWave(10);
1631 break;
1632 case 34:
1633 SpawnWave(10);
1635 break;
1636 case 35:
1637 SpawnWave(10);
1639 break;
1640 case 36:
1641 SpawnWave(10);
1643 break;
1644 case 37:
1645 SpawnWave(10);
1647 break;
1648 case 38:
1649 SpawnWave(10);
1651 break;
1652 case 39:
1653 SpawnWave(10);
1655 break;
1656 case 40:
1657 SpawnWave(10);
1659 break;
1660 case 41:
1661 SpawnWave(10);
1663 break;
1664 case 42:
1665 SpawnWave(10);
1667 break;
1668 case 43:
1669 SetEscortPaused(false);
1670 bStepping = false;
1671 JumpToNextStep(0);
1672 break;
1673 case 44:
1676 {
1677 jaina->GetMotionMaster()->Clear();
1678 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[7].x, AllianceWP[7].y, AllianceWP[7].z, FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1679 }
1681 break;
1682 case 45:
1683 SetEscortPaused(false);
1684 bStepping = false;
1685 JumpToNextStep(0);
1686 break;
1687 case 46:
1690 break;
1691 case 47:
1693 putress->AI()->Talk(PUTRESS_SAY_3);
1694 SpawnWave(11);
1696 break;
1697 case 48:
1699 putress->AI()->Talk(PUTRESS_SAY_4);
1701 break;
1702 case 49:
1704 putress->AI()->Talk(PUTRESS_SAY_5);
1705 SpawnWave(11);
1707 break;
1708 case 50:
1710 putress->AI()->Talk(PUTRESS_SAY_6);
1712 break;
1713 case 51:
1715 putress->AI()->Talk(PUTRESS_SAY_7);
1716 SpawnWave(11);
1718 break;
1719 case 52:
1721 {
1722 putress->AI()->Talk(PUTRESS_SAY_8);
1723 putress->AI()->DoCast(SPELL_BLIGHT_OVERLOAD);
1724 }
1726 break;
1727 case 53:
1729 {
1730 putress->SetImmuneToAll(false);
1731 putress->AddThreat(me, 100.0f);
1732 me->AddThreat(putress, 100.0f);
1733 putress->RemoveAura(SPELL_PUTRESS_CASTING_STATE);
1734 }
1735 bStepping = false;
1736 JumpToNextStep(0);
1737 break;
1738 case 54:
1740 me->SetWalk(true);
1742 break;
1743 case 55:
1748 break;
1749 case 56:
1753 SetEscortPaused(false);
1754 bStepping = false;
1755 JumpToNextStep(0);
1756 break;
1757 case 57:
1759 break;
1760 case 58:
1763 break;
1764 case 59:
1767 break;
1768 case 60:
1770 SpawnWave(12); // thrall sylvanas horde soldiers
1772 break;
1773 case 61:
1775 thrall->AI()->Talk(THRALL_SAY_THRONE_A_1);
1776 if (Player* player = GetPlayerForEscort())
1777 player->PlayDirectSound(SOUND_THRALL_1, player);
1779 break;
1780 case 62:
1782 thrall->AI()->Talk(THRALL_SAY_THRONE_A_2);
1783 if (Player* player = GetPlayerForEscort())
1784 player->PlayDirectSound(SOUND_THRALL_2, player);
1786 break;
1787 case 63:
1790 break;
1791 case 64:
1794 break;
1795 case 65:
1796 me->SetWalk(false);
1797 SetEscortPaused(false);
1799 break;
1800 case 66:
1802 jaina->AI()->Talk(JAINA_SAY_THRONE_1);
1803 me->SetImmuneToNPC(true);
1804 bStepping = false;
1805 JumpToNextStep(0);
1806 break;
1807 case 67:
1810 break;
1811 case 68:
1814 {
1815 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[8].x, AllianceWP[8].y, AllianceWP[8].z);
1816 jaina->SetImmuneToAll(true);
1817 }
1818 SetEscortPaused(false);
1819 bStepping = false;
1820 JumpToNextStep(0);
1821 break;
1822 case 69:
1824 SpawnWave(13); //alliance soldiers
1826 break;
1827 case 70:
1830 break;
1831 case 71:
1834 break;
1835 case 72:
1838 break;
1839 case 73:
1841 me->SetImmuneToAll(false);
1843 {
1844 thrall->SetReactState(REACT_AGGRESSIVE);
1845 thrall->SetImmuneToNPC(false);
1846 thrall->SetImmuneToPC(true);
1847 thrall->AddThreat(me, 100.0f);
1848 me->AddThreat(thrall, 100.0f);
1849 thrall->AI()->AttackStart(me);
1850 }
1852 {
1853 sylvanas->SetReactState(REACT_AGGRESSIVE);
1854 sylvanas->SetImmuneToNPC(false);
1855 sylvanas->SetImmuneToPC(true);
1856 sylvanas->AddThreat(me, 100.0f);
1857 sylvanas->AI()->AttackStart(me);
1858 me->AddThreat(sylvanas, 100.0f);
1859 }
1860 for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
1861 {
1863 {
1864 temp->SetReactState(REACT_AGGRESSIVE);
1865 temp->SetImmuneToNPC(false);
1866 temp->SetImmuneToPC(true);
1867 }
1868 }
1869 for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
1870 {
1872 {
1874 {
1875 temp->SetReactState(REACT_AGGRESSIVE);
1876 temp2->SetReactState(REACT_AGGRESSIVE);
1877 temp->SetImmuneToAll(false);
1878 temp2->SetImmuneToAll(false);
1879 temp->AddThreat(temp2, 100.0f);
1880 temp->AI()->AttackStart(temp2);
1881 temp2->AddThreat(temp, 100.0f);
1882 }
1883 }
1884 }
1886 break;
1887 case 74:
1889 {
1890 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[9].x, AllianceWP[9].y, AllianceWP[9].z);
1891 jaina->AI()->Talk(JAINA_SAY_THRONE_2);
1892 }
1894 break;
1895 case 75:
1897 {
1898 jaina->AI()->DoCastAOE(SPELL_DEEPFREEZE);
1899 jaina->AI()->Talk(JAINA_SAY_THRONE_3);
1900 }
1902 break;
1903 case 76:
1904 std::list<Creature*> HelperList;
1905 me->GetCreatureListWithEntryInGrid(HelperList, NPC_SW_SOLDIER, 100.0f);
1907 me->GetCreatureListWithEntryInGrid(HelperList, NPC_JAINA, 100.0f);
1908 me->GetCreatureListWithEntryInGrid(HelperList, NPC_SYLVANAS, 100.0f);
1909 me->GetCreatureListWithEntryInGrid(HelperList, NPC_THRALL, 100.0f);
1910 if (!HelperList.empty())
1911 for (std::list<Creature*>::iterator itr = HelperList.begin(); itr != HelperList.end(); itr++)
1912 (*itr)->DespawnOrUnsummon();
1913 if (Map* map = me->GetMap())
1914 {
1915 Map::PlayerList const& PlayerList = map->GetPlayers();
1916 for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
1917 {
1918 if (Player* player = i->GetSource())
1919 {
1920 if (me->IsInRange(player, 0.0f, 50.0f))
1921 {
1922 if (player->GetTeamId() == TEAM_ALLIANCE)
1923 {
1924 player->RemoveAura(SPELL_WRYNN_BUFF);
1925 player->RemoveAura(SPELL_JAINA_BUFF);
1926 player->CompleteQuest(QUEST_BATTLE_A);
1927 player->NearTeleportTo(-8445.213867f, 337.384277f, 121.746056f, 5.401534f, false);
1928 }
1929 }
1930 }
1931 }
1932 }
1937 break;
1938 }
1939 }
1940 else phaseTimer -= diff;
1941 }
1942
1943 if (!UpdateVictim())
1944 return;
1945
1946 _events.Update(diff);
1947
1949 return;
1950
1951 while (uint32 eventId = _events.ExecuteEvent())
1952 {
1953 switch (eventId)
1954 {
1955 case EVENT_WHIRLWIND:
1958 break;
1959 case EVENT_HEROIC_LEAP:
1962 break;
1963 case EVENT_AGGRO_JAINA:
1964 if (me->GetVictim())
1965 {
1967 {
1968 jaina->AI()->AttackStart(me->GetVictim());
1969 }
1970 }
1973 break;
1974 case EVENT_WRYNN_BUFF:
1977 break;
1978 default:
1979 break;
1980 }
1981 }
1982
1984 }
constexpr auto IN_MILLISECONDS
Definition Common.h:53
std::uint32_t uint32
Definition Define.h:107
constexpr float PET_FOLLOW_ANGLE
Definition PetDefines.h:207
@ FACTION_ESCORT_N_NEUTRAL_ACTIVE
Definition ScriptSystem.h:37
@ TEAM_ALLIANCE
Definition SharedDefines.h:748
@ UNIT_STAND_STATE_KNEEL
Definition UnitDefines.h:43
@ UNIT_STAND_STATE_STAND
Definition UnitDefines.h:35
@ UNIT_STATE_CASTING
Definition UnitDefines.h:188
@ REACT_AGGRESSIVE
Definition Unit.h:568
@ WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_COUNTDOWN_A
Definition WorldStateDefines.h:523
@ WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_STARTS_A
Definition WorldStateDefines.h:527
bool UpdateVictim()
Definition CreatureAI.cpp:350
void SetTarget(ObjectGuid guid=ObjectGuid::Empty) override
Definition Creature.cpp:3540
void DespawnOrUnsummon(Milliseconds msTimeToDespawn=0ms, Seconds forcedRespawnTimer=0s)
Definition Creature.cpp:2186
bool SetWalk(bool enable) override
Enable or disable the creature's walk mode by removing: MOVEMENTFLAG_WALKING. Infom also the client.
Definition Creature.cpp:3323
void Update(uint32 time)
Definition EventMap.h:67
EventId ExecuteEvent()
Definition EventMap.cpp:86
Definition LinkedList.h:139
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37
Definition Map.h:166
Definition Player.h:1084
void DoMeleeAttackIfReady()
Definition UnitAI.cpp:40
SpellCastResult DoCastVictim(uint32 spellId, bool triggered=false)
Definition UnitAI.cpp:277
SpellCastResult DoCast(uint32 spellId)
Definition UnitAI.cpp:178
void SetImmuneToNPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:10644
void RemoveStandFlags(uint8 flags)
Definition Unit.h:1788
Unit * GetVictim() const
Definition Unit.h:903
bool HasUnitState(const uint32 f) const
Definition Unit.h:736
void SetStandState(uint8 state)
Definition Unit.cpp:13115
void SetImmuneToAll(bool apply, bool keepCombat=false)
Definition Unit.h:924
void SetStandFlags(uint8 flags)
Definition Unit.h:1787
void setActive(bool isActiveObject)
Definition Object.cpp:1082
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
Definition Object.cpp:2559
bool IsInRange(WorldObject const *obj, float minRange, float maxRange, bool is3D=true) const
Definition Object.cpp:1460
Talk
Definition hyjal.cpp:82
void UpdateAI(uint32 diff) override
Use to start attacking a target. Called just before JustEngagedWith()
Definition ScriptedEscortAI.cpp:240
Player * GetPlayerForEscort()
Definition ScriptedEscortAI.h:118
void SpawnWave(uint32 waveId)
Definition zone_undercity.cpp:1084
void JumpToNextStep(uint32 uiTimer)
Definition zone_undercity.cpp:1078
@ WRYNN_SAY_APO_12
Definition zone_undercity.cpp:327
@ WRYNN_SAY_SEWERS_4
Definition zone_undercity.cpp:315
@ WRYNN_SAY_APO_6
Definition zone_undercity.cpp:321
@ WRYNN_SAY_THRONE_9
Definition zone_undercity.cpp:336
@ WRYNN_SAY_THRONE_2
Definition zone_undercity.cpp:329
@ WRYNN_SAY_THRONE_4
Definition zone_undercity.cpp:331
@ SPELL_HEROIC_LEAP
Definition zone_undercity.cpp:341
@ WRYNN_SAY_PREP_1
Definition zone_undercity.cpp:306
@ WRYNN_SAY_THRONE_5
Definition zone_undercity.cpp:332
@ WRYNN_SAY_APO_2
Definition zone_undercity.cpp:317
@ WRYNN_SAY_APO_11
Definition zone_undercity.cpp:326
@ WRYNN_SAY_APO_4
Definition zone_undercity.cpp:319
@ WRYNN_SAY_APO_7
Definition zone_undercity.cpp:322
@ WRYNN_SAY_APO_5
Definition zone_undercity.cpp:320
@ WRYNN_SAY_APO_3
Definition zone_undercity.cpp:318
@ WRYNN_SAY_THRONE_3
Definition zone_undercity.cpp:330
@ WRYNN_SAY_SEWERS_2
Definition zone_undercity.cpp:313
@ WRYNN_SAY_APO_8
Definition zone_undercity.cpp:323
@ WRYNN_SAY_THRONE_1
Definition zone_undercity.cpp:328
@ WRYNN_SAY_THRONE_6
Definition zone_undercity.cpp:333
@ WRYNN_SAY_SEWERS_1
Definition zone_undercity.cpp:312
@ WRYNN_SAY_APO_10
Definition zone_undercity.cpp:325
@ WRYNN_SAY_PREP_4
Definition zone_undercity.cpp:309
@ WRYNN_SAY_PREP_2
Definition zone_undercity.cpp:307
@ WRYNN_SAY_THRONE_8
Definition zone_undercity.cpp:335
@ WRYNN_SAY_PREP_6
Definition zone_undercity.cpp:311
@ WRYNN_SAY_THRONE_7
Definition zone_undercity.cpp:334
@ WRYNN_SAY_PREP_5
Definition zone_undercity.cpp:310
@ WRYNN_SAY_PREP_3
Definition zone_undercity.cpp:308
@ SPELL_WHIRLWIND
Definition zone_undercity.cpp:339
@ WRYNN_SAY_APO_1
Definition zone_undercity.cpp:316
@ WRYNN_SAY_APO_9
Definition zone_undercity.cpp:324
@ WRYNN_SAY_SEWERS_3
Definition zone_undercity.cpp:314
@ SPELL_JAINA_BUFF
Definition zone_undercity.cpp:367
@ JAINA_SAY_THRONE_1
Definition zone_undercity.cpp:358
@ JAINA_SAY_THRONE_2
Definition zone_undercity.cpp:359
@ JAINA_SAY_THRONE_3
Definition zone_undercity.cpp:360
@ NPC_JAINA
Definition zone_undercity.cpp:353
@ JAINA_SAY_SEWERS_1
Definition zone_undercity.cpp:356
@ JAINA_SAY_APO_1
Definition zone_undercity.cpp:357
@ SPELL_DEEPFREEZE
Definition zone_undercity.cpp:366
@ QUEST_BATTLE_A
Definition zone_undercity.cpp:642
@ PUTRESS_SAY_3
Definition zone_undercity.cpp:554
@ SPELL_BLIGHT_OVERLOAD
Definition zone_undercity.cpp:546
@ PUTRESS_SAY_6
Definition zone_undercity.cpp:557
@ PUTRESS_SAY_5
Definition zone_undercity.cpp:556
@ SOUND_PUTRESS
Definition zone_undercity.cpp:562
@ PUTRESS_SAY_8
Definition zone_undercity.cpp:559
@ PUTRESS_SAY_7
Definition zone_undercity.cpp:558
@ PUTRESS_SAY_4
Definition zone_undercity.cpp:555
@ PUTRESS_SAY_1
Definition zone_undercity.cpp:552
@ THRALL_SAY_THRONE_A_2
Definition zone_undercity.cpp:389
@ SOUND_THRALL_1
Definition zone_undercity.cpp:427
@ SPELL_THUNDER
Definition zone_undercity.cpp:450
@ SOUND_THRALL_2
Definition zone_undercity.cpp:428
@ THRALL_SAY_THRONE_A_1
Definition zone_undercity.cpp:388
static LocationXYZO AllianceWP[]
Definition zone_undercity.cpp:700

References _events, Unit::AddThreat(), ALLIANCE_FORCE_MAXCOUNT, allianceForcesGUID, AllianceWP, MapRefMgr::begin(), bStepping, Creature::DespawnOrUnsummon(), UnitAI::DoCast(), UnitAI::DoCastVictim(), UnitAI::DoMeleeAttackIfReady(), MapRefMgr::end(), EVENT_AGGRO_JAINA, EVENT_HEROIC_LEAP, EVENT_WHIRLWIND, EVENT_WRYNN_BUFF, EventMap::ExecuteEvent(), FACTION_ESCORT_N_NEUTRAL_ACTIVE, FORCED_MOVEMENT_NONE, ObjectAccessor::GetCreature(), WorldObject::GetCreatureListWithEntryInGrid(), WorldObject::GetMap(), npc_escortAI::GetPlayerForEscort(), Unit::GetVictim(), Unit::HasUnitState(), HORDE_FORCE_MAXCOUNT, hordeForcesGUID, IN_MILLISECONDS, WorldObject::IsInRange(), JAINA_SAY_APO_1, JAINA_SAY_SEWERS_1, JAINA_SAY_THRONE_1, JAINA_SAY_THRONE_2, JAINA_SAY_THRONE_3, jainaGUID, JumpToNextStep(), khanokGUID, ScriptedAI::me, NPC_HORDE_SOLDIER, NPC_JAINA, NPC_SW_SOLDIER, NPC_SYLVANAS, NPC_THRALL, PET_FOLLOW_ANGLE, phaseTimer, PUTRESS_SAY_1, PUTRESS_SAY_3, PUTRESS_SAY_4, PUTRESS_SAY_5, PUTRESS_SAY_6, PUTRESS_SAY_7, PUTRESS_SAY_8, putressGUID, QUEST_BATTLE_A, REACT_AGGRESSIVE, Unit::RemoveStandFlags(), EventMap::ScheduleEvent(), WorldObject::setActive(), npc_escortAI::SetEscortPaused(), Unit::SetImmuneToAll(), Unit::SetImmuneToNPC(), Unit::SetStandFlags(), Unit::SetStandState(), Creature::SetTarget(), Creature::SetWalk(), SOUND_PUTRESS, SOUND_THRALL_1, SOUND_THRALL_2, SpawnWave(), SPELL_BLIGHT_OVERLOAD, SPELL_DEEPFREEZE, SPELL_HEROIC_LEAP, SPELL_JAINA_BUFF, SPELL_PUTRESS_CASTING_STATE, SPELL_THUNDER, SPELL_WHIRLWIND, SPELL_WRYNN_BUFF, step, sylvanasGUID, TEAM_ALLIANCE, THRALL_SAY_THRONE_A_1, THRALL_SAY_THRONE_A_2, thrallGUID, UNIT_STAND_STATE_KNEEL, UNIT_STAND_STATE_STAND, UNIT_STATE_CASTING, EventMap::Update(), npc_escortAI::UpdateAI(), CreatureAI::UpdateVictim(), UpdateWorldState(), WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_DONE_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_APOTHECARIUM_FIGHT_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_COUNTDOWN_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_MANHUNT_STARTS_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_DONE_A, WORLD_STATE_BATTLE_FOR_UNDERCITY_SEWERS_FIGHT_A, WRYNN_SAY_APO_1, WRYNN_SAY_APO_10, WRYNN_SAY_APO_11, WRYNN_SAY_APO_12, WRYNN_SAY_APO_2, WRYNN_SAY_APO_3, WRYNN_SAY_APO_4, WRYNN_SAY_APO_5, WRYNN_SAY_APO_6, WRYNN_SAY_APO_7, WRYNN_SAY_APO_8, WRYNN_SAY_APO_9, WRYNN_SAY_PREP_1, WRYNN_SAY_PREP_2, WRYNN_SAY_PREP_3, WRYNN_SAY_PREP_4, WRYNN_SAY_PREP_5, WRYNN_SAY_PREP_6, WRYNN_SAY_SEWERS_1, WRYNN_SAY_SEWERS_2, WRYNN_SAY_SEWERS_3, WRYNN_SAY_SEWERS_4, WRYNN_SAY_THRONE_1, WRYNN_SAY_THRONE_2, WRYNN_SAY_THRONE_3, WRYNN_SAY_THRONE_4, WRYNN_SAY_THRONE_5, WRYNN_SAY_THRONE_6, WRYNN_SAY_THRONE_7, WRYNN_SAY_THRONE_8, and WRYNN_SAY_THRONE_9.

◆ UpdateWorldState()

void npc_varian_wrynn::npc_varian_wrynnAI::UpdateWorldState ( Map map,
uint32  id,
uint32  state 
)
inline
1060 {
1061 Map::PlayerList const& players = map->GetPlayers();
1062
1063 if (!players.IsEmpty())
1064 {
1065 for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
1066 {
1067 if (Player* player = itr->GetSource())
1068 player->SendUpdateWorldState(id, state);
1069 }
1070 }
1071 }
bool IsEmpty() const
Definition LinkedList.h:97
PlayerList const & GetPlayers() const
Definition Map.h:329

References MapRefMgr::begin(), MapRefMgr::end(), Map::GetPlayers(), and LinkedListHead::IsEmpty().

Referenced by SummonedCreatureDies(), and UpdateAI().

◆ WaypointReached() [1/2]

void npc_varian_wrynn::npc_varian_wrynnAI::WaypointReached ( uint32  waypointId)
inlineoverridevirtual

Implements npc_escortAI.

1371 {
1372 switch (waypointId)
1373 {
1374 case 0:
1375 SetHoldState(true);
1376 bStepping = true;
1377 break;
1378 case 2:
1379 SetHoldState(true);
1380 bStepping = true;
1381 break;
1382 case 38:
1384 {
1385 jaina->GetMotionMaster()->Clear();
1386 jaina->SetImmuneToNPC(false);
1387 jaina->SetReactState(REACT_AGGRESSIVE);
1388 }
1389 SetHoldState(true);
1390 bStepping = true;
1391 break;
1392 case 45:
1393 SetHoldState(true);
1394 bStepping = true;
1396 {
1397 jaina->GetMotionMaster()->Clear();
1398 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[6].x, AllianceWP[6].y, AllianceWP[6].z);
1399 }
1400 break;
1401 case 46:
1402 SetHoldState(true);
1403 bStepping = true;
1404 break;
1405 case 48:
1407 putress->AI()->Talk(PUTRESS_SAY_2);
1408 if (Player* player = GetPlayerForEscort())
1409 player->PlayDirectSound(SOUND_PUTRESS, player);
1410 break;
1411 case 50:
1412 SetHoldState(true);
1413 bStepping = true;
1414 break;
1415 case 63:
1416 SetHoldState(true);
1417 bStepping = true;
1418 break;
1419 case 65:
1420 SetHoldState(true);
1421 bStepping = true;
1422 break;
1423 case 66:
1424 SetHoldState(true);
1425 bStepping = true;
1426 break;
1427 case 87:
1428 SetHoldState(true);
1429 bStepping = true;
1430 break;
1431 case 88:
1432 SetHoldState(true);
1433 bStepping = true;
1434 break;
1435 }
1436 }
void SetHoldState(bool bOnHold)
Definition zone_undercity.cpp:1073
@ PUTRESS_SAY_2
Definition zone_undercity.cpp:553

References AllianceWP, bStepping, ObjectAccessor::GetCreature(), npc_escortAI::GetPlayerForEscort(), jainaGUID, ScriptedAI::me, PUTRESS_SAY_2, putressGUID, REACT_AGGRESSIVE, SetHoldState(), and SOUND_PUTRESS.

◆ WaypointReached() [2/2]

virtual void CreatureAI::WaypointReached ( uint32  ,
uint32   
)
inlinevirtual

Reimplemented from npc_escortAI.

196{ }

Member Data Documentation

◆ _events

EventMap npc_varian_wrynn::npc_varian_wrynnAI::_events

Referenced by Reset(), and UpdateAI().

◆ allianceForcesGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT]

Referenced by Reset(), SpawnWave(), and UpdateAI().

◆ allianceGuardsGUID

GuidVector npc_varian_wrynn::npc_varian_wrynnAI::allianceGuardsGUID

◆ blightWormGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::blightWormGUID

Referenced by Reset(), and SpawnWave().

◆ bStepping

bool npc_varian_wrynn::npc_varian_wrynnAI::bStepping

◆ generatorGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::generatorGUID[GENERATOR_MAXCOUNT]

Referenced by Reset(), and SpawnWave().

◆ hordeForcesGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::hordeForcesGUID[HORDE_FORCE_MAXCOUNT]

Referenced by Reset(), SpawnWave(), and UpdateAI().

◆ jainaGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::jainaGUID

◆ khanokGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::khanokGUID

Referenced by Reset(), SpawnWave(), and UpdateAI().

◆ phaseTimer

uint32 npc_varian_wrynn::npc_varian_wrynnAI::phaseTimer

Referenced by JumpToNextStep(), Reset(), and UpdateAI().

◆ putressGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::putressGUID

◆ step

uint32 npc_varian_wrynn::npc_varian_wrynnAI::step

Referenced by JumpToNextStep(), Reset(), and UpdateAI().

◆ summoned

bool npc_varian_wrynn::npc_varian_wrynnAI::summoned

◆ sylvanasGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::sylvanasGUID

Referenced by Reset(), SpawnWave(), and UpdateAI().

◆ thrallGUID

ObjectGuid npc_varian_wrynn::npc_varian_wrynnAI::thrallGUID

Referenced by Reset(), SpawnWave(), and UpdateAI().

◆ whirlwindTimer

uint32 npc_varian_wrynn::npc_varian_wrynnAI::whirlwindTimer

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