diff --git a/OpenRA.Game/Traits/Mobile.cs b/OpenRA.Game/Traits/Mobile.cs index 00854125b1..76f4ed264e 100644 --- a/OpenRA.Game/Traits/Mobile.cs +++ b/OpenRA.Game/Traits/Mobile.cs @@ -52,6 +52,10 @@ namespace OpenRA.Traits { self.World.WorldActor.traits.Get().Remove(self, this); self.Location = value; + + self.World.WorldActor.traits.Get().UpdateActor(self); + + // todo: dies self.Owner.Shroud.Explore(self); } self.World.WorldActor.traits.Get().Add(self, this); diff --git a/OpenRA.Game/Traits/World/Shroud.cs b/OpenRA.Game/Traits/World/Shroud.cs index 3c9e6e2462..fe697461c0 100644 --- a/OpenRA.Game/Traits/World/Shroud.cs +++ b/OpenRA.Game/Traits/World/Shroud.cs @@ -18,10 +18,10 @@ */ #endregion -using OpenRA.FileFormats; using System.Collections.Generic; -using OpenRA.GameRules; using System.Linq; +using OpenRA.FileFormats; +using OpenRA.GameRules; namespace OpenRA.Traits { @@ -101,5 +101,7 @@ namespace OpenRA.Traits vis.Remove(a); } + + public void UpdateActor(Actor a) { RemoveActor(a); AddActor(a); } } } diff --git a/mods/ra/rules.yaml b/mods/ra/rules.yaml index ac2c8285c0..9ce54a0285 100755 --- a/mods/ra/rules.yaml +++ b/mods/ra/rules.yaml @@ -268,6 +268,7 @@ World: EvaAlerts: SpatialBins: BinSize: 4 + Shroud: MGG: GeneratesGap: