AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_valkyr_shadowguard::npc_valkyr_shadowguardAI Struct Reference
Inheritance diagram for npc_valkyr_shadowguard::npc_valkyr_shadowguardAI:
NullCreatureAI CreatureAI UnitAI

Public Member Functions

 npc_valkyr_shadowguardAI (Creature *creature)
 
bool IsHeroic ()
 
void GoSiphon ()
 
void OnCharmed (bool) override
 
void PassengerBoarded (Unit *pass, int8, bool apply) override
 == Fields =======================================
 
void DamageTaken (Unit *, uint32 &damage, DamageEffectType, SpellSchoolMask) override
 
void MovementInform (uint32 type, uint32 id) override
 
void SetGUID (ObjectGuid guid, int32) override
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from NullCreatureAI
 NullCreatureAI (Creature *c)
 
void MoveInLineOfSight (Unit *) override
 
void AttackStart (Unit *) override
 
void UpdateAI (uint32) override
 
void EnterEvadeMode (EvadeReason) override
 
void OnCharmed (bool) override
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s)
 Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
 
void Talk (uint8 id, Milliseconds delay)
 
 CreatureAI (Creature *creature)
 
 ~CreatureAI () override
 
void MoveCircleChecks ()
 
void MoveBackwardsChecks ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At =================================
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual void EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
virtual void JustEngagedWith (Unit *)
 Called for reaction when initially engaged.
 
virtual void JustDied (Unit *)
 
virtual void KilledUnit (Unit *)
 
virtual void JustSummoned (Creature *)
 
virtual void IsSummonedBy (WorldObject *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void SummonedCreatureDespawnAll ()
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual void SpellHitTarget (Unit *, SpellInfo const *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted ()
 
virtual void JustRespawned ()
 
virtual void MovementInform (uint32, uint32)
 
virtual void PathEndReached (uint32)
 
void OnCharmed (bool apply) override
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *)
 
virtual void OwnerAttacked (Unit *)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ==================
 
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 ()
 
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 *)
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void AttackStart (Unit *)
 
virtual void UpdateAI (uint32)=0
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void OnCharmed (bool apply)=0
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
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)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
virtual void JustEnteredCombat (Unit *)
 Called when the unit enters combat (NOTE: Creature engage logic should NOT be here, but in JustEngagedWith, which happens once threat is established!)
 
virtual void JustExitedCombat ()
 Called when the unit leaves combat.
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
void AttackStartCaster (Unit *victim, float dist)
 
SpellCastResult DoAddAuraToAllHostilePlayers (uint32 spellid)
 
SpellCastResult DoCast (uint32 spellId)
 
SpellCastResult DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastSelf (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false)
 
SpellCastResult DoCastVictim (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastAOE (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 
SpellCastResult DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 Cast spell on the max threat target, which may not always 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)
 
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

EventMap _events
 
Position _destPoint
 
ObjectGuid _grabbedPlayer
 
bool didbelow50pct
 
bool dropped
 
InstanceScript_instance
 

Additional Inherited Members

- 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 NullCreatureAI
static int32 Permissible (Creature const *creature)
 
- 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 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)
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
EventMap events
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_valkyr_shadowguardAI()

npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::npc_valkyr_shadowguardAI ( Creature creature)
inline
2518 : NullCreatureAI(creature), didbelow50pct(false), dropped(false), _instance(creature->GetInstanceScript())
2519 {
2523 _events.Reset();
2525 me->SetWalk(false);
2526 }
@ REACT_PASSIVE
Definition: Unit.h:1023
@ SPELL_AURA_MOD_TAUNT
Definition: SpellAuraDefines.h:74
@ EVENT_GRAB_PLAYER
Definition: boss_the_lich_king.cpp:268
@ SPELL_EFFECT_ATTACK_ME
Definition: SharedDefines.h:864
@ IMMUNITY_STATE
Definition: SharedDefines.h:1367
@ IMMUNITY_EFFECT
Definition: SharedDefines.h:1366
void ScheduleEvent(uint32 eventId, uint32 time, uint32 group=0, uint32 phase=0)
Definition: EventMap.cpp:56
void Reset()
Definition: EventMap.cpp:21
Definition: PassiveAI.h:53
Creature *const me
Definition: CreatureAI.h:72
void SetReactState(ReactStates st)
Definition: Creature.h:89
bool SetWalk(bool enable) override
Definition: Creature.cpp:3081
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply, SpellImmuneBlockType blockType=SPELL_BLOCK_TYPE_ALL)
Definition: Unit.cpp:13300
EventMap _events
Definition: boss_the_lich_king.cpp:2528
bool didbelow50pct
Definition: boss_the_lich_king.cpp:2531
InstanceScript * _instance
Definition: boss_the_lich_king.cpp:2533
bool dropped
Definition: boss_the_lich_king.cpp:2532

References _events, Unit::ApplySpellImmune(), EVENT_GRAB_PLAYER, IMMUNITY_EFFECT, IMMUNITY_STATE, CreatureAI::me, REACT_PASSIVE, EventMap::Reset(), EventMap::ScheduleEvent(), Creature::SetReactState(), Creature::SetWalk(), SPELL_AURA_MOD_TAUNT, and SPELL_EFFECT_ATTACK_ME.

Member Function Documentation

◆ DamageTaken()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::DamageTaken ( Unit ,
uint32 damage,
DamageEffectType  ,
SpellSchoolMask   
)
inlineoverridevirtual

Reimplemented from UnitAI.

2568 {
2569 if (IsHeroic() && !didbelow50pct && !dropped && me->HealthBelowPctDamaged(50, damage))
2570 GoSiphon();
2571 }
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
Definition: Unit.h:1445
void GoSiphon()
Definition: boss_the_lich_king.cpp:2537
bool IsHeroic()
Definition: boss_the_lich_king.cpp:2535

References didbelow50pct, dropped, GoSiphon(), Unit::HealthBelowPctDamaged(), IsHeroic(), and CreatureAI::me.

◆ GoSiphon()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::GoSiphon ( )
inline
2538 {
2539 didbelow50pct = true;
2540 me->CastSpell((Unit*)nullptr, SPELL_EJECT_ALL_PASSENGERS, false);
2541 float dist = rand_norm() * 10.0f + 5.0f;
2542 float angle = CenterPosition.GetAngle(me);
2543 _destPoint.Relocate(CenterPosition.GetPositionX() + dist * cos(angle), CenterPosition.GetPositionY() + dist * std::sin(angle), 855.0f + frand(0.0f, 4.0f), 0.0f);
2545 _events.Reset();
2547 }
float frand(float min, float max)
Definition: Random.cpp:57
double rand_norm()
Definition: Random.cpp:77
@ SPELL_EJECT_ALL_PASSENGERS
Definition: boss_the_lich_king.cpp:145
Position const CenterPosition
Definition: boss_the_lich_king.cpp:310
@ EVENT_MOVE_TO_SIPHON_POS
Definition: boss_the_lich_king.cpp:270
void SetHomePosition(float x, float y, float z, float o)
Definition: Creature.h:328
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
float GetAngle(const Position *pos) const
Definition: Position.cpp:77
void Relocate(float x, float y)
Definition: Position.h:73
Definition: Unit.h:1290
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
Position _destPoint
Definition: boss_the_lich_king.cpp:2529

References _destPoint, _events, Unit::CastSpell(), CenterPosition, didbelow50pct, EVENT_MOVE_TO_SIPHON_POS, frand(), Position::GetAngle(), Position::GetPositionX(), Position::GetPositionY(), CreatureAI::me, rand_norm(), Position::Relocate(), EventMap::Reset(), EventMap::ScheduleEvent(), Creature::SetHomePosition(), and SPELL_EJECT_ALL_PASSENGERS.

Referenced by DamageTaken(), MovementInform(), and PassengerBoarded().

◆ IsHeroic()

