diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index 0a621407a..61d560746 100644 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -137,14 +137,18 @@ struct PowerUsersSelector : public Acore::unary_function Powers const _power; float const _dist; bool const _playerOnly; + bool const _withTank; - PowerUsersSelector(Unit const* unit, Powers power, float dist, bool playerOnly) : _me(unit), _power(power), _dist(dist), _playerOnly(playerOnly) { } + PowerUsersSelector(Unit const* unit, Powers power, float dist, bool playerOnly, bool withTank = true) : _me(unit), _power(power), _dist(dist), _playerOnly(playerOnly), _withTank(withTank) { } bool operator()(Unit const* target) const { if (!_me || !target) return false; + if (!_withTank && target == _me->GetThreatMgr().GetCurrentVictim()) + return false; + if (target->getPowerType() != _power) return false; @@ -294,18 +298,12 @@ public: } else { - Unit* currentVictim = mgr.GetCurrentVictim(); - if (currentVictim) - targetList.push_back(currentVictim); - for (ThreatReference const* ref : mgr.GetSortedThreatList()) { if (ref->IsOffline()) continue; - Unit* thisTarget = ref->GetVictim(); - if (thisTarget != currentVictim) - targetList.push_back(thisTarget); + targetList.push_back(ref->GetVictim()); } } diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index d5a78dee0..2ba8132c4 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3460,10 +3460,10 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, { if (e.target.hostileRandom.powerType) { - if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 1, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly))) + if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 0, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, false))) targets.push_back(u); } - else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 1, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, true, -e.target.hostileRandom.aura)) + else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 0, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, false, -e.target.hostileRandom.aura)) targets.push_back(u); } break; @@ -3496,10 +3496,10 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, { if (e.target.hostileRandom.powerType) { - if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 1, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly))) + if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 0, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, false))) targets.push_back(u); } - else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 1, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, true, -e.target.hostileRandom.aura)) + else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 0, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, false, -e.target.hostileRandom.aura)) targets.push_back(u); } break; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp index ffdcb5c56..a358bec9d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp @@ -74,7 +74,7 @@ public: { if (urand(0, 1)) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false)) { DoCast(target, SPELL_SHADOW_BOLT_RANDOM); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp index 7cccc6479..ce586774f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp @@ -353,7 +353,7 @@ public: } case EVENT_TELEPORT_RANDOM: { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false)) { DoCastSelf(SPELL_HATE_TO_ZERO, true); DoCast(target, SPELL_TELEPORT_RANDOM); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index 12d1df540..c2b583874 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -214,7 +214,7 @@ struct boss_netherspite : public BossAI context.Repeat(90s); }).Schedule(15s, PORTAL_PHASE, [this](TaskContext context) { - DoCastRandomTarget(SPELL_VOIDZONE, 1, 45.0f, true, true); + DoCastRandomTarget(SPELL_VOIDZONE, 0, 45.0f, true, true, false); context.Repeat(15s); }); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 53d7b05a0..e85da8d9f 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -127,7 +127,7 @@ struct boss_malchezaar : public BossAI scheduler.Schedule(20s, 30s, [this](TaskContext context) { - DoCastRandomTarget(SPELL_AMPLIFY_DAMAGE, 1); + DoCastRandomTarget(SPELL_AMPLIFY_DAMAGE, 0, 0.0f, true, false, false); context.Repeat(); }).Schedule(20s, [this](TaskContext context) { diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 9027d546a..20f82785e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -1210,7 +1210,7 @@ struct boss_romulo : public ScriptedAI _scheduler.Schedule(15s, GROUP_COMBAT, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true, false)) { if (target && !me->HasInArc(M_PI, target)) { diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp index 0c068d070..8b585920c 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp @@ -307,7 +307,7 @@ public: if (victim && (target->GetGUID() == victim->GetGUID())) { me->AddThreat(victim, -1000000); // drop current player, add a ton to second. This should guarantee that we don't end up with both 1 and 2 in a cage... - if (Unit* newTarget = SelectTarget(SelectTargetMethod::MaxThreat, 1, 200.0f)) // search in whole room + if (Unit* newTarget = SelectTarget(SelectTargetMethod::MaxThreat, 0, 200.0f, false, false)) // search in whole room { me->AddThreat(newTarget, 1000000); } diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp index 110bedfaf..b58ad2de3 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -208,7 +208,7 @@ public: events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 20s); break; case EVENT_DOMINATE_MIND: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 20.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true, false)) { me->CastSpell(target, SPELL_DOMINATE_MIND, false); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index d2b04f318..4607837a7 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -84,7 +84,7 @@ struct boss_akilzon : public BossAI scheduler.Schedule(10s, 20s, GROUP_STATIC_DISRUPTION, [this](TaskContext context) { - Unit* target = SelectTarget(SelectTargetMethod::Random, 1); + Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false); if (!target) target = me->GetVictim(); if (target) @@ -99,7 +99,7 @@ struct boss_akilzon : public BossAI ScheduleTimedEvent(20s, 30s, [&] { if (scheduler.GetNextGroupOccurrence(GROUP_ELECTRICAL_STORM) > 5s) - DoCastRandomTarget(SPELL_GUST_OF_WIND, 1); + DoCastRandomTarget(SPELL_GUST_OF_WIND, 0, 0.0f, true, false, false); }, 20s, 30s); ScheduleTimedEvent(10s, 20s, [&] { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index feb6b3553..b33a057db 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -205,7 +205,7 @@ struct boss_zuljin : public BossAI if (me->HasAura(SPELL_LYNX_RUSH_HASTE)) return; - DoCastRandomTarget(SPELL_CLAW_RAGE_CHARGE, 1); + DoCastRandomTarget(SPELL_CLAW_RAGE_CHARGE, 0, 0.0f, true, false, true); }, 15s, 20s); ScheduleTimedEvent(14s, [&] { diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp index ef61c5a10..2080db95e 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp @@ -122,7 +122,7 @@ struct boss_hazzarah : public BossAI case EVENT_CHAIN_BURN: if (me->GetPowerPct(POWER_MANA) > 5.f) // totally guessed { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, [&](Unit* u) { return u && !u->IsPet() && u->getPowerType() == POWER_MANA; })) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, [&](Unit* u) { return u && !u->IsPet() && u->getPowerType() == POWER_MANA && u != me->GetVictim(); })) { DoCast(target, SPELL_CHAIN_BURN); } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp index 6445a79fd..fea22043b 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp @@ -150,7 +150,7 @@ public: events.ScheduleEvent(EVENT_VANISH, 38s, 45s); return; case EVENT_AMBUSH: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) { me->NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), me->GetOrientation()); DoCast(target, SPELL_AMBUSH, true); diff --git a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp index a0a49c5dd..d7d06ac3f 100644 --- a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp +++ b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp @@ -90,7 +90,7 @@ struct boss_twilight_corrupter : public ScriptedAI _scheduler .Schedule(12s, 18s, [this](TaskContext context) { - DoCastRandomTarget(SPELL_CREATURE_OF_NIGHTMARE, 1, 100.f); + DoCastRandomTarget(SPELL_CREATURE_OF_NIGHTMARE, 0, 100.f, true, false, false); context.Repeat(35s, 45s); }) .Schedule(9s, 16s, [this](TaskContext context) diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index 91de56489..69eaa77ea 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -67,7 +67,7 @@ public: }).Schedule(25s, 32s, [this](TaskContext context) { Talk(SAY_SLEEP); - DoCastRandomTarget(SPELL_SLEEP, 1, 0.0f, true, false, false); + DoCastRandomTarget(SPELL_SLEEP, 0, 0.0f, true, false, false); context.Repeat(35s, 48s); }).Schedule(30s, 48s, [this](TaskContext context) { diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp index a00d4276c..16ad3de36 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp @@ -81,7 +81,7 @@ struct boss_lieutenant_drake : public BossAI context.Repeat(25s); }).Schedule(1s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 40.0f)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, false, false)) { DoCast(target, SPELL_EXPLODING_SHOT); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp index 98b2b1e87..5965f580d 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp @@ -57,7 +57,7 @@ struct boss_kurinnaxx : public BossAI context.Repeat(8s, 10s); }).Schedule(5s, 15s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.f, true, false)) { target->CastSpell(target, SPELL_SAND_TRAP, true, nullptr, nullptr, me->GetGUID()); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.cpp index 06bf51b24..8ff445add 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.cpp @@ -50,16 +50,10 @@ struct npc_hivezara_stinger : public ScriptedAI scheduler.Schedule(5s, [this](TaskContext context) { - Unit* target = SelectTarget(SelectTargetMethod::Random, 1, [&](Unit* u) - { - return u && !u->IsPet() && u->IsWithinDist2d(me, 20.f) && u->HasAura(SPELL_HIVEZARA_CATALYST); - }); + Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true, false, SPELL_HIVEZARA_CATALYST); if (!target) { - target = SelectTarget(SelectTargetMethod::Random, 1, [&](Unit* u) - { - return u && !u->IsPet() && u->IsWithinDist2d(me, 20.f); - }); + target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true, false); } if (target) diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp index b07aca899..23d3d321d 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp @@ -98,7 +98,7 @@ struct boss_fankriss : public BossAI }) .Schedule(15s, 20s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false)) { uint32 spellId = Acore::Containers::SelectRandomContainerElement(entangleSpells); DoCast(target, spellId); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp index 4b4277224..42bb906da 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp @@ -115,7 +115,7 @@ struct boss_sartura : public BossAI switch (eventId) { case EVENT_SARTURA_WHIRLWIND: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false)) { me->GetThreatMgr().ResetAllThreat(); me->AddThreat(target, 1000.0f); @@ -199,7 +199,7 @@ struct npc_sartura_royal_guard : public ScriptedAI switch (eventid) { case EVENT_GUARD_WHIRLWIND: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false)) { me->GetThreatMgr().ResetAllThreat(); me->AddThreat(target, 1000.0f); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp index 6ed2e8fe2..2cc53521d 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.cpp @@ -98,7 +98,7 @@ struct npc_anubisath_defender : public ScriptedAI { scheduler.Schedule(6s, 10s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 0.0f, false, false)) DoCast(target, SPELL_PLAGUE, true); context.Repeat(6s, 10s); }); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 6428031cf..e0c14e515 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -852,7 +852,7 @@ struct boss_sartharion_dragonAI : public BossAI if (isCalledBySartharion) { - if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 500, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 500, true, false)) { AttackStart(target); } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index a991d0d91..ffae1f3b7 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -396,7 +396,7 @@ public: events.ScheduleEvent(EVENT_METEOR_STRIKE, 40s); break; case EVENT_FIERY_COMBUSTION: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, true, -SPELL_TWILIGHT_REALM)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false, -SPELL_TWILIGHT_REALM)) me->CastSpell(target, SPELL_FIERY_COMBUSTION, false); events.ScheduleEvent(EVENT_FIERY_COMBUSTION, 25s); break; @@ -539,7 +539,7 @@ public: _events.ScheduleEvent(EVENT_BREATH, 10s, 12s); break; case EVENT_SOUL_CONSUMPTION: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, true, SPELL_TWILIGHT_REALM)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false, SPELL_TWILIGHT_REALM)) me->CastSpell(target, SPELL_SOUL_CONSUMPTION, false); _events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 20s); break; diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp index 45b3029a2..5a4dbcd2c 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp @@ -123,7 +123,7 @@ public: events.ScheduleEvent(EVENT_ECK_SPIT, 10s); break; case EVENT_ECK_SPRING: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 30.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true, false)) { me->GetThreatMgr().ResetAllThreat(); me->AddThreat(target, 500.0f); diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp index 4d202f7b5..2a56ce887 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp @@ -207,7 +207,7 @@ public: return; } events.ScheduleEvent(EVENT_IMPALING_CHARGE, 21s); - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false)) { me->CastSpell(target, SPELL_IMPALING_CHARGE, false); impaledList.insert(target->GetGUID()); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp index 7b19478d4..f0172727b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp @@ -358,7 +358,7 @@ public: void JustSummoned(Creature* summon) override { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false)) summon->AI()->AttackStart(target); //if (IsHeroic()) @@ -468,7 +468,7 @@ public: switch (action) { case ACTION_MARK_OF_THE_FALLEN_CHAMPION: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true, true, -SPELL_MARK_OF_THE_FALLEN_CHAMPION)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false, -SPELL_MARK_OF_THE_FALLEN_CHAMPION)) { ++_fallenChampionCastCount; me->CastSpell(target, SPELL_MARK_OF_THE_FALLEN_CHAMPION, false); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index ef04e7e5b..54b279510 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -857,7 +857,7 @@ public: events.Repeat(9s, 13s); break; case EVENT_SPELL_ADHERENT_CURSE_OF_TORPOR: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) me->CastSpell(target, SPELL_CURSE_OF_TORPOR, false); events.Repeat(9s, 13s); break; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 1f26e1b79..7faa41fd2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -482,7 +482,7 @@ class spell_marrowgar_coldflame : public SpellScript void SelectTarget(std::list& targets) { targets.clear(); - Unit* target = GetCaster()->GetAI()->SelectTarget(SelectTargetMethod::Random, 1, -1.0f, true,true, -SPELL_IMPALED); // -1.0f as it takes into account object size + Unit* target = GetCaster()->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, -1.0f, true, false, -SPELL_IMPALED); // -1.0f as it takes into account object size if (!target) target = GetCaster()->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true); // if only tank or noone outside of boss' model if (!target) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index 64852ccb6..cb93c1bf6 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -209,7 +209,7 @@ public: bool operator()(Unit const* target) const { - if (!me || !target || !target->IsPlayer()) + if (!me || !target || !target->IsPlayer() || target == me->GetThreatMgr().GetCurrentVictim()) return false; if (me->IsWithinCombatRange(target, 7.0f)) @@ -640,7 +640,7 @@ public: } else { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, MalleableGooSelector(me))) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, MalleableGooSelector(me))) { Talk(EMOTE_MALLEABLE_GOO); me->CastSpell(target, SPELL_MALLEABLE_GOO, true); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index 0393ace0c..e80c31c9f 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -627,7 +627,7 @@ public: switch (eventId) { case EVENT_DEATH_PLAGUE: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true, true, -SPELL_RECENTLY_INFECTED)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false, -SPELL_RECENTLY_INFECTED)) { Talk(EMOTE_DEATH_PLAGUE_WARNING, target); DoCast(target, SPELL_DEATH_PLAGUE); @@ -1161,7 +1161,7 @@ public: Talk(SAY_SVALNA_AGGRO); break; case EVENT_IMPALING_SPEAR: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true, true, -SPELL_IMPALING_SPEAR)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false, -SPELL_IMPALING_SPEAR)) { DoCast(me, SPELL_AETHER_SHIELD); me->AddAura(70203, me); @@ -1347,7 +1347,7 @@ public: Events.ScheduleEvent(EVENT_ARNATH_SMITE, 4s, 7s); break; case EVENT_ARNATH_DOMINATE_MIND: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true, true, -SPELL_DOMINATE_MIND)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false, -SPELL_DOMINATE_MIND)) DoCast(target, SPELL_DOMINATE_MIND); Events.ScheduleEvent(EVENT_ARNATH_DOMINATE_MIND, 28s, 37s); break; @@ -1425,7 +1425,7 @@ public: Events.ScheduleEvent(EVENT_BRANDON_JUDGEMENT_OF_COMMAND, 8s, 13s); break; case EVENT_BRANDON_HAMMER_OF_BETRAYAL: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, false)) DoCast(target, SPELL_HAMMER_OF_BETRAYAL); Events.ScheduleEvent(EVENT_BRANDON_HAMMER_OF_BETRAYAL, 45s, 60s); break; @@ -1552,12 +1552,12 @@ public: Events.ScheduleEvent(EVENT_RUPERT_FEL_IRON_BOMB, 15s, 20s); break; case EVENT_RUPERT_MACHINE_GUN: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) DoCast(target, SPELL_MACHINE_GUN); Events.ScheduleEvent(EVENT_RUPERT_MACHINE_GUN, 25s, 30s); break; case EVENT_RUPERT_ROCKET_LAUNCH: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) DoCast(target, SPELL_ROCKET_LAUNCH); Events.ScheduleEvent(EVENT_RUPERT_ROCKET_LAUNCH, 10s, 15s); break; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp index fd3f395f8..9a88b24a7 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp @@ -173,7 +173,7 @@ public: events.Repeat(20s); break; case EVENT_MUTATING_INJECTION: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, true, -SPELL_MUTATING_INJECTION)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false, -SPELL_MUTATING_INJECTION)) { me->CastSpell(target, SPELL_MUTATING_INJECTION, false); } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index e6f781e60..57866c7b0 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -382,7 +382,7 @@ public: events.Repeat(25s); break; case EVENT_FROST_BLAST: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, RAID_MODE(1, 0), 0, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0, true, RAID_MODE(false, true))) { me->CastSpell(target, SPELL_FROST_BLAST, false); } @@ -392,7 +392,7 @@ public: case EVENT_CHAINS: for (uint8 i = 0; i < 3; ++i) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 200, true, true, -SPELL_CHAINS_OF_KELTHUZAD)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 200, true, false, -SPELL_CHAINS_OF_KELTHUZAD)) { me->CastSpell(target, SPELL_CHAINS_OF_KELTHUZAD, true); } diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp index aed9965ac..8e3d5372e 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp @@ -143,7 +143,7 @@ class boss_archavon : public CreatureScript events.Repeat(15s); break; case EVENT_CHOKING_CLOUD: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) { DoCast(target, RAID_MODE(SPELL_CRUSHING_LEAP_10, SPELL_CRUSHING_LEAP_25), true); //10y ~ 80y, ignore range } diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp index 794b5fb07..828dba732 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp @@ -124,7 +124,7 @@ struct boss_anzu : public BossAI scheduler.DelayAll(3s); }).Schedule(8s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 45.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 9, 45.0f, true, false)) { DoCast(target, SPELL_CYCLONE); } diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp index c14fcd497..1b00bf7c4 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp @@ -103,9 +103,9 @@ struct boss_talon_king_ikiss : public BossAI }).Schedule(8s, [this](TaskContext context) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_POLYMORPH); - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, [&](Unit* target) -> bool + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, [&](Unit* target) -> bool { - return target && !target->IsImmunedToSpell(spellInfo); + return target && !target->IsImmunedToSpell(spellInfo) && target != me->GetThreatMgr().GetCurrentVictim(); })) { DoCast(target, SPELL_POLYMORPH); diff --git a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp index 902b72d1e..3d281f501 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp @@ -99,7 +99,7 @@ struct boss_gurtogg_bloodboil : public BossAI }, 15s); ScheduleTimedEvent(1min, [&] { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 40.0f, true)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true, false)) { me->RemoveAurasByType(SPELL_AURA_MOD_TAUNT); me->RemoveAurasDueToSpell(SPELL_ACIDIC_WOUND); diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 392cbecde..773382d8e 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -65,9 +65,11 @@ enum Misc struct ShadowOfDeathSelector { + Unit const* _tank; + ShadowOfDeathSelector(Unit const* tank) : _tank(tank) {} bool operator()(Unit const* target) const { - return target && !target->HasAura(SPELL_SHADOW_OF_DEATH) && !target->HasAura(SPELL_POSSESS_SPIRIT_IMMUNE); + return target && !target->HasAura(SPELL_SHADOW_OF_DEATH) && !target->HasAura(SPELL_POSSESS_SPIRIT_IMMUNE) && target != _tank; } }; @@ -113,7 +115,7 @@ struct boss_teron_gorefiend : public BossAI ScheduleTimedEvent(10s, [&] { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, ShadowOfDeathSelector())) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, ShadowOfDeathSelector(me->GetThreatMgr().GetCurrentVictim()))) me->CastSpell(target, SPELL_SHADOW_OF_DEATH, false); }, 30s, 50s); diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 8256a2ad3..7b91fec7e 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -91,7 +91,7 @@ struct boss_najentus : public BossAI ScheduleTimedEvent(21s, [&] { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) { DoCast(target, SPELL_IMPALING_SPINE); target->CastSpell(target, SPELL_SUMMON_IMPALING_SPINE, true); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index 731afca6a..49607d53c 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -73,7 +73,7 @@ struct boss_mekgineer_steamrigger : public BossAI context.Repeat(35100ms, 54100ms); }).Schedule(6050ms, 17650ms, [this](TaskContext context) { - if (DoCastRandomTarget(SPELL_SAW_BLADE, 1) != SPELL_CAST_OK) + if (DoCastRandomTarget(SPELL_SAW_BLADE, 0, 0.0f, true, false, false) != SPELL_CAST_OK) { DoCastVictim(SPELL_SAW_BLADE); } diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp index e81ddd3c0..057e83371 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp @@ -100,7 +100,7 @@ struct boss_the_black_stalker : public BossAI void JustSummoned(Creature* summon) override { - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) summon->AI()->AttackStart(target); else if (me->GetVictim()) summon->AI()->AttackStart(me->GetVictim()); diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp index ea5e3c19f..dfbdf0d91 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp @@ -95,7 +95,7 @@ struct boss_gruul : public BossAI context.Repeat(39900ms, 55700ms); }).Schedule(5600ms, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 5.0f)) + if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 5.0f, false, false)) { DoCast(target, SPELL_HURTFUL_STRIKE); } diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index 638570c64..e1857ff3c 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -169,7 +169,7 @@ struct boss_warbringer_omrogg : public BossAI context.Schedule(200ms, GROUP_NON_BURNING_PHASE, [this](TaskContext context) { DoResetThreatList(); - if (Unit* newTarget = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* newTarget = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) me->AddThreat(newTarget, 2250.f); HandleHeadTalk(SAY_ON_BEATDOWN); context.Schedule(1200ms, GROUP_NON_BURNING_PHASE, [this](TaskContext /*context*/) @@ -199,7 +199,7 @@ struct boss_warbringer_omrogg : public BossAI context.Schedule(2200ms, [this](TaskContext context) { DoResetThreatList(); - if (Unit* newTarget = SelectTarget(SelectTargetMethod::Random, 1)) + if (Unit* newTarget = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, false, false)) me->AddThreat(newTarget, 2250.f); me->SetReactState(REACT_AGGRESSIVE); context.Schedule(4850ms, 8500ms, GROUP_BURNING_PHASE, [this](TaskContext context) diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp index c5c867506..07612d943 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp @@ -115,7 +115,7 @@ struct boss_pathaleon_the_calculator : public BossAI context.Repeat(15s); }).Schedule(10s, 15s, [this](TaskContext context) { - if (DoCastRandomTarget(SPELL_DOMINATION, 1, 50.0f) == SPELL_CAST_OK) + if (DoCastRandomTarget(SPELL_DOMINATION, 0, 50.0f, true, false, false) == SPELL_CAST_OK) { Talk(SAY_DOMINATION); } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index bb199edba..ab4644a77 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -92,7 +92,7 @@ struct boss_harbinger_skyriss : public BossAI context.Repeat(25s); }).Schedule(30s, [this](TaskContext context) { - if (DoCastRandomTarget(SPELL_DOMINATION, 1, 30.0f) == SPELL_CAST_OK) + if (DoCastRandomTarget(SPELL_DOMINATION, 0, 30.0f, true, false, false) == SPELL_CAST_OK) { Talk(SAY_MIND); } diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp index 2d900d519..2115ae05d 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp @@ -75,7 +75,7 @@ struct boss_thorngrin_the_tender : public BossAI scheduler.Schedule(6s, [this](TaskContext context) { - if (DoCastRandomTarget(SPELL_SACRIFICE, 1) == SPELL_CAST_OK) + if (DoCastRandomTarget(SPELL_SACRIFICE, 0, 0.0f, true, false, false) == SPELL_CAST_OK) { Talk(SAY_CAST_SACRIFICE); } diff --git a/src/server/scripts/Outland/boss_doomwalker.cpp b/src/server/scripts/Outland/boss_doomwalker.cpp index 774dcfe58..418924433 100644 --- a/src/server/scripts/Outland/boss_doomwalker.cpp +++ b/src/server/scripts/Outland/boss_doomwalker.cpp @@ -80,7 +80,7 @@ struct boss_doomwalker : public ScriptedAI context.Repeat(10s, 25s); }).Schedule(10s, 30s, [this](TaskContext context) { - DoCastRandomTarget(SPELL_CHAIN_LIGHTNING, 1); + DoCastRandomTarget(SPELL_CHAIN_LIGHTNING, 0, 0.0f, true, false, false); context.Repeat(7s, 27s); }).Schedule(25s, 35s, [this](TaskContext context) {