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
 
void ReturnToLastPoint ()
 
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 ()
 
void JustExitedCombat () override
 Called when the unit leaves combat.
 
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
954 : npc_escortAI(creature)
955 {
956 allianceGuardsGUID.clear();
957 }
Definition ScriptedEscortAI.h:53
GuidVector allianceGuardsGUID
Definition zone_undercity.cpp:977

References allianceGuardsGUID.

Member Function Documentation

◆ EnterEvadeMode()

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

Reimplemented from npc_escortAI.

982 {
984 me->CombatStop(true);
985 me->SetLootRecipient(nullptr);
986
988 {
991 }
992 else
993 {
995 Reset();
996 }
997 }
@ STATE_ESCORT_ESCORTING
Definition ScriptedEscortAI.h:47
@ STATE_ESCORT_RETURNING
Definition ScriptedEscortAI.h:48
void SetLootRecipient(Unit *unit, bool withGroup=true)
Definition Creature.cpp:1282
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:580
MotionMaster * GetMotionMaster()
Definition Unit.h:1758
ThreatManager & GetThreatMgr()
Definition Unit.h:951
void CombatStop(bool includingCast=false, bool mutualPvP=true)
Definition Unit.cpp:7469
Creature * me
Definition ScriptedCreature.h:281
bool HasEscortState(uint32 escortState)
Definition ScriptedEscortAI.h:98
void AddEscortState(uint32 escortState)
Definition ScriptedEscortAI.h:110
void ReturnToLastPoint()
Definition ScriptedEscortAI.cpp:185
void Reset() override
Definition zone_undercity.cpp:999

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
1136 {
1137 phaseTimer = uiTimer;
1138 ++step;
1139 }
uint32 step
Definition zone_undercity.cpp:962
uint32 phaseTimer
Definition zone_undercity.cpp:963

References phaseTimer, and step.

Referenced by UpdateAI().

◆ JustSummoned()

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

Reimplemented from CreatureAI.

1083 {
1084 switch (summonedCreature->GetEntry())
1085 {
1086 case NPC_GENERATOR:
1087 summonedCreature->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
1088 summonedCreature->ApplySpellImmune(0, IMMUNITY_ID, SPELL_WRYNN_BUFF, true);
1089 summonedCreature->ApplySpellImmune(0, IMMUNITY_ID, SPELL_THRALL_BUFF, true);
1090 summonedCreature->ApplySpellImmune(0, IMMUNITY_ID, SPELL_SYLVANAS_BUFF, true);
1091 break;
1092 default:
1093 break;
1094 }
1095 }
@ IMMUNITY_ID
Definition SharedDefines.h:1406
@ 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:10437
void SetUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:748
@ SPELL_WRYNN_BUFF
Definition zone_undercity.cpp:397
@ SPELL_SYLVANAS_BUFF
Definition zone_undercity.cpp:554
@ NPC_GENERATOR
Definition zone_undercity.cpp:599
@ SPELL_THRALL_BUFF
Definition zone_undercity.cpp:488

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.

