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>2017-07-01 20:18:02 +0200
commite2a1ccd118d129b96e09ff1a15ed0adb1d4a3897 (patch)
treebbe6600c4066078bb7c64a117df457dce0d00b26 /src/server/scripts/Kalimdor
parent5879eb2198fdb976b9fff136757bf8187adb6cf0 (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.
Diffstat (limited to 'src/server/scripts/Kalimdor')
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp2
-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/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/boss_azuregos.cpp4
-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_durotar.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_moonglade.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp3
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp2
27 files changed, 57 insertions, 63 deletions
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index 8c57ce77ba0..921af01bfb4 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -149,7 +149,7 @@ public:
{
me->SetInCombatWith(player);
player->SetInCombatWith(me);
- me->AddThreat(player, 0.0f);
+ AddThreat(player, 0.0f);
}
}
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index 4e9fdbc0bc3..b41eb13c46c 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:
{
Creature* target = ObjectAccessor::GetCreature(*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 4eb9a71cff4..985f4e214a8 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:
{
Creature* target = ObjectAccessor::GetCreature(*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 d5b43ab4d2d..25c174cb26a 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:
{
Creature* target = ObjectAccessor::GetCreature(*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 9d96aa20133..d1677b2c8ef 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:
{
Creature* target = ObjectAccessor::GetCreature(*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 882689ee76d..48b8e59a5a7 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -422,7 +422,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 b26d9081fc8..f9cd454c67e 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:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -489,7 +489,7 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*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
}
@@ -566,13 +566,13 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
if (waypointId == LastOverronPos && IsOverrun)
@@ -664,13 +664,13 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
if (waypointId == LastOverronPos && IsOverrun)
@@ -774,13 +774,13 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -887,13 +887,13 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -983,13 +983,13 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -1069,13 +1069,13 @@ public:
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
else
{
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
}
}
}
@@ -1162,7 +1162,7 @@ public:
Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
{
- me->AddThreat(target, 0.0f);
+ AddThreat(target, 0.0f);
DoCast(target, SPELL_FROST_BREATH, true);
}
}
@@ -1287,7 +1287,7 @@ public:
Creature* target = ObjectAccessor::GetCreature(*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 0705071dfb9..502f129bc5c 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
@@ -305,10 +305,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 6aa008f89f5..ffb34948ebc 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
@@ -312,7 +312,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/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index 8799facf2f6..fd3eb006619 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -236,7 +236,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 59432c4051b..663a857d4e2 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -170,7 +170,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 88097b1ec30..d17d45c9be6 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
@@ -123,7 +123,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 f38f3058f7c..55dfdc8e2d5 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 779e973f330..2a775ecf9fd 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -220,8 +220,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;
@@ -308,7 +308,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 6f531894c98..e5eab1ecda3 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -650,8 +650,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 e03bbe211c5..9e251100c8f 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
@@ -151,8 +151,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 8d1e8ad302e..8f19acc3a14 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -119,8 +119,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);
@@ -147,8 +146,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;
@@ -262,8 +260,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);
}
@@ -283,8 +280,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 76833e06841..7cb3f40898e 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -166,7 +166,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 d98cf055d30..bbcf18d5b84 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -243,7 +243,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;
@@ -272,7 +272,7 @@ struct boss_twinemperorsAI : public ScriptedAI
{
//DoYell(nearu->GetName(), LANG_UNIVERSAL, 0);
AttackStart(nearu);
- me->AddThreat(nearu, 10000);
+ AddThreat(nearu, 10000);
}
return true;
}
@@ -436,7 +436,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();
}
@@ -567,7 +567,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;
@@ -602,7 +602,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 189b706d153..fb654f0c7c7 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/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp
index a5ade380e31..53a566fef97 100644
--- a/src/server/scripts/Kalimdor/boss_azuregos.cpp
+++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp
@@ -118,14 +118,14 @@ class boss_azuregos : public CreatureScript
case EVENT_TELEPORT:
{
Talk(SAY_TELEPORT);
- ThreatContainer::StorageType const& threatlist = me->getThreatManager().getThreatList();
+ ThreatContainer::StorageType const& threatlist = me->GetThreatManager().getThreatList();
for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)
{
if (Player* player = ObjectAccessor::GetPlayer(*me, (*i)->getUnitGuid()))
DoTeleportPlayer(player, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+3, player->GetOrientation());
}
- DoResetThreat();
+ ResetThreatList();
events.ScheduleEvent(EVENT_TELEPORT, 30000);
break;
}
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index afecffd2ff1..fe965718852 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -672,7 +672,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 9027b59f3e3..4360574a65f 100644
--- a/src/server/scripts/Kalimdor/zone_desolace.cpp
+++ b/src/server/scripts/Kalimdor/zone_desolace.cpp
@@ -90,7 +90,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_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp
index d35c90fca0c..168c20d5654 100644
--- a/src/server/scripts/Kalimdor/zone_durotar.cpp
+++ b/src/server/scripts/Kalimdor/zone_durotar.cpp
@@ -174,7 +174,7 @@ class npc_tiger_matriarch : public CreatureScript
_tigerGuid = summoner->GetVehicle()->GetBase()->GetGUID();
if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid))
{
- me->AddThreat(tiger, 500000.0f);
+ AddThreat(tiger, 500000.0f);
DoCast(me, SPELL_FURIOUS_BITE);
}
}
diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp
index e8e6f5ff8d8..3dbab7098fe 100644
--- a/src/server/scripts/Kalimdor/zone_moonglade.cpp
+++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp
@@ -301,7 +301,7 @@ public:
case 0:
if (Creature* mob = me->SummonCreature(ASPECT_RAVEN, AspectRavenSummon, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000))
{
- mob->AddThreat(me, 10000.0f);
+ AddThreat(me, 10000.0f, mob);
mob->AI()->AttackStart(me);
}
EventTimer = 2000;
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 34d3cc7cded..f5b6ebba946 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -1236,8 +1236,7 @@ class go_wind_stone : public GameObjectScript
break;
}
summons->RemoveFlag(UNIT_FIELD_FLAGS, 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 1705f3e8dea..4e1c211ddde 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -220,7 +220,7 @@ public:
void DoFriend()
{
me->RemoveAllAuras();
- me->DeleteThreatList();
+ me->GetThreatManager().ClearAllThreat();
me->CombatStop(true);
me->StopMoving();