From 54a76070d5250649e4d18782ac7205b79db8fad7 Mon Sep 17 00:00:00 2001 From: Scott_NZ Date: Fri, 12 Apr 2013 21:21:13 +1200 Subject: [PATCH] Prevent Allies from destroying Soviet base in Desert Shellmap --- OpenRA.Mods.RA/Missions/DesertShellmapScript.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.RA/Missions/DesertShellmapScript.cs b/OpenRA.Mods.RA/Missions/DesertShellmapScript.cs index 6c4ec893a3..277eae9720 100644 --- a/OpenRA.Mods.RA/Missions/DesertShellmapScript.cs +++ b/OpenRA.Mods.RA/Missions/DesertShellmapScript.cs @@ -13,6 +13,7 @@ using System.Linq; using OpenRA.FileFormats; using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Air; +using OpenRA.Mods.RA.Buildings; using OpenRA.Mods.RA.Move; using OpenRA.Scripting; using OpenRA.Traits; @@ -284,11 +285,13 @@ namespace OpenRA.Mods.RA.Missions InitializeAlliedFactories(); - foreach (var actor in actors.Values.Where(a => a.Owner == allies || a.HasTrait())) + foreach (var actor in actors.Values) { if (actor.Owner == allies && actor.HasTrait()) actor.Trait().stance = UnitStance.Defend; - actor.AddTrait(new Invulnerable()); + + if (actor.IsInWorld && (actor.HasTrait() || actor.Owner == allies || (actor.Owner == soviets && actor.HasTrait()))) + actor.AddTrait(new Invulnerable()); } viewportOrigin = viewportTargets[0];