diff --git a/OpenRA.Game/Actor.cs b/OpenRA.Game/Actor.cs index 3fca76f3fe..8c64efe563 100644 --- a/OpenRA.Game/Actor.cs +++ b/OpenRA.Game/Actor.cs @@ -301,11 +301,11 @@ namespace OpenRA Owner = newOwner; Generation++; - if (wasInWorld) - w.Add(this); - foreach (var t in TraitsImplementing()) t.OnOwnerChanged(this, oldOwner, newOwner); + + if (wasInWorld) + w.Add(this); }); } diff --git a/OpenRA.Mods.Common/Traits/ProximityCapturable.cs b/OpenRA.Mods.Common/Traits/ProximityCapturable.cs index 9a10ead140..9e846c6806 100644 --- a/OpenRA.Mods.Common/Traits/ProximityCapturable.cs +++ b/OpenRA.Mods.Common/Traits/ProximityCapturable.cs @@ -189,7 +189,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner) { - skipTriggerUpdate = false; + Game.RunAfterTick(() => skipTriggerUpdate = false); } } }