diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 653a6b473..2e52e48ca 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1508,6 +1508,25 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx) unitTarget->CastSpell(unitTarget,46798,true,m_CastItem,NULL,m_originalCasterGUID); break; } + case 47110: // Summon Drakuru's Image + { + uint32 spellId = 0; + + switch(m_caster->GetAreaId()) + { + case 4255: spellId = 47381; break; // Reagent Check (Frozen Mojo) + case 4209: spellId = 47386; break; // Reagent Check (Zim'Bo's Mojo) + case 4270: spellId = 47389; break; // Reagent Check (Desperate Mojo) + case 4216: spellId = 47408; break; // Reagent Check (Sacred Mojo) + case 4196: spellId = 50441; break; // Reagent Check (Survival Mojo) + } + + // The additional castspell arguments are needed here to remove reagents for triggered spells + if (spellId) + m_caster->CastSpell(m_caster, spellId, true, m_CastItem, NULL, m_caster->GetObjectGuid(), m_spellInfo); + + return; + } case 47170: // Impale Leviroth { if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) @@ -1551,6 +1570,37 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx) return; } + case 47381: // Reagent Check (Frozen Mojo) + case 47386: // Reagent Check (Zim'Bo's Mojo) + case 47389: // Reagent Check (Desperate Mojo) + case 47408: // Reagent Check (Sacred Mojo) + case 50441: // Reagent Check (Survival Mojo) + { + if (m_caster->GetTypeId() != TYPEID_PLAYER) + return; + + switch(m_spellInfo->Id) + { + case 47381: + // Envision Drakuru + m_caster->CastSpell(m_caster, 47118, true); + break; + case 47386: + m_caster->CastSpell(m_caster, 47150, true); + break; + case 47389: + m_caster->CastSpell(m_caster, 47317, true); + break; + case 47408: + m_caster->CastSpell(m_caster, 47406, true); + break; + case 50441: + m_caster->CastSpell(m_caster, 50440, true); + break; + } + + return; + } case 49357: // Brewfest Mount Transformation { if (m_caster->GetTypeId() != TYPEID_PLAYER) @@ -1653,6 +1703,15 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx) return; } + case 50440: // Envision Drakuru + { + if (!unitTarget) + return; + + // Script Cast Summon Image of Drakuru 05 + unitTarget->CastSpell(unitTarget, 50439, true); + return; + } case 50546: // Ley Line Focus Control Ring Effect case 50547: // Ley Line Focus Control Amulet Effect case 50548: // Ley Line Focus Control Talisman Effect @@ -6552,6 +6611,14 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) return; } + case 50439: // Script Cast Summon Image of Drakuru 05 + { + // TODO: check if summon already exist, if it does in this instance, return. + + // Summon Drakuru + m_caster->CastSpell(m_caster, 50446, true); + return; + } case 50725: // Vigilance - remove cooldown on Taunt { Unit* caster = GetAffectiveCaster(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8c22907b3..b481f99f7 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 "11211" + #define REVISION_NR "11212" #endif // __REVISION_NR_H__