diff options
author | Chaouki Dhib <chaodhib@gmail.com> | 2017-10-12 22:06:27 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-10-12 22:06:27 +0200 |
commit | 9dbef4b6bb7c9f28e9140782d938f41ed04df6f2 (patch) | |
tree | c1b894c566fb94d84552dcd591eff3f7c28ec36d | |
parent | 3893a2c1161d08212706076cdbb89e020f2a9d56 (diff) |
Core/Spells: Core/Spells: Improve teleport destination for a certain class of spells (Killing Spree, Shadowstep, ...) (#20434)
Close # 8758
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 6 |
2 files changed, 9 insertions, 6 deletions
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]; |