aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-11-24 12:07:19 +0100
committerShauren <shauren.trinity@gmail.com>2025-11-24 12:07:19 +0100
commit95ca7148246ab28d9b860cc20443121eb3ca499f (patch)
treed5f1ff5e10abf01a3ab5976e91376669a6943c49 /src/server/game/Spells/SpellEffects.cpp
parented599208ea8492319dd748daa1151318fd3ba03b (diff)
Core/Movement: Replace MotionMaster::MoveJumpWithGravity with new jump height based MoveJump
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 9ce58362a18..c9b97dd2221 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -5877,9 +5877,13 @@ void Spell::EffectJumpCharge()
if (!params)
return;
- float speed = params->Speed;
- if (params->TreatSpeedAsMoveTimeSeconds)
- speed = unitCaster->GetExactDist(destTarget) / params->MoveTimeInSec;
+ std::variant<std::monostate, float, Milliseconds> speedOrTime = [params]() -> std::variant<std::monostate, float, Milliseconds>
+ {
+ if (params->TreatSpeedAsMoveTimeSeconds)
+ return duration_cast<Milliseconds>(FloatSeconds(params->MoveTimeInSec));
+
+ return params->Speed;
+ }();
MovementFacingTarget facing;
if (Unit const* target = m_targets.GetUnitTarget())
@@ -5910,8 +5914,8 @@ void Spell::EffectJumpCharge()
effectExtra->ParabolicCurveId = *params->ParabolicCurveId;
}
- unitCaster->GetMotionMaster()->MoveJumpWithGravity(*destTarget, speed, params->JumpGravity, EVENT_JUMP, facing,
- m_spellInfo->HasAttribute(SPELL_ATTR9_JUMPCHARGE__NO_FACING_CONTROL),
+ unitCaster->GetMotionMaster()->MoveJump(EVENT_JUMP, *destTarget, speedOrTime, params->MinHeight, params->MaxHeight,
+ facing, m_spellInfo->HasAttribute(SPELL_ATTR9_JUMPCHARGE__NO_FACING_CONTROL), params->UnlimitedSpeed, {},
arrivalCast ? &*arrivalCast : nullptr,
effectExtra ? &*effectExtra : nullptr);
}