AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
bosses_opera.cpp File Reference
#include "CreatureScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
#include "TaskScheduler.h"
#include "karazhan.h"

Go to the source code of this file.

Classes

struct  boss_dorothee
 
struct  npc_tito
 
struct  boss_roar
 
struct  boss_strawman
 
struct  boss_tinhead
 
struct  boss_crone
 
struct  npc_cyclone
 
struct  npc_grandmother
 
struct  boss_bigbadwolf
 
struct  boss_julianne
 
struct  boss_romulo
 

Enumerations

enum  Says {
  SAY_DOROTHEE_DEATH = 0 ,
  SAY_DOROTHEE_SUMMON = 1 ,
  SAY_DOROTHEE_TITO_DEATH = 2 ,
  SAY_DOROTHEE_AGGRO = 3 ,
  SAY_ROAR_AGGRO = 0 ,
  SAY_ROAR_DEATH = 1 ,
  SAY_ROAR_SLAY = 2 ,
  SAY_STRAWMAN_AGGRO = 0 ,
  SAY_STRAWMAN_DEATH = 1 ,
  SAY_STRAWMAN_SLAY = 2 ,
  SAY_TINHEAD_AGGRO = 0 ,
  SAY_TINHEAD_DEATH = 1 ,
  SAY_TINHEAD_SLAY = 2 ,
  EMOTE_RUST = 3 ,
  SAY_CRONE_AGGRO = 0 ,
  SAY_CRONE_DEATH = 1 ,
  SAY_CRONE_SLAY = 2
}
 
enum  Spells {
  SPELL_WATERBOLT = 31012 ,
  SPELL_SCREAM = 31013 ,
  SPELL_SUMMONTITO = 31014 ,
  SPELL_YIPPING = 31015 ,
  SPELL_BRAIN_BASH = 31046 ,
  SPELL_BRAIN_WIPE = 31069 ,
  SPELL_BURNING_STRAW = 31075 ,
  SPELL_CLEAVE = 31043 ,
  SPELL_RUST = 31086 ,
  SPELL_MANGLE = 31041 ,
  SPELL_SHRED = 31042 ,
  SPELL_FRIGHTENED_SCREAM = 31013 ,
  SPELL_CHAIN_LIGHTNING = 32337 ,
  SPELL_KNOCKBACK = 32334 ,
  SPELL_CYCLONE_VISUAL = 32332
}
 
enum  Creatures {
  CREATURE_TITO = 17548 ,
  CREATURE_CYCLONE = 18412 ,
  CREATURE_CRONE = 18168
}
 
enum  OZActions { ACTION_RELEASE = 1 }
 
enum  RedRidingHood {
  SAY_WOLF_AGGRO = 0 ,
  SAY_WOLF_SLAY = 1 ,
  SAY_WOLF_HOOD = 2 ,
  SOUND_WOLF_DEATH = 9275 ,
  SPELL_LITTLE_RED_RIDING_HOOD = 30768 ,
  SPELL_TERRIFYING_HOWL = 30752 ,
  SPELL_WIDE_SWIPE = 30761 ,
  SPELL_PICNIC_BASKET_SMELL = 30755 ,
  CREATURE_BIG_BAD_WOLF = 17521 ,
  GRANDMOTHER_GOSSIP_MENU1 = 7441 ,
  GRANDMOTHER_GOSSIP_MENU2 = 7442 ,
  GRANDMOTHER_GOSSIP_MENU3 = 7443 ,
  GRANDMOTHER_TEXT1 = 9009 ,
  GRANDMOTHER_TEXT2 = 9010 ,
  GRANDMOTHER_TEXT3 = 9011
}
 
enum  JulianneRomulo {
  SAY_JULIANNE_AGGRO = 0 ,
  SAY_JULIANNE_ENTER = 1 ,
  SAY_JULIANNE_DEATH01 = 2 ,
  SAY_JULIANNE_DEATH02 = 3 ,
  SAY_JULIANNE_RESURRECT = 4 ,
  SAY_JULIANNE_SLAY = 5 ,
  SAY_ROMULO_AGGRO = 0 ,
  SAY_ROMULO_DEATH = 1 ,
  SAY_ROMULO_DEATH2 = 2 ,
  SAY_ROMULO_RESURRECT = 3 ,
  SAY_ROMULO_SLAY = 4 ,
  SPELL_BLINDING_PASSION = 30890 ,
  SPELL_DEVOTION = 30887 ,
  SPELL_ETERNAL_AFFECTION = 30878 ,
  SPELL_POWERFUL_ATTRACTION = 30889 ,
  SPELL_DRINK_POISON = 30907 ,
  SPELL_BACKWARD_LUNGE = 30815 ,
  SPELL_DARING = 30841 ,
  SPELL_DEADLY_SWATHE = 30817 ,
  SPELL_POISON_THRUST = 30822 ,
  SPELL_UNDYING_LOVE = 30951 ,
  SPELL_RES_VISUAL = 24171 ,
  CREATURE_ROMULO = 17533 ,
  ROMULO_X = -10900 ,
  ROMULO_Y = -1758
}
 
enum  RAJPhase {
  PHASE_JULIANNE = 0 ,
  PHASE_ROMULO = 1 ,
  PHASE_BOTH = 2
}
 
enum  RAJGroups {
  GROUP_COMBAT = 0 ,
  GROUP_RP = 1
}
 
enum  RAJActions {
  ACTION_FAKING_DEATH = 2 ,
  ACTION_COMBAT_SCHEDULE = 3 ,
  ACTION_CANCEL_COMBAT = 6
}
 

Functions

void SummonCroneIfReady (InstanceScript *instance, Creature *creature)
 
void DespawnAll (InstanceScript *instance)
 
void DoActions (InstanceScript *instance)
 
void PretendToDie (Creature *creature)
 
void Resurrect (Creature *target)
 
void AddSC_bosses_opera ()
 

Enumeration Type Documentation

◆ Creatures

enum Creatures
Enumerator
CREATURE_TITO 
CREATURE_CYCLONE 
CREATURE_CRONE 
94{
95 CREATURE_TITO = 17548,
96 CREATURE_CYCLONE = 18412,
97 CREATURE_CRONE = 18168,
98};
@ CREATURE_TITO
Definition bosses_opera.cpp:95
@ CREATURE_CRONE
Definition bosses_opera.cpp:97
@ CREATURE_CYCLONE
Definition bosses_opera.cpp:96

◆ JulianneRomulo

Enumerator
SAY_JULIANNE_AGGRO 
SAY_JULIANNE_ENTER 
SAY_JULIANNE_DEATH01 
SAY_JULIANNE_DEATH02 
SAY_JULIANNE_RESURRECT 
SAY_JULIANNE_SLAY 
SAY_ROMULO_AGGRO 
SAY_ROMULO_DEATH 
SAY_ROMULO_DEATH2 
SAY_ROMULO_RESURRECT 
SAY_ROMULO_SLAY 
SPELL_BLINDING_PASSION 
SPELL_DEVOTION 
SPELL_ETERNAL_AFFECTION 
SPELL_POWERFUL_ATTRACTION 
SPELL_DRINK_POISON 
SPELL_BACKWARD_LUNGE 
SPELL_DARING 
SPELL_DEADLY_SWATHE 
SPELL_POISON_THRUST 
SPELL_UNDYING_LOVE 
SPELL_RES_VISUAL 
CREATURE_ROMULO 
ROMULO_X 
ROMULO_Y 
824{
825 /**** Speech *****/
832
837 SAY_ROMULO_SLAY = 4,
838
840 SPELL_DEVOTION = 30887,
843 SPELL_DRINK_POISON = 30907,
844
845 SPELL_BACKWARD_LUNGE = 30815,
846 SPELL_DARING = 30841,
847 SPELL_DEADLY_SWATHE = 30817,
848 SPELL_POISON_THRUST = 30822,
849
850 SPELL_UNDYING_LOVE = 30951,
851 SPELL_RES_VISUAL = 24171,
852
853 CREATURE_ROMULO = 17533,
854 ROMULO_X = -10900,
855 ROMULO_Y = -1758,
856};
@ SAY_ROMULO_DEATH2
Definition bosses_opera.cpp:835
@ SAY_ROMULO_DEATH
Definition bosses_opera.cpp:834
@ SAY_ROMULO_AGGRO
Definition bosses_opera.cpp:833
@ SAY_ROMULO_SLAY
Definition bosses_opera.cpp:837
@ CREATURE_ROMULO
Definition bosses_opera.cpp:853
@ SAY_JULIANNE_DEATH02
Definition bosses_opera.cpp:829
@ SPELL_ETERNAL_AFFECTION
Definition bosses_opera.cpp:841
@ SPELL_UNDYING_LOVE
Definition bosses_opera.cpp:850
@ SPELL_DRINK_POISON
Definition bosses_opera.cpp:843
@ ROMULO_Y
Definition bosses_opera.cpp:855
@ SAY_JULIANNE_ENTER
Definition bosses_opera.cpp:827
@ SPELL_BLINDING_PASSION
Definition bosses_opera.cpp:839
@ SAY_JULIANNE_RESURRECT
Definition bosses_opera.cpp:830
@ SPELL_POWERFUL_ATTRACTION
Definition bosses_opera.cpp:842
@ SAY_JULIANNE_AGGRO
Definition bosses_opera.cpp:826
@ SAY_ROMULO_RESURRECT
Definition bosses_opera.cpp:836
@ ROMULO_X
Definition bosses_opera.cpp:854
@ SPELL_DEADLY_SWATHE
Definition bosses_opera.cpp:847
@ SPELL_DEVOTION
Definition bosses_opera.cpp:840
@ SPELL_POISON_THRUST
Definition bosses_opera.cpp:848
@ SAY_JULIANNE_DEATH01
Definition bosses_opera.cpp:828
@ SPELL_BACKWARD_LUNGE
Definition bosses_opera.cpp:845
@ SPELL_DARING
Definition bosses_opera.cpp:846
@ SAY_JULIANNE_SLAY
Definition bosses_opera.cpp:831
@ SPELL_RES_VISUAL
Definition bosses_opera.cpp:851

◆ OZActions

enum OZActions
Enumerator
ACTION_RELEASE 
101{
102 ACTION_RELEASE = 1,
103};
@ ACTION_RELEASE
Definition bosses_opera.cpp:102

◆ RAJActions

enum RAJActions
Enumerator
ACTION_FAKING_DEATH 
ACTION_COMBAT_SCHEDULE 
ACTION_CANCEL_COMBAT 
872{
875 //ACTION_DO_RESURRECT = 4,
876 //ACTION_RESS_ROMULO = 5,
878};
@ ACTION_COMBAT_SCHEDULE
Definition bosses_opera.cpp:874
@ ACTION_FAKING_DEATH
Definition bosses_opera.cpp:873
@ ACTION_CANCEL_COMBAT
Definition bosses_opera.cpp:877

◆ RAJGroups

enum RAJGroups
Enumerator
GROUP_COMBAT 
GROUP_RP 
866{
867 GROUP_COMBAT = 0,
868 GROUP_RP = 1
869};
@ GROUP_COMBAT
Definition bosses_opera.cpp:867
@ GROUP_RP
Definition bosses_opera.cpp:868

◆ RAJPhase

enum RAJPhase
Enumerator
PHASE_JULIANNE 
PHASE_ROMULO 
PHASE_BOTH 
859{
860 PHASE_JULIANNE = 0,
861 PHASE_ROMULO = 1,
862 PHASE_BOTH = 2,
863};
@ PHASE_BOTH
Definition bosses_opera.cpp:862
@ PHASE_JULIANNE
Definition bosses_opera.cpp:860
@ PHASE_ROMULO
Definition bosses_opera.cpp:861

◆ RedRidingHood

Enumerator
SAY_WOLF_AGGRO 
SAY_WOLF_SLAY 
SAY_WOLF_HOOD 
SOUND_WOLF_DEATH 
SPELL_LITTLE_RED_RIDING_HOOD 
SPELL_TERRIFYING_HOWL 
SPELL_WIDE_SWIPE 
SPELL_PICNIC_BASKET_SMELL 
CREATURE_BIG_BAD_WOLF 
GRANDMOTHER_GOSSIP_MENU1 
GRANDMOTHER_GOSSIP_MENU2 
GRANDMOTHER_GOSSIP_MENU3 
GRANDMOTHER_TEXT1 
GRANDMOTHER_TEXT2 
GRANDMOTHER_TEXT3 
682{
683 SAY_WOLF_AGGRO = 0,
684 SAY_WOLF_SLAY = 1,
685 SAY_WOLF_HOOD = 2,
686 SOUND_WOLF_DEATH = 9275,
687
689 SPELL_TERRIFYING_HOWL = 30752,
690 SPELL_WIDE_SWIPE = 30761,
692
693 CREATURE_BIG_BAD_WOLF = 17521,
694
698
699 GRANDMOTHER_TEXT1 = 9009,
700 GRANDMOTHER_TEXT2 = 9010,
701 GRANDMOTHER_TEXT3 = 9011
702};
@ SAY_WOLF_HOOD
Definition bosses_opera.cpp:685
@ GRANDMOTHER_TEXT3
Definition bosses_opera.cpp:701
@ GRANDMOTHER_GOSSIP_MENU2
Definition bosses_opera.cpp:696
@ CREATURE_BIG_BAD_WOLF
Definition bosses_opera.cpp:693
@ SPELL_PICNIC_BASKET_SMELL
Definition bosses_opera.cpp:691
@ SPELL_WIDE_SWIPE
Definition bosses_opera.cpp:690
@ SAY_WOLF_SLAY
Definition bosses_opera.cpp:684
@ SAY_WOLF_AGGRO
Definition bosses_opera.cpp:683
@ SPELL_LITTLE_RED_RIDING_HOOD
Definition bosses_opera.cpp:688
@ GRANDMOTHER_TEXT1
Definition bosses_opera.cpp:699
@ GRANDMOTHER_TEXT2
Definition bosses_opera.cpp:700
@ SOUND_WOLF_DEATH
Definition bosses_opera.cpp:686
@ GRANDMOTHER_GOSSIP_MENU3
Definition bosses_opera.cpp:697
@ SPELL_TERRIFYING_HOWL
Definition bosses_opera.cpp:689
@ GRANDMOTHER_GOSSIP_MENU1
Definition bosses_opera.cpp:695

◆ Says

enum Says
Enumerator
SAY_DOROTHEE_DEATH 
SAY_DOROTHEE_SUMMON 
SAY_DOROTHEE_TITO_DEATH 
SAY_DOROTHEE_AGGRO 
SAY_ROAR_AGGRO 
SAY_ROAR_DEATH 
SAY_ROAR_SLAY 
SAY_STRAWMAN_AGGRO 
SAY_STRAWMAN_DEATH 
SAY_STRAWMAN_SLAY 
SAY_TINHEAD_AGGRO 
SAY_TINHEAD_DEATH 
SAY_TINHEAD_SLAY 
EMOTE_RUST 
SAY_CRONE_AGGRO 
SAY_CRONE_DEATH 
SAY_CRONE_SLAY 
37{
42
45 SAY_ROAR_SLAY = 2,
46
50
54 EMOTE_RUST = 3,
55
59};
@ SAY_ROAR_DEATH
Definition bosses_opera.cpp:44
@ SAY_ROAR_AGGRO
Definition bosses_opera.cpp:43
@ SAY_DOROTHEE_TITO_DEATH
Definition bosses_opera.cpp:40
@ SAY_DOROTHEE_DEATH
Definition bosses_opera.cpp:38
@ SAY_STRAWMAN_DEATH
Definition bosses_opera.cpp:48
@ SAY_CRONE_SLAY
Definition bosses_opera.cpp:58
@ SAY_CRONE_DEATH
Definition bosses_opera.cpp:57
@ SAY_DOROTHEE_AGGRO
Definition bosses_opera.cpp:41
@ SAY_STRAWMAN_SLAY
Definition bosses_opera.cpp:49
@ SAY_TINHEAD_DEATH
Definition bosses_opera.cpp:52
@ SAY_TINHEAD_SLAY
Definition bosses_opera.cpp:53
@ SAY_TINHEAD_AGGRO
Definition bosses_opera.cpp:51
@ SAY_CRONE_AGGRO
Definition bosses_opera.cpp:56
@ EMOTE_RUST
Definition bosses_opera.cpp:54
@ SAY_DOROTHEE_SUMMON
Definition bosses_opera.cpp:39
@ SAY_STRAWMAN_AGGRO
Definition bosses_opera.cpp:47
@ SAY_ROAR_SLAY
Definition bosses_opera.cpp:45

◆ Spells

enum Spells
Enumerator
SPELL_WATERBOLT 
SPELL_SCREAM 
SPELL_SUMMONTITO 
SPELL_YIPPING 
SPELL_BRAIN_BASH 
SPELL_BRAIN_WIPE 
SPELL_BURNING_STRAW 
SPELL_CLEAVE 
SPELL_RUST 
SPELL_MANGLE 
SPELL_SHRED 
SPELL_FRIGHTENED_SCREAM 
SPELL_CHAIN_LIGHTNING 
SPELL_KNOCKBACK 
SPELL_CYCLONE_VISUAL 
62{
63 // Dorothee
64 SPELL_WATERBOLT = 31012,
65 SPELL_SCREAM = 31013,
66 SPELL_SUMMONTITO = 31014,
67
68 // Tito
69 SPELL_YIPPING = 31015,
70
71 // Strawman
72 SPELL_BRAIN_BASH = 31046,
73 SPELL_BRAIN_WIPE = 31069,
74 SPELL_BURNING_STRAW = 31075,
75
76 // Tinhead
77 SPELL_CLEAVE = 31043,
78 SPELL_RUST = 31086,
79
80 // Roar
81 SPELL_MANGLE = 31041,
82 SPELL_SHRED = 31042,
84
85 // Crone
87
88 // Cyclone
89 SPELL_KNOCKBACK = 32334,
91};
@ SPELL_CLEAVE
Definition bosses_opera.cpp:77
@ SPELL_CYCLONE_VISUAL
Definition bosses_opera.cpp:90
@ SPELL_WATERBOLT
Definition bosses_opera.cpp:64
@ SPELL_SUMMONTITO
Definition bosses_opera.cpp:66
@ SPELL_KNOCKBACK
Definition bosses_opera.cpp:89
@ SPELL_MANGLE
Definition bosses_opera.cpp:81
@ SPELL_BRAIN_WIPE
Definition bosses_opera.cpp:73
@ SPELL_SCREAM
Definition bosses_opera.cpp:65
@ SPELL_SHRED
Definition bosses_opera.cpp:82
@ SPELL_RUST
Definition bosses_opera.cpp:78
@ SPELL_FRIGHTENED_SCREAM
Definition bosses_opera.cpp:83
@ SPELL_CHAIN_LIGHTNING
Definition bosses_opera.cpp:86
@ SPELL_BURNING_STRAW
Definition bosses_opera.cpp:74
@ SPELL_YIPPING
Definition bosses_opera.cpp:69
@ SPELL_BRAIN_BASH
Definition bosses_opera.cpp:72

Function Documentation

◆ AddSC_bosses_opera()

void AddSC_bosses_opera ( )
1287{
1295 new npc_grandmother();
1299}
#define RegisterKarazhanCreatureAI(ai_name)
Definition karazhan.h:219
Definition bosses_opera.cpp:742
Definition bosses_opera.cpp:583
Definition bosses_opera.cpp:159
Definition bosses_opera.cpp:910
Definition bosses_opera.cpp:306
Definition bosses_opera.cpp:1127
Definition bosses_opera.cpp:394
Definition bosses_opera.cpp:489
Definition bosses_opera.cpp:652
Definition bosses_opera.cpp:705
Definition bosses_opera.cpp:275

References RegisterKarazhanCreatureAI.

Referenced by AddEasternKingdomsScripts().

◆ DespawnAll()

void DespawnAll ( InstanceScript instance)
122{
123 if (Creature* dorothee = instance->GetCreature(DATA_DOROTHEE))
124 {
125 dorothee->DespawnOrUnsummon();
126 }
127 if (Creature* roar = instance->GetCreature(DATA_ROAR))
128 {
129 roar->DespawnOrUnsummon();
130 }
131 if (Creature* strawman = instance->GetCreature(DATA_STRAWMAN))
132 {
133 strawman->DespawnOrUnsummon();
134 }
135 if (Creature* tinhead = instance->GetCreature(DATA_TINHEAD))
136 {
137 tinhead->DespawnOrUnsummon();
138 }
139 if (Creature* tito = instance->GetCreature(DATA_TITO))
140 {
141 tito->DespawnOrUnsummon();
142 }
143}
Definition Creature.h:43
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
@ DATA_ROAR
Definition karazhan.h:73
@ DATA_DOROTHEE
Definition karazhan.h:69
@ DATA_STRAWMAN
Definition karazhan.h:74
@ DATA_TITO
Definition karazhan.h:76
@ DATA_TINHEAD
Definition karazhan.h:75

References DATA_DOROTHEE, DATA_ROAR, DATA_STRAWMAN, DATA_TINHEAD, DATA_TITO, and InstanceScript::GetCreature().

Referenced by boss_dorothee::EnterEvadeMode(), boss_roar::EnterEvadeMode(), boss_strawman::EnterEvadeMode(), and boss_tinhead::EnterEvadeMode().

◆ DoActions()

void DoActions ( InstanceScript instance)
146{
148
149 for (uint32 data : datas)
150 {
151 if (Creature* actionCreature = instance->GetCreature(data))
152 {
153 actionCreature->AI()->DoAction(ACTION_RELEASE);
154 }
155 }
156}
std::uint32_t uint32
Definition Define.h:107

References ACTION_RELEASE, DATA_DOROTHEE, DATA_ROAR, DATA_STRAWMAN, DATA_TINHEAD, and InstanceScript::GetCreature().

Referenced by boss_dorothee::UpdateAI().

◆ PretendToDie()

void PretendToDie ( Creature creature)
881{
882 creature->AI()->DoAction(ACTION_CANCEL_COMBAT);
883 creature->InterruptNonMeleeSpells(true);
884 creature->RemoveAllAuras();
886 creature->SetReactState(REACT_PASSIVE);
887 creature->GetMotionMaster()->MovementExpired(false);
888 creature->GetMotionMaster()->MoveIdle();
890}
@ UNIT_STAND_STATE_DEAD
Definition UnitDefines.h:39
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:275
@ REACT_PASSIVE
Definition Unit.h:548
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:95
CreatureAI * AI() const
Definition Creature.h:141
void MovementExpired(bool reset=true)
Definition MotionMaster.h:180
void MoveIdle()
Definition MotionMaster.cpp:232
virtual void DoAction(int32)
Definition UnitAI.h:212
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true, bool bySelf=false)
Definition Unit.cpp:4161
MotionMaster * GetMotionMaster()
Definition Unit.h:1673
void RemoveAllAuras()
Definition Unit.cpp:5351
void SetUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:719
void SetStandState(uint8 state)
Definition Unit.cpp:16778

References ACTION_CANCEL_COMBAT, Creature::AI(), UnitAI::DoAction(), Unit::GetMotionMaster(), Unit::InterruptNonMeleeSpells(), MotionMaster::MoveIdle(), MotionMaster::MovementExpired(), REACT_PASSIVE, Unit::RemoveAllAuras(), Creature::SetReactState(), Unit::SetStandState(), Unit::SetUnitFlag(), UNIT_FLAG_NOT_SELECTABLE, and UNIT_STAND_STATE_DEAD.

Referenced by boss_julianne::DamageTaken(), boss_romulo::DamageTaken(), and boss_julianne::SpellHit().

◆ Resurrect()

void Resurrect ( Creature target)
893{
896 target->SetFullHealth();
898 target->CastSpell(target, SPELL_RES_VISUAL, true);
900 if (target->GetVictim())
901 {
902 target->GetMotionMaster()->MoveChase(target->GetVictim());
903 target->AI()->AttackStart(target->GetVictim());
904 }
905 else
906 target->GetMotionMaster()->Initialize();
907}
@ UNIT_STAND_STATE_STAND
Definition UnitDefines.h:32
@ REACT_AGGRESSIVE
Definition Unit.h:550
void Initialize()
Definition MotionMaster.cpp:73
void MoveChase(Unit *target, std::optional< ChaseRange > dist={}, std::optional< ChaseAngle > angle={})
Force the unit to chase this target. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:313
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:27
void SetFullHealth()
Definition Unit.h:1056
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:1178
Unit * GetVictim() const
Definition Unit.h:862
void RemoveUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:720

References ACTION_COMBAT_SCHEDULE, Creature::AI(), UnitAI::AttackStart(), Unit::CastSpell(), UnitAI::DoAction(), Unit::GetMotionMaster(), Unit::GetVictim(), MotionMaster::Initialize(), MotionMaster::MoveChase(), REACT_AGGRESSIVE, Unit::RemoveUnitFlag(), Unit::SetFullHealth(), Creature::SetReactState(), Unit::SetStandState(), SPELL_RES_VISUAL, UNIT_FLAG_NOT_SELECTABLE, and UNIT_STAND_STATE_STAND.

Referenced by boss_romulo::DamageTaken(), boss_julianne::DoAction(), boss_julianne::Reset(), and Battlefield::Update().

◆ SummonCroneIfReady()

void SummonCroneIfReady ( InstanceScript instance,
Creature creature 
)
106{
107 instance->SetData(DATA_OPERA_OZ_DEATHCOUNT, SPECIAL); // Increment DeathCount
108
109 if (instance->GetData(DATA_OPERA_OZ_DEATHCOUNT) == 4)
110 {
111 if (Creature* pCrone = creature->SummonCreature(CREATURE_CRONE, -10891.96f, -1755.95f, creature->GetPositionZ(), 4.64f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR * 2 * IN_MILLISECONDS))
112 {
113 if (creature->GetVictim())
114 pCrone->AI()->AttackStart(creature->GetVictim());
115 pCrone->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
116 pCrone->SetImmuneToPC(false);
117 }
118 }
119}
constexpr auto IN_MILLISECONDS
Definition Common.h:53
constexpr auto HOUR
Definition Common.h:48
@ SPECIAL
Definition InstanceScript.h:62
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
Definition Object.h:46
@ UNIT_FLAG_NON_ATTACKABLE
Definition UnitDefines.h:251
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2368
virtual uint32 GetData(uint32) const
Definition ZoneScript.h:51
virtual void SetData(uint32, uint32)
Definition ZoneScript.h:52
@ DATA_OPERA_OZ_DEATHCOUNT
Definition karazhan.h:43
float GetPositionZ() const
Definition Position.h:123

References CREATURE_CRONE, DATA_OPERA_OZ_DEATHCOUNT, ZoneScript::GetData(), Position::GetPositionZ(), Unit::GetVictim(), HOUR, IN_MILLISECONDS, ZoneScript::SetData(), SPECIAL, WorldObject::SummonCreature(), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, and UNIT_FLAG_NON_ATTACKABLE.

Referenced by boss_dorothee::JustDied(), boss_roar::JustDied(), boss_strawman::JustDied(), and boss_tinhead::JustDied().