diff --git a/Projects/UOContent/Engines/Bulk Orders/Books/BaseBOBEntry.cs b/Projects/UOContent/Engines/Bulk Orders/Books/BaseBOBEntry.cs index c93d3658f..d3bbadb45 100644 --- a/Projects/UOContent/Engines/Bulk Orders/Books/BaseBOBEntry.cs +++ b/Projects/UOContent/Engines/Bulk Orders/Books/BaseBOBEntry.cs @@ -24,8 +24,6 @@ public abstract partial class BaseBOBEntry : IBOBEntry public DateTime Created { get; set; } = Core.Now; - public DateTime LastSerialized { get; set; } = Core.Now; - public Serial Serial { get; } public bool Deleted { get; private set; } diff --git a/Projects/UOContent/Mobiles/AI/MageAI.cs b/Projects/UOContent/Mobiles/AI/MageAI.cs index f16410538..f1c8eb496 100644 --- a/Projects/UOContent/Mobiles/AI/MageAI.cs +++ b/Projects/UOContent/Mobiles/AI/MageAI.cs @@ -1066,8 +1066,8 @@ public class MageAI : BaseAI } public bool CanDispel(Mobile m) => - m is BaseCreature creature && creature.Summoned && m_Mobile.CanBeHarmful(creature, false) && - !creature.IsAnimatedDead; + m is BaseCreature creature && creature.Summoned && creature.SummonMaster != m_Mobile && + m_Mobile.CanBeHarmful(creature, false) && !creature.IsAnimatedDead; private bool ProcessTarget() { diff --git a/Projects/UOContent/Mobiles/Abilities/Summon Undead/SummonUndeadCounter.cs b/Projects/UOContent/Mobiles/Abilities/Summon Undead/SummonUndeadCounter.cs index b62fac7cd..0e634dcca 100644 --- a/Projects/UOContent/Mobiles/Abilities/Summon Undead/SummonUndeadCounter.cs +++ b/Projects/UOContent/Mobiles/Abilities/Summon Undead/SummonUndeadCounter.cs @@ -51,6 +51,8 @@ public abstract class SummonUndeadCounter : MonsterAbility summon.SummonMaster = source; summon.FightMode = FightMode.Closest; summon.Combatant = target; + summon.Home = source.Home; + summon.RangeHome = source.RangeHome; } summon.MoveToWorld(loc, source.Map); diff --git a/Projects/UOContent/Mobiles/BaseCreature.cs b/Projects/UOContent/Mobiles/BaseCreature.cs index 43684f257..51c2a8db4 100644 --- a/Projects/UOContent/Mobiles/BaseCreature.cs +++ b/Projects/UOContent/Mobiles/BaseCreature.cs @@ -3582,7 +3582,6 @@ namespace Server.Mobiles creature.RangeHome = 10; creature.Summoned = true; - creature.SummonMaster = caster; var pack = creature.Backpack; diff --git a/Projects/UOContent/Mobiles/PlayerMobile.cs b/Projects/UOContent/Mobiles/PlayerMobile.cs index 9c1fbb6b8..ba4ad0e55 100644 --- a/Projects/UOContent/Mobiles/PlayerMobile.cs +++ b/Projects/UOContent/Mobiles/PlayerMobile.cs @@ -1060,11 +1060,20 @@ namespace Server.Mobiles { foreach (var m in World.Mobiles.Values) { - if (m is PlayerMobile pm && - ((!pm.Mounted || pm.Mount is EtherealMount) && pm.AllFollowers?.Count > pm.AutoStabled?.Count || - pm.Mounted && pm.AllFollowers?.Count > (pm.AutoStabled?.Count ?? 0) + 1)) + if (m is not PlayerMobile pm || pm.AllFollowers == null || pm.AllFollowers.Count == 0) { - pm.AutoStablePets(); /* autostable checks summons, et al: no need here */ + continue; + } + + var autoStabledCount = pm.AutoStabled?.Count ?? 0; + if (pm.Mounted && pm.Mount is not EtherealMount) + { + autoStabledCount++; + } + + if (pm.AllFollowers.Count > autoStabledCount) + { + pm.AutoStablePets(); } } }