From 9dbef4b6bb7c9f28e9140782d938f41ed04df6f2 Mon Sep 17 00:00:00 2001 From: Chaouki Dhib Date: Thu, 12 Oct 2017 22:06:27 +0200 Subject: Core/Spells: Core/Spells: Improve teleport destination for a certain class of spells (Killing Spree, Shadowstep, ...) (#20434) Close # 8758 --- src/server/game/Spells/Spell.cpp | 9 +++------ src/server/game/Spells/SpellMgr.cpp | 6 ++++++ 2 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index be01f88c2d5..334e51eeb56 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -1400,12 +1400,9 @@ void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplici default: { float angle = targetType.CalcDirectionAngle(); - float objSize = target->GetCombatReach(); - float dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster); - if (dist < objSize) - dist = objSize; - else if (targetType.GetTarget() == TARGET_DEST_TARGET_RANDOM) - dist = objSize + (dist - objSize) * float(rand_norm()); + float dist = m_spellInfo->Effects[effIndex].CalcRadius(nullptr); + if (targetType.GetTarget() == TARGET_DEST_TARGET_RANDOM) + dist *= float(rand_norm()); Position pos = dest._position; target->MovePositionToFirstCollision(pos, dist, angle); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 4e80005fa89..e2ed23a4e75 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -4465,6 +4465,12 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->ProcFlags = 0; }); + // Shadowstep + ApplySpellFix({ 36563 }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS); // 4yd + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; -- cgit v1.2.3