bool npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::IsHeroic ( )
inline
2535{ return me->GetMap()->IsHeroic(); }
Map * GetMap() const
Definition: Object.h:517
bool IsHeroic() const
Definition: Map.h:451

References WorldObject::GetMap(), Map::IsHeroic(), and CreatureAI::me.

Referenced by DamageTaken(), MovementInform(), and PassengerBoarded().

◆ MovementInform()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::MovementInform ( uint32  type,
uint32  id 
)
inlineoverridevirtual

Reimplemented from CreatureAI.

2574 {
2575 if (type != POINT_MOTION_TYPE)
2576 return;
2577
2578 switch (id)
2579 {
2580 case EVENT_CHARGE:
2581 {
2582 bool valid = false;
2584 if (target->FindMap() == me->GetMap() && target->GetExactDist(me) < 15.0f && !target->GetVehicle())
2586 {
2587 std::list<Creature*> triggers;
2589 triggers.remove_if(HeightDifferenceCheck(platform, 5.0f, true));
2590 if (!triggers.empty())
2591 {
2592 valid = true;
2593 triggers.sort(Acore::ObjectDistanceOrderPred(me));
2594
2595 target->GetMotionMaster()->Clear();
2596 target->UpdatePosition(*me, true);
2597 target->StopMovingOnCurrentPos();
2598
2599 me->CastSpell(target, SPELL_VALKYR_CARRY, false);
2600 _destPoint.Relocate(triggers.front());
2601 _events.Reset();
2603 }
2604 }
2605 if (!valid)
2606 {
2607 _events.Reset();
2610 }
2611 }
2612 break;
2613 case POINT_DROP_PLAYER:
2614 {
2615 if (didbelow50pct || dropped)
2616 break;
2617 if (me->GetExactDist(&_destPoint) > 1.5f) // movement was interrupted (probably by a stun, start again)
2618 {
2619 _events.Reset();
2621 break;
2622 }
2623 dropped = true;
2624 _events.Reset();
2625 /*Player* p = nullptr;
2626 if (Vehicle* v = me->GetVehicleKit())
2627 if (Unit* passenger = v->GetPassenger(0))
2628 p = passenger->ToPlayer();*/
2629 me->CastSpell((Unit*)nullptr, SPELL_EJECT_ALL_PASSENGERS, false);
2630
2631 if (IsHeroic())
2632 GoSiphon();
2633 else
2634 me->DespawnOrUnsummon(1000);
2635 }
2636 break;
2637 case POINT_START_SIPHON:
2638 if (me->GetExactDist(&_destPoint) > 1.5f) // movement was interrupted (probably by a stun, start again)
2639 {
2640 _events.Reset();
2642 break;
2643 }
2647 break;
2648 }
2649 }
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition: ScriptedCreature.cpp:775
@ POINT_MOTION_TYPE
Definition: MotionMaster.h:46
@ NPC_WORLD_TRIGGER
Definition: trial_of_the_crusader.h:153
@ SPELL_VALKYR_CARRY
Definition: boss_the_lich_king.cpp:144
@ POINT_START_SIPHON
Definition: boss_the_lich_king.cpp:328
@ POINT_DROP_PLAYER
Definition: boss_the_lich_king.cpp:327
@ EVENT_LIFE_SIPHON
Definition: boss_the_lich_king.cpp:271
@ EVENT_MOVE_TO_DROP_POS
Definition: boss_the_lich_king.cpp:269
@ DATA_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:136
@ EVENT_CHARGE
Definition: SharedDefines.h:3283
GameObject * GetGameObject(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:189
Player * GetPlayer(Map const *, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:225
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2108
Definition: GameObject.h:122
Definition: Object.h:681
void Clear()
Definition: ObjectGuid.h:140
float GetExactDist(float x, float y, float z) const
Definition: Position.h:178
Definition: Player.h:1046
ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:94
Definition: boss_the_lich_king.cpp:614
ObjectGuid _grabbedPlayer
Definition: boss_the_lich_king.cpp:2530

References _destPoint, _events, _grabbedPlayer, _instance, Unit::ApplySpellImmune(), Unit::CastSpell(), ObjectGuid::Clear(), DATA_ARTHAS_PLATFORM, Creature::DespawnOrUnsummon(), didbelow50pct, dropped, EVENT_CHARGE, EVENT_GRAB_PLAYER, EVENT_LIFE_SIPHON, EVENT_MOVE_TO_DROP_POS, EVENT_MOVE_TO_SIPHON_POS, GetCreatureListWithEntryInGrid(), Position::GetExactDist(), ObjectAccessor::GetGameObject(), InstanceScript::GetGuidData(), WorldObject::GetMap(), ObjectAccessor::GetPlayer(), GoSiphon(), IMMUNITY_EFFECT, IMMUNITY_STATE, IsHeroic(), CreatureAI::me, NPC_WORLD_TRIGGER, POINT_DROP_PLAYER, POINT_MOTION_TYPE, POINT_START_SIPHON, Position::Relocate(), EventMap::Reset(), EventMap::ScheduleEvent(), SPELL_AURA_MOD_TAUNT, SPELL_EFFECT_ATTACK_ME, SPELL_EJECT_ALL_PASSENGERS, and SPELL_VALKYR_CARRY.

◆ OnCharmed()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::OnCharmed ( bool  )
inlineoverridevirtual

Reimplemented from NullCreatureAI.

2549{}

◆ PassengerBoarded()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::PassengerBoarded ( Unit ,
int8  ,
bool   
)
inlineoverridevirtual

== Fields =======================================

Reimplemented from CreatureAI.

2552 {
2553 if (apply)
2554 {
2555 //pass->ClearUnitState(UNIT_STATE_ONVEHICLE);
2556 return;
2557 }
2558 pass->RemoveAurasDueToSpell(VEHICLE_SPELL_PARACHUTE);
2559 if (didbelow50pct || dropped)
2560 return;
2561 if (IsHeroic())
2562 GoSiphon();
2563 else
2564 me->DespawnOrUnsummon(1000);
2565 }
@ VEHICLE_SPELL_PARACHUTE
Definition: VehicleDefines.h:54

References Creature::DespawnOrUnsummon(), didbelow50pct, dropped, GoSiphon(), IsHeroic(), CreatureAI::me, Unit::RemoveAurasDueToSpell(), and VEHICLE_SPELL_PARACHUTE.

◆ SetGUID()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::SetGUID ( ObjectGuid  guid,
int32   
)
inlineoverridevirtual

Reimplemented from UnitAI.

2652 {
2653 _grabbedPlayer = guid;
2654 }

References _grabbedPlayer.

◆ UpdateAI()

void npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from NullCreatureAI.

2657 {
2658 _events.Update(diff);
2659
2661 return;
2662
2663 switch (_events.ExecuteEvent())
2664 {
2665 case EVENT_GRAB_PLAYER:
2666 if (!_grabbedPlayer)
2667 {
2668 me->CastSpell((Unit*)nullptr, SPELL_VALKYR_TARGET_SEARCH, false);
2670 }
2671 break;
2674 me->SetCanFly(false);
2675 me->SetDisableGravity(false);
2677 me->SetDisableGravity(true, true);
2679 break;
2681 me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // just in case if passenger disappears so quickly that EVENT_MOVE_TO_DROP_POS is never executed
2682 { int32 bp0 = 80; me->CastCustomSpell(me, 1557, &bp0, nullptr, nullptr, true); }
2683 me->SetCanFly(true);
2684 me->SetDisableGravity(true);
2687 break;
2688 case EVENT_LIFE_SIPHON:
2689 {
2690 Unit* target = nullptr;
2692 if (!tauntAuras.empty())
2693 for (Unit::AuraEffectList::const_reverse_iterator itr = tauntAuras.rbegin(); itr != tauntAuras.rend(); ++itr)
2694 if (Unit* caster = (*itr)->GetCaster())
2695 if (me->IsValidAttackTarget(caster))
2696 {
2697 target = caster;
2698 break;
2699 }
2700 if (!target)
2702 target = lichKing->AI()->SelectTarget(SelectTargetMethod::Random, 0, NonTankLKTargetSelector(lichKing, true, false, 100.0f));
2703 if (target)
2704 me->CastSpell(target, SPELL_LIFE_SIPHON, false);
2706 }
2707 break;
2708 default:
2709 break;
2710 }
2711 }
std::int32_t int32
Definition: Define.h:104
@ UNIT_STATE_NO_ENVIRONMENT_UPD
Definition: Unit.h:353
@ UNIT_STATE_CASTING
Definition: Unit.h:340
@ UNIT_STATE_STUNNED
Definition: Unit.h:328
@ UNIT_FLAG_NON_ATTACKABLE
Definition: Unit.h:449
@ SPELL_VALKYR_TARGET_SEARCH
Definition: boss_the_lich_king.cpp:141
@ SPELL_LIFE_SIPHON
Definition: boss_the_lich_king.cpp:146
@ DATA_THE_LICH_KING
Definition: icecrown_citadel.h:105
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:215
uint32 ExecuteEvent()
Definition: EventMap.cpp:114
void Update(uint32 time)
Definition: EventMap.h:54
Definition: Creature.h:46
bool SetDisableGravity(bool disable, bool packetOnly=false, bool updateAnimationTier=true) override
Definition: Creature.cpp:3092
bool SetCanFly(bool enable, bool packetOnly=false) override
Definition: Creature.cpp:3177
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
Definition: Unit.h:1967
MotionMaster * GetMotionMaster()
Definition: Unit.h:2262
SpellCastResult CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1226
void AddUnitState(uint32 f)
Definition: Unit.h:1397
void SendMovementFlagUpdate(bool self=false)
Definition: Unit.cpp:16878
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1398
std::list< AuraEffect * > AuraEffectList
Definition: Unit.h:1306
bool IsValidAttackTarget(Unit const *target, SpellInfo const *bySpell=nullptr) const
Definition: Unit.cpp:13776
void RemoveUnitFlag(UnitFlags flags)
Definition: Unit.h:1482
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition: MotionMaster.h:210
Definition: boss_the_lich_king.cpp:401

References _destPoint, _events, _grabbedPlayer, _instance, Unit::AddUnitState(), Unit::CastCustomSpell(), Unit::CastSpell(), DATA_THE_LICH_KING, EVENT_GRAB_PLAYER, EVENT_LIFE_SIPHON, EVENT_MOVE_TO_DROP_POS, EVENT_MOVE_TO_SIPHON_POS, EventMap::ExecuteEvent(), Unit::GetAuraEffectsByType(), ObjectAccessor::GetCreature(), InstanceScript::GetGuidData(), Unit::GetMotionMaster(), Unit::HasUnitState(), Unit::IsValidAttackTarget(), CreatureAI::me, MotionMaster::MovePoint(), POINT_DROP_PLAYER, POINT_START_SIPHON, Unit::RemoveUnitFlag(), EventMap::ScheduleEvent(), Unit::SendMovementFlagUpdate(), Creature::SetCanFly(), Creature::SetDisableGravity(), SPELL_AURA_MOD_TAUNT, SPELL_LIFE_SIPHON, SPELL_VALKYR_TARGET_SEARCH, UNIT_FLAG_NON_ATTACKABLE, UNIT_STATE_CASTING, UNIT_STATE_NO_ENVIRONMENT_UPD, UNIT_STATE_STUNNED, and EventMap::Update().

Member Data Documentation

◆ _destPoint

Position npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::_destPoint

Referenced by GoSiphon(), MovementInform(), and UpdateAI().

◆ _events

EventMap npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::_events

◆ _grabbedPlayer

ObjectGuid npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::_grabbedPlayer

Referenced by MovementInform(), SetGUID(), and UpdateAI().

◆ _instance

InstanceScript* npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::_instance

Referenced by MovementInform(), and UpdateAI().

◆ didbelow50pct

bool npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::didbelow50pct

◆ dropped

bool npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::dropped