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

Public Member Functions

 brann_bronzebeard (Creature *creature)
 
void Reset () override
 
void sGossipSelect (Player *player, uint32, uint32) override
 
void DoAction (int32 action) override
 
void MovementInform (uint32 type, uint32 id) override
 
void PathEndReached (uint32 pathId) override
 
void TeleportTo (Position const &pos)
 
void SetGameObjectState (uint32 entry, GOState state)
 
void EnterEvadeMode (EvadeReason why) override
 
void JustSummoned (Creature *cr) override
 
void InitializeEvent ()
 
void ResetEvent ()
 
void SwitchHeadVisual (uint8 headMask, bool activate)
 
CreatureGetAbedneum ()
 
CreatureGetMarnak ()
 
CreatureGetKaddrak ()
 
void DespawnHeads ()
 
void SummonCreatures (uint32 entry)
 
void TransitionToPhase (uint8 phase)
 
void ScheduleNextTransition ()
 
void SchedulePhaseTalks (uint8 phase)
 
void SchedulePhaseAbilities (uint8 phase)
 
void EndTribunalFight ()
 
void SchedulePostFightConversation ()
 
void DoMarnakDarkMatter ()
 
void DoAbedneumSearingGaze ()
 
void DamageTaken (Unit *, uint32 &damage, DamageEffectType, SpellSchoolMask) override
 Called at any Damage from any attacker (before damage apply)
 
void JustDied (Unit *) override
 
void UpdateAI (uint32 diff) override
 Use to start attacking a target. Called just before JustEngagedWith()
 
