aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorKito <kito@vortexirc.com>2016-03-31 16:21:50 +0200
committerShauren <shauren.trinity@gmail.com>2016-07-16 16:57:43 +0200
commit86275a397a478a30dad7e00af73029e2b15d4668 (patch)
tree3ddf7fa6955bf29d8fbc68c3117180ef88003fb3 /src/server/game/Spells/Spell.cpp
parent64f0691a27d6ef818a612913dde405ae90d9b4bc (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.cpp8
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);
}