mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
Core/Spells: Fix wrong totem placement
This commit is contained in:
@@ -1063,7 +1063,7 @@ enum TrinityStrings
|
||||
LANG_COMMAND_NO_FROZEN_PLAYERS = 5004,
|
||||
LANG_COMMAND_LIST_FREEZE = 5005,
|
||||
LANG_COMMAND_PERMA_FROZEN_PLAYER = 5006,
|
||||
// = 5007, unused
|
||||
LANG_INSTANCE_RAID_GROUP_ONLY = 5007,
|
||||
LANG_INSTANCE_CLOSED = 5008,
|
||||
LANG_COMMAND_PLAYED_TO_ALL = 5009,
|
||||
LANG_NPCINFO_LINKGUID = 5010,
|
||||
|
||||
@@ -1295,18 +1295,30 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
|
||||
}
|
||||
default:
|
||||
{
|
||||
float dist;
|
||||
float dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
||||
float angle = targetType.CalcDirectionAngle();
|
||||
float objSize = m_caster->GetObjectSize();
|
||||
if (targetType.GetTarget() == TARGET_DEST_CASTER_SUMMON)
|
||||
dist = PET_FOLLOW_DIST;
|
||||
else
|
||||
dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
||||
|
||||
if (dist < objSize)
|
||||
dist = objSize;
|
||||
else if (targetType.GetTarget() == TARGET_DEST_CASTER_RANDOM)
|
||||
dist = objSize + (dist - objSize) * float(rand_norm());
|
||||
|
||||
switch (targetType.GetTarget())
|
||||
{
|
||||
case TARGET_DEST_CASTER_SUMMON:
|
||||
dist = PET_FOLLOW_DIST;
|
||||
break;
|
||||
case TARGET_DEST_CASTER_RANDOM:
|
||||
dist = objSize + (dist - objSize) * float(rand_norm());
|
||||
break;
|
||||
case TARGET_DEST_CASTER_FRONT_LEFT:
|
||||
case TARGET_DEST_CASTER_BACK_LEFT:
|
||||
case TARGET_DEST_CASTER_FRONT_RIGHT:
|
||||
case TARGET_DEST_CASTER_BACK_RIGHT:
|
||||
dist = dist + objSize;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Position pos = dest._position;
|
||||
m_caster->MovePositionToFirstCollision(pos, dist, angle);
|
||||
|
||||
Reference in New Issue
Block a user