aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2011-09-15 21:28:40 +0300
committerShocker <shocker@freakz.ro>2011-09-15 21:28:40 +0300
commit7afb179185340e87762166edc91bb253d5c9796a (patch)
tree47bcadb956285c41626a17dbe48d80cb431c2917 /src/server/scripts/Northrend
parent8504a0107ea679e8cac7f87cccb05b1d2bedd8b4 (diff)
Misc/Util: Add a template function for returning a random element from any container
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp4
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp8
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp5
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp4
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp4
10 files changed, 13 insertions, 40 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 25c804f2eed..7488db76907 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -480,9 +480,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
return tempTargets.front();
}
- std::list<Player*>::iterator itr = tempTargets.begin();
- std::advance(itr, urand(0, tempTargets.size() - 1));
- return *itr;
+ return SelectRandomContainerElement(tempTargets);
}
std::set<uint64> _vampires;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index b17de17e74a..0962dbf35a4 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -1189,9 +1189,7 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
if (targetsAtRange < minTargets)
targetsAtRange = std::min<uint32>(unitList.size() - 1, minTargets);
- std::list<Unit*>::iterator itr = unitList.begin();
- std::advance(itr, urand(0, targetsAtRange));
- target = *itr;
+ target = SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
@@ -1241,9 +1239,7 @@ class spell_deathbringer_boiling_blood : public SpellScriptLoader
if (unitList.empty())
return;
- std::list<Unit*>::iterator itr = unitList.begin();
- std::advance(itr, urand(0, unitList.size() - 1));
- Unit* target = *itr;
+ Unit* target = SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 1ab99b3dd46..ab4e6b8a4ce 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -605,10 +605,7 @@ class boss_lady_deathwhisper : public CreatureScript
return;
// select random cultist
- std::list<Creature*>::iterator cultistItr = temp.begin();
- std::advance(cultistItr, urand(0, temp.size()-1));
-
- Creature* cultist = *cultistItr;
+ Creature* cultist = SelectRandomContainerElement(temp);
DoCast(cultist, cultist->GetEntry() == NPC_CULT_FANATIC ? SPELL_DARK_TRANSFORMATION_T : SPELL_DARK_EMPOWERMENT_T, true);
Talk(uint8(cultist->GetEntry() == NPC_CULT_FANATIC ? SAY_DARK_TRANSFORMATION : SAY_DARK_EMPOWERMENT));
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index b5bcd93d257..ec5318be15b 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -775,9 +775,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
return;
}
- std::list<Unit*>::iterator itr = targetList.begin();
- std::advance(itr, urand(0, targetList.size() - 1));
- Unit* target = *itr;
+ Unit* target = SelectRandomContainerElement(targetList);
targetList.clear();
targetList.push_back(target);
_target = target;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index dd645562501..94dac7e0344 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -493,9 +493,7 @@ class spell_rotface_mutated_infection : public SpellScriptLoader
if (targets.empty())
return;
- std::list<Unit*>::iterator itr = targets.begin();
- std::advance(itr, urand(0, targets.size() - 1));
- Unit* target = *itr;
+ Unit* target = SelectRandomContainerElement(targets);
targets.clear();
targets.push_back(target);
_target = target;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index e0b8afdbfd5..bf2ef447cb4 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -1341,9 +1341,7 @@ class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
++itr;
}
- std::list<Unit*>::iterator itr = unitList.begin();
- std::advance(itr, urand(0, unitList.size()-1));
- Unit* target = *itr;
+ Unit* target = SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
@@ -1357,9 +1355,7 @@ class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
if (Creature* creature = GetCaster()->ToCreature())
unitList.remove_if(OrderWhelpTargetSelector(creature));
- std::list<Creature*>::iterator itr = unitList.begin();
- std::advance(itr, urand(0, unitList.size()-1));
- (*itr)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
+ SelectRandomContainerElement(unitList)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
void Register()
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index c167dfc8e95..caa2f5758d2 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -1182,9 +1182,7 @@ class spell_dreamwalker_summoner : public SpellScriptLoader
if (targets.empty())
return;
- std::list<Unit*>::iterator itr = targets.begin();
- std::advance(itr, urand(0, targets.size() - 1));
- Unit* target = *itr;
+ Unit* target = SelectRandomContainerElement(targets);
targets.clear();
targets.push_back(target);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index a577f2becf3..2f51e0683fb 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -1361,9 +1361,7 @@ class npc_captain_arnath : public CreatureScript
case EVENT_ARNATH_PW_SHIELD:
{
std::list<Creature*> targets = DoFindFriendlyMissingBuff(40.0f, SPELL_POWER_WORD_SHIELD);
- std::list<Creature*>::iterator itr = targets.begin();
- std::advance(itr, urand(0, targets.size() - 1));
- DoCast(*itr, SPELL_POWER_WORD_SHIELD);
+ DoCast(SelectRandomContainerElement(targets), SPELL_POWER_WORD_SHIELD);
Events.ScheduleEvent(EVENT_ARNATH_PW_SHIELD, urand(15000, 20000));
break;
}
@@ -1817,9 +1815,7 @@ class spell_frost_giant_death_plague : public SpellScriptLoader
unitList.remove_if(DeathPlagueTargetSelector(GetCaster()));
if (!unitList.empty())
{
- std::list<Unit*>::iterator itr = unitList.begin();
- std::advance(itr, urand(0, unitList.size()-1));
- Unit* target = *itr;
+ Unit* target = SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
index de7a3ef2685..7d00c0e59fc 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
@@ -290,9 +290,7 @@ class boss_general_vezax : public CreatureScript
if (size < playersMin)
return NULL;
- std::list<Player*>::const_iterator itr = PlayerList.begin();
- std::advance(itr, urand(0, size - 1));
- return *itr;
+ return SelectRandomContainerElement(PlayerList);
}
return NULL;
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index e160cda0699..bb9302c911d 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -139,9 +139,7 @@ class boss_emalon : public CreatureScript
case EVENT_OVERCHARGE:
if (!summons.empty())
{
- std::list<uint64>::const_iterator itr = summons.begin();
- std::advance(itr, urand(0, summons.size()-1));
- Creature* minion = Unit::GetCreature(*me, *itr);
+ Creature* minion = Unit::GetCreature(*me, SelectRandomContainerElement(summons));
if (minion && minion->isAlive())
{
minion->CastSpell(me, SPELL_OVERCHARGED, true);