aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp8
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp6
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp9
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp6
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp20
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp17
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp3
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_noth.cpp6
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp13
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp9
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp21
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp30
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp9
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp8
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp3
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp3
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp6
44 files changed, 171 insertions, 134 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
index 4ba062cdaec..f83f323ab65 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
@@ -152,7 +152,7 @@ struct boss_volazj : public BossAI
ResetPlayersPhaseMask();
// Cleanup
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetControlled(false, UNIT_STATE_STUNNED);
}
@@ -192,7 +192,7 @@ struct boss_volazj : public BossAI
void DamageTaken(Unit* /*pAttacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
{
- if (me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
+ if (me->IsUninteractible())
damage = 0;
if ((GetHealthPct(0) >= 66 && GetHealthPct(damage) < 66) || (GetHealthPct(0) >= 33 && GetHealthPct(damage) < 33))
@@ -223,7 +223,7 @@ struct boss_volazj : public BossAI
Talk(SAY_INSANITY);
DoCastSelf(SPELL_WHISPER_INSANITY, true);
// Unattackable
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetControlled(true, UNIT_STATE_STUNNED);
}
// phase mask
@@ -348,7 +348,7 @@ struct boss_volazj : public BossAI
return;
_insanityHandled = 0;
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetControlled(false, UNIT_STATE_STUNNED);
me->RemoveAurasDueToSpell(INSANITY_VISUAL);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
index 2e1fac4c536..6c899e46faf 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -279,7 +279,7 @@ struct boss_jedoga_shadowseeker : public BossAI
switch (pointId)
{
case POINT_GROUND:
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();
events.ScheduleEvent(EVENT_CYCLONE_STRIKE, 3s);
@@ -329,7 +329,7 @@ struct boss_jedoga_shadowseeker : public BossAI
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
me->InterruptNonMeleeSpells(true);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->GetMotionMaster()->MovePoint(POINT_PHASE_TWO, JedogaGroundPosition);
break;
case EVENT_FLY_DELAY:
@@ -416,7 +416,7 @@ struct npc_twilight_volunteer : public ScriptedAI
me->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL_VOLUNTEER);
Talk(SAY_CHOSEN);
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_SACRIFICE, JedogaSacrificePosition);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index 61b5167bcd8..668c2a21d63 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -272,7 +272,7 @@ struct boss_prince_taldaram : public BossAI
void RemovePrison()
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
summons.DespawnEntry(NPC_JEDOGA_CONTROLLER);
me->RemoveAurasDueToSpell(SPELL_BEAM_VISUAL);
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), PrinceTaldaramGroundPositionZ, me->GetOrientation());
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
index c72da7380e9..858229803b0 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
@@ -118,7 +118,8 @@ struct boss_anub_arak : public BossAI
void Reset() override
{
BossAI::Reset();
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
_nextSubmerge = 75;
_petCount = 0;
}
@@ -328,7 +329,8 @@ struct boss_anub_arak : public BossAI
{
me->RemoveAurasDueToSpell(SPELL_SUBMERGE);
me->RemoveAurasDueToSpell(SPELL_IMPALE_AURA);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
DoCastSelf(SPELL_EMERGE);
events.SetPhase(PHASE_EMERGE);
events.ScheduleEvent(EVENT_POUND, 13s, 18s, 0, PHASE_EMERGE);
@@ -358,7 +360,8 @@ struct boss_anub_arak : public BossAI
{
if (spellInfo->Id == SPELL_SUBMERGE)
{
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->RemoveAurasDueToSpell(SPELL_LEECHING_SWARM);
DoCastSelf(SPELL_IMPALE_AURA, true);
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
index c5f211c538b..f52c2bb1625 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
@@ -794,7 +794,8 @@ struct npc_flame_tsunami : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
events.ScheduleEvent(EVENT_TSUNAMI_TIMER, 100ms);
events.ScheduleEvent(EVENT_TSUNAMI_BUFF, 1s);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
}
void UpdateAI(uint32 diff) override
@@ -840,7 +841,8 @@ struct npc_twilight_fissure : public ScriptedAI
void Reset() override
{
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->AddAura(46265, me); // Wrong, can't find proper visual
me->AddAura(69422, me);
events.ScheduleEvent(EVENT_VOID_BLAST, 5s);
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
index 43605254fd8..a2f3e083402 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
@@ -73,7 +73,7 @@ struct boss_general_zarithrian : public BossAI
_Reset();
if (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index ba9282af4f2..6e063194dd3 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -291,7 +291,7 @@ class boss_halion : public CreatureScript
Talk(SAY_PHASE_TWO);
me->CastStop();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
DoCastSelf(SPELL_TWILIGHT_PHASING);
if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER))
@@ -673,7 +673,7 @@ class npc_halion_controller : public CreatureScript
continue;
halion->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING);
- halion->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ halion->SetUninteractible(false);
}
// Summon Twilight portals
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index 0d0635409ba..87c6da489d5 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -184,7 +184,7 @@ class instance_ruby_sanctum : public InstanceMapScript
if (GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
if (Creature* zarithrian = GetCreature(DATA_GENERAL_ZARITHRIAN))
{
- zarithrian->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ zarithrian->SetUninteractible(false);
zarithrian->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index b460ce13e92..9ffe975f38e 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -188,7 +188,8 @@ struct boss_anubarak_trial : public BossAI
events.ScheduleEvent(EVENT_SUMMON_FROST_SPHERE, 20s);
Initialize();
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
// clean up spawned Frost Spheres
std::list<Creature*> FrostSphereList;
me->GetCreatureListWithEntryInGrid(FrostSphereList, NPC_FROST_SPHERE, 150.0f);
@@ -268,7 +269,8 @@ struct boss_anubarak_trial : public BossAI
{
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
// Despawn Scarab Swarms neutral
EntryCheckPredicate pred(NPC_SCARAB);
@@ -331,7 +333,8 @@ struct boss_anubarak_trial : public BossAI
{
DoCast(me, SPELL_SUBMERGE_ANUBARAK);
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
Talk(EMOTE_BURROWER);
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_PURSUING_SPIKE, 2s, 0, PHASE_SUBMERGED);
@@ -367,7 +370,8 @@ struct boss_anubarak_trial : public BossAI
DoCast(SPELL_SPIKE_TELE);
summons.DespawnEntry(NPC_SPIKE);
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
DoCast(me, SPELL_EMERGE_ANUBARAK);
Talk(EMOTE_EMERGE);
events.SetPhase(PHASE_MELEE);
@@ -556,14 +560,14 @@ struct npc_nerubian_burrower : public ScriptedAI
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_EFFECT);
DoCast(me, SPELL_EMERGE_EFFECT);
DoCast(me, SPELL_AWAKENED);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
}
else
{
if (!me->HasAura(SPELL_PERMAFROST_HELPER))
{
DoCast(me, SPELL_SUBMERGE_EFFECT);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
DoCast(me, SPELL_PERSISTENT_DIRT, true);
}
}
@@ -604,7 +608,7 @@ struct npc_frost_sphere : public ScriptedAI
{
// we are close to the ground
me->GetMotionMaster()->MoveIdle();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->RemoveAurasDueToSpell(SPELL_FROST_SPHERE);
DoCast(SPELL_PERMAFROST_MODEL);
DoCast(SPELL_PERMAFROST);
@@ -614,7 +618,7 @@ struct npc_frost_sphere : public ScriptedAI
{
// we are in air
me->GetMotionMaster()->MoveIdle();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
//At hit the ground
me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH);
me->GetMotionMaster()->MoveFall(POINT_FALL_GROUND);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index aa90590bff7..bc744e47769 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -324,7 +324,7 @@ struct npc_infernal_volcano : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
DoCastSelf(SPELL_INFERNAL_ERUPTION_EFFECT, true);
if (IsHeroic())
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
}
};
@@ -386,7 +386,7 @@ struct npc_nether_portal : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
DoCastSelf(SPELL_NETHER_PORTAL_EFFECT, true);
if (IsHeroic())
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
}
};
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 84253a2bef4..895aa70a5d3 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -380,7 +380,8 @@ struct boss_gormok : public boss_northrend_beastsAI
if (Unit* snobold = me->GetVehicleKit()->GetPassenger(i))
{
snobold->ExitVehicle();
- snobold->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ snobold->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ snobold->SetUninteractible(false);
snobold->GetAI()->DoAction(ACTION_DISABLE_FIRE_BOMB);
snobold->CastSpell(me, SPELL_JUMP_TO_HAND, true);
break;
@@ -484,7 +485,8 @@ struct npc_snobold_vassal : public ScriptedAI
}
else
{
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
_events.CancelEvent(EVENT_CHECK_MOUNT);
_events.CancelEvent(EVENT_FIRE_BOMB);
me->AttackStop();
@@ -734,20 +736,18 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
{
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
+ me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);
if (wasMobile)
{
- me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);
DoCastSelf(SPELL_SUBMERGE);
me->SetSpeedRate(MOVE_RUN, 8.0f);
DoCastSelf(SPELL_GROUND_VISUAL_0, true);
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_EMERGE, 5s, 0, PHASE_SUBMERGED);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
else
{
- me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);
DoCastSelf(SPELL_SUBMERGE_2);
me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_1);
me->SetSpeedRate(MOVE_RUN, 1.1111f);
@@ -755,8 +755,10 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
events.SetPhase(PHASE_SUBMERGED);
me->SetControlled(false, UNIT_STATE_ROOT);
events.ScheduleEvent(EVENT_EMERGE, 6s, 0, PHASE_SUBMERGED);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
+
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ() + me->GetCollisionHeight());
}
@@ -768,7 +770,8 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_0);
DoCastSelf(SPELL_EMERGE);
DoCastAOE(SPELL_HATE_TO_ZERO, true);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
AttackStart(target);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index e0f697c5536..06eadcb3e39 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -555,7 +555,8 @@ struct npc_unleashed_ballAI : public ScriptedAI
void Reset() override
{
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->SetReactState(REACT_PASSIVE);
me->SetDisableGravity(true);
me->SetCanFly(true);
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index 19ce4cb891a..5eff34cacf5 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -591,7 +591,7 @@ class instance_halls_of_reflection : public InstanceMapScript
if (Creature* temp = instance->GetCreature(guid))
{
temp->CastSpell(temp, SPELL_SPIRIT_ACTIVATE, false);
- temp->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ temp->SetUninteractible(false);
temp->SetImmuneToAll(false);
temp->AI()->DoZoneInCombat(temp);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 0aa1ae99750..84b422fdf30 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -553,7 +553,7 @@ struct BloodPrincesBossAI : public BossAI
{
case ACTION_STAND_UP:
me->RemoveAurasDueToSpell(SPELL_FEIGN_DEATH);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToPC(false);
me->RemoveUnitFlag3(UNIT_FLAG3_FAKE_DEAD);
me->m_Events.AddEvent(new StandUpEvent(me), me->m_Events.CalculateTime(1s));
@@ -778,7 +778,7 @@ struct boss_prince_valanar_icc : public BloodPrincesBossAI
summon->GetPosition(x, y, z);
float ground_Z = summon->GetMap()->GetHeight(summon->GetPhaseShift(), x, y, z, true, 500.0f);
summon->GetMotionMaster()->MovePoint(POINT_KINETIC_BOMB_IMPACT, x, y, ground_Z);
- summon->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ summon->SetUninteractible(false);
break;
}
case NPC_SHOCK_VORTEX:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 1b43db638bc..ca69c1d8145 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -367,7 +367,7 @@ struct boss_deathbringer_saurfang : public BossAI
_dead = true;
_JustDied();
_EnterEvadeMode();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetImmuneToPC(true);
me->RemoveAurasOnEvade();
DoCastAOE(SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION);
@@ -464,7 +464,7 @@ struct boss_deathbringer_saurfang : public BossAI
switch (eventId)
{
case EVENT_INTRO_ALLIANCE_2:
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetFaction(FACTION_UNDEAD_SCOURGE);
Talk(SAY_INTRO_ALLIANCE_2);
break;
@@ -477,7 +477,7 @@ struct boss_deathbringer_saurfang : public BossAI
DoCastSelf(SPELL_GRIP_OF_AGONY);
break;
case EVENT_INTRO_HORDE_2:
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetFaction(FACTION_UNDEAD_SCOURGE);
Talk(SAY_INTRO_HORDE_2);
break;
@@ -732,7 +732,7 @@ struct npc_high_overlord_saurfang_icc : public ScriptedAI
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true); // for the packet logs.
- deathbringer->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ deathbringer->SetUninteractible(true);
deathbringer->SetUnitFlag2(UNIT_FLAG2_PLAY_DEATH_ANIM);
deathbringer->SetEmoteState(EMOTE_STATE_DROWNED);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 633ec1dc9f6..ae91ecb274c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -645,12 +645,12 @@ struct npc_cult_fanatic : public ScriptedAI
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH);
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
DoCastSelf(SPELL_FULL_HEAL, true);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
})
.Schedule(Seconds(6), [this](TaskContext /*context*/)
{
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat(me);
@@ -736,12 +736,12 @@ struct npc_cult_adherent : public ScriptedAI
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH);
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
DoCastSelf(SPELL_FULL_HEAL, true);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
})
.Schedule(Seconds(6), [this](TaskContext /*context*/)
{
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
DoCastSelf(SPELL_SHROUD_OF_THE_OCCULT);
DoZoneInCombat(me);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index e2ca321494e..f56810783f2 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -243,7 +243,7 @@ struct boss_professor_putricide : public BossAI
if (instance->GetBossState(DATA_ROTFACE) == DONE && instance->GetBossState(DATA_FESTERGUT) == DONE)
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index cbff6530c4f..14cd6145543 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -1480,7 +1480,7 @@ struct npc_valkyr_shadowguard : public ScriptedAI
case POINT_CHARGE:
if (Player* target = ObjectAccessor::GetPlayer(*me, _grabbedPlayer))
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_ARTHAS_PLATFORM)))
{
std::list<Creature*> triggers;
@@ -1717,7 +1717,7 @@ struct npc_terenas_menethil : public ScriptedAI
damage = me->GetHealth() - 1;
if (!me->HasAura(SPELL_TERENAS_LOSES_INSIDE) && !IsHeroic())
{
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
DoCast(SPELL_TERENAS_LOSES_INSIDE);
_events.ScheduleEvent(EVENT_TELEPORT_BACK, 1s);
if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f))
@@ -1778,7 +1778,7 @@ struct npc_terenas_menethil : public ScriptedAI
}
break;
case EVENT_DESTROY_SOUL:
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f))
warden->CastSpell(nullptr, SPELL_DESTROY_SOUL, TRIGGERED_NONE);
DoCast(SPELL_TERENAS_LOSES_INSIDE);
@@ -2532,7 +2532,7 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScript
summoner->GetAI()->SetData(DATA_VILE, 1);
GetCaster()->CastSpell(nullptr, SPELL_SPIRIT_BURST, true);
GetCaster()->ToCreature()->DespawnOrUnsummon(3s);
- GetCaster()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ GetCaster()->SetUninteractible(true);
}
void Register() override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index c4a03791d37..b969f003271 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -381,7 +381,7 @@ struct boss_valithria_dreamwalker : public ScriptedAI
DoCastSelf(SPELL_REPUTATION_BOSS_KILL, true);
// this display id was found in sniff instead of the one on aura
me->SetDisplayId(11686);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->DespawnOrUnsummon(4s);
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER)))
Unit::Kill(me, trigger);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index 4337e0c2a89..3be82407246 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -1311,7 +1311,7 @@ class spell_icc_stoneform : public AuraScript
if (Creature* target = GetTarget()->ToCreature())
{
target->SetReactState(REACT_PASSIVE);
- target->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ target->SetUninteractible(true);
target->SetImmuneToPC(true);
target->SetEmoteState(EMOTE_STATE_CUSTOM_SPELL_02);
}
@@ -1322,7 +1322,7 @@ class spell_icc_stoneform : public AuraScript
if (Creature* target = GetTarget()->ToCreature())
{
target->SetReactState(REACT_AGGRESSIVE);
- target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ target->SetUninteractible(false);
target->SetImmuneToPC(false);
target->SetEmoteState(EMOTE_ONESHOT_NONE);
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 829eafd379f..c5bb7db14ad 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -223,7 +223,7 @@ struct boss_kelthuzad : public BossAI
return;
_Reset();
me->SetReactState(REACT_PASSIVE);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetImmuneToPC(true);
_skeletonCount = 0;
_bansheeCount = 0;
@@ -428,7 +428,7 @@ struct boss_kelthuzad : public BossAI
case EVENT_PHASE_TWO:
me->CastStop();
events.SetPhase(PHASE_TWO);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToPC(false);
ResetThreatList();
me->SetReactState(REACT_AGGRESSIVE);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
index 4a6bb76f6b3..98de9a42912 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
@@ -99,7 +99,7 @@ struct boss_noth : public BossAI
_Reset();
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
balconyCount = 0;
events.SetPhase(PHASE_NONE);
@@ -235,7 +235,7 @@ struct boss_noth : public BossAI
case EVENT_BALCONY:
events.SetPhase(PHASE_BALCONY);
me->SetReactState(REACT_PASSIVE);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->AttackStop();
me->StopMoving();
me->RemoveAllAuras();
@@ -291,7 +291,7 @@ struct boss_noth : public BossAI
EnterPhaseGround();
break;
case EVENT_GROUND_ATTACKABLE:
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
break;
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
index c9c443797e8..5e45d415970 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
@@ -298,7 +298,7 @@ public:
{
events.SetPhase(PHASE_TRANSITION);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
events.ScheduleEvent(EVENT_TRANSITION_1, 10s, 0, PHASE_TRANSITION);
events.ScheduleEvent(EVENT_TRANSITION_2, 12s, 0, PHASE_TRANSITION);
@@ -316,8 +316,9 @@ public:
me->DespawnOrUnsummon(0s, 30s);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->SetUnitFlag(UNIT_FLAG_STUNNED);
me->SetImmuneToPC(true);
+ me->SetUninteractible(true);
me->setActive(false);
me->SetFarVisible(false);
if (Creature* feugen = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_FEUGEN)))
@@ -504,7 +505,7 @@ public:
me->SetFullHealth();
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetControlled(false, UNIT_STATE_ROOT);
Talk(EMOTE_FEIGN_REVIVE);
isFeignDeath = false;
@@ -575,7 +576,7 @@ public:
if (Creature* thaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS)))
thaddius->AI()->DoAction(ACTION_STALAGG_DIED);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->RemoveAllAuras();
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
@@ -738,7 +739,7 @@ public:
me->SetFullHealth();
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetControlled(false, UNIT_STATE_ROOT);
Talk(EMOTE_FEIGN_REVIVE);
isFeignDeath = false;
@@ -814,7 +815,7 @@ public:
if (Creature* thaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS)))
thaddius->AI()->DoAction(ACTION_FEUGEN_DIED);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->RemoveAllAuras();
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index a2c7d55454a..a9600ba6e48 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -369,7 +369,7 @@ struct boss_malygos : public BossAI
me->SetDisableGravity(true);
me->SetImmuneToAll(true);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
// TO DO: find what in core is making boss slower than in retail (when correct speed data) or find missing movement flag update or forced spline change
me->SetSpeedRate(MOVE_FLIGHT, _flySpeed * 0.25f);
if (_despawned)
@@ -680,7 +680,7 @@ struct boss_malygos : public BossAI
if (!_firstCyclicMovementStarted)
{
_firstCyclicMovementStarted = true;
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID)))
me->SetFacingToObject(alexstraszaBunny);
events.ScheduleEvent(EVENT_SUMMON_ARCANE_BOMB, 1s, 0, PHASE_TWO);
@@ -914,7 +914,7 @@ struct boss_malygos : public BossAI
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_DEFAULT, LIGHT_OBSCURE_ARCANE_RUNES, 1s);
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
DoCast(me, SPELL_IMMUNE_CURSES);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();
SetPhase(PHASE_THREE, true);
@@ -1129,7 +1129,7 @@ struct npc_melee_hover_disk : public VehicleAI
{
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetDisableGravity(false);
me->SetCanFly(false);
}
@@ -1159,7 +1159,7 @@ struct npc_melee_hover_disk : public VehicleAI
if (vehicleTemp->GetPassenger(0) && vehicleTemp->GetPassenger(0)->GetTypeId() == TYPEID_PLAYER)
{
vehicleTemp->RemoveAllPassengers();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
}
}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
index 98cf28e81cb..5c7b7702f53 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
@@ -124,7 +124,7 @@ struct boss_magus_telestra : public BossAI
Initialize();
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
if (IsHeroic() && sGameEventMgr->IsActiveEvent(GAME_EVENT_WINTER_VEIL) && !me->HasAura(SPELL_WEAR_CHRISTMAS_HAT))
me->AddAura(SPELL_WEAR_CHRISTMAS_HAT, me);
@@ -275,7 +275,7 @@ struct boss_magus_telestra : public BossAI
_unkillable = true;
// Hack, transform creature (from aura) has visible and invisible models and probability is NYI
me->SetDisplayId(15435);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
// Not restored later, maybe after wipe
SetEquipmentSlots(false, EQUIP_UNEQUIP);
events.ScheduleEvent(EVENT_SPLIT_3, 4s);
@@ -292,7 +292,7 @@ struct boss_magus_telestra : public BossAI
me->RemoveAurasDueToSpell(SPELL_CLONE_DIES_ARCANE);
me->RemoveAurasDueToSpell(SPELL_SUMMON_CLONES);
Talk(SAY_MERGE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
_unkillable = false;
events.ScheduleEvent(EVENT_MERGE_2, 3s);
break;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index 25a2de2dc50..85f73a09536 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -93,7 +93,8 @@ struct boss_ionar : public BossAI
Initialize();
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
me->SetControlled(false, UNIT_STATE_ROOT);
if (!me->IsVisible())
@@ -129,7 +130,8 @@ struct boss_ionar : public BossAI
me->AttackStop();
me->SetVisible(false);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->SetControlled(true, UNIT_STATE_ROOT);
me->GetMotionMaster()->Clear();
@@ -213,7 +215,8 @@ struct boss_ionar : public BossAI
else if (summons.empty())
{
me->SetVisible(true);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
me->SetControlled(false, UNIT_STATE_ROOT);
DoCast(me, SPELL_SPARK_DESPAWN, false);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 70e2124f508..4b5aec6dad1 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -349,7 +349,7 @@ struct boss_algalon_the_observer : public BossAI
void JustEngagedWith(Unit* who) override
{
Milliseconds introDelay = 0ms;
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetImmuneToNPC(true);
events.Reset();
events.SetPhase(PHASE_ROLE_PLAY);
@@ -472,7 +472,7 @@ struct boss_algalon_the_observer : public BossAI
events.SetPhase(PHASE_ROLE_PLAY);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
DoCastSelf(SPELL_SELF_STUN);
events.Reset();
summons.DespawnAll();
@@ -547,7 +547,7 @@ struct boss_algalon_the_observer : public BossAI
{
events.SetPhase(PHASE_NORMAL);
me->SetSheath(SHEATH_STATE_MELEE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToNPC(false);
me->SetReactState(REACT_DEFENSIVE);
DoCastAOE(SPELL_SUPERMASSIVE_FAIL, true);
@@ -639,7 +639,7 @@ struct boss_algalon_the_observer : public BossAI
break;
case EVENT_OUTRO_4:
DoCastAOE(SPELL_SUPERMASSIVE_FAIL);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
break;
case EVENT_OUTRO_5:
if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos))
@@ -725,7 +725,7 @@ struct npc_living_constellation : public CreatureAI
if (Unit* target = algalon->AI()->SelectTarget(SelectTargetMethod::Random, 0, NonTankTargetSelector(algalon)))
{
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
AttackStart(target);
DoZoneInCombat();
_isActive = true;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 70f54d742c1..dde0a93c49b 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -420,7 +420,7 @@ struct npc_feral_defender : public ScriptedAI
case EVENT_RESPAWN_DEFENDER_3:
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
DoCastSelf(SPELL_FULL_HEAL, true);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
me->SetDisableGravity(false);
me->SetHover(false);
@@ -449,7 +449,7 @@ struct npc_feral_defender : public ScriptedAI
{
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->RemoveAurasDueToSpell(SPELL_RANDOM_AGRO_PERIODIC);
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH, true);
DoCastSelf(SPELL_FERAL_ESSENCE_APPLICATION_REMOVAL, true);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index a72b6682679..2151d24530d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -250,7 +250,8 @@ class boss_flame_leviathan : public CreatureScript
DoCast(SPELL_INVIS_AND_STEALTH_DETECT);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_STUNNED);
+ me->SetUninteractible(true);
me->SetReactState(REACT_PASSIVE);
}
@@ -571,7 +572,8 @@ class boss_flame_leviathan : public CreatureScript
if (id != ACTION_MOVE_TO_CENTER_POSITION)
return;
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_STUNNED);
+ me->SetUninteractible(false);
}
private:
@@ -645,10 +647,10 @@ class boss_flame_leviathan_seat : public CreatureScript
if (Creature* device = devicePassenger->ToCreature())
{
device->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
- device->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ device->SetUninteractible(false);
}
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
}
else if (seatId == SEAT_TURRET)
{
@@ -774,7 +776,7 @@ class boss_flame_leviathan_overload_device : public CreatureScript
if (me->GetVehicle())
{
me->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
if (Unit* player = me->GetVehicle()->GetPassenger(SEAT_PLAYER))
{
@@ -901,7 +903,7 @@ class npc_pool_of_tar : public CreatureScript
{
npc_pool_of_tarAI(Creature* creature) : ScriptedAI(creature)
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_PASSIVE);
me->CastSpell(me, SPELL_TAR_PASSIVE, true);
}
@@ -970,7 +972,7 @@ class npc_thorims_hammer : public CreatureScript
{
npc_thorims_hammerAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->CastSpell(me, AURA_DUMMY_BLUE, true);
}
@@ -1011,7 +1013,8 @@ public:
npc_mimirons_infernoAI(Creature* creature) : EscortAI(creature)
{
Initialize();
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->CastSpell(me, AURA_DUMMY_YELLOW, true);
me->SetReactState(REACT_PASSIVE);
}
@@ -1071,7 +1074,7 @@ class npc_hodirs_fury : public CreatureScript
{
npc_hodirs_furyAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->CastSpell(me, AURA_DUMMY_GREEN, true);
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index 7fa9f4d495e..7ccc20206da 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -1364,8 +1364,9 @@ class npc_healthy_spore : public CreatureScript
npc_healthy_sporeAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
+ me->SetUninteractible(true);
me->SetReactState(REACT_PASSIVE);
DoCast(me, SPELL_HEALTHY_SPORE_VISUAL);
DoCast(me, SPELL_POTENT_PHEROMONES);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
index 24ddcc66d55..a7036a1fbbb 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -425,7 +425,8 @@ class npc_saronite_vapors : public CreatureScript
if (damage >= me->GetHealth())
{
damage = 0;
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->SetControlled(true, UNIT_STATE_ROOT);
me->SetStandState(UNIT_STAND_STATE_DEAD);
me->SetHealth(me->GetMaxHealth());
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index f8ae3b65c0e..98412e00e9e 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -180,8 +180,9 @@ class boss_ignis : public CreatureScript
{
summon->SetFaction(FACTION_MONSTER_2);
summon->SetReactState(REACT_AGGRESSIVE);
- summon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED);
+ summon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED);
summon->SetImmuneToPC(false);
+ summon->SetUninteractible(false);
summon->SetControlled(false, UNIT_STATE_ROOT);
}
@@ -382,7 +383,8 @@ class npc_scorch_ground : public CreatureScript
npc_scorch_groundAI(Creature* creature) : ScriptedAI(creature)
{
Initialize();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
+ me->SetUnitFlag(UNIT_FLAG_PACIFIED);
+ me->SetUninteractible(true);
me->SetControlled(true, UNIT_STATE_ROOT);
creature->SetDisplayId(16925); //model 2 in db cannot overwrite wdb fields
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index 946c5c004f3..49f598b35a7 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -107,7 +107,7 @@ class boss_kologarn : public CreatureScript
boss_kologarnAI(Creature* creature) : BossAI(creature, DATA_KOLOGARN),
left(false), right(false)
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetControlled(true, UNIT_STATE_ROOT);
DoCast(SPELL_KOLOGARN_REDUCE_PARRY);
@@ -139,7 +139,7 @@ class boss_kologarn : public CreatureScript
void Reset() override
{
_Reset();
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
eyebeamTarget.Clear();
}
@@ -148,7 +148,7 @@ class boss_kologarn : public CreatureScript
Talk(SAY_DEATH);
DoCast(SPELL_KOLOGARN_PACIFY);
me->GetMotionMaster()->MoveTargetedHome();
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetCorpseDelay(604800); // Prevent corpse from despawning.
_JustDied();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index 27f02b2d706..b95d606c719 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -516,7 +516,8 @@ class boss_mimiron : public CreatureScript
{
DoCast(mkii, SPELL_SEAT_7);
mkii->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
- mkii->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ mkii->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ mkii->SetUninteractible(false);
}
events.ScheduleEvent(EVENT_INTRO_3, 2s);
break;
@@ -662,7 +663,7 @@ class boss_mimiron : public CreatureScript
break;
case EVENT_OUTTRO_3:
DoCast(me, SPELL_TELEPORT_VISUAL);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->DespawnOrUnsummon(1s); // sniffs say 6 sec after, but it doesnt matter.
break;
default:
@@ -755,7 +756,8 @@ class boss_leviathan_mk_ii : public CreatureScript
break;
case DO_ASSEMBLED_COMBAT:
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
events.SetPhase(PHASE_VOL7RON);
@@ -804,7 +806,7 @@ class boss_leviathan_mk_ii : public CreatureScript
switch (point)
{
case WP_MKII_P1_IDLE:
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
DoCast(me, SPELL_HALF_HEAL);
if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON))
@@ -831,7 +833,8 @@ class boss_leviathan_mk_ii : public CreatureScript
void Reset() override
{
_Reset();
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(true);
me->SetReactState(REACT_PASSIVE);
_fireFighter = false;
_setupMine = true;
@@ -991,8 +994,9 @@ class boss_vx_001 : public CreatureScript
events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_VX, 6s);
[[fallthrough]];
case DO_START_VX001:
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
+ me->SetUninteractible(false);
me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
me->SetEmoteState(EMOTE_ONESHOT_NONE); // Remove emotestate.
//me->SetHover(true); // Blizzard handles hover animation like this it seems.
@@ -1005,7 +1009,8 @@ class boss_vx_001 : public CreatureScript
break;
case DO_ASSEMBLED_COMBAT:
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
events.SetPhase(PHASE_VOL7RON);
events.ScheduleEvent(EVENT_ROCKET_STRIKE, 20s);
@@ -1174,8 +1179,9 @@ class boss_aerial_command_unit : public CreatureScript
case DO_START_AERIAL:
me->SetDisableGravity(false);
me->SetHover(true);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
events.SetPhase(PHASE_AERIAL_COMMAND_UNIT);
@@ -1194,7 +1200,8 @@ class boss_aerial_command_unit : public CreatureScript
me->SetReactState(REACT_AGGRESSIVE);
break;
case DO_ASSEMBLED_COMBAT:
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUninteractible(false);
me->SetReactState(REACT_AGGRESSIVE);
me->SetStandState(UNIT_STAND_STATE_STAND);
events.SetPhase(PHASE_VOL7RON);
@@ -1228,7 +1235,7 @@ class boss_aerial_command_unit : public CreatureScript
if (type == POINT_MOTION_TYPE && point == WP_AERIAL_P4_POS)
{
me->SetFacingTo(VehicleRelocation[WP_AERIAL_P4_POS].GetOrientation());
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON))
@@ -1728,7 +1735,8 @@ class spell_mimiron_bomb_bot : public SpellScriptLoader
{
if (Creature* target = GetHitCreature())
{
- target->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
+ target->SetUnitFlag(UNIT_FLAG_PACIFIED);
+ target->SetUninteractible(true);
target->DespawnOrUnsummon(1s);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index 597b6bfea86..01f68586df3 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -208,7 +208,7 @@ struct boss_xt002 : public BossAI
{
Talk(SAY_DEATH);
_JustDied();
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
}
void ExposeHeart()
@@ -239,7 +239,7 @@ struct boss_xt002 : public BossAI
DoCastSelf(SPELL_STAND);
DoCastSelf(SPELL_COOLDOWN_CREATURE_SPECIAL_2);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
if (Creature* heart = instance->GetCreature(DATA_XT002_HEART))
{
if (heart->IsAlive())
@@ -347,7 +347,7 @@ struct boss_xt002 : public BossAI
break;
case EVENT_SUBMERGE:
DoCastSelf(SPELL_SUBMERGE);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
Talk(EMOTE_HEART_OPENED);
if (Creature* heart = instance->GetCreature(DATA_XT002_HEART))
heart->AI()->DoAction(ACTION_START_PHASE_HEART);
@@ -410,13 +410,13 @@ struct npc_xt002_heart : public NullCreatureAI
DoCastSelf(SPELL_FULL_HEAL);
DoCast(xt002, SPELL_RIDE_VEHICLE_EXPOSED, true);
DoCastSelf(SPELL_HEART_OVERLOAD);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
}
else if (action == ACTION_DISPOSE_HEART)
{
DoCast(xt002, SPELL_HEART_RIDE_VEHICLE, true);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index dcf7e993bee..c4f1f0f037c 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -1058,7 +1058,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
void Reset() override
{
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToPC(false);
DoCast(me, SPELL_MATCH_HEALTH);
_summons.DespawnAll();
@@ -1073,7 +1073,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
DoCastAOE(SPELL_SHATTERED_ILLUSION_REMOVE, true);
DoCast(me, SPELL_MATCH_HEALTH_2, true); // it doesn't seem to hit Yogg-Saron here
DoCast(me, SPELL_BRAIN_HURT_VISUAL, true);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetImmuneToPC(true);
if (Creature* voice = _instance->GetCreature(DATA_VOICE_OF_YOGG_SARON))
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index 02825349ad5..f18855a2708 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -953,7 +953,7 @@ class instance_ulduar : public InstanceMapScript
if (Vehicle* vehicle = vehicleCreature->GetVehicleKit())
{
vehicle->RemoveAllPassengers();
- vehicleCreature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ vehicleCreature->SetUninteractible(true);
vehicleCreature->DespawnOrUnsummon(5min);
}
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
index 1314a0c5e05..72db7a72bea 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
@@ -107,8 +107,9 @@ struct boss_ingvar_the_plunderer : public BossAI
{
if (me->GetEntry() != NPC_INGVAR)
me->UpdateEntry(NPC_INGVAR);
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
+ me->SetUninteractible(false);
_Reset();
}
@@ -124,8 +125,9 @@ struct boss_ingvar_the_plunderer : public BossAI
me->StopMoving();
DoCast(me, SPELL_INGVAR_FEIGN_DEATH, true);
- me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true, true);
+ me->SetUninteractible(true);
Talk(SAY_DEATH);
}
@@ -222,8 +224,9 @@ struct boss_ingvar_the_plunderer : public BossAI
events.ScheduleEvent(EVENT_SMASH, 12s, 16s, 0, PHASE_HUMAN);
break;
case EVENT_JUST_TRANSFORMED:
- me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
+ me->SetUninteractible(false);
ScheduleSecondPhase();
Talk(SAY_AGGRO);
DoZoneInCombat();
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index 4794101ae14..a3589c74d7f 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -240,10 +240,10 @@ struct npc_vrykul_skeleton : public ScriptedAI
// There are some issues with pets
// they will still attack. I would say it is a PetAI bug
- if (!me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
+ if (!me->IsUninteractible())
{
// from sniffs
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->SetStandState(UNIT_STAND_STATE_DEAD);
events.Reset();
@@ -284,7 +284,7 @@ struct npc_vrykul_skeleton : public ScriptedAI
case EVENT_SHADOW_FISSURE:
DoCast(me, SPELL_SHADOW_FISSURE, true);
DoCastAOE(SPELL_BONE_ARMOR, true);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->GetMotionMaster()->MoveChase(me->GetVictim());
events.ScheduleEvent(EVENT_DECREPIFY, 4s, 6s);
@@ -297,7 +297,7 @@ struct npc_vrykul_skeleton : public ScriptedAI
return;
}
- if (!me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
+ if (!me->IsUninteractible())
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
index 995b690d721..2d044443a80 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
@@ -572,7 +572,7 @@ class spell_palehoof_awaken_subboss : public SpellScript
{
Unit* target = GetHitUnit();
GetCaster()->CastSpell(target, SPELL_ORB_CHANNEL);
- target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ target->SetUninteractible(false);
target->m_Events.AddEvent(new CombatStartEvent(target), target->m_Events.CalculateTime(8500ms));
}
@@ -590,7 +590,7 @@ class spell_palehoof_awaken_gortok : public SpellScript
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* target = GetHitUnit();
- target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ target->SetUninteractible(false);
target->m_Events.AddEvent(new CombatStartEvent(target), target->m_Events.CalculateTime(8s));
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index 117e7daca4d..295e6216169 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -224,7 +224,7 @@ struct boss_skadi : public BossAI
{
case ACTION_START_ENCOUNTER:
instance->SetBossState(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS);
- me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(true);
me->setActive(true);
SpawnFirstWave();
Talk(SAY_AGGRO);
@@ -259,7 +259,7 @@ struct boss_skadi : public BossAI
Talk(SAY_DRAKE_DEATH);
DoCastSelf(SPELL_SKADI_TELEPORT);
summons.DespawnEntry(NPC_WORLD_TRIGGER);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->SetImmuneToPC(false);
me->SetReactState(REACT_AGGRESSIVE);
_phase = PHASE_GROUND;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index ed674dec990..4f3fa489b43 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -196,7 +196,8 @@ struct boss_svala : public BossAI
if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN))
{
- arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ arthas->SetUninteractible(true);
_arthasGUID = arthas->GetGUID();
}
events.ScheduleEvent(EVENT_INTRO_SVALA_TALK_0, 1s, 0, INTRO);
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
index 6e076395241..ed4e27691e0 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
@@ -169,7 +169,8 @@ struct boss_ymiron : public BossAI
{
DoCast(ancestor, SPELL_CHANNEL_YMIRON_TO_SPIRIT);
ancestor->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true);
- ancestor->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ ancestor->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ ancestor->SetUninteractible(true);
ancestor->SetDisableGravity(true);
ActiveAncestorGUID = ancestor->GetGUID();
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index 546c43245b9..ce81b58899a 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -241,7 +241,7 @@ struct npc_ichor_globule : public ScriptedAI
if (spellInfo->Id == SPELL_WATER_GLOBULE_VISUAL)
{
DoCast(me, SPELL_WATER_GLOBULE_TRANSFORM);
- me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUninteractible(false);
me->GetMotionMaster()->MoveFollow(unitCaster, 0.0f, 0.0f);
}
}
@@ -291,13 +291,13 @@ class spell_ichoron_drained : public AuraScript
void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ GetTarget()->SetUninteractible(true);
GetTarget()->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
}
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ GetTarget()->SetUninteractible(false);
GetTarget()->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)