- 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 (Position const *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 >
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
 
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 ()
 
virtual bool IsEscortNPC (bool=true) const
 
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 SummonedCreatureDies (Creature *, Unit *)
 
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 bool IsEscorted ()
 
virtual void JustRespawned ()
 
virtual void WaypointPathStarted (uint32)
 == Waypoints system =============================
 
virtual void WaypointStarted (uint32, uint32)
 
virtual void WaypointReached (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 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, int32 aura=0)
 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 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
 

Private Attributes

InstanceScriptinstance
 
SummonList summons
 
ObjectGuid AbedneumGUID
 
ObjectGuid MarnakGUID
 
ObjectGuid KaddrakGUID
 
ObjectGuid darkMatterTargetGUID
 
bool _recentlySpoken
 
bool _leftEye = true
 
uint8 _currentPhase = 0
 

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 ()
 
- Public Attributes inherited from ScriptedAI
Creatureme
 
- 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
 
TaskScheduler scheduler
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
bool _isEngaged
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ brann_bronzebeard()

brann_bronzebeard::brann_bronzebeard ( Creature creature)
inline
123 : ScriptedAI(creature), summons(me), _recentlySpoken(false)
124 {
125 instance = creature->GetInstanceScript();
126 }
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1242
Definition ScriptedCreature.h:191
Creature * me
Definition ScriptedCreature.h:281
SummonList summons
Definition brann_bronzebeard.cpp:984
bool _recentlySpoken
Definition brann_bronzebeard.cpp:989
InstanceScript * instance
Definition brann_bronzebeard.cpp:983

References WorldObject::GetInstanceScript(), and instance.

Member Function Documentation

◆ DamageTaken()

void brann_bronzebeard::DamageTaken ( Unit ,
uint32 ,
DamageEffectType  ,
SpellSchoolMask   
)
inlineoverridevirtual

Called at any Damage from any attacker (before damage apply)

Note
It use for recalculation damage or special reaction at damage for attack reaction use AttackedBy called for non DOT damage in Unit::DealDamage also

Reimplemented from UnitAI.

943 {
944 // Track damage for the achievement
947 }
@ IN_PROGRESS
Definition InstanceScript.h:59
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:252
virtual void SetData(uint32, uint32)
Definition ZoneScript.h:52
@ DATA_BRANN_ACHIEVEMENT
Definition halls_of_stone.h:74
@ BOSS_TRIBUNAL_OF_AGES
Definition halls_of_stone.h:68

References BOSS_TRIBUNAL_OF_AGES, DATA_BRANN_ACHIEVEMENT, InstanceScript::GetBossState(), IN_PROGRESS, instance, and ZoneScript::SetData().

◆ DespawnHeads()

void brann_bronzebeard::DespawnHeads ( )
inline
517 {
518 Creature* cr;
519 if ((cr = GetAbedneum())) cr->DespawnOrUnsummon();
520 if ((cr = GetMarnak())) cr->DespawnOrUnsummon();
521 if ((cr = GetKaddrak())) cr->DespawnOrUnsummon();
522
523 SwitchHeadVisual(0x7, false);
524 }
Definition Creature.h:47
void DespawnOrUnsummon(Milliseconds msTimeToDespawn=0ms, Seconds forcedRespawnTimer=0s)
Definition Creature.cpp:2199
Creature * GetKaddrak()
Definition brann_bronzebeard.cpp:514
Creature * GetMarnak()
Definition brann_bronzebeard.cpp:513
void SwitchHeadVisual(uint8 headMask, bool activate)
Definition brann_bronzebeard.cpp:462
Creature * GetAbedneum()
Definition brann_bronzebeard.cpp:512

References Creature::DespawnOrUnsummon(), GetAbedneum(), GetKaddrak(), GetMarnak(), and SwitchHeadVisual().

Referenced by ResetEvent().

◆ DoAbedneumSearingGaze()

void brann_bronzebeard::DoAbedneumSearingGaze ( )
inline
926 {
927 if (!GetAbedneum())
928 return;
929
930 Player* plr = SelectTargetFromPlayerList(100.0f);
931 if (!plr)
932 return;
933
935 {
936 me->SummonCreature(NPC_ABEDNEUM, 892.25f, 331.25f, 223.86833f, 0.68067f, TEMPSUMMON_TIMED_DESPAWN, 12000); // Left Eye
937 me->SummonCreature(NPC_ABEDNEUM, 896.5f, 327.f, 223.86805f, 0.645771f, TEMPSUMMON_TIMED_DESPAWN, 12000); // Right Eye
938 cr->CastSpell(cr, SPELL_SEARING_GAZE, true);
939 }
940 }
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:51
@ SPELL_SEARING_GAZE
Definition brann_bronzebeard.cpp:43
@ NPC_SEARING_GAZE_TRIGGER
Definition brann_bronzebeard.cpp:33
Definition Player.h:1086
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:1361
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2448
@ NPC_ABEDNEUM
Definition halls_of_stone.h:98
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
Player * SelectTargetFromPlayerList(float maxdist, uint32 excludeAura=0, bool mustBeInLOS=false) const
Definition ScriptedCreature.cpp:591

References Unit::CastSpell(), GetAbedneum(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), ScriptedAI::me, NPC_ABEDNEUM, NPC_SEARING_GAZE_TRIGGER, ScriptedAI::SelectTargetFromPlayerList(), SPELL_SEARING_GAZE, WorldObject::SummonCreature(), and TEMPSUMMON_TIMED_DESPAWN.

Referenced by SchedulePhaseAbilities().

◆ DoAction()

void brann_bronzebeard::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from UnitAI.

209 {
210 switch (action)
211 {
212 case ACTION_START_ESCORT_EVENT: // Received via gossip
219 if (instance)
221 break;
222 case ACTION_START_TRIBUNAL: // Received via gossip
223 {
224 // DoCastSelf 51810 Brann Health Checker
227 me->GetMotionMaster()->MovePoint(POINT_TRIBUNAL_CONSOLE, 897.1759f, 331.77386f, 203.70638f);
229 break;
230 }
231 case ACTION_GO_TO_SJONNIR: // Received via gossip
235
236 ResetEvent();
240
241 me->GetMotionMaster()->MovePoint(POINT_TRIBUNAL_LEAVE, 935.955f, 371.031f, 207.41751f);
242 break;
243 case ACTION_OPEN_DOOR: // Received via gossip
246 me->SetWalk(true);
247 me->GetMotionMaster()->MovePoint(POINT_SJONNIR_DOOR, 1202.91f, 667.049f, 196.23315f);
248 break;
249 case ACTION_START_SJONNIR_FIGHT: // Received by Sjonnir
251 break;
252 case ACTION_SJONNIR_DEAD: // Received by Sjonnir
253 me->m_Events.KillAllEvents(false);
255 _recentlySpoken = false;
259 me->SetFacingTo(3.147235631942749023f);
262 }, 10s);
265 }, 22500ms);
268 }, 23500ms);
269 break;
270 case ACTION_SJONNIR_WIPE_START: // Received by Sjonnir
271 me->DespawnOrUnsummon(0s, 5s);
272 break;
273 case ACTION_PLAYER_DEATH_IN_TRIBUNAL: // Received via Instance
274 if (!_recentlySpoken)
275 {
277 _recentlySpoken = true;
279 _recentlySpoken = false;
280 }, 6s);
281 }
282 break;
283 case ACTION_SKIP_PHASE: // Debug, received by player
284 if (_currentPhase >= 1 && _currentPhase < 3)
286 else if (_currentPhase == 3)
288 break;
289 default:
290 break;
291 }
292 }
@ EMOTE_STATE_STAND
Definition SharedDefines.h:1922
@ EMOTE_STATE_READY_UNARMED
Definition SharedDefines.h:1923
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:322
@ UNIT_NPC_FLAG_NONE
Definition UnitDefines.h:321
@ UNIT_NPC_FLAG_QUESTGIVER
Definition UnitDefines.h:323
@ REACT_PASSIVE
Definition Unit.h:567
@ REACT_AGGRESSIVE
Definition Unit.h:569
@ SPELL_STEALTH
Definition brann_bronzebeard.cpp:44
@ SJONNIR_END
Definition brann_bronzebeard.cpp:113
@ POINT_TRIBUNAL_CONSOLE
Definition brann_bronzebeard.cpp:58
@ POINT_SJONNIR_DEAD
Definition brann_bronzebeard.cpp:63
@ POINT_TRIBUNAL_LEAVE
Definition brann_bronzebeard.cpp:60
@ PATH_SJONNIR_FIGHT
Definition brann_bronzebeard.cpp:56
@ PATH_ESCORT
Definition brann_bronzebeard.cpp:55
@ POINT_SJONNIR_DOOR
Definition brann_bronzebeard.cpp:61
Position const brannSjonnirDone
Definition brann_bronzebeard.cpp:119
TaskScheduler scheduler
Definition CreatureAI.h:74
void SetRegeneratingHealth(bool enable)
Definition Creature.h:328
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:100
bool SetWalk(bool enable) override
Enable or disable the creature's walk mode by removing: MOVEMENTFLAG_WALKING. Infom also the client.
Definition Creature.cpp:3343
void SetGossipMenuId(uint32 gossipMenuId)
Definition Creature.h:210
void LoadPath(uint32 pathid)
Definition Creature.h:358
void KillAllEvents(bool force)
Definition EventProcessor.cpp:82
void AddEventAtOffset(BasicEvent *event, Milliseconds offset, uint8 eventGroup=0)
Definition EventProcessor.h:108
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:400
void MovePoint(uint32 id, Position const &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
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:933
void MovePath(uint32 path_id, ForcedMovement forcedMovement=FORCED_MOVEMENT_NONE, PathSource pathSource=PathSource::WAYPOINT_MGR)
Definition MotionMaster.cpp:520
TaskScheduler & CancelAll()
Definition TaskScheduler.cpp:45
SpellCastResult DoCastSelf(uint32 spellId, bool triggered=false)
Definition UnitAI.h:394
void SetFacingTo(float ori)
Definition Unit.cpp:16455
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:5050
MotionMaster * GetMotionMaster()
Definition Unit.h:1758
void RemoveNpcFlag(NPCFlags flags)
Definition Unit.h:766
void SetEmoteState(Emote emoteState)
Definition Unit.h:759
void ReplaceAllNpcFlags(NPCFlags flags)
Definition Unit.h:767
EventProcessor m_Events
Definition Object.h:742
@ BRANN_BRONZEBEARD
Definition halls_of_stone.h:70
@ ACTION_SKIP_PHASE
Definition halls_of_stone.h:111
@ ACTION_OPEN_DOOR
Definition halls_of_stone.h:106
@ ACTION_START_SJONNIR_FIGHT
Definition halls_of_stone.h:107
@ ACTION_START_ESCORT_EVENT
Definition halls_of_stone.h:103
@ ACTION_SJONNIR_WIPE_START
Definition halls_of_stone.h:109
@ ACTION_START_TRIBUNAL
Definition halls_of_stone.h:104
@ ACTION_GO_TO_SJONNIR
Definition halls_of_stone.h:105
@ ACTION_PLAYER_DEATH_IN_TRIBUNAL
Definition halls_of_stone.h:110
@ ACTION_SJONNIR_DEAD
Definition halls_of_stone.h:108
@ SAY_BRANN_ESCORT_START
Definition halls_of_stone.h:33
@ SAY_BRANN_VICTORY_SJONNIR_2
Definition halls_of_stone.h:60
@ SAY_BRANN_PLAYER_DEATH
Definition halls_of_stone.h:32
@ SAY_BRANN_VICTORY_SJONNIR_1
Definition halls_of_stone.h:59
@ SAY_BRANN_ENTRANCE_MEET
Definition halls_of_stone.h:61
Talk
Definition hyjal.cpp:82
void InitializeEvent()
Definition brann_bronzebeard.cpp:422
uint8 _currentPhase
Definition brann_bronzebeard.cpp:991
void EndTribunalFight()
Definition brann_bronzebeard.cpp:707
void ResetEvent()
Definition brann_bronzebeard.cpp:448
void TransitionToPhase(uint8 phase)
Definition brann_bronzebeard.cpp:542

References _currentPhase, _recentlySpoken, ACTION_GO_TO_SJONNIR, ACTION_OPEN_DOOR, ACTION_PLAYER_DEATH_IN_TRIBUNAL, ACTION_SJONNIR_DEAD, ACTION_SJONNIR_WIPE_START, ACTION_SKIP_PHASE, ACTION_START_ESCORT_EVENT, ACTION_START_SJONNIR_FIGHT, ACTION_START_TRIBUNAL, EventProcessor::AddEventAtOffset(), BRANN_BRONZEBEARD, brannSjonnirDone, TaskScheduler::CancelAll(), Creature::DespawnOrUnsummon(), UnitAI::DoCastSelf(), EMOTE_STATE_READY_UNARMED, EMOTE_STATE_STAND, EndTribunalFight(), Unit::GetMotionMaster(), IN_PROGRESS, InitializeEvent(), instance, EventProcessor::KillAllEvents(), Creature::LoadPath(), WorldObject::m_Events, ScriptedAI::me, MotionMaster::MovePath(), MotionMaster::MovePoint(), MotionMaster::MoveWaypoint(), PATH_ESCORT, PATH_SJONNIR_FIGHT, POINT_SJONNIR_DEAD, POINT_SJONNIR_DOOR, POINT_TRIBUNAL_CONSOLE, POINT_TRIBUNAL_LEAVE, REACT_AGGRESSIVE, REACT_PASSIVE, Unit::RemoveAura(), Unit::RemoveNpcFlag(), Unit::ReplaceAllNpcFlags(), ResetEvent(), SAY_BRANN_ENTRANCE_MEET, SAY_BRANN_ESCORT_START, SAY_BRANN_PLAYER_DEATH, SAY_BRANN_VICTORY_SJONNIR_1, SAY_BRANN_VICTORY_SJONNIR_2, CreatureAI::scheduler, InstanceScript::SetBossState(), Unit::SetEmoteState(), Unit::SetFacingTo(), Creature::SetGossipMenuId(), Creature::SetReactState(), Creature::SetRegeneratingHealth(), Creature::SetWalk(), SJONNIR_END, SPELL_STEALTH, TransitionToPhase(), UNIT_NPC_FLAG_GOSSIP, UNIT_NPC_FLAG_NONE, and UNIT_NPC_FLAG_QUESTGIVER.

Referenced by sGossipSelect().

◆ DoMarnakDarkMatter()

void brann_bronzebeard::DoMarnakDarkMatter ( )
inline
873 {
874 Creature* marnak = GetMarnak();
875 if (!marnak)
876 return;
877
878 Creature* target = me->SummonCreature(NPC_DARK_MATTER_TARGET, 899.843f, 355.271f, 214.301f, 0, TEMPSUMMON_TIMED_DESPAWN, 10000);
879 if (!target)
880 return;
881
882 target->SetCanFly(true);
883 darkMatterTargetGUID = target->GetGUID();
884
885 // Right eye visual
886 if (Creature* cra = me->SummonCreature(NPC_DARK_MATTER, 891.30902f, 359.38195f, 217.421676f + 2.f /* +2 hacked: too low otherwise */, 4.67748f, TEMPSUMMON_TIMED_DESPAWN, 5000))
887 cra->CastSpell(cra, SPELL_DARK_MATTER_VISUAL_CHANNEL, false);
888
889 // Left eye visual
890 if (Creature* crb = me->SummonCreature(NPC_DARK_MATTER, 895.93292f, 363.52789f, 219.33831f, 5.58505f, TEMPSUMMON_TIMED_DESPAWN, 5000))
891 crb->CastSpell(crb, SPELL_DARK_MATTER_VISUAL_CHANNEL, false);
892
893 // After 5s, start chasing player
896 if (!darkMatterTarget)
897 return;
898
899 darkMatterTarget->CastSpell(darkMatterTarget, SPELL_DARK_MATTER_VISUAL, false);
900 Player* plr = SelectTargetFromPlayerList(100.0f);
901 if (!plr)
902 return;
903
904 darkMatterTarget->GetMotionMaster()->MovePoint(0, plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ());
905
906 Milliseconds delay;
907 if (darkMatterTarget->GetDistance(plr) < 5.0f)
908 delay = 3s;
909 else if (darkMatterTarget->GetDistance(plr) < 30.0f)
910 delay = 3500ms;
911 else
912 delay = 4500ms;
913
914 // After reaching player, explode
917 {
918 dm->CastSpell(dm, SPELL_DARK_MATTER, true);
919 dm->DespawnOrUnsummon(500ms);
920 }
921 }, delay);
922 }, 5s);
923 }
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
Definition Duration.h:27
@ SPELL_DARK_MATTER
Definition brann_bronzebeard.cpp:42
@ SPELL_DARK_MATTER_VISUAL_CHANNEL
Definition brann_bronzebeard.cpp:41
@ SPELL_DARK_MATTER_VISUAL
Definition brann_bronzebeard.cpp:40
@ NPC_DARK_MATTER_TARGET
Definition brann_bronzebeard.cpp:32
@ NPC_DARK_MATTER
Definition brann_bronzebeard.cpp:31
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
void SetCanFly(bool enable)
Add the movement flag: MOVEMENTFLAGCAN_FLY. Generaly only use by players, allowing them to fly by pre...
Definition Unit.cpp:16566
float GetDistance(WorldObject const *obj) const
Definition Object.cpp:1299
Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:234
ObjectGuid darkMatterTargetGUID
Definition brann_bronzebeard.cpp:988

