From c28e14589f7ca70680b6ad213d05bfedea692510 Mon Sep 17 00:00:00 2001 From: Xfurry Date: Fri, 31 May 2013 12:16:32 +0100 Subject: [PATCH] [c12618] Implement some spells used in Sunwell Plateau --- src/game/Spell.cpp | 1 + src/game/SpellEffects.cpp | 34 ++++++++++++++++++++++++++++++++++ src/game/SpellMgr.cpp | 5 +++++ src/shared/revision_nr.h | 2 +- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 7bd1398bb..f0404fad2 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -7889,6 +7889,7 @@ void Spell::GetSpellRangeAndRadius(SpellEffectEntry const* spellEffect, float& r case 40834: // Agonizing Flames (BT, Illidan Stormrage) case 41537: // Summon Enslaved Soul (BT, Reliquary of Souls) case 44869: // Spectral Blast (SWP, Kalecgos) + case 45785: // Sinister Reflection Clone (SWP, Kil'jaeden) case 45892: // Sinister Reflection (SWP, Kil'jaeden) case 45976: // Open Portal (SWP, M'uru) case 47669: // Awaken Subboss (Utgarde Pinnacle) diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 28d5b7067..ed5f75244 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -7562,6 +7562,14 @@ void Spell::EffectScriptEffect(SpellEffectEntry const* effect) return; } + case 45235: // Blaze + { + if (!unitTarget) + return; + + unitTarget->CastSpell(unitTarget, 45236, true, NULL, NULL, m_caster->GetObjectGuid()); + return; + } case 45668: // Ultra-Advanced Proto-Typical Shortening Blaster { if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) @@ -7666,6 +7674,32 @@ void Spell::EffectScriptEffect(SpellEffectEntry const* effect) m_caster->SetDisplayId(display_id); return; } + case 45785: // Sinister Reflection Clone + { + if (!unitTarget) + return; + + unitTarget->CastSpell(unitTarget, effect->CalculateSimpleValue(), true); + return; + } + case 45833: // Power of the Blue Flight + { + if (!unitTarget) + return; + + unitTarget->CastSpell(unitTarget, 45836, true); + return; + } + case 45892: // Sinister Reflection + { + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) + return; + + // Summon 4 clones of the same player + for (uint8 i = 0; i < 4; ++i) + unitTarget->CastSpell(unitTarget, 45891, true, NULL, NULL, m_caster->GetObjectGuid()); + return; + } case 45958: // Signal Alliance { // "escort" aura not present, so let nothing happen diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 9047dd574..be5c309c0 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -2148,6 +2148,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons (spellInfo_2->Id == 39908 && spellInfo_1->Id == 40017)) return false; + // Encapsulate and Encapsulate (channeled) + if ((spellInfo_1->Id == 45665 && spellInfo_2->Id == 45661) || + (spellInfo_2->Id == 45665 && spellInfo_1->Id == 45661)) + return false; + break; } case SPELLFAMILY_MAGE: diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 54cf34cb0..0299f4d25 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12617" + #define REVISION_NR "12618" #endif // __REVISION_NR_H__