Core/Creatures: Clean up temporary summon duplicate level initialization
Port From (https://github.com/TrinityCore/TrinityCore/commit/1cae07870b4ff3c33669326756392d9086dac50f)
This commit is contained in:
@@ -503,7 +503,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
base.InitStats(summoner, duration);
|
base.InitStats(summoner, duration);
|
||||||
|
|
||||||
InitStatsForLevel(GetOwner().GetLevel());
|
InitStatsForLevel(GetLevel()); // level is already initialized in TempSummon::InitStats, so use that
|
||||||
|
|
||||||
if (GetOwner().IsTypeId(TypeId.Player) && HasUnitTypeMask(UnitTypeMask.ControlableGuardian))
|
if (GetOwner().IsTypeId(TypeId.Player) && HasUnitTypeMask(UnitTypeMask.ControlableGuardian))
|
||||||
GetCharmInfo().InitCharmCreateSpells();
|
GetCharmInfo().InitCharmCreateSpells();
|
||||||
|
|||||||
@@ -1575,7 +1575,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
Position pos;
|
Position pos;
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
pos = destTarget;
|
pos = destTarget.GetPosition();
|
||||||
else
|
else
|
||||||
// randomize position for multiple summons
|
// randomize position for multiple summons
|
||||||
pos = caster.GetRandomPoint(destTarget, radius);
|
pos = caster.GetRandomPoint(destTarget, radius);
|
||||||
@@ -4599,7 +4599,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
Position pos;
|
Position pos;
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
pos = destTarget;
|
pos = destTarget.GetPosition();
|
||||||
else
|
else
|
||||||
// randomize position for multiple summons
|
// randomize position for multiple summons
|
||||||
pos = unitCaster.GetRandomPoint(destTarget, radius);
|
pos = unitCaster.GetRandomPoint(destTarget, radius);
|
||||||
@@ -4608,12 +4608,8 @@ namespace Game.Spells
|
|||||||
if (summon == null)
|
if (summon == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (summon.HasUnitTypeMask(UnitTypeMask.Guardian))
|
if (summon.IsGuardian())
|
||||||
{
|
{
|
||||||
uint level = summon.GetLevel();
|
|
||||||
if (properties != null && !properties.GetFlags().HasFlag(SummonPropertiesFlags.UseCreatureLevel))
|
|
||||||
level = unitCaster.GetLevel();
|
|
||||||
|
|
||||||
// level of pet summoned using engineering item based at engineering skill level
|
// level of pet summoned using engineering item based at engineering skill level
|
||||||
if (m_CastItem && unitCaster.IsPlayer())
|
if (m_CastItem && unitCaster.IsPlayer())
|
||||||
{
|
{
|
||||||
@@ -4624,12 +4620,10 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
ushort skill202 = unitCaster.ToPlayer().GetSkillValue(SkillType.Engineering);
|
ushort skill202 = unitCaster.ToPlayer().GetSkillValue(SkillType.Engineering);
|
||||||
if (skill202 != 0)
|
if (skill202 != 0)
|
||||||
level = skill202 / 5u;
|
((Guardian)summon).InitStatsForLevel((uint)(skill202 / 5));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
((Guardian)summon).InitStatsForLevel(level);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (summon.HasUnitTypeMask(UnitTypeMask.Minion) && m_targets.HasDst())
|
if (summon.HasUnitTypeMask(UnitTypeMask.Minion) && m_targets.HasDst())
|
||||||
|
|||||||
Reference in New Issue
Block a user