1000 {
1002 {
1003 me->SetCorpseDelay(1);
1004 me->SetRespawnTime(1);
1006
1007 bStepping = false;
1008 step = 0;
1009 phaseTimer = 0;
1010 jainaGUID.Clear();
1016
1018 {
1019 putress->DespawnOrUnsummon();
1021 }
1022
1024 {
1025 blightWorm->DespawnOrUnsummon();
1027 }
1028
1030 {
1031 khanok->DespawnOrUnsummon();
1032 khanokGUID.Clear();
1033 }
1034
1036 {
1037 thrall->DespawnOrUnsummon();
1038 thrallGUID.Clear();
1039 }
1040
1042 {
1043 sylvanas->DespawnOrUnsummon();
1045 }
1046
1047 for (uint8 i = 0; i < GENERATOR_MAXCOUNT; ++i)
1048 {
1050 {
1051 generatorGUID[i].Clear();
1052 temp->DespawnOrUnsummon();
1053 }
1054 }
1055
1056 for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
1057 {
1059 {
1061 temp->DespawnOrUnsummon();
1062 }
1063 }
1064
1065 for (ObjectGuid const& guid : allianceGuardsGUID)
1066 if (Creature* temp = ObjectAccessor::GetCreature(*me, guid))
1067 temp->DespawnOrUnsummon();
1068
1069 allianceGuardsGUID.clear();
1070
1071 for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
1072 {
1074 {
1076 temp->DespawnOrUnsummon();
1077 }
1078 }
1079 }
1080 }
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:3730
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:959
ObjectGuid jainaGUID
Definition zone_undercity.cpp:967
ObjectGuid putressGUID
Definition zone_undercity.cpp:968
ObjectGuid blightWormGUID
Definition zone_undercity.cpp:969
EventMap _events
Definition zone_undercity.cpp:979
ObjectGuid sylvanasGUID
Definition zone_undercity.cpp:972
ObjectGuid allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT]
Definition zone_undercity.cpp:975
ObjectGuid generatorGUID[GENERATOR_MAXCOUNT]
Definition zone_undercity.cpp:974
ObjectGuid khanokGUID
Definition zone_undercity.cpp:970
ObjectGuid hordeForcesGUID[HORDE_FORCE_MAXCOUNT]
Definition zone_undercity.cpp:976
ObjectGuid thrallGUID
Definition zone_undercity.cpp:971
@ EVENT_HEROIC_LEAP
Definition zone_undercity.cpp:402
@ EVENT_WRYNN_BUFF
Definition zone_undercity.cpp:404
@ EVENT_WHIRLWIND
Definition zone_undercity.cpp:401
@ EVENT_AGGRO_JAINA
Definition zone_undercity.cpp:403
@ HORDE_FORCE_MAXCOUNT
Definition zone_undercity.cpp:711
@ ALLIANCE_FORCE_MAXCOUNT
Definition zone_undercity.cpp:710
@ GENERATOR_MAXCOUNT
Definition zone_undercity.cpp:709

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
1131 {
1132 SetEscortPaused(bOnHold);
1133 }
void SetEscortPaused(bool on)
Definition ScriptedEscortAI.cpp:486

References npc_escortAI::SetEscortPaused().

Referenced by WaypointReached().

◆ SpawnWave()

