diff options
Diffstat (limited to 'src/server/scripts/Northrend')
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) |
