diff options
-rw-r--r-- | src/game/Spell.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 4d610fb41ec..11aaa192727 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5089,6 +5089,26 @@ SpellCastResult Spell::CheckCast(bool strict) if(m_caster->GetTypeId() != TYPEID_PLAYER || !((Player*)m_caster)->IsInFeralForm()) return SPELL_FAILED_ONLY_SHAPESHIFT; break; + // Wild Growth + case 48438: + case 53248: + case 53249: + case 53251: + { + if (m_caster->GetTypeId() != TYPEID_PLAYER) + return SPELL_FAILED_DONT_REPORT; + + Unit* target = m_targets.getUnitTarget(); + if (!target || target->GetTypeId() != TYPEID_PLAYER) + return SPELL_FAILED_BAD_TARGETS; + + const Group* casterGroup = ((Player*)m_caster)->GetGroup(); + bool isInSameRaidOrGroup = casterGroup && casterGroup == ((Player*)target)->GetGroup(); + if (m_caster != target && !isInSameRaidOrGroup) + return SPELL_FAILED_BAD_TARGETS; + + break; + } case 1515: { if (m_caster->GetTypeId() != TYPEID_PLAYER) |