void npc_varian_wrynn::npc_varian_wrynnAI::SpawnWave ( uint32  waveId)
inline
1142 {
1143 switch (waveId)
1144 {
1145 case 0:
1147 break;
1148 case 1:
1149 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1150 {
1151 switch (urand(0, 12))
1152 {
1153 case 0:
1155 break;
1156 case 1:
1157 case 2:
1158 case 3:
1160 break;
1161 case 4:
1162 case 5:
1163 case 6:
1165 break;
1166 case 7:
1167 case 8:
1168 case 9:
1170 break;
1171 case 10:
1172 case 11:
1173 case 12:
1175 break;
1176 }
1177 }
1178 break;
1179 case 2:
1180 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1181 {
1182 switch (urand(0, 3))
1183 {
1184 case 0:
1186 break;
1187 case 1:
1189 break;
1190 case 2:
1192 break;
1193 case 3:
1195 break;
1196 }
1197 }
1198 break;
1199 case 3:
1200 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1201 {
1202 switch (urand(0, 4))
1203 {
1204 case 0:
1206 break;
1207 case 1:
1208 case 2:
1210 break;
1211 case 3:
1212 case 4:
1214 break;
1215 }
1216 }
1217 break;
1218 case 4:
1219 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1220 {
1221 switch (urand(0, 5))
1222 {
1223 case 0:
1226 break;
1227 case 1:
1229 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1230 break;
1231 case 2:
1233 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1234 break;
1235 case 3:
1237 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1238 break;
1239 case 4:
1241 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1242 break;
1243 case 5:
1245 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1246 break;
1247 }
1248 }
1249 break;
1250 case 5:
1251 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1253 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1254 break;
1255 case 6:
1257 {
1258 blightWormGUID = temp->GetGUID();
1259 temp->AddThreat(me, 100.0f);
1260 me->AddThreat(temp, 100.0f);
1262 {
1263 temp->AddThreat(jaina, 100.0f);
1264 jaina->AddThreat(temp, 100.0f);
1265 }
1266 }
1268 {
1269 khanokGUID = temp->GetGUID();
1271 khanok->setDeathState(DeathState::JustDied);
1272 }
1274 {
1275 putressGUID = temp->GetGUID();
1276 temp->CastSpell(temp, SPELL_PUTRESS_CASTING_STATE);
1277 }
1278 for (uint8 i = 0; i < GENERATOR_MAXCOUNT; ++i)
1279 {
1280 switch (i)
1281 {
1282 case 0:
1283 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1433.142212f, 402.493835f, -80.515945f, TEMPSUMMON_MANUAL_DESPAWN))
1284 {
1285 generatorGUID[i] = temp->GetGUID();
1287 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT);
1288 }
1289 break;
1290 case 1:
1291 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1428.677979f, 399.753418f, -79.141609f, TEMPSUMMON_MANUAL_DESPAWN))
1292 {
1293 generatorGUID[i] = temp->GetGUID();
1295 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1296 }
1297 break;
1298 case 2:
1299 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1425.163330f, 402.268951f, -79.299744f, TEMPSUMMON_MANUAL_DESPAWN))
1300 {
1301 generatorGUID[i] = temp->GetGUID();
1303 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1304 }
1305 break;
1306 case 3:
1307 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1427.323242f, 406.853088f, -78.195641f, TEMPSUMMON_MANUAL_DESPAWN))
1308 {
1309 generatorGUID[i] = temp->GetGUID();
1311 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1312 }
1313 break;
1314 case 4:
1315 if (Unit* temp = me->SummonCreature(NPC_GENERATOR, 1432.465210f, 407.460022f, -81.689384f, TEMPSUMMON_MANUAL_DESPAWN))
1316 {
1317 generatorGUID[i] = temp->GetGUID();
1319 temp->CastSpell(putress, SPELL_BLIGHT_EMPOWERMENT, false, 0, 0, generatorGUID[0]);
1320 }
1321 break;
1322 }
1323 }
1324 break;
1325 case 7:
1327 {
1328 allianceGuardsGUID.push_back(temp->GetGUID());
1329 temp->GetMotionMaster()->MoveWaypoint(NPC_SW_SOLDIER * 10, false);
1330 }
1332 {
1333 allianceGuardsGUID.push_back(temp->GetGUID());
1334 temp->GetMotionMaster()->MoveWaypoint((NPC_SW_SOLDIER * 10) + 1, false);
1335 }
1337 {
1338 allianceGuardsGUID.push_back(temp->GetGUID());
1339 temp->GetMotionMaster()->MoveWaypoint((NPC_SW_SOLDIER * 10) + 2, false);
1340 }
1342 {
1343 allianceGuardsGUID.push_back(temp->GetGUID());
1344 temp->GetMotionMaster()->MoveWaypoint((NPC_SW_SOLDIER * 10) + 3, false);
1345 }
1346 break;
1347 case 8:
1348 break;
1349 case 9:
1350 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1352 break;
1353 case 10:
1355 {
1356 temp->GetMotionMaster()->MoveWaypoint(NPC_DREADLORD * 10, false);
1357 temp->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
1358 temp->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true);
1359 }
1360 break;
1361 case 11:
1362 for (uint8 i = 0; i < WAVE_MAXCOUNT; ++i)
1363 {
1364 switch (urand(0, 3))
1365 {
1366 case 0:
1368 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1369 break;
1370 case 1:
1372 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1373 break;
1374 case 2:
1376 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1377 break;
1378 case 3:
1380 temp->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
1381 break;
1382 }
1383 }
1384 break;
1385 case 12:
1387 {
1388 thrallGUID = temp->GetGUID();
1389 temp->SetReactState(REACT_PASSIVE);
1390 temp->SetImmuneToAll(true);
1391 temp->CastSpell(temp, SPELL_THRALL_BUFF);
1392 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1393 }
1395 {
1396 sylvanasGUID = temp->GetGUID();
1397 temp->SetReactState(REACT_PASSIVE);
1398 temp->SetImmuneToAll(true);
1399 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1400 }
1401 for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
1402 {
1404 {
1405 hordeForcesGUID[i] = temp->GetGUID();
1406 temp->SetReactState(REACT_PASSIVE);
1407 temp->SetImmuneToAll(true);
1408 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1409 }
1410 }
1411 break;
1412 case 13:
1413 for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
1414 {
1416 {
1417 allianceForcesGUID[i] = temp->GetGUID();
1418 temp->SetImmuneToAll(true);
1419 temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1420 }
1421 }
1422 break;
1423 }
1424 }
@ 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:1976
@ SPELL_EFFECT_KNOCK_BACK_DEST
Definition SharedDefines.h:910
@ SPELL_EFFECT_KNOCK_BACK
Definition SharedDefines.h:864
@ IMMUNITY_EFFECT
Definition SharedDefines.h:1400
@ 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:11413
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:2394
float o
Definition zone_undercity.cpp:719
float y
Definition zone_undercity.cpp:719
float x
Definition zone_undercity.cpp:719
float z
Definition zone_undercity.cpp:719
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:664
@ NPC_CHEMIST
Definition zone_undercity.cpp:665
@ NPC_DOCTOR
Definition zone_undercity.cpp:668
@ NPC_SW_SOLDIER
Definition zone_undercity.cpp:670
@ NPC_FELBEAST
Definition zone_undercity.cpp:667
@ NPC_DREADLORD
Definition zone_undercity.cpp:663
@ NPC_BETRAYER
Definition zone_undercity.cpp:666
@ NPC_COLLABORATOR
Definition zone_undercity.cpp:669
@ NPC_HORDE_SOLDIER
Definition zone_undercity.cpp:671
@ NPC_KHANOK
Definition zone_undercity.cpp:625
@ NPC_SYLVANAS
Definition zone_undercity.cpp:541
static LocationXYZO HordeSpawn[]
Definition zone_undercity.cpp:771
@ WAVE_MAXCOUNT
Definition zone_undercity.cpp:708
static LocationXYZO AllianceSpawn[]
Definition zone_undercity.cpp:722
@ NPC_BLIGHTWORM
Definition zone_undercity.cpp:581
@ NPC_PUTRESS
Definition zone_undercity.cpp:596
@ SPELL_PUTRESS_CASTING_STATE
Definition zone_undercity.cpp:606
@ SPELL_BLIGHT_EMPOWERMENT
Definition zone_undercity.cpp:602
@ NPC_EXPERIMENT
Definition zone_undercity.cpp:598
@ NPC_THRALL
Definition zone_undercity.cpp:439

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.

