TrinityCore
Loading...
Searching...
No Matches
npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI Struct Reference

Public Member Functions

 npc_yogg_saron_illusionsAI (Creature *creature)
 
void IsSummonedBy (WorldObject *) override
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
 ScriptedAI (Creature *creature, uint32 scriptId)
 
virtual ~ScriptedAI ()
 
void AttackStartNoMove (Unit *target)
 
virtual void UpdateAI (uint32 diff) override
 
void AttackStart (Unit *) override
 
void DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f)
 
void DoStartNoMovement (Unit *target)
 
void DoStopAttack ()
 
void DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false)
 
void DoPlaySoundToSet (WorldObject *source, uint32 soundId)
 
void AddThreat (Unit *victim, float amount, Unit *who=nullptr)
 
void ModifyThreatByPercent (Unit *victim, int32 pct, Unit *who=nullptr)
 
void ResetThreat (Unit *victim, Unit *who=nullptr)
 
void ResetThreatList (Unit *who=nullptr)
 
float GetThreat (Unit const *victim, Unit const *who=nullptr)
 
void ForceCombatStop (Creature *who, bool reset=true)
 
void ForceCombatStopForCreatureEntry (uint32 entry, float maxSearchRange=250.0f, bool samePhase=true, bool reset=true)
 
void ForceCombatStopForCreatureEntry (std::vector< uint32 > creatureEntries, float maxSearchRange=250.0f, bool samePhase=true, bool reset=true)
 
void DoTeleportTo (float x, float y, float z, uint32 time=0)
 
void DoTeleportTo (float const pos[4])
 
void DoTeleportPlayer (Unit *unit, float x, float y, float z, float o)
 
void DoTeleportAll (float x, float y, float z, float o)
 
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
 
UnitDoSelectBelowHpPctFriendlyWithEntry (uint32 entry, float range, uint8 hpPct=1, bool excludeSelf=true)
 
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, Milliseconds despawntime)
 
bool HealthBelowPct (uint32 pct) const
 
bool HealthAbovePct (uint32 pct) const
 
SpellInfo const * SelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, float rangeMin, float rangeMax, SelectEffect effect)
 
void SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
 
void SetCombatMovement (bool allowMovement)
 
bool IsCombatMovementAllowed () const
 
bool IsLFR () const
 
bool IsNormal () const
 
bool IsHeroic () const
 
bool IsMythic () const
 
bool IsMythicPlus () const
 
bool IsHeroicOrHigher () const
 
bool IsTimewalking () const
 
Difficulty GetDifficulty () const
 
bool Is25ManRaid () const
 
template<class T >
T const & DUNGEON_MODE (T const &normal5, T const &heroic10) const
 
template<class T >
T const & RAID_MODE (T const &normal10, T const &normal25) const
 
template<class T >
T const & RAID_MODE (T const &normal10, T const &normal25, T const &heroic10, T const &heroic25) const
 
- Public Member Functions inherited from CreatureAI
 CreatureAI (Creature *creature, uint32 scriptId={})
 
virtual ~CreatureAI ()
 
uint32 GetId () const
 
bool IsEngaged () const
 
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At =================================
 
void TriggerAlert (Unit const *who) const
 
virtual void EnterEvadeMode (EvadeReason why=EvadeReason::Other)
 
void JustEnteredCombat (Unit *) override
 
virtual void JustStartedThreateningMe (Unit *who)
 
virtual void JustEngagedWith (Unit *)
 
virtual void OnHealthDepleted (Unit *, bool)
 
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 JustSummonedGameobject (GameObject *)
 
virtual void SummonedGameobjectDespawn (GameObject *)
 
virtual void JustRegisteredDynObject (DynamicObject *)
 
virtual void JustUnregisteredDynObject (DynamicObject *)
 
virtual void JustRegisteredAreaTrigger (AreaTrigger *)
 
virtual void JustUnregisteredAreaTrigger (AreaTrigger *)
 
virtual void SpellHit (WorldObject *, SpellInfo const *)
 
virtual void SpellHitTarget (WorldObject *, SpellInfo const *)
 
virtual void OnSpellCast (SpellInfo const *)
 
virtual void OnSpellFailed (SpellInfo const *)
 
virtual void OnSpellStart (SpellInfo const *)
 
virtual void OnChannelFinished (SpellInfo const *)
 
virtual bool IsEscorted () const
 
virtual void JustAppeared ()
 
virtual void MovementInform (uint32, uint32)
 
void OnCharmed (bool isNew) override
 
virtual void JustReachedHome ()
 
void DoZoneInCombat ()
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *attacker)
 
virtual void OwnerAttacked (Unit *target)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ==================
 
virtual Optional< QuestGiverStatusGetDialogStatus (Player const *player)
 == Gossip system ================================
 
virtual bool OnGossipHello (Player *)
 
virtual bool OnGossipSelect (Player *, uint32, uint32)
 
virtual bool OnGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void OnQuestAccept (Player *, Quest const *)
 
virtual void OnQuestReward (Player *, Quest const *, LootItemType, uint32)
 
virtual void WaypointStarted (uint32, uint32)
 == Waypoints system =============================
 
virtual void WaypointReached (uint32, uint32)
 
virtual void WaypointPathEnded (uint32, uint32)
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields =======================================
 
virtual void OnSpellClick (Unit *, bool)
 
virtual bool CanSeeAlways (WorldObject const *)
 
virtual PlayerAIGetAIForCharmedPlayer (Player *)
 
int32 VisualizeBoundary (Seconds duration, Unit *owner=nullptr, bool fill=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary const * GetBoundary () const
 
void SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false)
 
bool IsInBoundary (Position const *who=nullptr) const
 
- 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 diff)=0
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void OnCharmed (bool isNew)
 
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 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectTargetMethod targetType, uint32 offset, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 offset=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 offset, PREDICATE const &predicate)
 
virtual void JustEnteredCombat (Unit *)
 
virtual void JustExitedCombat ()
 
virtual void OnDespawn ()
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellInfo const *)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
virtual void SpellInterrupted (uint32, uint32)
 
void AttackStartCaster (Unit *victim, float dist)
 
SpellCastResult DoCast (uint32 spellId)
 
SpellCastResult DoCast (Unit *victim, uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult DoCastSelf (uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult DoCastVictim (uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult DoCastAOE (uint32 spellId, CastSpellExtraArgs const &args={})
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void OnGameEvent (bool, uint16)
 
virtual std::string GetDebugInfo () const
 

Private Attributes

EventMap _events
 
InstanceScript_instance
 

Additional Inherited Members

- Static Public Member Functions inherited from CreatureAI
static void DoZoneInCombat (Creature *creature)
 
static bool IsInBounds (CreatureBoundary const &boundary, Position const *who)
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Public Attributes inherited from ScriptedAI
bool IsFleeing
 
- Static Public Attributes inherited from UnitAI
static std::unordered_map< std::pair< uint32, Difficulty >, AISpellInfoTypeAISpellInfo
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
CreatureDoSummon (uint32 entry, Position const &pos, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
void EngagementStart (Unit *who)
 
void EngagementOver ()
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EvadeReason::Other)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Definition at line 1720 of file boss_yogg_saron.cpp.

Constructor & Destructor Documentation

◆ npc_yogg_saron_illusionsAI()

npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI::npc_yogg_saron_illusionsAI ( Creature creature)
inline

Definition at line 1722 of file boss_yogg_saron.cpp.

1722: ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1033

Member Function Documentation

◆ IsSummonedBy()

void npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI::IsSummonedBy ( WorldObject )
inlineoverridevirtual

Reimplemented from CreatureAI.

Definition at line 1724 of file boss_yogg_saron.cpp.

1725 {
1727 {
1728 case CHAMBER_ILLUSION:
1729 // i think the first Talk should be delayed as in this moment
1730 // players are too far away to be able to see it
1731 if (Creature* neltharion = me->FindNearestCreature(NPC_NELTHARION, 50.0f))
1732 neltharion->AI()->Talk(SAY_CHAMBER_ROLEPLAY_1);
1733
1738 break;
1739 case ICECROWN_ILLUSION:
1740 // same here
1747 break;
1748 case STORMWIND_ILLUSION:
1749 _events.ScheduleEvent(EVENT_STORMWIND_ROLEPLAY_4, 33800ms); // "A thousand deaths..."
1752 // TODO: use "or one murder." sound and split the text in DB
1753 break;
1754 }
1755 }
@ SAY_CHAMBER_ROLEPLAY_1
@ EVENT_CHAMBER_ROLEPLAY_2
@ EVENT_CHAMBER_ROLEPLAY_3
@ EVENT_ICECROWN_ROLEPLAY_4
@ EVENT_ICECROWN_ROLEPLAY_6
@ EVENT_ICECROWN_ROLEPLAY_1
@ EVENT_ICECROWN_ROLEPLAY_2
@ EVENT_STORMWIND_ROLEPLAY_4
@ EVENT_STORMWIND_ROLEPLAY_7
@ EVENT_ICECROWN_ROLEPLAY_3
@ EVENT_CHAMBER_ROLEPLAY_4
@ EVENT_CHAMBER_ROLEPLAY_1
@ EVENT_ICECROWN_ROLEPLAY_5
@ EVENT_STORMWIND_ROLEPLAY_5
Creature *const me
Definition: CreatureAI.h:61
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
Definition: EventMap.cpp:36
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2135
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:91
@ ICECROWN_ILLUSION
Definition: ulduar.h:500
@ STORMWIND_ILLUSION
Definition: ulduar.h:501
@ CHAMBER_ILLUSION
Definition: ulduar.h:499
@ DATA_ILLUSION
Definition: ulduar.h:434
@ NPC_NELTHARION
Definition: ulduar.h:215
+ Here is the call graph for this function:

◆ UpdateAI()

void npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from ScriptedAI.

Definition at line 1757 of file boss_yogg_saron.cpp.

1758 {
1759 _events.Update(diff);
1760
1761 while (uint32 eventId = _events.ExecuteEvent())
1762 {
1763 switch (eventId)
1764 {
1766 if (Creature* ysera = me->FindNearestCreature(NPC_YSERA, 50.0f))
1767 ysera->AI()->Talk(SAY_CHAMBER_ROLEPLAY_2);
1768 break;
1770 if (Creature* neltharion = me->FindNearestCreature(NPC_NELTHARION, 50.0f))
1771 neltharion->AI()->Talk(SAY_CHAMBER_ROLEPLAY_3);
1772 break;
1774 if (Creature* malygos = me->FindNearestCreature(NPC_MALYGOS, 50.0f))
1775 malygos->AI()->Talk(SAY_CHAMBER_ROLEPLAY_4);
1776 break;
1779 break;
1782 {
1783 bolvar->AI()->Talk(SAY_ICECROWN_ROLEPLAY_1);
1784
1785 if (Creature* lichKing = me->FindNearestCreature(NPC_THE_LICH_KING, 50.0f))
1786 lichKing->CastSpell(bolvar, SPELL_DEATHGRASP);
1787 }
1788 break;
1790 if (Creature* lichKing = me->FindNearestCreature(NPC_THE_LICH_KING, 50.0f))
1791 lichKing->AI()->Talk(SAY_ICECROWN_ROLEPLAY_2);
1792 break;
1795 bolvar->AI()->Talk(SAY_ICECROWN_ROLEPLAY_3);
1796 if (Creature* saurfang = me->FindNearestCreature(NPC_TURNED_CHAMPION, 50.0f))
1797 saurfang->AI()->DoAction(ACTION_START_ROLEPLAY);
1798 break;
1800 if (Creature* lichKing = me->FindNearestCreature(NPC_THE_LICH_KING, 50.0f))
1801 lichKing->AI()->Talk(SAY_ICECROWN_ROLEPLAY_4);
1802 break;
1805 break;
1808 break;
1811 break;
1813 if (Creature* llane = me->FindNearestCreature(NPC_KING_LLANE, 50.0f))
1814 llane->AI()->Talk(SAY_STORMWIND_ROLEPLAY_5);
1815 break;
1818 break;
1819 default:
1820 break;
1821 }
1822 }
1823 }
uint32_t uint32
Definition: Define.h:143
@ ACTION_START_ROLEPLAY
@ SAY_ICECROWN_ROLEPLAY_6
@ SAY_CHAMBER_ROLEPLAY_3
@ SAY_CHAMBER_ROLEPLAY_2
@ SAY_ICECROWN_ROLEPLAY_3
@ SAY_CHAMBER_ROLEPLAY_4
@ SAY_CHAMBER_ROLEPLAY_5
@ SAY_STORMWIND_ROLEPLAY_5
@ SAY_STORMWIND_ROLEPLAY_4
@ SAY_ICECROWN_ROLEPLAY_5
@ SAY_STORMWIND_ROLEPLAY_7
@ SAY_ICECROWN_ROLEPLAY_2
@ SAY_ICECROWN_ROLEPLAY_4
@ SAY_ICECROWN_ROLEPLAY_1
@ SPELL_DEATHGRASP
@ NPC_THE_LICH_KING
Definition: chapter5.cpp:162
uint32 ExecuteEvent()
Definition: EventMap.cpp:73
void Update(uint32 time)
Definition: EventMap.h:56
@ NPC_MALYGOS
@ NPC_KING_LLANE
Definition: ulduar.h:211
@ NPC_IMMOLATED_CHAMPION
Definition: ulduar.h:213
@ NPC_TURNED_CHAMPION
Definition: ulduar.h:221
@ NPC_YSERA
Definition: ulduar.h:214
+ Here is the call graph for this function:

Member Data Documentation

◆ _events

EventMap npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI::_events
private

Definition at line 1826 of file boss_yogg_saron.cpp.

◆ _instance

InstanceScript* npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI::_instance
private

Definition at line 1827 of file boss_yogg_saron.cpp.


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