References EventProcessor::AddEventAtOffset(), Unit::CastSpell(), darkMatterTargetGUID, ObjectAccessor::GetCreature(), WorldObject::GetDistance(), Object::GetGUID(), GetMarnak(), Unit::GetMotionMaster(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), WorldObject::m_Events, ScriptedAI::me, MotionMaster::MovePoint(), NPC_DARK_MATTER, NPC_DARK_MATTER_TARGET, ScriptedAI::SelectTargetFromPlayerList(), Unit::SetCanFly(), SPELL_DARK_MATTER, SPELL_DARK_MATTER_VISUAL, SPELL_DARK_MATTER_VISUAL_CHANNEL, WorldObject::SummonCreature(), and TEMPSUMMON_TIMED_DESPAWN.

Referenced by SchedulePhaseAbilities().

◆ EndTribunalFight()

void brann_bronzebeard::EndTribunalFight ( )
inline
708 {
709 if (!instance)
710 return;
711
712 // Stop all combat abilities and spawning
714 me->m_Events.KillAllEvents(false);
715 _recentlySpoken = false;
716
717 // Schedule end sequence talks
720 }, 0ms, TALK_GROUP_EVENT_END);
722 if (Creature* abedneum = GetAbedneum())
723 abedneum->AI()->Talk(SAY_ABEDNEUM_FAILSAFE);
724 }, 5s, TALK_GROUP_EVENT_END);
727 }, 11s, TALK_GROUP_EVENT_END);
728
730 // Fight complete - system online
731 if (Creature* abedneum = GetAbedneum())
732 abedneum->AI()->Talk(SAY_ABEDNEUM_ONLINE);
733
735 me->GetMotionMaster()->MovePoint(POINT_TRIBUNAL_LORE, 917.253f, 351.925f, 203.69878f);
738
739 // Spawn chest
740 if (Player* plr = SelectTargetFromPlayerList(200.0f))
741 {
742 if (GameObject* go = plr->SummonGameObject(
744 880.406f, 345.164f, 203.706f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0))
745 {
746 plr->RemoveGameObject(go, false);
747 go->SetLootMode(1);
748 go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
749 }
750 plr->GroupEventHappens(QUEST_HALLS_OF_STONE, me);
751 }
752
754 }, 17s, TALK_GROUP_EVENT_END);
755
756 // Post-fight lore conversation
758 }
@ DONE
Definition InstanceScript.h:61
GameObjectFlags
Definition SharedDefines.h:1606
@ QUEST_HALLS_OF_STONE
Definition brann_bronzebeard.cpp:50
@ SPELL_TRIBUNAL_CREDIT_MARKER
Definition brann_bronzebeard.cpp:47
@ TALK_GROUP_EVENT_END
Definition brann_bronzebeard.cpp:76
@ SAY_ABEDNEUM_FAILSAFE
Definition brann_bronzebeard.cpp:83
@ SAY_ABEDNEUM_ONLINE
Definition brann_bronzebeard.cpp:84
@ POINT_TRIBUNAL_LORE
Definition brann_bronzebeard.cpp:59
Definition GameObject.h:120
bool IsHeroic() const
Definition Map.h:303
void DespawnAll(Milliseconds delay=0ms)
Definition ScriptedCreature.cpp:72
Map * GetMap() const
Definition Object.h:631
GameObject * SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime, bool checkTransport=true, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Definition Object.cpp:2462
@ GO_TRIBUNAL_CHEST
Definition halls_of_stone.h:88
@ GO_TRIBUNAL_CHEST_H
Definition halls_of_stone.h:89
@ SAY_BRANN_EVENT_D_3
Definition halls_of_stone.h:47
@ SAY_BRANN_EVENT_D_1
Definition halls_of_stone.h:46
void SchedulePostFightConversation()
Definition brann_bronzebeard.cpp:760

References _recentlySpoken, EventProcessor::AddEventAtOffset(), BOSS_TRIBUNAL_OF_AGES, TaskScheduler::CancelAll(), Unit::CastSpell(), SummonList::DespawnAll(), DONE, EMOTE_STATE_STAND, GetAbedneum(), WorldObject::GetMap(), Unit::GetMotionMaster(), GO_TRIBUNAL_CHEST, GO_TRIBUNAL_CHEST_H, instance, Map::IsHeroic(), EventProcessor::KillAllEvents(), WorldObject::m_Events, ScriptedAI::me, MotionMaster::MovePoint(), POINT_TRIBUNAL_LORE, QUEST_HALLS_OF_STONE, SAY_ABEDNEUM_FAILSAFE, SAY_ABEDNEUM_ONLINE, SAY_BRANN_EVENT_D_1, SAY_BRANN_EVENT_D_3, SchedulePostFightConversation(), CreatureAI::scheduler, ScriptedAI::SelectTargetFromPlayerList(), InstanceScript::SetBossState(), Unit::SetEmoteState(), SPELL_TRIBUNAL_CREDIT_MARKER, WorldObject::SummonGameObject(), summons, and TALK_GROUP_EVENT_END.

Referenced by DoAction(), and ScheduleNextTransition().

◆ EnterEvadeMode()

void brann_bronzebeard::EnterEvadeMode ( EvadeReason  why)
inlineoverridevirtual

Reimplemented from CreatureAI.

394 {
396 {
397 if (!_EnterEvadeMode(why))
398 return;
399
401 me->GetMotionMaster()->Clear(true);
402
403 // Don't reset to avoid re-arming flags
404 // He barely sees any combat, it's fine
405 return;
406 }
407
409 }
@ UNIT_STATE_EVADE
Definition UnitDefines.h:194
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:383
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:235
void Clear(bool reset=true)
Definition MotionMaster.h:193
void ClearUnitState(uint32 f)
Definition Unit.h:738

References CreatureAI::_EnterEvadeMode(), BRANN_BRONZEBEARD, MotionMaster::Clear(), Unit::ClearUnitState(), CreatureAI::EnterEvadeMode(), InstanceScript::GetBossState(), Unit::GetMotionMaster(), IN_PROGRESS, instance, ScriptedAI::me, and UNIT_STATE_EVADE.

◆ GetAbedneum()

Creature * brann_bronzebeard::GetAbedneum ( )
inline

◆ GetKaddrak()

Creature * brann_bronzebeard::GetKaddrak ( )
inline

◆ GetMarnak()

Creature * brann_bronzebeard::GetMarnak ( )
inline

◆ InitializeEvent()

void brann_bronzebeard::InitializeEvent ( )
inline
423 {
424 if (!instance)
425 return;
426
427 // There are 3 phases in this event, each transition contains dialogue.
428 // Each phase has one additional NPC and one head active.
429 // Each phase takes approximately 100s
432
433 if (Creature* cr = me->SummonCreature(NPC_KADDRAK, 928.0f, 331.276f, 219.73332f, 1.8326f, TEMPSUMMON_TIMED_DESPAWN, 580000))
434 KaddrakGUID = cr->GetGUID();
435
436 if (Creature* cr = me->SummonCreature(NPC_MARNAK, 891.309f, 359.38196f, 217.42168f, 4.6774f, TEMPSUMMON_TIMED_DESPAWN, 580000))
437 MarnakGUID = cr->GetGUID();
438
439 if (Creature* cr = me->SummonCreature(NPC_ABEDNEUM, 892.25f, 331.25f, 223.86833f, 0.68067f, TEMPSUMMON_TIMED_DESPAWN, 580000)) // Left Eye Position, actual position: 896.07965f, 330.89822f, 237.91263f, 3.5779f
440 AbedneumGUID = cr->GetGUID();
441
442 _currentPhase = 1;
446 }
@ NPC_KADDRAK
Definition halls_of_stone.h:96
@ NPC_MARNAK
Definition halls_of_stone.h:97
void SchedulePhaseTalks(uint8 phase)
Definition brann_bronzebeard.cpp:576
void SchedulePhaseAbilities(uint8 phase)
Definition brann_bronzebeard.cpp:637
void ScheduleNextTransition()
Definition brann_bronzebeard.cpp:551

References _currentPhase, AbedneumGUID, BOSS_TRIBUNAL_OF_AGES, DATA_BRANN_ACHIEVEMENT, IN_PROGRESS, instance, KaddrakGUID, MarnakGUID, ScriptedAI::me, NPC_ABEDNEUM, NPC_KADDRAK, NPC_MARNAK, ScheduleNextTransition(), SchedulePhaseAbilities(), SchedulePhaseTalks(), InstanceScript::SetBossState(), ZoneScript::SetData(), WorldObject::SummonCreature(), and TEMPSUMMON_TIMED_DESPAWN.

Referenced by DoAction().

◆ JustDied()

void brann_bronzebeard::JustDied ( Unit )
inlineoverridevirtual

Reimplemented from CreatureAI.

950 {
952 ResetEvent();
953 me->DespawnOrUnsummon(5s, 10s);
954
955 // Died during tribunal
957 {
959 }
960
961 // Died during escort
963 {
965 }
966 }
@ NOT_STARTED
Definition InstanceScript.h:58
@ SAY_BRANN_DEATH
Definition halls_of_stone.h:31

References BOSS_TRIBUNAL_OF_AGES, BRANN_BRONZEBEARD, Creature::DespawnOrUnsummon(), InstanceScript::GetBossState(), IN_PROGRESS, instance, ScriptedAI::me, NOT_STARTED, ResetEvent(), SAY_BRANN_DEATH, and InstanceScript::SetBossState().

◆ JustSummoned()

void brann_bronzebeard::JustSummoned ( Creature cr)
inlineoverridevirtual

Reimplemented from CreatureAI.

412 {
413 if (cr->GetEntry() == NPC_ABEDNEUM || cr->GetEntry() == NPC_KADDRAK || cr->GetEntry() == NPC_MARNAK)
414 cr->SetCanFly(true);
415 else
416 {
418 summons.Summon(cr);
419 }
420 }
void SetInCombatWithZone()
Set in combat all units in the dungeon/raid. Affect only units with IsAIEnabled.
Definition Creature.cpp:2863
uint32 GetEntry() const
Definition Object.h:117
void Summon(Creature const *summon)
Definition ScriptedCreature.h:88

References Object::GetEntry(), NPC_ABEDNEUM, NPC_KADDRAK, NPC_MARNAK, Unit::SetCanFly(), Creature::SetInCombatWithZone(), SummonList::Summon(), and summons.

◆ MovementInform()

void brann_bronzebeard::MovementInform ( uint32  type,
uint32  id 
)
inlineoverridevirtual

Reimplemented from CreatureAI.

295 {
296 /* Movement:
297 * Path to Tribunal Start
298 * Point to Tribunal Console
299 * Point to Tribunal Lore
300 * Point to Tribunal Leave
301 * Point to Sjonnir's Door to Open
302 * Point to Sjonnir's Arena to Fight
303 * Path to Sjonnir's Console
304 * Point to Sjonnir's Console Again after his defeat
305 */
306 if (type == POINT_MOTION_TYPE)
307 {
308 switch (id)
309 {
313 break;
315 me->SetFacingTo(3.926990747451782226f);
318 break;
320 // Will respawn in front of Sjonnir's Door
321 // Sniff reveals different GUID, same entry
322 me->DespawnOrUnsummon(0s, 5s);
323 break;
326 me->SetWalk(false);
329 if (instance)
330 {
331 instance->SetBossState(BRANN_DOOR, DONE); // Opens Door to Sjonnir
333 }
334 }, 3200ms);
337 }, 5600ms);
338 break;
342 break;
348 break;
349 default:
350 break;
351 }
352 }
353 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
@ POINT_MOTION_TYPE
Definition MotionMaster.h:48
@ EMOTE_ONESHOT_NONE
Definition SharedDefines.h:1898
@ EMOTE_STATE_USE_STANDING
Definition SharedDefines.h:1948
@ TRIBUNAL_END
Definition brann_bronzebeard.cpp:111
@ POINT_SJONNIR_FIGHT
Definition brann_bronzebeard.cpp:62
Position const brannDoorDone
Definition brann_bronzebeard.cpp:118
void SetNpcFlag(NPCFlags flags)
Definition Unit.h:765
@ BRANN_DOOR
Definition halls_of_stone.h:71
@ GO_TRIBUNAL_CONSOLE
Definition halls_of_stone.h:80
@ SAY_BRANN_FRONT_OF_SJONNIR
Definition halls_of_stone.h:34
float GetOrientation() const
Definition Position.h:124
void SetGameObjectState(uint32 entry, GOState state)
Definition brann_bronzebeard.cpp:384

References EventProcessor::AddEventAtOffset(), BRANN_DOOR, brannDoorDone, brannSjonnirDone, Creature::DespawnOrUnsummon(), DONE, EMOTE_ONESHOT_NONE, EMOTE_STATE_READY_UNARMED, EMOTE_STATE_USE_STANDING, Unit::GetMotionMaster(), Position::GetOrientation(), GO_STATE_ACTIVE, GO_TRIBUNAL_CONSOLE, instance, WorldObject::m_Events, ScriptedAI::me, POINT_MOTION_TYPE, POINT_SJONNIR_DEAD, POINT_SJONNIR_DOOR, POINT_SJONNIR_FIGHT, POINT_TRIBUNAL_CONSOLE, POINT_TRIBUNAL_LEAVE, POINT_TRIBUNAL_LORE, SAY_BRANN_FRONT_OF_SJONNIR, InstanceScript::SetBossState(), ZoneScript::SetData(), Unit::SetEmoteState(), Unit::SetFacingTo(), SetGameObjectState(), Creature::SetGossipMenuId(), Unit::SetNpcFlag(), Creature::SetWalk(), SJONNIR_END, TRIBUNAL_END, UNIT_NPC_FLAG_GOSSIP, and UNIT_NPC_FLAG_QUESTGIVER.

◆ PathEndReached()

void brann_bronzebeard::PathEndReached ( uint32  pathId)
inlineoverridevirtual

◆ Reset()

void brann_bronzebeard::Reset ( )
inlineoverridevirtual

Reimplemented from UnitAI.

129 {
131 me->m_Events.KillAllEvents(false);
132 _recentlySpoken = false;
138
139 if (!instance)
140 return;
141
142 // Escort to Tribunal of Ages still running, he has to be able to defend himself
144 {
146 }
147
148 // Respawn Handling. Both flags are re-armed above, quest 13207 starts and ends on him
149 // and he is the only one offering it. Only the gossip is dropped again where an event
150 // menu would let the player restart something he already did.
152 {
153 // At Sjonnir's console, everything is over
157 me->SetImmuneToAll(true);
158 }
159 else if (instance->GetBossState(BRANN_DOOR) == DONE)
160 {
161 // Past Sjonnir's Door, no event gossip until Sjonnir is defeated
165 me->SetImmuneToAll(true);
166 }
168 {
169 // In front of Sjonnir's Door
173 me->SetImmuneToAll(true);
174 }
176 {
177 // Escort to Tribunal of Ages arena Finished
180 }
181 }
@ SJONNIR_DOOR
Definition brann_bronzebeard.cpp:112
@ TRIBUNAL_BEFORE
Definition brann_bronzebeard.cpp:109
Position const brannTribunalEventDonePoint
Definition brann_bronzebeard.cpp:117
Position const brannEscortDonePoint
Definition brann_bronzebeard.cpp:116
void SetImmuneToAll(bool apply, bool keepCombat=false)
Definition Unit.h:925
@ BOSS_SJONNIR
Definition halls_of_stone.h:69
void TeleportTo(Position const &pos)
Definition brann_bronzebeard.cpp:379

References _recentlySpoken, BOSS_SJONNIR, BOSS_TRIBUNAL_OF_AGES, BRANN_BRONZEBEARD, BRANN_DOOR, brannDoorDone, brannEscortDonePoint, brannSjonnirDone, brannTribunalEventDonePoint, TaskScheduler::CancelAll(), SummonList::DespawnAll(), UnitAI::DoCastSelf(), DONE, EMOTE_STATE_READY_UNARMED, EMOTE_STATE_USE_STANDING, InstanceScript::GetBossState(), IN_PROGRESS, instance, EventProcessor::KillAllEvents(), WorldObject::m_Events, ScriptedAI::me, REACT_AGGRESSIVE, REACT_PASSIVE, Unit::RemoveNpcFlag(), CreatureAI::scheduler, Unit::SetEmoteState(), Creature::SetGossipMenuId(), Unit::SetImmuneToAll(), Unit::SetNpcFlag(), Creature::SetReactState(), Creature::SetRegeneratingHealth(), SJONNIR_DOOR, SJONNIR_END, SPELL_STEALTH, summons, TeleportTo(), TRIBUNAL_BEFORE, TRIBUNAL_START, UNIT_NPC_FLAG_GOSSIP, and UNIT_NPC_FLAG_QUESTGIVER.

◆ ResetEvent()

void brann_bronzebeard::ResetEvent ( )
inline

◆ ScheduleNextTransition()

void brann_bronzebeard::ScheduleNextTransition ( )
inline
552 {
554 switch (_currentPhase)
555 {
556 case 1:
559 });
560 break;
561 case 2:
564 });
565 break;
566 case 3:
569 });
570 break;
571 default:
572 break;
573 }
574 }
@ CONTEXT_GROUP_TRANSITION
Definition brann_bronzebeard.cpp:68
Definition TaskScheduler.h:422
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition TaskScheduler.h:233
TaskScheduler & CancelGroup(group_t const group)
Definition TaskScheduler.cpp:53

References _currentPhase, TaskScheduler::CancelGroup(), CONTEXT_GROUP_TRANSITION, EndTribunalFight(), TaskScheduler::Schedule(), CreatureAI::scheduler, and TransitionToPhase().

Referenced by InitializeEvent(), and TransitionToPhase().

◆ SchedulePhaseAbilities()

void brann_bronzebeard::SchedulePhaseAbilities ( uint8  phase)
inline
638 {
639 // Abilities of the previous phases keep running, they are only cancelled when the event ends
640 switch (phase)
641 {
642 case 1:
643 // Kaddrak head visual activates
644 scheduler.Schedule(30s, [this](TaskContext) {
645 SwitchHeadVisual(0x1, true);
646 });
647 // Kaddrak glare of the tribunal
648 scheduler.Schedule(47s, [this](TaskContext context) {
649 if (Creature* kaddrak = GetKaddrak())
650 if (Player* plr = SelectTargetFromPlayerList(100.0f))
651 kaddrak->CastSpell(plr, SPELL_GLARE_OF_THE_TRIBUNAL, true);
652 // Alternate eye position 1s after each glare
653 scheduler.Schedule(1s, [this](TaskContext) {
654 if (Creature* kaddrak = GetKaddrak())
655 {
656 if (_leftEye)
657 kaddrak->UpdatePosition(923.5f, 326.358f, 219.73332f, 2.28638f, true);
658 else
659 kaddrak->UpdatePosition(928.f, 331.276f, 219.73332f, 1.83259f, true);
661 kaddrak->StopMovingOnCurrentPos();
662 }
663 });
664 context.Repeat(1500ms);
665 });
666 // Protector spawning
667 scheduler.Schedule(52s, [this](TaskContext context) {
669 context.Repeat(me->GetMap()->IsHeroic() ? 23500ms : 32500ms);
670 });
671 break;
672 case 2:
673 // Marnak head visual activates
674 scheduler.Schedule(3s, [this](TaskContext) {
675 SwitchHeadVisual(0x2, true);
676 });
677 // Marnak dark matter
678 scheduler.Schedule(13s, [this](TaskContext context) {
680 context.Repeat(30s);
681 });
682 // Stormcaller spawning
683 scheduler.Schedule(20s, [this](TaskContext context) {
685 context.Repeat(me->GetMap()->IsHeroic() ? 32s : 41500ms);
686 });
687 break;
688 case 3:
689 // Abedneum head visual activates
690 scheduler.Schedule(6s, [this](TaskContext) {
691 SwitchHeadVisual(0x4, true);
692 });
693 // Abedneum searing gaze
694 scheduler.Schedule(16s, [this](TaskContext context) {
696 context.Repeat(15s);
697 });
698 // Golem spawning
699 scheduler.Schedule(27s, [this](TaskContext context) {
701 context.Repeat(me->GetMap()->IsHeroic() ? 32s : 45s);
702 });
703 break;
704 }
705 }
@ SPELL_GLARE_OF_THE_TRIBUNAL
Definition brann_bronzebeard.cpp:39
@ NPC_DARK_RUNE_STORMCALLER
Definition brann_bronzebeard.cpp:29
@ NPC_IRON_GOLEM_CUSTODIAN
Definition brann_bronzebeard.cpp:30
@ NPC_DARK_RUNE_PROTECTOR
Definition brann_bronzebeard.cpp:28
TaskContext & Repeat(std::chrono::duration< _Rep, _Period > const &duration)
Definition TaskScheduler.h:494
void DoMarnakDarkMatter()
Definition brann_bronzebeard.cpp:872
void DoAbedneumSearingGaze()
Definition brann_bronzebeard.cpp:925
void SummonCreatures(uint32 entry)
Definition brann_bronzebeard.cpp:526
bool _leftEye
Definition brann_bronzebeard.cpp:990

References _leftEye, DoAbedneumSearingGaze(), DoMarnakDarkMatter(), GetKaddrak(), WorldObject::GetMap(), Map::IsHeroic(), ScriptedAI::me, NPC_DARK_RUNE_PROTECTOR, NPC_DARK_RUNE_STORMCALLER, NPC_IRON_GOLEM_CUSTODIAN, TaskContext::Repeat(), TaskScheduler::Schedule(), CreatureAI::scheduler, ScriptedAI::SelectTargetFromPlayerList(), SPELL_GLARE_OF_THE_TRIBUNAL, SummonCreatures(), and SwitchHeadVisual().

Referenced by InitializeEvent(), and TransitionToPhase().

◆ SchedulePhaseTalks()

void brann_bronzebeard::SchedulePhaseTalks ( uint8  phase)
inline
577 {
578 switch (phase)
579 {
580 case 1:
583 }, 0ms, TALK_GROUP_PHASE1);
584
586 if (Creature* abedneum = GetAbedneum())
587 abedneum->AI()->Talk(SAY_ABEDNEUM_WARNING);
588 }, 12500ms, TALK_GROUP_PHASE1);
589
592 }, 23500ms, TALK_GROUP_PHASE1);
593
595 if (Creature* kaddrak = GetKaddrak())
596 kaddrak->AI()->Talk(SAY_KADDRAK_SECURITY);
597 }, 29500ms, TALK_GROUP_PHASE1);
598
601 }, 41500ms, TALK_GROUP_PHASE1);
602
603 break;
604 case 2:
607 }, 0ms, TALK_GROUP_PHASE2);
608
610 if (Creature* marnak = GetMarnak())
611 marnak->AI()->Talk(SAY_MARNAK_THREAT);
612 }, 3s, TALK_GROUP_PHASE2);
613
616 }, 11s, TALK_GROUP_PHASE2);
617
618 break;
619 case 3:
622 }, 0ms, TALK_GROUP_PHASE3);
623
625 if (Creature* abedneum = GetAbedneum())
626 abedneum->AI()->Talk(SAY_ABEDNEUM_CRITICAL);
627 }, 5s, TALK_GROUP_PHASE3);
628
631 }, 12s, TALK_GROUP_PHASE3);
632
633 break;
634 }
635 }
@ SAY_KADDRAK_SECURITY
Definition brann_bronzebeard.cpp:93
@ SAY_MARNAK_THREAT
Definition brann_bronzebeard.cpp:101
@ TALK_GROUP_PHASE2
Definition brann_bronzebeard.cpp:74
@ TALK_GROUP_PHASE1
Definition brann_bronzebeard.cpp:73
@ TALK_GROUP_PHASE3
Definition brann_bronzebeard.cpp:75
@ SAY_ABEDNEUM_CRITICAL
Definition brann_bronzebeard.cpp:82
@ SAY_ABEDNEUM_WARNING
Definition brann_bronzebeard.cpp:81
@ SAY_BRANN_EVENT_B_3
Definition halls_of_stone.h:43
@ SAY_BRANN_EVENT_C_3
Definition halls_of_stone.h:45
@ SAY_BRANN_EVENT_A_3
Definition halls_of_stone.h:41
@ SAY_BRANN_EVENT_C_1
Definition halls_of_stone.h:44
@ SAY_BRANN_EVENT_A_1
Definition halls_of_stone.h:40
@ SAY_BRANN_EVENT_INTRO_2
Definition halls_of_stone.h:39
@ SAY_BRANN_EVENT_B_1
Definition halls_of_stone.h:42

References EventProcessor::AddEventAtOffset(), GetAbedneum(), GetKaddrak(), GetMarnak(), WorldObject::m_Events, ScriptedAI::me, SAY_ABEDNEUM_CRITICAL, SAY_ABEDNEUM_WARNING, SAY_BRANN_EVENT_A_1, SAY_BRANN_EVENT_A_3, SAY_BRANN_EVENT_B_1, SAY_BRANN_EVENT_B_3, SAY_BRANN_EVENT_C_1, SAY_BRANN_EVENT_C_3, SAY_BRANN_EVENT_INTRO_2, SAY_KADDRAK_SECURITY, SAY_MARNAK_THREAT, TALK_GROUP_PHASE1, TALK_GROUP_PHASE2, and TALK_GROUP_PHASE3.

Referenced by InitializeEvent(), and TransitionToPhase().

◆ SchedulePostFightConversation()

void brann_bronzebeard::SchedulePostFightConversation ( )
inline
761 {
762 // Offsets from the end of the fight (relative to EndTribunalFight call)
766 }, 25s, TALK_GROUP_EVENT_END);
767
770 }, 31s, TALK_GROUP_EVENT_END);
771
773 if (Creature* abedneum = GetAbedneum())
774 abedneum->AI()->Talk(SAY_ABEDNEUM_LORE_1);
775 }, 36s, TALK_GROUP_EVENT_END);
776
779 }, 43s, TALK_GROUP_EVENT_END);
780
782 if (Creature* abedneum = GetAbedneum())
783 abedneum->AI()->Talk(SAY_ABEDNEUM_LORE_2);
784 }, 55s, TALK_GROUP_EVENT_END);
785
788 }, 67s, TALK_GROUP_EVENT_END);
789
791 if (Creature* abedneum = GetAbedneum())
792 abedneum->AI()->Talk(SAY_ABEDNEUM_LORE_3);
793 }, 72s, TALK_GROUP_EVENT_END);
794
797 instance->SetData(BOSS_TRIBUNAL_OF_AGES, DONE); // Head switch
798 }, 95s, TALK_GROUP_EVENT_END);
799
801 if (Creature* kaddrak = GetKaddrak())
802 kaddrak->AI()->Talk(SAY_KADDRAK_LORE_1);
803 }, 102s, TALK_GROUP_EVENT_END);
804
808 }, 119s, TALK_GROUP_EVENT_END);
809
811 if (Creature* kaddrak = GetKaddrak())
812 kaddrak->AI()->Talk(SAY_KADDRAK_LORE_2);
814 }, 126s, TALK_GROUP_EVENT_END);
815
818 }, 145s, TALK_GROUP_EVENT_END);
819
821 if (Creature* kaddrak = GetKaddrak())
822 kaddrak->AI()->Talk(SAY_KADDRAK_LORE_3);
823 }, 148s, TALK_GROUP_EVENT_END);
824
828 }, 167s, TALK_GROUP_EVENT_END);
829
831 if (Creature* marnak = GetMarnak())
832 marnak->AI()->Talk(SAY_MARNAK_LORE_1);
834 }, 178s, TALK_GROUP_EVENT_END);
835
838 }, 184s, TALK_GROUP_EVENT_END);
839
841 if (Creature* marnak = GetMarnak())
842 marnak->AI()->Talk(SAY_MARNAK_LORE_2);
843 }, 190s, TALK_GROUP_EVENT_END);
844
848 }, 214s, TALK_GROUP_EVENT_END);
849
851 if (Creature* marnak = GetMarnak())
852 marnak->AI()->Talk(SAY_MARNAK_LORE_3);
854 }, 238s, TALK_GROUP_EVENT_END);
855
858 }, 240s, TALK_GROUP_EVENT_END);
859
861 if (Creature* abedneum = GetAbedneum())
862 abedneum->AI()->Talk(SAY_ABEDNEUM_SESSION_END);
864 }, 249s, TALK_GROUP_EVENT_END);
865
866 // Gossip to go to Sjonnir or auto-transition
869 }, 256s, TALK_GROUP_EVENT_END);
870 }
@ SPECIAL
Definition InstanceScript.h:62
@ SAY_KADDRAK_LORE_3
Definition brann_bronzebeard.cpp:96
@ SAY_KADDRAK_LORE_1
Definition brann_bronzebeard.cpp:94
@ SAY_KADDRAK_LORE_2
Definition brann_bronzebeard.cpp:95
@ SAY_MARNAK_LORE_2
Definition brann_bronzebeard.cpp:103
@ SAY_MARNAK_LORE_3
Definition brann_bronzebeard.cpp:104
@ SAY_MARNAK_LORE_1
Definition brann_bronzebeard.cpp:102
@ SAY_ABEDNEUM_LORE_1
Definition brann_bronzebeard.cpp:85
@ SAY_ABEDNEUM_LORE_2
Definition brann_bronzebeard.cpp:86
@ SAY_ABEDNEUM_LORE_3
Definition brann_bronzebeard.cpp:87
@ SAY_ABEDNEUM_SESSION_END
Definition brann_bronzebeard.cpp:88
@ SAY_BRANN_EVENT_END_20
Definition halls_of_stone.h:58
@ SAY_BRANN_EVENT_END_10
Definition halls_of_stone.h:53
@ SAY_BRANN_EVENT_END_14
Definition halls_of_stone.h:55
@ SAY_BRANN_EVENT_END_06
Definition halls_of_stone.h:51
@ SAY_BRANN_EVENT_END_18
Definition halls_of_stone.h:57
@ SAY_BRANN_EVENT_END_12
Definition halls_of_stone.h:54
@ SAY_BRANN_EVENT_END_08
Definition halls_of_stone.h:52
@ SAY_BRANN_EVENT_END_16
Definition halls_of_stone.h:56
@ SAY_BRANN_EVENT_END_02
Definition halls_of_stone.h:49
@ SAY_BRANN_EVENT_END_01
Definition halls_of_stone.h:48
@ SAY_BRANN_EVENT_END_04
Definition halls_of_stone.h:50

References EventProcessor::AddEventAtOffset(), BOSS_TRIBUNAL_OF_AGES, DONE, GetAbedneum(), GetKaddrak(), GetMarnak(), instance, WorldObject::m_Events, ScriptedAI::me, SAY_ABEDNEUM_LORE_1, SAY_ABEDNEUM_LORE_2, SAY_ABEDNEUM_LORE_3, SAY_ABEDNEUM_SESSION_END, SAY_BRANN_ENTRANCE_MEET, SAY_BRANN_EVENT_END_01, SAY_BRANN_EVENT_END_02, SAY_BRANN_EVENT_END_04, SAY_BRANN_EVENT_END_06, SAY_BRANN_EVENT_END_08, SAY_BRANN_EVENT_END_10, SAY_BRANN_EVENT_END_12, SAY_BRANN_EVENT_END_14, SAY_BRANN_EVENT_END_16, SAY_BRANN_EVENT_END_18, SAY_BRANN_EVENT_END_20, SAY_KADDRAK_LORE_1, SAY_KADDRAK_LORE_2, SAY_KADDRAK_LORE_3, SAY_MARNAK_LORE_1, SAY_MARNAK_LORE_2, SAY_MARNAK_LORE_3, ZoneScript::SetData(), SPECIAL, and TALK_GROUP_EVENT_END.

Referenced by EndTribunalFight().

◆ SetGameObjectState()

void brann_bronzebeard::SetGameObjectState ( uint32  entry,
GOState  state 
)
inline
385 {
386 if (!instance)
387 return;
388
390 go->SetGoState(state);
391 }
ObjectGuid GetGuidData(uint32 type) const override
Definition InstanceScript.cpp:115
GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:208

References ObjectAccessor::GetGameObject(), InstanceScript::GetGuidData(), instance, and ScriptedAI::me.

Referenced by MovementInform(), PathEndReached(), and ResetEvent().

◆ sGossipSelect()

void brann_bronzebeard::sGossipSelect ( Player player,
uint32  ,
uint32   
)
inlineoverridevirtual

Reimplemented from UnitAI.

184 {
185 uint32 const menuId = me->GetGossipMenuId();
186 CloseGossipMenuFor(player);
188
189 switch (menuId)
190 {
191 case TRIBUNAL_BEFORE:
193 break;
194 case TRIBUNAL_START:
196 break;
197 case TRIBUNAL_END:
199 break;
200 case SJONNIR_DOOR:
202 break;
203 default:
204 break;
205 }
206 }
std::uint32_t uint32
Definition Define.h:107
void CloseGossipMenuFor(Player *player)
Definition ScriptedGossip.cpp:56
uint32 GetGossipMenuId() const
Definition Creature.h:209
void DoAction(int32 action) override
Definition brann_bronzebeard.cpp:208

References ACTION_GO_TO_SJONNIR, ACTION_OPEN_DOOR, ACTION_START_ESCORT_EVENT, ACTION_START_TRIBUNAL, CloseGossipMenuFor(), DoAction(), Creature::GetGossipMenuId(), ScriptedAI::me, Unit::RemoveNpcFlag(), SJONNIR_DOOR, TRIBUNAL_BEFORE, TRIBUNAL_END, TRIBUNAL_START, UNIT_NPC_FLAG_GOSSIP, and UNIT_NPC_FLAG_QUESTGIVER.

◆ SummonCreatures()

void brann_bronzebeard::SummonCreatures ( uint32  entry)
inline
527 {
528 switch (entry)
529 {
532 break;
535 break;
538 break;
539 }
540 }
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
Definition Object.cpp:2525

References ScriptedAI::me, NPC_DARK_RUNE_PROTECTOR, NPC_DARK_RUNE_STORMCALLER, NPC_IRON_GOLEM_CUSTODIAN, and WorldObject::SummonCreatureGroup().

Referenced by SchedulePhaseAbilities().

◆ SwitchHeadVisual()

void brann_bronzebeard::SwitchHeadVisual ( uint8  headMask,
bool  activate 
)
inline
463 {
464 if (!instance)
465 return;
466
467 GameObject* go = nullptr;
468 if (headMask & 0x1) // Kaddrak
470 {
471 if (activate)
472 {
473 go->SendCustomAnim(0);
474 }
475 else
476 {
477 go->SendCustomAnim(1);
478 if (go->GetGoState() == GO_STATE_ACTIVE)
480 }
481 }
482 if (headMask & 0x2) // Marnak
484 {
485 if (activate)
486 {
487 go->SendCustomAnim(0);
488 }
489 else
490 {
491 go->SendCustomAnim(1);
492 if (go->GetGoState() == GO_STATE_ACTIVE)
494 }
495 }
496 if (headMask & 0x4) // Abedneum
498 {
499 if (activate)
500 {
501 go->SendCustomAnim(0);
502 }
503 else
504 {
505 go->SendCustomAnim(1);
506 if (go->GetGoState() == GO_STATE_ACTIVE)
508 }
509 }
510 }
void SetGoState(GOState state)
Definition GameObject.cpp:2503
GOState GetGoState() const
Definition GameObject.h:205
void SendCustomAnim(uint32 anim)
Definition GameObject.cpp:2148
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2419
@ GO_ABEDNEUM
Definition halls_of_stone.h:84
@ GO_KADDRAK
Definition halls_of_stone.h:82
@ GO_MARNAK
Definition halls_of_stone.h:83

References Map::GetGameObject(), GameObject::GetGoState(), InstanceScript::GetGuidData(), WorldObject::GetMap(), GO_ABEDNEUM, GO_KADDRAK, GO_MARNAK, GO_STATE_ACTIVE, GO_STATE_READY, instance, ScriptedAI::me, GameObject::SendCustomAnim(), and GameObject::SetGoState().

Referenced by DespawnHeads(), and SchedulePhaseAbilities().

◆ TeleportTo()

void brann_bronzebeard::TeleportTo ( Position const &  pos)
inline
380 {
381 me->NearTeleportTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation());
382 }
void NearTeleportTo(Position &pos, bool casting=false, bool vehicleTeleport=false, bool withPet=false, bool removeTransport=false)
Definition Unit.cpp:15959

References Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), ScriptedAI::me, and Unit::NearTeleportTo().

Referenced by Reset().

◆ TransitionToPhase()

void brann_bronzebeard::TransitionToPhase ( uint8  phase)
inline
543 {
544 _currentPhase = phase;
545 me->m_Events.CancelEventGroup(phase - 1); // Cancel previous phase's remaining talks
546 SchedulePhaseTalks(phase);
549 }
void CancelEventGroup(uint8 group)
Definition EventProcessor.cpp:114

References _currentPhase, EventProcessor::CancelEventGroup(), WorldObject::m_Events, ScriptedAI::me, ScheduleNextTransition(), SchedulePhaseAbilities(), and SchedulePhaseTalks().

Referenced by DoAction(), and ScheduleNextTransition().

◆ UpdateAI()

void brann_bronzebeard::UpdateAI ( uint32  )
inlineoverridevirtual

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

Implements UnitAI.

969 {
970 scheduler.Update(diff);
971
972 // Here to avoid evades during the event
974 return;
975
976 if (!UpdateVictim())
977 return;
978
980 }
bool UpdateVictim()
Definition CreatureAI.cpp:350
TaskScheduler & Update(success_t const &callback=EmptyCallback)
Definition TaskScheduler.cpp:27
void DoMeleeAttackIfReady()
Definition UnitAI.cpp:41

References BRANN_BRONZEBEARD, UnitAI::DoMeleeAttackIfReady(), InstanceScript::GetBossState(), IN_PROGRESS, instance, CreatureAI::scheduler, TaskScheduler::Update(), and CreatureAI::UpdateVictim().

Member Data Documentation

◆ _currentPhase

uint8 brann_bronzebeard::_currentPhase = 0
private

◆ _leftEye

bool brann_bronzebeard::_leftEye = true
private

Referenced by SchedulePhaseAbilities().

◆ _recentlySpoken

bool brann_bronzebeard::_recentlySpoken
private

◆ AbedneumGUID

ObjectGuid brann_bronzebeard::AbedneumGUID
private

Referenced by GetAbedneum(), and InitializeEvent().

◆ darkMatterTargetGUID

ObjectGuid brann_bronzebeard::darkMatterTargetGUID
private

Referenced by DoMarnakDarkMatter().

◆ instance

◆ KaddrakGUID

ObjectGuid brann_bronzebeard::KaddrakGUID
private

Referenced by GetKaddrak(), and InitializeEvent().

◆ MarnakGUID

ObjectGuid brann_bronzebeard::MarnakGUID
private

Referenced by GetMarnak(), and InitializeEvent().

◆ summons

SummonList brann_bronzebeard::summons
private

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