From bfe9bc329c3019adf4d1a3a6be92631c8451ee02 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Mon, 7 Mar 2016 15:18:23 +0100 Subject: [PATCH 1/2] Fix players being able to command allied units to the service depot --- OpenRA.Mods.Common/Orders/RepairOrderGenerator.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OpenRA.Mods.Common/Orders/RepairOrderGenerator.cs b/OpenRA.Mods.Common/Orders/RepairOrderGenerator.cs index 2afda3f700..fdb04c2510 100644 --- a/OpenRA.Mods.Common/Orders/RepairOrderGenerator.cs +++ b/OpenRA.Mods.Common/Orders/RepairOrderGenerator.cs @@ -45,6 +45,10 @@ namespace OpenRA.Mods.Common.Orders if (underCursor.Info.HasTraitInfo()) yield return new Order("RepairBuilding", world.LocalPlayer.PlayerActor, false) { TargetActor = underCursor }; + // Don't command allied units + if (underCursor.Owner != world.LocalPlayer) + yield break; + // Test for generic Repairable (used on units). var repairable = underCursor.TraitOrDefault(); if (repairable == null) From 3b6e481196b0889cfefb529a59385de10ab2a119 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Mon, 7 Mar 2016 15:26:50 +0100 Subject: [PATCH 2/2] Account for allied service depot when ordering an auto repair --- OpenRA.Mods.Common/Traits/Repairable.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Repairable.cs b/OpenRA.Mods.Common/Traits/Repairable.cs index f067bcf3c8..403c6cebee 100644 --- a/OpenRA.Mods.Common/Traits/Repairable.cs +++ b/OpenRA.Mods.Common/Traits/Repairable.cs @@ -130,7 +130,7 @@ namespace OpenRA.Mods.Common.Traits { var repairBuilding = self.World.ActorsWithTrait() .Where(a => !a.Actor.IsDead && a.Actor.IsInWorld - && a.Actor.Owner == self.Owner && + && a.Actor.Owner.IsAlliedWith(self.Owner) && info.RepairBuildings.Contains(a.Actor.Info.Name)) .OrderBy(p => (self.Location - p.Actor.Location).LengthSquared);