aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2025-11-16 20:25:56 +0100
committerGitHub <noreply@github.com>2025-11-16 20:25:56 +0100
commitc4bec744ad8f35aa1ea42c64ffc07095b576b59d (patch)
tree22028b149b1f16ede9df3890b8ba4bd1790aafd5 /src/server/game/Spells/SpellEffects.cpp
parent0394e7d2dbf334bc620f7579b80c3461583a181a (diff)
Core/Movement: Knockback improvements (#28081)
* Knockbacks with negative speeds will now be validated and processed. * Creatures that cast knockback spells on themselves will use their orientation to determine the direction of movement.
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 9954a89d928..95df657d03d 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -4040,9 +4040,9 @@ void Spell::EffectKnockBack()
return;
float ratio = 0.1f;
- float speedxy = float(effectInfo->MiscValue) * ratio;
- float speedz = float(damage) * ratio;
- if (speedxy < 0.01f && speedz < 0.01f)
+ float speedXY = float(effectInfo->MiscValue) * ratio;
+ float speedZ = float(damage) * ratio;
+ if (std::abs(speedXY) < 0.01f && std::abs(speedZ) < 0.01f)
return;
Position origin;
@@ -4056,7 +4056,7 @@ void Spell::EffectKnockBack()
else //if (effectInfo->Effect == SPELL_EFFECT_KNOCK_BACK)
origin = m_caster->GetPosition();
- unitTarget->KnockbackFrom(origin, speedxy, speedz);
+ unitTarget->KnockbackFrom(origin, speedXY, speedZ);
Unit::ProcSkillsAndAuras(GetUnitCasterForEffectHandlers(), unitTarget, PROC_FLAG_NONE, { PROC_FLAG_NONE, PROC_FLAG_2_KNOCKBACK },
PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_HIT, PROC_HIT_NONE, nullptr, nullptr, nullptr);