aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Kalimdor
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2017-07-01 20:18:02 +0200
committerShauren <shauren.trinity@gmail.com>2020-08-13 22:46:44 +0200
commit8be23fcbbdf26e8169defd761e61765f301bebe0 (patch)
tree6309b79f7dd617a8ddc801624dbbd4ed7ac22174 /src/server/scripts/Kalimdor
parent2c99678118798279372f17d4bb5f5a88ac95c413 (diff)
[3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already. (cherry picked from commit e2a1ccd118d129b96e09ff1a15ed0adb1d4a3897)
Diffstat (limited to 'src/server/scripts/Kalimdor')
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp32
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp2
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp8
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp13
-rw-r--r--src/server/scripts/Kalimdor/Firelands/firelands.cpp2
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp7
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp6
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp12
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp10
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_desolace.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp3
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp2
26 files changed, 60 insertions, 73 deletions
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index 7ce1e6551c0..7c76809be90 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
@@ -105,7 +105,7 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
index 67eba358627..a9617d570e2 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
@@ -108,7 +108,7 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
index a4c3efbe9e5..32c6b841416 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
@@ -103,7 +103,7 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
index 8ec092bde11..c51bbccd6b3 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
@@ -98,7 +98,7 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index 39a1cbd7dde..218760cf7cd 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -421,7 +421,7 @@ void hyjalAI::EnterEvadeMode(EvadeReason /*why*/)
{
if (me->GetEntry() != JAINA)
me->RemoveAllAuras();
- me->DeleteThreatList();
+ me->GetThreatManager().ClearAllThreat();
me->CombatStop(true);
me->LoadCreaturesAddon();
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 4e280a1ca18..f51bb032b6c 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -451,7 +451,7 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -487,7 +487,7 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
} else if (instance->GetData(DATA_ALLIANCE_RETREAT) && instance->GetData(DATA_HORDE_RETREAT)){
//do overrun
}
@@ -564,13 +564,13 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
if (waypointId == LastOverronPos && IsOverrun)
@@ -662,13 +662,13 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
if (waypointId == LastOverronPos && IsOverrun)
@@ -772,13 +772,13 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -885,13 +885,13 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -981,13 +981,13 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -1067,13 +1067,13 @@ public:
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -1160,7 +1160,7 @@ public:
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
{
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
DoCast(target, SPELL_FROST_BREATH, true);
}
}
@@ -1281,7 +1281,7 @@ public:
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
{
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
DoCast(target, SPELL_GARGOYLE_STRIKE, true);
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
index 1f6414dddee..7c19b4f3494 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
@@ -304,10 +304,10 @@ public:
if (Creature* boss = SummonedPortalBoss(temp))
{
if (boss->GetEntry() == NPC_AEONUS)
- boss->AddThreat(medivh, 0.0f);
+ boss->GetThreatManager().AddThreat(medivh, 0.0f);
else
{
- boss->AddThreat(temp, 0.0f);
+ boss->GetThreatManager().AddThreat(temp, 0.0f);
temp->CastSpell(boss, SPELL_RIFT_CHANNEL, false);
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
index 0e7f81426c5..094d9ebdc5e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
@@ -311,7 +311,7 @@ public:
if (Unit* Summon = DoSummon(creature_entry, pos, 30000, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT))
if (Unit* temp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MEDIVH)))
- Summon->AddThreat(temp, 0.0f);
+ AddThreat(temp, 0.0f, Summon);
}
void DoSelectSummon()
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
index 1bb7bae6842..5d18fd3ead0 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
@@ -227,7 +227,7 @@ class npc_harbinger_of_flame : public CreatureScript
switch (eventId)
{
case EVENT_FIEROBLAST:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, false, -SPELL_RIDE_MONSTROSITY))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, false, true, -SPELL_RIDE_MONSTROSITY))
DoCast(target, SPELL_FIEROBLAST_TRASH);
_events.RescheduleEvent(EVENT_FIEROBLAST, 500); // cast time is longer, but thanks to UNIT_STATE_CASTING check it won't trigger more often (need this because this creature gets a stacking haste aura)
break;
@@ -330,7 +330,7 @@ class npc_blazing_monstrosity : public CreatureScript
switch (eventId)
{
case EVENT_START_SPITTING:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, false, -SPELL_RIDE_MONSTROSITY))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, false, true, -SPELL_RIDE_MONSTROSITY))
DoCast(target, SPELL_MOLTEN_BARRAGE);
break;
case EVENT_CONTINUE_SPITTING:
@@ -635,8 +635,8 @@ class spell_alysrazor_aggro_closest : public SpellScriptLoader
void HandleEffect(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
- float curThreat = GetCaster()->getThreatManager().getThreat(GetHitUnit(), true);
- GetCaster()->getThreatManager().addThreat(GetHitUnit(), -curThreat + 50000.0f / std::min(1.0f, GetCaster()->GetDistance(GetHitUnit())));
+ float curThreat = GetCaster()->GetThreatManager().getThreat(GetHitUnit(), true);
+ GetCaster()->GetThreatManager().AddThreat(GetHitUnit(), -curThreat + 50000.0f / std::min(1.0f, GetCaster()->GetDistance(GetHitUnit())));
}
void UpdateThreat()
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
index 0dfe70efd5f..240acf77813 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
@@ -464,11 +464,7 @@ class spell_baleroc_countdown_aoe_dummy : public SpellScript
void FilterTargets(std::list<WorldObject*>& targets)
{
- Creature* caster = GetCaster()->ToCreature();
- if (!caster)
- return;
-
- if (WorldObject* tank = caster->AI()->SelectTarget(SELECT_TARGET_TOPAGGRO))
+ if (WorldObject* tank = GetCaster()->GetVictim())
targets.remove(tank);
if (targets.size() < 2)
@@ -583,11 +579,8 @@ class spell_baleroc_shards_of_torment_target_search : public SpellScript
return;
}
- Creature* caster = GetCaster()->ToCreature();
- if (!caster || !caster->IsAIEnabled)
- return;
-
- if (WorldObject* tank = caster->AI()->SelectTarget(SELECT_TARGET_TOPAGGRO))
+ Unit* caster = GetCaster();
+ if (WorldObject* tank = caster->GetVictim())
targets.remove(tank);
std::list<WorldObject*> melee, ranged;
diff --git a/src/server/scripts/Kalimdor/Firelands/firelands.cpp b/src/server/scripts/Kalimdor/Firelands/firelands.cpp
index 7b14d5bcd7a..1c91dd28dda 100644
--- a/src/server/scripts/Kalimdor/Firelands/firelands.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/firelands.cpp
@@ -232,7 +232,7 @@ struct npc_firelands_magmakin : public ScriptedAI
if (!target)
return;
- me->AddThreat(target, 50000000.0f);
+ AddThreat(target, 50000000.0f);
me->TauntApply(target);
}
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index 2deec5fa15e..6e785b66f4e 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -237,7 +237,7 @@ public:
// tank selection based on phase one. If tank is not there i take nearest one
if (Unit* tank = ObjectAccessor::GetUnit(*me, tankGUID))
me->GetMotionMaster()->MoveChase(tank);
- else if (Unit* newtarget = SelectTarget(SELECT_TARGET_NEAREST, 0))
+ else if (Unit* newtarget = SelectTarget(SELECT_TARGET_MINDISTANCE, 0))
me->GetMotionMaster()->MoveChase(newtarget);
events.ScheduleEvent(EVENT_BELLOWING_ROAR, 5000);
events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000));
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
index c8fa4cd05e3..71ffb168471 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -169,7 +169,7 @@ class boss_ayamiss : public CreatureScript
Position VictimPos = me->EnsureVictim()->GetPosition();
me->GetMotionMaster()->MovePoint(POINT_GROUND, VictimPos);
}
- DoResetThreat();
+ ResetThreatList();
events.ScheduleEvent(EVENT_LASH, urand(5000, 8000));
events.ScheduleEvent(EVENT_TRASH, urand(3000, 6000));
events.CancelEvent(EVENT_POISON_STINGER);
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
index acb48912169..387fa0b1323 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
@@ -122,7 +122,7 @@ class boss_buru : public CreatureScript
if (Unit* victim = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
- DoResetThreat();
+ ResetThreatList();
AttackStart(victim);
Talk(EMOTE_TARGET, victim);
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
index 253464288cd..e6b496f5868 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -148,10 +148,9 @@ class boss_moam : public CreatureScript
{
std::list<Unit*> targetList;
{
- const std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList();
- for (std::list<HostileReference*>::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
- if ((*itr)->getTarget()->GetTypeId() == TYPEID_PLAYER && (*itr)->getTarget()->GetPowerType() == POWER_MANA)
- targetList.push_back((*itr)->getTarget());
+ for (ThreatReference* ref : me->GetThreatManager().GetUnsortedThreatList())
+ if (ref->GetVictim()->GetTypeId() == TYPEID_PLAYER && ref->GetVictim()->GetPowerType() == POWER_MANA)
+ targetList.push_back(ref->GetVictim());
}
Trinity::Containers::RandomResize(targetList, 5);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index c10bde34faf..066f7142766 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -219,8 +219,8 @@ public:
if (KnockBack_Timer <= diff)
{
DoCastVictim(SPELL_KNOCKBACK);
- if (DoGetThreat(me->GetVictim()))
- DoModifyThreatPercent(me->GetVictim(), -80);
+ if (GetThreat(me->GetVictim()))
+ ModifyThreatByPercent(me->GetVictim(), -80);
KnockBack_Timer = urand(15000, 25000);
} else KnockBack_Timer -= diff;
@@ -307,7 +307,7 @@ public:
if (Fear_Timer <= diff)
{
DoCastVictim(SPELL_FEAR);
- DoResetThreat();
+ ResetThreatList();
Fear_Timer = 20000;
} else Fear_Timer -= diff;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index 59d33f235f4..dc99457b866 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -649,8 +649,8 @@ public:
//Place all units in threat list on outside of stomach
Stomach_Map.clear();
- for (std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); i != me->getThreatManager().getThreatList().end(); ++i)
- Stomach_Map[(*i)->getUnitGuid()] = false; //Outside stomach
+ for (ThreatReference* ref : me->GetThreatManager().GetUnsortedThreatList())
+ Stomach_Map[ref->GetVictim()->GetGUID()] = false; //Outside stomach
//Spawn 2 flesh tentacles
FleshTentaclesKilled = 0;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
index ff4d69510d1..05df5362b39 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
@@ -150,8 +150,8 @@ public:
{
DoCast(target, SPELL_ROOT);
- if (DoGetThreat(target))
- DoModifyThreatPercent(target, -100);
+ if (GetThreat(target))
+ ModifyThreatByPercent(target, -100);
Creature* Hatchling = nullptr;
switch (urand(0, 2))
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
index e346c1fd4d8..ee38b0516d5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -118,8 +118,7 @@ public:
//Attack random Gamers
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true))
{
- me->AddThreat(target, 1.0f);
- me->TauntApply(target);
+ AddThreat(target, 1.0f);
AttackStart(target);
}
WhirlWindRandom_Timer = urand(3000, 7000);
@@ -146,8 +145,7 @@ public:
//Attack random Gamers
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true))
{
- me->AddThreat(target, 1.0f);
- me->TauntApply(target);
+ AddThreat(target, 1.0f);
AttackStart(target);
}
AggroReset = true;
@@ -261,8 +259,7 @@ public:
//Attack random Gamers
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true))
{
- me->AddThreat(target, 1.0f);
- me->TauntApply(target);
+ AddThreat(target, 1.0f);
AttackStart(target);
}
@@ -282,8 +279,7 @@ public:
//Attack random Gamers
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true))
{
- me->AddThreat(target, 1.0f);
- me->TauntApply(target);
+ AddThreat(target, 1.0f);
AttackStart(target);
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index ec86b2c192b..9a385210578 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -165,7 +165,7 @@ class boss_skeram : public CreatureScript
break;
case EVENT_BLINK:
DoCast(me, BlinkSpells[urand(0, 2)]);
- DoResetThreat();
+ ResetThreatList();
me->SetVisible(true);
events.ScheduleEvent(EVENT_BLINK, urand(10000, 30000));
break;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index b27a339ed7b..f48bf7ffc7d 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -239,7 +239,7 @@ struct boss_twinemperorsAI : public ScriptedAI
{
me->InterruptNonMeleeSpells(false);
DoStopAttack();
- DoResetThreat();
+ ResetThreatList();
DoCast(me, SPELL_TWIN_TELEPORT_VISUAL);
me->AddUnitState(UNIT_STATE_STUNNED);
AfterTeleport = true;
@@ -268,7 +268,7 @@ struct boss_twinemperorsAI : public ScriptedAI
{
//DoYell(nearu->GetName(), LANG_UNIVERSAL, 0);
AttackStart(nearu);
- me->AddThreat(nearu, 10000);
+ AddThreat(nearu, 10000);
}
return true;
}
@@ -428,7 +428,7 @@ public:
void CastSpellOnBug(Creature* target) override
{
target->SetFaction(FACTION_MONSTER);
- target->AI()->AttackStart(me->getThreatManager().getHostilTarget());
+ target->AI()->AttackStart(me->GetThreatManager().GetCurrentVictim());
target->AddAura(SPELL_MUTATE_BUG, target);
target->SetFullHealth();
}
@@ -559,7 +559,7 @@ public:
if (ArcaneBurst_Timer <= diff)
{
- if (Unit* mvic = SelectTarget(SELECT_TARGET_NEAREST, 0, NOMINAL_MELEE_RANGE, true))
+ if (Unit* mvic = SelectTarget(SELECT_TARGET_MINDISTANCE, 0, NOMINAL_MELEE_RANGE, true))
{
DoCast(mvic, SPELL_ARCANEBURST);
ArcaneBurst_Timer = 5000;
@@ -594,7 +594,7 @@ public:
if (me->Attack(who, false))
{
me->GetMotionMaster()->MoveChase(who, VEKLOR_DIST, 0);
- me->AddThreat(who, 0.0f);
+ AddThreat(who, 0.0f);
}
}
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 2646851851a..e7bb0ffd66f 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -213,7 +213,7 @@ class boss_viscidus : public CreatureScript
if (_phase == PHASE_GLOB && summons.empty())
{
- DoResetThreat();
+ ResetThreatList();
me->NearTeleportTo(ViscidusCoord.GetPositionX(),
ViscidusCoord.GetPositionY(),
ViscidusCoord.GetPositionZ(),
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index adfc20062a6..a7cabc1631b 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -662,7 +662,7 @@ public:
if (!target)
target = me;
- target->AddThreat(sironas, 0.001f);
+ AddThreat(sironas, 0.001f, target);
sironas->Attack(target, true);
sironas->GetMotionMaster()->MoveChase(target);
}
diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp
index 4f79ed6a510..3c55e2a5845 100644
--- a/src/server/scripts/Kalimdor/zone_desolace.cpp
+++ b/src/server/scripts/Kalimdor/zone_desolace.cpp
@@ -86,7 +86,7 @@ public:
me->UpdateEntry(NPC_TAMED_KODO);
me->CombatStop();
- me->DeleteThreatList();
+ me->GetThreatManager().ClearAllThreat();
me->SetSpeedRate(MOVE_RUN, 0.6f);
me->GetMotionMaster()->MoveFollow(caster, PET_FOLLOW_DIST, me->GetFollowAngle());
me->setActive(true);
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 23e2275b444..0278070f546 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -1234,8 +1234,7 @@ class go_wind_stone : public GameObjectScript
break;
}
summons->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
- summons->SendMeleeAttackStart(player);
- summons->CombatStart(player);
+ summons->EngageWithTarget(player);
}
public:
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index 734f14e65f4..e139fc8a746 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -214,7 +214,7 @@ public:
void DoFriend()
{
me->RemoveAllAuras();
- me->DeleteThreatList();
+ me->GetThreatManager().ClearAllThreat();
me->CombatStop(true);
me->StopMoving();