diff --git a/Projects/UOContent/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs b/Projects/UOContent/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs index d3f7d4ef5..170cbcf91 100644 --- a/Projects/UOContent/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs +++ b/Projects/UOContent/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs @@ -20,7 +20,7 @@ public partial class CrystalCaveBarrier : Item if (m is BaseCreature creature) { - mob = creature.ControlMaster; + mob = creature.Controlled ? creature.ControlMaster : null; } if (mob is not PlayerMobile pm) diff --git a/Projects/UOContent/Items/Weapons/Abilities/Dismount.cs b/Projects/UOContent/Items/Weapons/Abilities/Dismount.cs index 3121b9516..df50f1449 100644 --- a/Projects/UOContent/Items/Weapons/Abilities/Dismount.cs +++ b/Projects/UOContent/Items/Weapons/Abilities/Dismount.cs @@ -102,7 +102,7 @@ public class Dismount : WeaponAbility { playerMobile.SetMountBlock(BlockMountType.DismountRecovery, RemountDelay, true); } - else if (Core.ML && attacker is BaseCreature { ControlMaster: PlayerMobile pm }) + else if (Core.ML && attacker is BaseCreature { Controlled: true, ControlMaster: PlayerMobile pm }) { pm.SetMountBlock(BlockMountType.DismountRecovery, RemountDelay, false); } diff --git a/Projects/UOContent/Misc/Notoriety.cs b/Projects/UOContent/Misc/Notoriety.cs index 4416b09b5..27f54c18f 100644 --- a/Projects/UOContent/Misc/Notoriety.cs +++ b/Projects/UOContent/Misc/Notoriety.cs @@ -233,11 +233,6 @@ namespace Server.Misc return false; // Cannot harm other controlled mobiles from players } - if (pmFrom == null && bcFrom != null && bcFrom.Summoned && target.Player) - { - return true; // Summons from monsters can attack players - } - if (target.Player) { return false; // Cannot harm other players @@ -422,7 +417,7 @@ namespace Server.Misc return Notoriety.CanBeAttacked; } - master = bcTarg.ControlMaster; + master = bcTarg.Controlled ? bcTarg.ControlMaster : null; if (Core.ML && master != null) { diff --git a/Projects/UOContent/Mobiles/BaseCreature.cs b/Projects/UOContent/Mobiles/BaseCreature.cs index 6d8c22d0d..18743579d 100644 --- a/Projects/UOContent/Mobiles/BaseCreature.cs +++ b/Projects/UOContent/Mobiles/BaseCreature.cs @@ -2734,7 +2734,7 @@ namespace Server.Mobiles { base.AggressiveAction(aggressor, criminal); - if (ControlMaster != null && NotorietyHandlers.CheckAggressor(ControlMaster.Aggressors, aggressor)) + if (Controlled && ControlMaster != null && NotorietyHandlers.CheckAggressor(ControlMaster.Aggressors, aggressor)) { aggressor.Aggressors.Add(AggressorInfo.Create(this, aggressor, true)); } diff --git a/Projects/UOContent/Mobiles/PlayerMobile.cs b/Projects/UOContent/Mobiles/PlayerMobile.cs index 39be0e10a..cf7fc000b 100644 --- a/Projects/UOContent/Mobiles/PlayerMobile.cs +++ b/Projects/UOContent/Mobiles/PlayerMobile.cs @@ -3517,7 +3517,7 @@ namespace Server.Mobiles foreach (var follower in allFollowers) { - if (follower is not BaseCreature pet || pet.ControlMaster == null) + if (follower is not BaseCreature { Controlled: true } pet || pet.ControlMaster == null) { continue; } diff --git a/Projects/UOContent/Skills/Discordance.cs b/Projects/UOContent/Skills/Discordance.cs index 15b7ed118..14c5a7ee7 100644 --- a/Projects/UOContent/Skills/Discordance.cs +++ b/Projects/UOContent/Skills/Discordance.cs @@ -141,7 +141,7 @@ namespace Server.SkillHandlers { if (targ == from || targ is BaseCreature bc && (bc.BardImmune || !from.CanBeHarmful(bc, false)) && - bc.ControlMaster != from) + !(bc.Controlled && bc.ControlMaster == from)) { from.SendLocalizedMessage(1049535); // A song of discord would have no effect on that. }