1098 {
1099 switch (summon->GetEntry())
1100 {
1101 case NPC_BLIGHTWORM:
1104 bStepping = true;
1105 break;
1106 case NPC_PUTRESS:
1109 bStepping = true;
1110 break;
1111 default:
1112 break;
1113 }
1114 }
@ 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:1116

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.

1496 {
1498
1499 if (bStepping)
1500 {
1501 if (phaseTimer <= diff)
1502 {
1503 switch (step)
1504 {
1505 //Preparation
1506 case 0:
1507 me->setActive(true);
1511 break;
1512 case 1:
1515 break;
1516 case 2:
1519 break;
1520 case 3:
1523 break;
1524 case 4:
1529 break;
1530 case 5:
1533 break;
1534 case 6:
1537 break;
1538 case 7:
1539 SetEscortPaused(false);
1541 break;
1542 case 8:
1544 {
1545 jaina->GetMotionMaster()->MoveWaypoint(NPC_JAINA * 10, false);
1546 jaina->setActive(true);
1547 }
1548 bStepping = false;
1549 JumpToNextStep(0);
1550 break;
1551 //Sewers
1552 case 9:
1554 SpawnWave(0);
1555 SpawnWave(1);
1556 SpawnWave(2);
1557 SpawnWave(3);
1558 JumpToNextStep(9500);
1559 break;
1560 case 10:
1562 jaina->AI()->Talk(JAINA_SAY_SEWERS_1);
1564 break;
1565 case 11:
1567 jaina->AI()->DoCast(SPELL_JAINA_BUFF);
1569 break;
1570 case 12:
1571 SetEscortPaused(false);
1575 break;
1576 case 13:
1578 {
1579 jaina->GetMotionMaster()->MoveFollow(me, 5, PET_FOLLOW_ANGLE);
1580 jaina->SetReactState(REACT_AGGRESSIVE);
1581 jaina->SetFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
1582 }
1583 bStepping = false;
1584 JumpToNextStep(0);
1585 break;
1586 case 14:
1589 break;
1590 case 15:
1591 SpawnWave(4);
1593 break;
1594 case 16:
1595 SpawnWave(5);
1597 break;
1598 case 17:
1599 SpawnWave(4);
1601 break;
1602 case 18:
1603 SpawnWave(4);
1605 break;
1606 case 19:
1607 SpawnWave(5);
1609 break;
1610 case 20:
1611 SpawnWave(6);
1612 bStepping = false;
1613 JumpToNextStep(0);
1614 break;
1615 case 21:
1617 SpawnWave(7);
1619 break;
1620 case 22:
1622 me->SetWalk(true);
1624 {
1625 jaina->GetMotionMaster()->Clear();
1626 jaina->GetMotionMaster()->MoveFollow(me, 1, 0);
1627 }
1629 break;
1630 case 23:
1631 bStepping = false;
1632 SetEscortPaused(false);
1633 JumpToNextStep(0);
1634 break;
1635 //Apothecarium
1636 case 24:
1638 jaina->AI()->Talk(JAINA_SAY_APO_1);
1640 break;
1641 case 25:
1642 SetEscortPaused(false);
1643 bStepping = false;
1644 JumpToNextStep(0);
1645 break;
1646 case 26:
1650 break;
1651 case 27:
1654 break;
1655 case 28:
1658 break;
1659 case 29:
1662 break;
1663 case 30:
1666 putress->AI()->Talk(PUTRESS_SAY_1);
1667 if (Player* player = GetPlayerForEscort())
1668 player->PlayDirectSound(SOUND_PUTRESS, player);
1669 SpawnWave(9);
1671 break;
1672 case 31:
1673 me->SetWalk(false);
1675 jaina->GetMotionMaster()->MoveFollow(me, 1, 0);
1676 SetEscortPaused(false);
1677 bStepping = false;
1678 JumpToNextStep(0);
1679 break;
1680 case 32:
1682 SpawnWave(10);
1684 break;
1685 case 33:
1686 SpawnWave(10);
1688 break;
1689 case 34:
1690 SpawnWave(10);
1692 break;
1693 case 35:
1694 SpawnWave(10);
1696 break;
1697 case 36:
1698 SpawnWave(10);
1700 break;
1701 case 37:
1702 SpawnWave(10);
1704 break;
1705 case 38:
1706 SpawnWave(10);
1708 break;
1709 case 39:
1710 SpawnWave(10);
1712 break;
1713 case 40:
1714 SpawnWave(10);
1716 break;
1717 case 41:
1718 SpawnWave(10);
1720 break;
1721 case 42:
1722 SpawnWave(10);
1724 break;
1725 case 43:
1726 SetEscortPaused(false);
1727 bStepping = false;
1728 JumpToNextStep(0);
1729 break;
1730 case 44:
1733 {
1734 jaina->GetMotionMaster()->Clear();
1735 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[7].x, AllianceWP[7].y, AllianceWP[7].z, FORCED_MOVEMENT_NONE, 0.f, 0.f, false);
1736 }
1738 break;
1739 case 45:
1740 SetEscortPaused(false);
1741 bStepping = false;
1742 JumpToNextStep(0);
1743 break;
1744 case 46:
1747 break;
1748 case 47:
1750 putress->AI()->Talk(PUTRESS_SAY_3);
1751 SpawnWave(11);
1753 break;
1754 case 48:
1756 putress->AI()->Talk(PUTRESS_SAY_4);
1758 break;
1759 case 49:
1761 putress->AI()->Talk(PUTRESS_SAY_5);
1762 SpawnWave(11);
1764 break;
1765 case 50:
1767 putress->AI()->Talk(PUTRESS_SAY_6);
1769 break;
1770 case 51:
1772 putress->AI()->Talk(PUTRESS_SAY_7);
1773 SpawnWave(11);
1775 break;
1776 case 52:
1778 {
1779 putress->AI()->Talk(PUTRESS_SAY_8);
1780 putress->AI()->DoCast(SPELL_BLIGHT_OVERLOAD);
1781 }
1783 break;
1784 case 53:
1786 {
1787 putress->SetImmuneToAll(false);
1788 putress->AddThreat(me, 100.0f);
1789 me->AddThreat(putress, 100.0f);
1790 putress->RemoveAura(SPELL_PUTRESS_CASTING_STATE);
1791 }
1792 bStepping = false;
1793 JumpToNextStep(0);
1794 break;
1795 case 54:
1797 me->SetWalk(true);
1799 break;
1800 case 55:
1805 break;
1806 case 56:
1810 SetEscortPaused(false);
1811 bStepping = false;
1812 JumpToNextStep(0);
1813 break;
1814 case 57:
1816 break;
1817 case 58:
1820 break;
1821 case 59:
1824 break;
1825 case 60:
1827 SpawnWave(12); // thrall sylvanas horde soldiers
1829 break;
1830 case 61:
1832 thrall->AI()->Talk(THRALL_SAY_THRONE_A_1);
1833 if (Player* player = GetPlayerForEscort())
1834 player->PlayDirectSound(SOUND_THRALL_1, player);
1836 break;
1837 case 62:
1839 thrall->AI()->Talk(THRALL_SAY_THRONE_A_2);
1840 if (Player* player = GetPlayerForEscort())
1841 player->PlayDirectSound(SOUND_THRALL_2, player);
1843 break;
1844 case 63:
1847 break;
1848 case 64:
1851 break;
1852 case 65:
1853 me->SetWalk(false);
1854 SetEscortPaused(false);
1856 break;
1857 case 66:
1859 jaina->AI()->Talk(JAINA_SAY_THRONE_1);
1860 me->SetImmuneToNPC(true);
1861 bStepping = false;
1862 JumpToNextStep(0);
1863 break;
1864 case 67:
1867 break;
1868 case 68:
1871 {
1872 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[8].x, AllianceWP[8].y, AllianceWP[8].z);
1873 jaina->SetImmuneToAll(true);
1874 }
1875 SetEscortPaused(false);
1876 bStepping = false;
1877 JumpToNextStep(0);
1878 break;
1879 case 69:
1881 SpawnWave(13); //alliance soldiers
1883 break;
1884 case 70:
1887 break;
1888 case 71:
1891 break;
1892 case 72:
1895 break;
1896 case 73:
1898 me->SetImmuneToAll(false);
1900 {
1901 thrall->SetReactState(REACT_AGGRESSIVE);
1902 thrall->SetImmuneToNPC(false);
1903 thrall->SetImmuneToPC(true);
1904 thrall->AddThreat(me, 100.0f);
1905 me->AddThreat(thrall, 100.0f);
1906 thrall->AI()->AttackStart(me);
1907 }
1909 {
1910 sylvanas->SetReactState(REACT_AGGRESSIVE);
1911 sylvanas->SetImmuneToNPC(false);
1912 sylvanas->SetImmuneToPC(true);
1913 sylvanas->AddThreat(me, 100.0f);
1914 sylvanas->AI()->AttackStart(me);
1915 me->AddThreat(sylvanas, 100.0f);
1916 }
1917 for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
1918 {
1920 {
1921 temp->SetReactState(REACT_AGGRESSIVE);
1922 temp->SetImmuneToNPC(false);
1923 temp->SetImmuneToPC(true);
1924 }
1925 }
1926 for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
1927 {
1929 {
1931 {
1932 temp->SetReactState(REACT_AGGRESSIVE);
1933 temp2->SetReactState(REACT_AGGRESSIVE);
1934 temp->SetImmuneToAll(false);
1935 temp2->SetImmuneToAll(false);
1936 temp->AddThreat(temp2, 100.0f);
1937 temp->AI()->AttackStart(temp2);
1938 temp2->AddThreat(temp, 100.0f);
1939 }
1940 }
1941 }
1943 break;
1944 case 74:
1946 {
1947 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[9].x, AllianceWP[9].y, AllianceWP[9].z);
1948 jaina->AI()->Talk(JAINA_SAY_THRONE_2);
1949 }
1951 break;
1952 case 75:
1954 {
1955 jaina->AI()->DoCastAOE(SPELL_DEEPFREEZE);
1956 jaina->AI()->Talk(JAINA_SAY_THRONE_3);
1957 }
1959 break;
1960 case 76:
1961 std::list<Creature*> HelperList;
1962 me->GetCreatureListWithEntryInGrid(HelperList, NPC_SW_SOLDIER, 100.0f);
1964 me->GetCreatureListWithEntryInGrid(HelperList, NPC_JAINA, 100.0f);
1965 me->GetCreatureListWithEntryInGrid(HelperList, NPC_SYLVANAS, 100.0f);
1966 me->GetCreatureListWithEntryInGrid(HelperList, NPC_THRALL, 100.0f);
1967 if (!HelperList.empty())
1968 for (std::list<Creature*>::iterator itr = HelperList.begin(); itr != HelperList.end(); itr++)
1969 (*itr)->DespawnOrUnsummon();
1970 if (Map* map = me->GetMap())
1971 {
1972 Map::PlayerList const& PlayerList = map->GetPlayers();
1973 for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
1974 {
1975 if (Player* player = i->GetSource())
1976 {
1977 if (me->IsInRange(player, 0.0f, 50.0f))
1978 {
1979 if (player->GetTeamId() == TEAM_ALLIANCE)
1980 {
1981 player->RemoveAura(SPELL_WRYNN_BUFF);
1982 player->RemoveAura(SPELL_JAINA_BUFF);
1983 player->CompleteQuest(QUEST_BATTLE_A);
1984 player->NearTeleportTo(-8445.213867f, 337.384277f, 121.746056f, 5.401534f, false);
1985 }
1986 }
1987 }
1988 }
1989 }
1994 break;
1995 }
1996 }
1997 else phaseTimer -= diff;
1998 }
1999
2000 if (!UpdateVictim())
2001 return;
2002
2003 _events.Update(diff);
2004
2006 return;
2007
2008 while (uint32 eventId = _events.ExecuteEvent())
2009 {
2010 switch (eventId)
2011 {
2012 case EVENT_WHIRLWIND:
2015 break;
2016 case EVENT_HEROIC_LEAP:
2019 break;
2020 case EVENT_AGGRO_JAINA:
2021 if (me->GetVictim())
2022 {
2024 {
2025 jaina->AI()->AttackStart(me->GetVictim());
2026 }
2027 }
2030 break;
2031 case EVENT_WRYNN_BUFF:
2034 break;
2035 default:
2036 break;
2037 }
2038 }
2039
2041 }
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:353
void SetTarget(ObjectGuid guid=ObjectGuid::Empty) override
Definition Creature.cpp:3464
void DespawnOrUnsummon(Milliseconds msTimeToDespawn=0ms, Seconds forcedRespawnTimer=0s)
Definition Creature.cpp:2126
bool SetWalk(bool enable) override
Enable or disable the creature's walk mode by removing: MOVEMENTFLAG_WALKING. Infom also the client.
Definition Creature.cpp:3247
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:164
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:10618
void RemoveStandFlags(uint8 flags)
Definition Unit.h:1787
Unit * GetVictim() const
Definition Unit.h:903
bool HasUnitState(const uint32 f) const
Definition Unit.h:736
void SetStandState(uint8 state)
Definition Unit.cpp:13089
void SetImmuneToAll(bool apply, bool keepCombat=false)
Definition Unit.h:924
void SetStandFlags(uint8 flags)
Definition Unit.h:1786
void setActive(bool isActiveObject)
Definition Object.cpp:1082
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
Definition Object.cpp:2560
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:231
Player * GetPlayerForEscort()
Definition ScriptedEscortAI.h:114
void SpawnWave(uint32 waveId)
Definition zone_undercity.cpp:1141
void JumpToNextStep(uint32 uiTimer)
Definition zone_undercity.cpp:1135
@ WRYNN_SAY_APO_12
Definition zone_undercity.cpp:384
@ WRYNN_SAY_SEWERS_4
Definition zone_undercity.cpp:372
@ WRYNN_SAY_APO_6
Definition zone_undercity.cpp:378
@ WRYNN_SAY_THRONE_9
Definition zone_undercity.cpp:393
@ WRYNN_SAY_THRONE_2
Definition zone_undercity.cpp:386
@ WRYNN_SAY_THRONE_4
Definition zone_undercity.cpp:388
@ SPELL_HEROIC_LEAP
Definition zone_undercity.cpp:398
@ WRYNN_SAY_PREP_1
Definition zone_undercity.cpp:363
@ WRYNN_SAY_THRONE_5
Definition zone_undercity.cpp:389
@ WRYNN_SAY_APO_2
Definition zone_undercity.cpp:374
@ WRYNN_SAY_APO_11
Definition zone_undercity.cpp:383
@ WRYNN_SAY_APO_4
Definition zone_undercity.cpp:376
@ WRYNN_SAY_APO_7
Definition zone_undercity.cpp:379
@ WRYNN_SAY_APO_5
Definition zone_undercity.cpp:377
@ WRYNN_SAY_APO_3
Definition zone_undercity.cpp:375
@ WRYNN_SAY_THRONE_3
Definition zone_undercity.cpp:387
@ WRYNN_SAY_SEWERS_2
Definition zone_undercity.cpp:370
@ WRYNN_SAY_APO_8
Definition zone_undercity.cpp:380
@ WRYNN_SAY_THRONE_1
Definition zone_undercity.cpp:385
@ WRYNN_SAY_THRONE_6
Definition zone_undercity.cpp:390
@ WRYNN_SAY_SEWERS_1
Definition zone_undercity.cpp:369
@ WRYNN_SAY_APO_10
Definition zone_undercity.cpp:382
@ WRYNN_SAY_PREP_4
Definition zone_undercity.cpp:366
@ WRYNN_SAY_PREP_2
Definition zone_undercity.cpp:364
@ WRYNN_SAY_THRONE_8
Definition zone_undercity.cpp:392
@ WRYNN_SAY_PREP_6
Definition zone_undercity.cpp:368
@ WRYNN_SAY_THRONE_7
Definition zone_undercity.cpp:391
@ WRYNN_SAY_PREP_5
Definition zone_undercity.cpp:367
@ WRYNN_SAY_PREP_3
Definition zone_undercity.cpp:365
@ SPELL_WHIRLWIND
Definition zone_undercity.cpp:396
@ WRYNN_SAY_APO_1
Definition zone_undercity.cpp:373
@ WRYNN_SAY_APO_9
Definition zone_undercity.cpp:381
@ WRYNN_SAY_SEWERS_3
Definition zone_undercity.cpp:371
@ SPELL_JAINA_BUFF
Definition zone_undercity.cpp:424
@ JAINA_SAY_THRONE_1
Definition zone_undercity.cpp:415
@ JAINA_SAY_THRONE_2
Definition zone_undercity.cpp:416
@ JAINA_SAY_THRONE_3
Definition zone_undercity.cpp:417
@ NPC_JAINA
Definition zone_undercity.cpp:410
@ JAINA_SAY_SEWERS_1
Definition zone_undercity.cpp:413
@ JAINA_SAY_APO_1
Definition zone_undercity.cpp:414
@ SPELL_DEEPFREEZE
Definition zone_undercity.cpp:423
@ QUEST_BATTLE_A
Definition zone_undercity.cpp:699
@ PUTRESS_SAY_3
Definition zone_undercity.cpp:611
@ SPELL_BLIGHT_OVERLOAD
Definition zone_undercity.cpp:603
@ PUTRESS_SAY_6
Definition zone_undercity.cpp:614
@ PUTRESS_SAY_5
Definition zone_undercity.cpp:613
@ SOUND_PUTRESS
Definition zone_undercity.cpp:619
@ PUTRESS_SAY_8
Definition zone_undercity.cpp:616
@ PUTRESS_SAY_7
Definition zone_undercity.cpp:615
@ PUTRESS_SAY_4
Definition zone_undercity.cpp:612
@ PUTRESS_SAY_1
Definition zone_undercity.cpp:609
@ THRALL_SAY_THRONE_A_2
Definition zone_undercity.cpp:446
@ SOUND_THRALL_1
Definition zone_undercity.cpp:484
@ SPELL_THUNDER
Definition zone_undercity.cpp:507
@ SOUND_THRALL_2
Definition zone_undercity.cpp:485
@ THRALL_SAY_THRONE_A_1
Definition zone_undercity.cpp:445
static LocationXYZO AllianceWP[]
Definition zone_undercity.cpp:757

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
1117 {
1118 Map::PlayerList const& players = map->GetPlayers();
1119
1120 if (!players.IsEmpty())
1121 {
1122 for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
1123 {
1124 if (Player* player = itr->GetSource())
1125 player->SendUpdateWorldState(id, state);
1126 }
1127 }
1128 }
bool IsEmpty() const
Definition LinkedList.h:97
PlayerList const & GetPlayers() const
Definition Map.h:326

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.

