diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2017-07-01 20:18:02 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-07-01 20:18:02 +0200 |
| commit | e2a1ccd118d129b96e09ff1a15ed0adb1d4a3897 (patch) | |
| tree | bbe6600c4066078bb7c64a117df457dce0d00b26 /src/server/scripts/Kalimdor | |
| parent | 5879eb2198fdb976b9fff136757bf8187adb6cf0 (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')
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(); |
