diff options
| author | Kito <kito@vortexirc.com> | 2016-03-31 16:21:50 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-07-16 16:57:43 +0200 |
| commit | 86275a397a478a30dad7e00af73029e2b15d4668 (patch) | |
| tree | 3ddf7fa6955bf29d8fbc68c3117180ef88003fb3 /src/server/game/Spells/Spell.cpp | |
| parent | 64f0691a27d6ef818a612913dde405ae90d9b4bc (diff) | |
Game/Entities: Players can attack targets when they are not facing them as long as they are in boundaryradius, this also applies for cone effect spells
Signed-off-by: Shauren <shauren.trinity@gmail.com>
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 976038a9408..56784c0a086 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -5995,7 +5995,8 @@ SpellCastResult Spell::CheckRange(bool strict) return !(_triggeredCastFlags & TRIGGERED_DONT_REPORT_CAST_ERROR) ? SPELL_FAILED_OUT_OF_RANGE : SPELL_FAILED_DONT_REPORT; if (m_caster->GetTypeId() == TYPEID_PLAYER && - (m_spellInfo->FacingCasterFlags & SPELL_FACING_FLAG_INFRONT) && !m_caster->HasInArc(static_cast<float>(M_PI), target)) + (((m_spellInfo->FacingCasterFlags & SPELL_FACING_FLAG_INFRONT) && !m_caster->HasInArc(static_cast<float>(M_PI), target)) + && !m_caster->IsWithinBoundaryRadius(target))) return !(_triggeredCastFlags & TRIGGERED_DONT_REPORT_CAST_ERROR) ? SPELL_FAILED_UNIT_NOT_INFRONT : SPELL_FAILED_DONT_REPORT; } @@ -7650,8 +7651,9 @@ bool WorldObjectSpellConeTargetCheck::operator()(WorldObject* target) } else { - if (!_caster->isInFront(target, _coneAngle)) - return false; + if (!_caster->IsWithinBoundaryRadius(target->ToUnit())) + if (!_caster->isInFront(target, _coneAngle)) + return false; } return WorldObjectSpellAreaTargetCheck::operator ()(target); } |
