diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-11-24 12:07:19 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-11-24 12:07:19 +0100 |
| commit | 95ca7148246ab28d9b860cc20443121eb3ca499f (patch) | |
| tree | d5f1ff5e10abf01a3ab5976e91376669a6943c49 /src/server/game/Spells/SpellEffects.cpp | |
| parent | ed599208ea8492319dd748daa1151318fd3ba03b (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.cpp | 14 |
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); } |