1428 {
1429 switch (waypointId)
1430 {
1431 case 0:
1432 SetHoldState(true);
1433 bStepping = true;
1434 break;
1435 case 2:
1436 SetHoldState(true);
1437 bStepping = true;
1438 break;
1439 case 38:
1441 {
1442 jaina->GetMotionMaster()->Clear();
1443 jaina->SetImmuneToNPC(false);
1444 jaina->SetReactState(REACT_AGGRESSIVE);
1445 }
1446 SetHoldState(true);
1447 bStepping = true;
1448 break;
1449 case 45:
1450 SetHoldState(true);
1451 bStepping = true;
1453 {
1454 jaina->GetMotionMaster()->Clear();
1455 jaina->GetMotionMaster()->MovePoint(0, AllianceWP[6].x, AllianceWP[6].y, AllianceWP[6].z);
1456 }
1457 break;
1458 case 46:
1459 SetHoldState(true);
1460 bStepping = true;
1461 break;
1462 case 48:
1464 putress->AI()->Talk(PUTRESS_SAY_2);
1465 if (Player* player = GetPlayerForEscort())
1466 player->PlayDirectSound(SOUND_PUTRESS, player);
1467 break;
1468 case 50:
1469 SetHoldState(true);
1470 bStepping = true;
1471 break;
1472 case 63:
1473 SetHoldState(true);
1474 bStepping = true;
1475 break;
1476 case 65:
1477 SetHoldState(true);
1478 bStepping = true;
1479 break;
1480 case 66:
1481 SetHoldState(true);
1482 bStepping = true;
1483 break;
1484 case 87:
1485 SetHoldState(true);
1486 bStepping = true;
1487 break;
1488 case 88:
1489 SetHoldState(true);
1490 bStepping = true;
1491 break;
1492 }
1493 }
void SetHoldState(bool bOnHold)
Definition zone_undercity.cpp:1130
@ PUTRESS_SAY_2
Definition zone_undercity.cpp:610

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.

193{ }

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: