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 
87{
88 CREATURE_TITO = 17548,
89 CREATURE_CYCLONE = 18412,
90 CREATURE_CRONE = 18168,
91};
@ CREATURE_TITO
Definition bosses_opera.cpp:88
@ CREATURE_CRONE
Definition bosses_opera.cpp:90
@ CREATURE_CYCLONE
Definition bosses_opera.cpp:89

◆ 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 
817{
818 /**** Speech *****/
825
830 SAY_ROMULO_SLAY = 4,
831
833 SPELL_DEVOTION = 30887,
836 SPELL_DRINK_POISON = 30907,
837
838 SPELL_BACKWARD_LUNGE = 30815,
839 SPELL_DARING = 30841,
840 SPELL_DEADLY_SWATHE = 30817,
841 SPELL_POISON_THRUST = 30822,
842
843 SPELL_UNDYING_LOVE = 30951,
844 SPELL_RES_VISUAL = 24171,
845
846 CREATURE_ROMULO = 17533,
847 ROMULO_X = -10900,
848 ROMULO_Y = -1758,
849};
@ SAY_ROMULO_DEATH2
Definition bosses_opera.cpp:828
@ SAY_ROMULO_DEATH
Definition bosses_opera.cpp:827
@ SAY_ROMULO_AGGRO
Definition bosses_opera.cpp:826
@ SAY_ROMULO_SLAY
Definition bosses_opera.cpp:830
@ CREATURE_ROMULO
Definition bosses_opera.cpp:846
@ SAY_JULIANNE_DEATH02
Definition bosses_opera.cpp:822
@ SPELL_ETERNAL_AFFECTION
Definition bosses_opera.cpp:834
@ SPELL_UNDYING_LOVE
Definition bosses_opera.cpp:843
@ SPELL_DRINK_POISON
Definition bosses_opera.cpp:836
@ ROMULO_Y
Definition bosses_opera.cpp:848
@ SAY_JULIANNE_ENTER
Definition bosses_opera.cpp:820
@ SPELL_BLINDING_PASSION
Definition bosses_opera.cpp:832
@ SAY_JULIANNE_RESURRECT
Definition bosses_opera.cpp:823
@ SPELL_POWERFUL_ATTRACTION
Definition bosses_opera.cpp:835
@ SAY_JULIANNE_AGGRO
Definition bosses_opera.cpp:819
@ SAY_ROMULO_RESURRECT
Definition bosses_opera.cpp:829
@ ROMULO_X
Definition bosses_opera.cpp:847
@ SPELL_DEADLY_SWATHE
Definition bosses_opera.cpp:840
@ SPELL_DEVOTION
Definition bosses_opera.cpp:833
@ SPELL_POISON_THRUST
Definition bosses_opera.cpp:841
@ SAY_JULIANNE_DEATH01
Definition bosses_opera.cpp:821
@ SPELL_BACKWARD_LUNGE
Definition bosses_opera.cpp:838
@ SPELL_DARING
Definition bosses_opera.cpp:839
@ SAY_JULIANNE_SLAY
Definition bosses_opera.cpp:824
@ SPELL_RES_VISUAL
Definition bosses_opera.cpp:844

◆ OZActions

enum OZActions
Enumerator
ACTION_RELEASE 
94{
96};
@ ACTION_RELEASE
Definition bosses_opera.cpp:95

◆ RAJActions

enum RAJActions
Enumerator
ACTION_FAKING_DEATH 
ACTION_COMBAT_SCHEDULE 
ACTION_CANCEL_COMBAT 
865{
868 //ACTION_DO_RESURRECT = 4,
869 //ACTION_RESS_ROMULO = 5,
871};
@ ACTION_COMBAT_SCHEDULE
Definition bosses_opera.cpp:867
@ ACTION_FAKING_DEATH
Definition bosses_opera.cpp:866
@ ACTION_CANCEL_COMBAT
Definition bosses_opera.cpp:870

◆ RAJGroups

enum RAJGroups
Enumerator
GROUP_COMBAT 
GROUP_RP 
859{
860 GROUP_COMBAT = 0,
861 GROUP_RP = 1
862};
@ GROUP_COMBAT
Definition bosses_opera.cpp:860
@ GROUP_RP
Definition bosses_opera.cpp:861

◆ RAJPhase

enum RAJPhase
Enumerator
PHASE_JULIANNE 
PHASE_ROMULO 
PHASE_BOTH 
852{
853 PHASE_JULIANNE = 0,
854 PHASE_ROMULO = 1,
855 PHASE_BOTH = 2,
856};
@ PHASE_BOTH
Definition bosses_opera.cpp:855
@ PHASE_JULIANNE
Definition bosses_opera.cpp:853
@ PHASE_ROMULO
Definition bosses_opera.cpp:854

◆ 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 
675{
676 SAY_WOLF_AGGRO = 0,
677 SAY_WOLF_SLAY = 1,
678 SAY_WOLF_HOOD = 2,
679 SOUND_WOLF_DEATH = 9275,
680
682 SPELL_TERRIFYING_HOWL = 30752,
683 SPELL_WIDE_SWIPE = 30761,
685
686 CREATURE_BIG_BAD_WOLF = 17521,
687
691
692 GRANDMOTHER_TEXT1 = 9009,
693 GRANDMOTHER_TEXT2 = 9010,
694 GRANDMOTHER_TEXT3 = 9011
695};
@ SAY_WOLF_HOOD
Definition bosses_opera.cpp:678
@ GRANDMOTHER_TEXT3
Definition bosses_opera.cpp:694
@ GRANDMOTHER_GOSSIP_MENU2
Definition bosses_opera.cpp:689
@ CREATURE_BIG_BAD_WOLF
Definition bosses_opera.cpp:686
@ SPELL_PICNIC_BASKET_SMELL
Definition bosses_opera.cpp:684
@ SPELL_WIDE_SWIPE
Definition bosses_opera.cpp:683
@ SAY_WOLF_SLAY
Definition bosses_opera.cpp:677
@ SAY_WOLF_AGGRO
Definition bosses_opera.cpp:676
@ SPELL_LITTLE_RED_RIDING_HOOD
Definition bosses_opera.cpp:681
@ GRANDMOTHER_TEXT1
Definition bosses_opera.cpp:692
@ GRANDMOTHER_TEXT2
Definition bosses_opera.cpp:693
@ SOUND_WOLF_DEATH
Definition bosses_opera.cpp:679
@ GRANDMOTHER_GOSSIP_MENU3
Definition bosses_opera.cpp:690
@ SPELL_TERRIFYING_HOWL
Definition bosses_opera.cpp:682
@ GRANDMOTHER_GOSSIP_MENU1
Definition bosses_opera.cpp:688

◆ 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 
30{
35
38 SAY_ROAR_SLAY = 2,
39
43
47 EMOTE_RUST = 3,
48
52};
@ SAY_ROAR_DEATH
Definition bosses_opera.cpp:37
@ SAY_ROAR_AGGRO
Definition bosses_opera.cpp:36
@ SAY_DOROTHEE_TITO_DEATH
Definition bosses_opera.cpp:33
@ SAY_DOROTHEE_DEATH
Definition bosses_opera.cpp:31
@ SAY_STRAWMAN_DEATH
Definition bosses_opera.cpp:41
@ SAY_CRONE_SLAY
Definition bosses_opera.cpp:51
@ SAY_CRONE_DEATH
Definition bosses_opera.cpp:50
@ SAY_DOROTHEE_AGGRO
Definition bosses_opera.cpp:34
@ SAY_STRAWMAN_SLAY
Definition bosses_opera.cpp:42
@ SAY_TINHEAD_DEATH
Definition bosses_opera.cpp:45
@ SAY_TINHEAD_SLAY
Definition bosses_opera.cpp:46
@ SAY_TINHEAD_AGGRO
Definition bosses_opera.cpp:44
@ SAY_CRONE_AGGRO
Definition bosses_opera.cpp:49
@ EMOTE_RUST
Definition bosses_opera.cpp:47
@ SAY_DOROTHEE_SUMMON
Definition bosses_opera.cpp:32
@ SAY_STRAWMAN_AGGRO
Definition bosses_opera.cpp:40
@ SAY_ROAR_SLAY
Definition bosses_opera.cpp:38

◆ 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 
55{
56 // Dorothee
57 SPELL_WATERBOLT = 31012,
58 SPELL_SCREAM = 31013,
59 SPELL_SUMMONTITO = 31014,
60
61 // Tito
62 SPELL_YIPPING = 31015,
63
64 // Strawman
65 SPELL_BRAIN_BASH = 31046,
66 SPELL_BRAIN_WIPE = 31069,
67 SPELL_BURNING_STRAW = 31075,
68
69 // Tinhead
70 SPELL_CLEAVE = 31043,
71 SPELL_RUST = 31086,
72
73 // Roar
74 SPELL_MANGLE = 31041,
75 SPELL_SHRED = 31042,
77
78 // Crone
80
81 // Cyclone
82 SPELL_KNOCKBACK = 32334,
84};
@ SPELL_CLEAVE
Definition bosses_opera.cpp:70
@ SPELL_CYCLONE_VISUAL
Definition bosses_opera.cpp:83
@ SPELL_WATERBOLT
Definition bosses_opera.cpp:57
@ SPELL_SUMMONTITO
Definition bosses_opera.cpp:59
@ SPELL_KNOCKBACK
Definition bosses_opera.cpp:82
@ SPELL_MANGLE
Definition bosses_opera.cpp:74
@ SPELL_BRAIN_WIPE
Definition bosses_opera.cpp:66
@ SPELL_SCREAM
Definition bosses_opera.cpp:58
@ SPELL_SHRED
Definition bosses_opera.cpp:75
@ SPELL_RUST
Definition bosses_opera.cpp:71
@ SPELL_FRIGHTENED_SCREAM
Definition bosses_opera.cpp:76
@ SPELL_CHAIN_LIGHTNING
Definition bosses_opera.cpp:79
@ SPELL_BURNING_STRAW
Definition bosses_opera.cpp:67
@ SPELL_YIPPING
Definition bosses_opera.cpp:62
@ SPELL_BRAIN_BASH
Definition bosses_opera.cpp:65

Function Documentation

◆ AddSC_bosses_opera()

void AddSC_bosses_opera ( )
1280{
1288 new npc_grandmother();
1292}
#define RegisterKarazhanCreatureAI(ai_name)
Definition karazhan.h:219
Definition bosses_opera.cpp:735
Definition bosses_opera.cpp:576
Definition bosses_opera.cpp:152
Definition bosses_opera.cpp:903
Definition bosses_opera.cpp:299
Definition bosses_opera.cpp:1120
Definition bosses_opera.cpp:387
Definition bosses_opera.cpp:482
Definition bosses_opera.cpp:645
Definition bosses_opera.cpp:698
Definition bosses_opera.cpp:268

References RegisterKarazhanCreatureAI.

Referenced by AddEasternKingdomsScripts().

◆ DespawnAll()

void DespawnAll ( InstanceScript instance)
115{
116 if (Creature* dorothee = instance->GetCreature(DATA_DOROTHEE))
117 {
118 dorothee->DespawnOrUnsummon();
119 }
120 if (Creature* roar = instance->GetCreature(DATA_ROAR))
121 {
122 roar->DespawnOrUnsummon();
123 }
124 if (Creature* strawman = instance->GetCreature(DATA_STRAWMAN))
125 {
126 strawman->DespawnOrUnsummon();
127 }
128 if (Creature* tinhead = instance->GetCreature(DATA_TINHEAD))
129 {
130 tinhead->DespawnOrUnsummon();
131 }
132 if (Creature* tito = instance->GetCreature(DATA_TITO))
133 {
134 tito->DespawnOrUnsummon();
135 }
136}
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)
139{
141
142 for (uint32 data : datas)
143 {
144 if (Creature* actionCreature = instance->GetCreature(data))
145 {
146 actionCreature->AI()->DoAction(ACTION_RELEASE);
147 }
148 }
149}
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)
874{
875 creature->AI()->DoAction(ACTION_CANCEL_COMBAT);
876 creature->InterruptNonMeleeSpells(true);
877 creature->RemoveAllAuras();
879 creature->SetReactState(REACT_PASSIVE);
880 creature->GetMotionMaster()->MovementExpired(false);
881 creature->GetMotionMaster()->MoveIdle();
883}
@ UNIT_STAND_STATE_DEAD
Definition UnitDefines.h:39
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:275
@ REACT_PASSIVE
Definition Unit.h:549
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:216
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true, bool bySelf=false)
Definition Unit.cpp:4162
MotionMaster * GetMotionMaster()
Definition Unit.h:1664
void RemoveAllAuras()
Definition Unit.cpp:5352
void SetUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:703
void SetStandState(uint8 state)
Definition Unit.cpp:16759

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)
886{
889 target->SetFullHealth();
891 target->CastSpell(target, SPELL_RES_VISUAL, true);
893 if (target->GetVictim())
894 {
895 target->GetMotionMaster()->MoveChase(target->GetVictim());
896 target->AI()->AttackStart(target->GetVictim());
897 }
898 else
899 target->GetMotionMaster()->Initialize();
900}
@ UNIT_STAND_STATE_STAND
Definition UnitDefines.h:32
@ REACT_AGGRESSIVE
Definition Unit.h:551
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:1047
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:1179
Unit * GetVictim() const
Definition Unit.h:846
void RemoveUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:704

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 
)
99{
100 instance->SetData(DATA_OPERA_OZ_DEATHCOUNT, SPECIAL); // Increment DeathCount
101
102 if (instance->GetData(DATA_OPERA_OZ_DEATHCOUNT) == 4)
103 {
104 if (Creature* pCrone = creature->SummonCreature(CREATURE_CRONE, -10891.96f, -1755.95f, creature->GetPositionZ(), 4.64f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR * 2 * IN_MILLISECONDS))
105 {
106 if (creature->GetVictim())
107 pCrone->AI()->AttackStart(creature->GetVictim());
108 pCrone->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
109 pCrone->SetImmuneToPC(false);
110 }
111 }
112}
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:47
@ 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().