diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/AI/CoreAI/UnitAI.cpp | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp index 70324c7b03a..037d9e59cf2 100644 --- a/src/server/game/AI/CoreAI/UnitAI.cpp +++ b/src/server/game/AI/CoreAI/UnitAI.cpp @@ -267,10 +267,7 @@ SpellTargetSelector::SpellTargetSelector(Unit* caster, uint32 spellId) : bool SpellTargetSelector::operator()(Unit const* target) const { - if (!target) - return false; - - if (_spellInfo->CheckTarget(_caster, target) != SPELL_CAST_OK) + if (!target || _spellInfo->CheckTarget(_caster, target) != SPELL_CAST_OK) return false; // copypasta from Spell::CheckRange @@ -282,10 +279,7 @@ bool SpellTargetSelector::operator()(Unit const* target) const if (_spellInfo->RangeEntry->type & SPELL_RANGE_MELEE) { rangeMod = _caster->GetCombatReach() + 4.0f / 3.0f; - if (target) - rangeMod += target->GetCombatReach(); - else - rangeMod += _caster->GetCombatReach(); + rangeMod += target->GetCombatReach(); rangeMod = std::max(rangeMod, NOMINAL_MELEE_RANGE); } @@ -295,10 +289,7 @@ bool SpellTargetSelector::operator()(Unit const* target) const if (_spellInfo->RangeEntry->type & SPELL_RANGE_RANGED) { meleeRange = _caster->GetCombatReach() + 4.0f / 3.0f; - if (target) - meleeRange += target->GetCombatReach(); - else - meleeRange += _caster->GetCombatReach(); + meleeRange += target->GetCombatReach(); meleeRange = std::max(meleeRange, NOMINAL_MELEE_RANGE); } @@ -306,17 +297,14 @@ bool SpellTargetSelector::operator()(Unit const* target) const minRange = _caster->GetSpellMinRangeForTarget(target, _spellInfo) + meleeRange; maxRange = _caster->GetSpellMaxRangeForTarget(target, _spellInfo); - if (target) - { - rangeMod = _caster->GetCombatReach(); - rangeMod += target->GetCombatReach(); + rangeMod = _caster->GetCombatReach(); + rangeMod += target->GetCombatReach(); - if (minRange > 0.0f && !(_spellInfo->RangeEntry->type & SPELL_RANGE_RANGED)) - minRange += rangeMod; - } + if (minRange > 0.0f && !(_spellInfo->RangeEntry->type & SPELL_RANGE_RANGED)) + minRange += rangeMod; } - if (target && _caster->isMoving() && target->isMoving() && !_caster->IsWalking() && !target->IsWalking() && + if (_caster->isMoving() && target->isMoving() && !_caster->IsWalking() && !target->IsWalking() && (_spellInfo->RangeEntry->type & SPELL_RANGE_MELEE || target->GetTypeId() == TYPEID_PLAYER)) rangeMod += 5.0f / 3.0f; } @@ -326,7 +314,7 @@ bool SpellTargetSelector::operator()(Unit const* target) const minRange *= minRange; maxRange *= maxRange; - if (target && target != _caster) + if (target != _caster) { if (_caster->GetExactDistSq(target) > maxRange) return false; |
