Core/Creatures: Clean up temporary summon duplicate level initialization

Port From (https://github.com/TrinityCore/TrinityCore/commit/1cae07870b4ff3c33669326756392d9086dac50f)
This commit is contained in:
hondacrx
2023-09-13 21:03:36 -04:00
parent 0482541ac2
commit 3f8dedfb7a
2 changed files with 5 additions and 11 deletions
+1 -1
View File
@@ -503,7 +503,7 @@ namespace Game.Entities
{
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))
GetCharmInfo().InitCharmCreateSpells();
+4 -10
View File
@@ -1575,7 +1575,7 @@ namespace Game.Spells
{
Position pos;
if (count == 0)
pos = destTarget;
pos = destTarget.GetPosition();
else
// randomize position for multiple summons
pos = caster.GetRandomPoint(destTarget, radius);
@@ -4599,7 +4599,7 @@ namespace Game.Spells
{
Position pos;
if (count == 0)
pos = destTarget;
pos = destTarget.GetPosition();
else
// randomize position for multiple summons
pos = unitCaster.GetRandomPoint(destTarget, radius);
@@ -4608,12 +4608,8 @@ namespace Game.Spells
if (summon == null)
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
if (m_CastItem && unitCaster.IsPlayer())
{
@@ -4624,12 +4620,10 @@ namespace Game.Spells
{
ushort skill202 = unitCaster.ToPlayer().GetSkillValue(SkillType.Engineering);
if (skill202 != 0)
level = skill202 / 5u;
((Guardian)summon).InitStatsForLevel((uint)(skill202 / 5));
}
}
}
((Guardian)summon).InitStatsForLevel(level);
}
if (summon.HasUnitTypeMask(UnitTypeMask.Minion) && m_targets.HasDst())