aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorShauren <shauren.dev@gmail.com>2011-01-12 22:50:51 +0100
committerShauren <shauren.dev@gmail.com>2011-01-12 22:50:51 +0100
commit8d59953f9372c6876e0cd8078b44de6893082cbe (patch)
tree19ee59ff903b59eea7244c9f35c21d669e945f28 /src/server/game/Spells/Spell.cpp
parent52499b03ea8c86ab536c2025c3629b8883f591f2 (diff)
Scripts/Icecrown Citadel
* Call EnterEvadeMode before teleporting players to entrance - prevents players being stuck in combat * Fixed Gaseous Blight stacking damage * Properly initialize phase for Professor Putricide when entering combat * Fixed Blood Nova and Boiling Blood abilities of Deathbringer Saurfang
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 9a29cd99b23..4ca89707a72 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2794,6 +2794,30 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
case 59725: // Improved Spell Reflection - aoe aura
unitList.remove(m_caster);
break;
+ case 72378: // Blood Nova (Deathbringer Saurfang)
+ case 73058:
+ {
+ // select one random target, with preference of ranged targets
+ uint32 targetsAtRange = 0;
+ uint32 const minTargets = m_caster->GetMap()->GetSpawnMode() & 1 ? 10 : 4;
+ unitList.sort(Trinity::ObjectDistanceOrderPred(m_caster, false));
+
+ // get target count at range
+ for (std::list<Unit*>::iterator itr = unitList.begin(); itr != unitList.end(); ++itr, ++targetsAtRange)
+ if ((*itr)->GetDistance(m_caster) < 12.0f)
+ break;
+
+ // set the upper cap
+ if (targetsAtRange < minTargets)
+ targetsAtRange = std::min<uint32>(unitList.size()-1, minTargets);
+
+ std::list<Unit*>::iterator itr = unitList.begin();
+ std::advance(itr, urand(0, targetsAtRange));
+ Unit* target = *itr;
+ unitList.clear();
+ unitList.push_back(target);
+ break;
+ }
case 72255: // Mark of the Fallen Champion (Deathbringer Saurfang)
case 72444:
case 72445: