aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp4
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp34
-rw-r--r--src/server/game/Entities/Creature/Creature.h2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp4
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp2
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp2
-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.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp4
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp5
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp6
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp2
33 files changed, 60 insertions, 95 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 64845c6686e..d517b909816 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -994,7 +994,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
if (IsCreature(target))
{
- target->ToCreature()->SetInCombatWithZone();
+ Creature* creature = target->ToCreature();
+ if (creature->IsAIEnabled)
+ creature->AI()->DoZoneInCombat();
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction: SMART_ACTION_SET_IN_COMBAT_WITH_ZONE: Creature %u, target: %u", me->GetGUID().GetCounter(), target->GetGUID().GetCounter());
}
}
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 669946d88a5..043f65620b8 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -2578,40 +2578,6 @@ void Creature::SendZoneUnderAttackMessage(Player* attacker)
sWorld->SendGlobalMessage(&data, nullptr, (enemy_team == ALLIANCE ? HORDE : ALLIANCE));
}
-void Creature::SetInCombatWithZone()
-{
- if (!CanHaveThreatList())
- {
- TC_LOG_ERROR("entities.unit", "Creature entry %u call SetInCombatWithZone but creature cannot have threat list.", GetEntry());
- return;
- }
-
- Map* map = GetMap();
-
- if (!map->IsDungeon())
- {
- TC_LOG_ERROR("entities.unit", "Creature entry %u call SetInCombatWithZone for map (id: %u) that isn't an instance.", GetEntry(), map->GetId());
- return;
- }
-
- Map::PlayerList const& PlList = map->GetPlayers();
-
- if (PlList.isEmpty())
- return;
-
- for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
- {
- if (Player* player = i->GetSource())
- {
- if (player->IsGameMaster())
- continue;
-
- if (player->IsAlive())
- EngageWithTarget(player);
- }
- }
-}
-
uint32 Creature::GetShieldBlockValue() const //dunno mob block value
{
return (getLevel()/2 + uint32(GetStat(STAT_STRENGTH)/20));
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index f9c25399f02..84d00777e9b 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -270,8 +270,6 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
void SendZoneUnderAttackMessage(Player* attacker);
- void SetInCombatWithZone();
-
bool hasQuest(uint32 quest_id) const override;
bool hasInvolvedQuest(uint32 quest_id) const override;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
index 43210d99de6..98eecd0da8d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
@@ -169,7 +169,7 @@ struct boss_coren_direbrew : public BossAI
events.SetPhase(PHASE_ONE);
me->SetImmuneToPC(false);
me->SetFaction(FACTION_GOBLIN_DARK_IRON_BAR_PATRON);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
EntryCheckPredicate pred(NPC_ANTAGONIST);
summons.DoAction(ACTION_ANTAGONIST_HOSTILE, pred);
@@ -217,7 +217,7 @@ struct boss_coren_direbrew : public BossAI
void SummonSister(uint32 entry)
{
if (Creature* sister = me->SummonCreature(entry, me->GetPosition(), TEMPSUMMON_DEAD_DESPAWN))
- sister->SetInCombatWithZone();
+ DoZoneInCombat(sister);
}
void UpdateAI(uint32 diff) override
@@ -343,7 +343,7 @@ struct npc_direbrew_minion : public ScriptedAI
void Reset() override
{
me->SetFaction(FACTION_GOBLIN_DARK_IRON_BAR_PATRON);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
}
void IsSummonedBy(Unit* /*summoner*/) override
@@ -373,7 +373,7 @@ struct npc_direbrew_antagonist : public ScriptedAI
case ACTION_ANTAGONIST_HOSTILE:
me->SetImmuneToPC(false);
me->SetFaction(FACTION_GOBLIN_DARK_IRON_BAR_PATRON);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
default:
break;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
index afb5e5414db..cafbc0cebf9 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
@@ -380,7 +380,7 @@ public:
for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
{
if (Creature* creature = *itr)
- creature->SetInCombatWithZone(); // AI()->AttackStart(me->GetVictim());
+ DoZoneInCombat(creature); // AI()->AttackStart(me->GetVictim());
}
_events.ScheduleEvent(EVENT_STRIKE, urand(8000, 16000));
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index ec4344a18cf..0005338c231 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -457,7 +457,7 @@ public:
if (id == 1)
{
- me->SetInCombatWithZone();
+ DoZoneInCombat();
if (me->GetVictim())
AttackStart(me->GetVictim());
}
@@ -576,7 +576,7 @@ public:
if ((*itr) && !(*itr)->IsAlive())
{
(*itr)->Respawn();
- (*itr)->SetInCombatWithZone();
+ DoZoneInCombat((*itr));
(*itr)->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
(*itr)->SetReactState(REACT_AGGRESSIVE);
(*itr)->SetStandState(UNIT_STAND_STATE_STAND);
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
index c5712cf012d..38eb7fff204 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
@@ -242,9 +242,9 @@ public:
switch (eventId)
{
case EVENT_RAZOR_SPAWN:
- for (uint8 i = urand(2, 5); i > 0 ; --i)
- if (Creature* summon = instance->SummonCreature(Entry[urand(0, 4)], SummonPosition[urand(0, 7)]))
- summon->SetInCombatWithZone();
+ for (uint8 i = urand(2, 5); i > 0; --i)
+ if (Creature* summon = instance->SummonCreature(Entry[urand(0, 4)], SummonPosition[urand(0, 7)]))
+ summon->AI()->DoZoneInCombat();
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, urand(12, 17) * IN_MILLISECONDS);
break;
case EVENT_RAZOR_PHASE_TWO:
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index b8067337c42..7204f406fda 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -299,7 +299,7 @@ public:
break;
case EVENT_INTRO_LANDING:
me->SetImmuneToPC(false);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
case EVENT_LAND:
Talk(YELL_LAND_PHASE);
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
index f45409f025d..628d6345ece 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
@@ -215,7 +215,7 @@ class boss_apothecary_hummel : public CreatureScript
case EVENT_START_FIGHT:
{
me->SetImmuneToAll(false);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
events.ScheduleEvent(EVENT_CALL_BAXTER, Seconds(6));
events.ScheduleEvent(EVENT_CALL_FRYE, Seconds(14));
events.ScheduleEvent(EVENT_PERFUME_SPRAY, Milliseconds(3640));
@@ -296,7 +296,7 @@ struct npc_apothecary_genericAI : public ScriptedAI
else if (action == ACTION_START_FIGHT)
{
me->SetImmuneToAll(false);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
}
}
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index 0bef0dabac1..888a7ad4b21 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -173,7 +173,7 @@ public:
void JustSummoned(Creature* summoned) override
{
- summoned->SetInCombatWithZone();
+ DoZoneInCombat(summoned);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
summoned->AI()->AttackStart(target);
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
index 38a72738af2..7b157ff1dfc 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
@@ -88,7 +88,7 @@ public:
Position goPos = go->GetPosition();
if (Creature* temp = go->SummonCreature(NPC_WHELP, goPos, TEMPSUMMON_CORPSE_DESPAWN))
{
- temp->SetInCombatWithZone();
+ temp->AI()->DoZoneInCombat();
++manyWhelpsCounter;
}
break;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
index 38bda91bce7..52d7e991e2f 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
@@ -217,7 +217,7 @@ struct dummy_dragonAI : public ScriptedAI
if (pointId == POINT_ID_LAND)
{
me->GetMotionMaster()->Clear();
- me->SetInCombatWithZone();
+ DoZoneInCombat();
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
{
AddThreat(target, 1.0f);
@@ -821,7 +821,7 @@ public:
void JustSummoned(Creature* who) override
{
- who->SetInCombatWithZone();
+ DoZoneInCombat(who);
}
void UpdateAI(uint32 diff) override
@@ -988,7 +988,7 @@ public:
void Reset() override
{
me->RemoveAllAuras();
- me->SetInCombatWithZone();
+ DoZoneInCombat();
events.ScheduleEvent(EVENT_FADE_ARMOR, 1000);
}
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 93b66780106..4706f5767a9 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
@@ -214,7 +214,7 @@ class npc_onyx_flamecaller : public CreatureScript
if (type != SPLINE_CHAIN_MOTION_TYPE && pointId != POINT_GENERAL_ROOM)
return;
- me->SetInCombatWithZone();
+ DoZoneInCombat();
}
void MoveToGeneral()
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index feb4f6f355a..135726939f0 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -1275,7 +1275,7 @@ class npc_living_inferno : public CreatureScript
void IsSummonedBy(Unit* /*summoner*/) override
{
- me->SetInCombatWithZone();
+ DoZoneInCombat();
me->CastSpell(me, SPELL_BLAZING_AURA, true);
// SMSG_SPELL_GO for the living ember stuff isn't even sent to the client - Blizzard on drugs.
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 3acc27563e1..e59ea6eb024 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -467,7 +467,7 @@ class npc_swarm_scarab : public CreatureScript
me->SetCorpseDelay(0);
Initialize();
DoCast(me, SPELL_ACID_MANDIBLE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
if (me->IsInCombat())
if (Creature* anubarak = _instance->GetCreature(DATA_ANUBARAK))
anubarak->AI()->JustSummoned(me);
@@ -547,7 +547,7 @@ class npc_nerubian_burrower : public CreatureScript
DoCast(me, SPELL_EXPOSE_WEAKNESS);
DoCast(me, SPELL_SPIDER_FRENZY);
DoCast(me, SPELL_AWAKENED);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
if (me->IsInCombat())
if (Creature* anubarak = _instance->GetCreature(DATA_ANUBARAK))
anubarak->AI()->JustSummoned(me);
@@ -710,7 +710,7 @@ class npc_anubarak_spike : public CreatureScript
{
Initialize();
// make sure the spike has everyone on threat list
- me->SetInCombatWithZone();
+ DoZoneInCombat();
}
bool CanAIAttack(Unit const* victim) const override
@@ -823,7 +823,7 @@ class npc_anubarak_spike : public CreatureScript
me->SetSpeedRate(MOVE_RUN, 0.5f);
// make sure the Spine will really follow the one he should
me->GetThreatManager().ResetAllThreat();
- me->SetInCombatWithZone();
+ DoZoneInCombat();
AddThreat(who, 1000000.0f);
me->GetMotionMaster()->Clear(true);
me->GetMotionMaster()->MoveChase(who);
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 e85c91987a4..b8269474ab3 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -358,7 +358,7 @@ struct boss_gormok : public boss_northrend_beastsAI
// Npc that should keep raid in combat while boss change
if (Creature* combatStalker = me->SummonCreature(NPC_BEASTS_COMBAT_STALKER, CombatStalkerPosition))
{
- combatStalker->SetInCombatWithZone();
+ DoZoneInCombat(combatStalker);
combatStalker->SetCombatPulseDelay(5);
}
DoZoneInCombat();
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 002b8557586..843e300fee3 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -265,11 +265,11 @@ struct boss_twin_baseAI : public BossAI
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetInCombatWithZone();
+ DoZoneInCombat();
if (Creature* pSister = GetSister())
{
me->AddAura(MyEmphatySpellId, pSister);
- pSister->SetInCombatWithZone();
+ DoZoneInCombat(pSister);
}
instance->SetBossState(DATA_TWIN_VALKIRIES, IN_PROGRESS);
diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
index eb909ffa7bb..bddb1a745f4 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
@@ -152,7 +152,7 @@ class boss_drakkari_colossus : public CreatureScript
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveAura(SPELL_FREEZE_ANIM);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
}
@@ -222,10 +222,10 @@ class boss_drakkari_colossus : public CreatureScript
void JustSummoned(Creature* summon) override
{
- summon->SetInCombatWithZone();
+ DoZoneInCombat(summon);
- if (phase == COLOSSUS_PHASE_SECOND_ELEMENTAL_SUMMON)
- summon->SetHealth(summon->GetMaxHealth() / 2);
+ if (phase == COLOSSUS_PHASE_SECOND_ELEMENTAL_SUMMON)
+ summon->SetHealth(summon->GetMaxHealth() / 2);
}
private:
@@ -424,7 +424,7 @@ public:
colossus->AI()->DoAction(ACTION_UNFREEZE_COLOSSUS);
if (!colossus->AI()->GetData(DATA_INTRO_DONE))
colossus->AI()->SetData(DATA_INTRO_DONE, true);
- colossus->SetInCombatWithZone();
+ DoZoneInCombat(colossus);
me->DespawnOrUnsummon();
}
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index ca4634f2f56..ff0dd695971 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -743,7 +743,7 @@ class npc_putricide_oozeAI : public ScriptedAI
if (_instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) != IN_PROGRESS)
me->DespawnOrUnsummon();
- me->SetInCombatWithZone();
+ DoZoneInCombat();
DoCastAOE(_auraSpellId, true);
}
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 2fbd0f792aa..0d4dd46ed99 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -468,7 +468,7 @@ public:
me->GetMotionMaster()->MoveLand(POINT_LAND_P_ONE, pos);
me->SetImmuneToAll(false);
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
events.ScheduleEvent(EVENT_LAND_START_ENCOUNTER, 7*IN_MILLISECONDS, 1, PHASE_NOT_STARTED);
}
break;
@@ -1181,7 +1181,7 @@ public:
if (unit->GetTypeId() == TYPEID_UNIT)
{
unit->CastSpell(unit, SPELL_TELEPORT_VISUAL_ONLY);
- unit->ToCreature()->SetInCombatWithZone();
+ DoZoneInCombat(unit->ToCreature());
}
else if (unit->GetTypeId() == TYPEID_PLAYER)
me->SetDisableGravity(true);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index 61891e9cd82..8b03f77be73 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -132,7 +132,7 @@ class boss_kologarn : public CreatureScript
if (Vehicle* vehicle = me->GetVehicleKit())
for (uint8 i = 0; i < 2; ++i)
if (Unit* arm = vehicle->GetPassenger(i))
- arm->ToCreature()->SetInCombatWithZone();
+ DoZoneInCombat(arm->ToCreature());
_JustEngagedWith();
}
@@ -205,7 +205,7 @@ class boss_kologarn : public CreatureScript
else
{
events.CancelEvent(EVENT_STONE_SHOUT);
- who->ToCreature()->SetInCombatWithZone();
+ DoZoneInCombat(who->ToCreature());
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index 239e60d22ff..3e64ff8a5f8 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -1287,7 +1287,7 @@ struct npc_darkrune_watcher : public ScriptedAI
{
case EVENT_START_COMBAT:
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
case EVENT_LIGHTNING_BOLT:
DoCastVictim(LIGHTNING_BOLT);
@@ -1358,7 +1358,7 @@ struct npc_darkrune_guardian : public ScriptedAI
{
case EVENT_START_COMBAT:
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
case EVENT_STORMSTRIKE:
DoCastVictim(SPELL_STORMSTRIKE);
@@ -1417,7 +1417,7 @@ struct npc_darkrune_sentinel : public ScriptedAI
{
case EVENT_START_COMBAT:
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
case EVENT_HEROIC_STRIKE:
DoCastVictim(SPELL_HEROIC_STRIKE);
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 7bc35eb3710..bf769cb28a4 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -460,11 +460,10 @@ class boss_voice_of_yogg_saron : public CreatureScript
}
void MoveInLineOfSight(Unit* who) override
-
{
// TODO: MoveInLineOfSight doesn't work for such a big distance
if (who->GetTypeId() == TYPEID_PLAYER && me->GetDistance2d(who) < 99.0f && !me->IsInCombat())
- me->SetInCombatWithZone();
+ DoZoneInCombat();
}
void EnterEvadeMode(EvadeReason why) override
@@ -624,7 +623,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
events.SetPhase(PHASE_TWO);
me->SummonCreature(NPC_YOGG_SARON, YoggSaronSpawnPos);
if (Creature* brain = instance->GetCreature(DATA_BRAIN_OF_YOGG_SARON))
- brain->SetInCombatWithZone();
+ DoZoneInCombat(brain);
events.ScheduleEvent(EVENT_SUMMON_CORRUPTOR_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
events.ScheduleEvent(EVENT_SUMMON_CONSTRICTOR_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
events.ScheduleEvent(EVENT_SUMMON_CRUSHER_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
index 89c525198c7..5fb2e62012f 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
@@ -117,7 +117,7 @@ public:
{
_owner->SetReactState(REACT_AGGRESSIVE);
_owner->SetTempSummonType(TEMPSUMMON_CORPSE_DESPAWN);
- _owner->SetInCombatWithZone();
+ _owner->AI()->DoZoneInCombat();
return true;
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index bcc0f7c0c51..d9800fab916 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -160,7 +160,7 @@ struct npc_frozen_orb : public ScriptedAI
if (toravon->IsInCombat())
{
toravon->AI()->JustSummoned(me);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
}
else
me->DespawnOrUnsummon();
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 540cbee00e4..31bfb9c919d 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -1379,7 +1379,7 @@ struct npc_parasitic_shadowfiend : public ScriptedAI
_scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/)
{
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
});
}
@@ -1394,7 +1394,7 @@ struct npc_parasitic_shadowfiend : public ScriptedAI
_scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/)
{
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
});
}
@@ -1497,7 +1497,7 @@ struct npc_flame_of_azzinoth : public ScriptedAI
{
case EVENT_ENGAGE:
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
_events.ScheduleEvent(EVENT_FLAME_CHARGE, Seconds(5));
break;
case EVENT_FLAME_CHARGE:
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index 211a22024ee..fbe05f264b2 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -632,7 +632,7 @@ struct npc_enslaved_soul : public ScriptedAI
_scheduler.Schedule(Seconds(3), [this](TaskContext /*context*/)
{
me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
});
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
index f6ff50c5dc1..6410f8786b8 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
@@ -232,7 +232,7 @@ struct npc_doom_blossom : public NullCreatureAI
DoCast(SPELL_SUMMON_BLOSSOM_MOVE_TARGET);
_scheduler.CancelAll();
- me->SetInCombatWithZone();
+ DoZoneInCombat();
_scheduler.Schedule(Seconds(12), [this](TaskContext shadowBolt)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
index bf8040bd287..ffcd188c82c 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
@@ -390,7 +390,7 @@ public:
if (summon->GetEntry() == NPC_AHUNE)
return;
- summon->SetInCombatWithZone();
+ DoZoneInCombat(summon);
_summons.Summon(summon);
}
@@ -469,7 +469,7 @@ public:
if (TempSummon* ahune = me->SummonCreature(NPC_AHUNE, SummonPositions[0], TEMPSUMMON_DEAD_DESPAWN))
{
ahune->SummonCreature(NPC_FROZEN_CORE, SummonPositions[1], TEMPSUMMON_CORPSE_DESPAWN);
- ahune->SetInCombatWithZone();
+ DoZoneInCombat(ahune);
DoCast(ahune, SPELL_RESURFACE);
}
break;
@@ -670,7 +670,7 @@ public:
if (Creature* ahuneBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AHUNE_BUNNY)))
{
ahuneBunny->AI()->DoAction(ACTION_START_EVENT);
- ahuneBunny->SetInCombatWithZone();
+ ahuneBunny->AI()->DoZoneInCombat();
}
if (Creature* luma = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_LUMA_SKYMOTHER)))
luma->CastSpell(player, SPELL_SUMMONING_RHYME_AURA, true);
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
index 2b37ea8531d..eb471ad95eb 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
@@ -103,7 +103,7 @@ class boss_broggok : public CreatureScript
switch (action)
{
case ACTION_PREPARE_BROGGOK:
- me->SetInCombatWithZone();
+ DoZoneInCombat();
break;
case ACTION_ACTIVATE_BROGGOK:
me->SetReactState(REACT_AGGRESSIVE);
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
index 73e756e5d91..2a8647154c0 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
@@ -287,7 +287,7 @@ class instance_blood_furnace : public InstanceMapScript
{
prisoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
prisoner->SetImmuneToAll(false);
- prisoner->SetInCombatWithZone();
+ prisoner->AI()->DoZoneInCombat();
}
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index 3ea1ea2e629..485bb682ef2 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -250,7 +250,7 @@ class boss_magtheridon : public CreatureScript
case EVENT_RELEASED:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetImmuneToPC(false);
- me->SetInCombatWithZone();
+ DoZoneInCombat();
instance->SetData(DATA_MANTICRON_CUBE, ACTION_ENABLE);
events.ScheduleEvent(EVENT_CLEAVE, Seconds(10));
events.ScheduleEvent(EVENT_BLAST_NOVA, Seconds(60));
@@ -354,7 +354,7 @@ class npc_hellfire_channeler : public CreatureScript
if (Creature* magtheridon = _instance->GetCreature(DATA_MAGTHERIDON))
magtheridon->AI()->JustSummoned(summon);
- summon->SetInCombatWithZone();
+ DoZoneInCombat(summon);
}
void EnterEvadeMode(EvadeReason /*why*/) override
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
index eb550e2d874..383ec54a2d1 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
@@ -123,7 +123,7 @@ class instance_magtheridons_lair : public InstanceMapScript
for (ObjectGuid warderGuid : warderGUIDS)
if (Creature* warder = instance->GetCreature(warderGuid))
if (warder->IsAlive())
- warder->SetInCombatWithZone();
+ warder->AI()->DoZoneInCombat();
break;
default:
break;