aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
index b804502033b..44e68f0dfbf 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
@@ -435,20 +435,30 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI
DoYell(YELL_SURGE, LANG_UNIVERSAL, NULL);
DoPlaySoundToSet(m_creature, SOUND_YELL_SURGE);
- Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 1);
+ Unit *target = NULL;
+ std::list<HostilReference *> t_list = m_creature->getThreatManager().getThreatList();
+ std::vector<Unit *> target_list;
+ for(std::list<HostilReference *>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
+ {
+ target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
+ //50 yard radius maximum
+ if(target && target->GetDistance2d(m_creature) < 50)
+ target_list.push_back(target);
+ target = NULL;
+ }
+ if(target_list.size())
+ target = *(target_list.begin()+rand()%target_list.size());
+
if(!target)
target = m_creature->getVictim();
TankGUID = m_creature->getVictim()->GetGUID();
ChargeTargetGUID = target->GetGUID();
-
- if(target && m_creature->IsWithinDistInMap(target, 50.0f))
- {
+
float x, y, z;
target->GetContactPoint(m_creature, x, y, z);
m_creature->SetSpeed(MOVE_RUN, 5.0f);
m_creature->GetMotionMaster()->Clear();
- m_creature->GetMotionMaster()->MovePoint(0, x, y, z);
- }
+ m_creature->GetMotionMaster()->MovePoint(0, x, y, z);
Surge_Timer = 15000 + rand()%5000;
return;