aboutsummaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-23 01:43:46 -0500
committermegamage <none@none>2009-05-23 01:43:46 -0500
commitec24442af402d7ace4e74bb9ce5e36db89656f79 (patch)
tree62ac885dc8336d7ab8b6db3316ba133592cde2fa /src/game
parenta417e71e15b88f39f53c80d84031bffde95971a2 (diff)
*Fix rock shards spell for archavon script.
--HG-- branch : trunk
Diffstat (limited to 'src/game')
-rw-r--r--src/game/Spell.cpp2
-rw-r--r--src/game/SpellEffects.cpp20
-rw-r--r--src/game/SpellMgr.cpp4
3 files changed, 26 insertions, 0 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 0ea03caad51..98439997306 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -2044,6 +2044,8 @@ void Spell::SetTargetMap(uint32 i, uint32 cur)
case TARGET_DEST_CHANNEL:
if(m_originalCaster->m_currentSpells[CURRENT_CHANNELED_SPELL]->m_targets.HasDst())
m_targets = m_originalCaster->m_currentSpells[CURRENT_CHANNELED_SPELL]->m_targets;
+ else if(Unit* target = m_originalCaster->m_currentSpells[CURRENT_CHANNELED_SPELL]->m_targets.getUnitTarget())
+ m_targets.setDestination(target);
else
sLog.outError( "SPELL: cannot find channel spell destination for spell ID %u", m_spellInfo->Id );
break;
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 696071dec97..89e53ed566b 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -4933,6 +4933,26 @@ void Spell::EffectScriptEffect(uint32 effIndex)
return;
}
+ case 58941: // Rock Shards
+ if(unitTarget && m_originalCaster)
+ {
+ for(uint32 i = 0; i < 5; ++i)
+ {
+ m_originalCaster->CastSpell(unitTarget, 58689, true);
+ m_originalCaster->CastSpell(unitTarget, 58692, true);
+ }
+ if(m_originalCaster->GetMap()->IsHeroic())
+ {
+ m_originalCaster->CastSpell(unitTarget, 60883, true);
+ m_originalCaster->CastSpell(unitTarget, 60884, true);
+ }
+ else
+ {
+ m_originalCaster->CastSpell(unitTarget, 58695, true);
+ m_originalCaster->CastSpell(unitTarget, 58696, true);
+ }
+ }
+ return;
case 59317: // Teleporting
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
return;
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index c09bec5d013..2737cbef54b 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -3161,6 +3161,10 @@ void SpellMgr::LoadSpellCustomAttr()
case TARGET_TYPE_DEST_TARGET:
spellInfo->Targets |= TARGET_FLAG_UNIT;
break;
+ //case TARGET_TYPE_AREA_DST:
+ //case TARGET_TYPE_DEST_DEST:
+ // spellInfo->Targets |= TARGET_FLAG_DEST_LOCATION;
+ // break;
}
}