aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp16
1 files changed, 1 insertions, 15 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index e2aca6adda0..f731304766e 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -830,29 +830,15 @@ void Spell::CalculateJumpSpeeds(SpellEffectInfo const* effInfo, float dist, floa
{
Unit* unitCaster = GetUnitCasterForEffectHandlers();
ASSERT(unitCaster);
- float runSpeed = unitCaster->IsControlledByPlayer() ? playerBaseMoveSpeed[MOVE_RUN] : baseMoveSpeed[MOVE_RUN];
- if (Creature* creature = unitCaster->ToCreature())
- runSpeed *= creature->GetCreatureTemplate()->speed_run;
float multiplier = effInfo->Amplitude;
if (multiplier <= 0.0f)
multiplier = 1.0f;
- speedXY = std::min(runSpeed * 3.0f * multiplier, std::max(28.0f, unitCaster->GetSpeed(MOVE_RUN) * 4.0f));
-
- float duration = dist / speedXY;
- float durationSqr = duration * duration;
float minHeight = effInfo->MiscValue ? effInfo->MiscValue / 10.0f : 0.5f; // Lower bound is blizzlike
float maxHeight = effInfo->MiscValueB ? effInfo->MiscValueB / 10.0f : 1000.0f; // Upper bound is unknown
- float height;
- if (durationSqr < minHeight * 8 / Movement::gravity)
- height = minHeight;
- else if (durationSqr > maxHeight * 8 / Movement::gravity)
- height = maxHeight;
- else
- height = Movement::gravity * durationSqr / 8;
- speedZ = std::sqrt(2 * Movement::gravity * height);
+ unitCaster->GetMotionMaster()->CalculateJumpSpeeds(dist, MOVE_RUN, multiplier, minHeight, maxHeight, speedXY, speedZ);
}
void Spell::EffectJump()