diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj
index 17c38c8d4f..6cf57e3eda 100755
--- a/OpenRA.Game/OpenRA.Game.csproj
+++ b/OpenRA.Game/OpenRA.Game.csproj
@@ -82,7 +82,7 @@
-
+
diff --git a/OpenRA.Game/Traits/Mobile.cs b/OpenRA.Game/Traits/Mobile.cs
index 86d5d92195..165016362a 100644
--- a/OpenRA.Game/Traits/Mobile.cs
+++ b/OpenRA.Game/Traits/Mobile.cs
@@ -53,7 +53,6 @@ namespace OpenRA.Traits
{
self.World.WorldActor.traits.Get().Remove(self, this);
self.Location = value;
- self.World.WorldActor.traits.Get().UpdateActor(self);
}
self.World.WorldActor.traits.Get().Add(self, this);
}
diff --git a/OpenRA.Game/Traits/HasSight.cs b/OpenRA.Game/Traits/RevealsShroud.cs
similarity index 79%
rename from OpenRA.Game/Traits/HasSight.cs
rename to OpenRA.Game/Traits/RevealsShroud.cs
index b463f1a397..642544a6a2 100644
--- a/OpenRA.Game/Traits/HasSight.cs
+++ b/OpenRA.Game/Traits/RevealsShroud.cs
@@ -20,16 +20,19 @@
namespace OpenRA.Traits
{
- class HasSightInfo : TraitInfo { }
+ class RevealsShroudInfo : TraitInfo { }
- // for random non-mobile movers
-
- class HasSight : ITick
+ class RevealsShroud : ITick
{
+ int2 previousLocation;
+
public void Tick(Actor self)
{
- if (!self.IsIdle)
+ if (!self.IsIdle && previousLocation != self.Location)
+ {
+ previousLocation = self.Location;
self.World.WorldActor.traits.Get().UpdateActor(self);
+ }
}
}
}
diff --git a/OpenRA.Game/Traits/World/Shroud.cs b/OpenRA.Game/Traits/World/Shroud.cs
index 8d6f0df3e2..51ec67cf28 100644
--- a/OpenRA.Game/Traits/World/Shroud.cs
+++ b/OpenRA.Game/Traits/World/Shroud.cs
@@ -87,6 +87,8 @@ namespace OpenRA.Traits
vis = GetVisOrigins(a).ToArray()
};
+ if (v.range == 0) return; // don't bother for things that can't see
+
foreach (var p in v.vis)
{
foreach (var q in FindVisibleTiles(a.World, p, v.range))
diff --git a/mods/cnc/defaults.yaml b/mods/cnc/defaults.yaml
index 07a709a1a7..60f5ac9d22 100644
--- a/mods/cnc/defaults.yaml
+++ b/mods/cnc/defaults.yaml
@@ -11,6 +11,7 @@
Passenger:
IronCurtainable:
HiddenUnderFog:
+ RevealsShroud:
^Infantry:
Category: Infantry
@@ -26,6 +27,7 @@
Passenger:
HiddenUnderFog:
PoisonedByTiberium:
+ RevealsShroud:
^Ship:
Category: Ship
@@ -34,12 +36,14 @@
MovementType: Float
Selectable:
HiddenUnderFog:
+ RevealsShroud:
^Plane:
Category: Plane
Unit:
Selectable:
HiddenUnderFog:
+ RevealsShroud:
^Building:
Category: Building
diff --git a/mods/cnc/vehicles.yaml b/mods/cnc/vehicles.yaml
index 7652e579c2..5aecbb3abf 100644
--- a/mods/cnc/vehicles.yaml
+++ b/mods/cnc/vehicles.yaml
@@ -379,7 +379,7 @@ TRAN:
Armor: light
InitialFacing: 20
ROT: 5
- Sight: 0
+ Sight: 4
Speed: 15
Helicopter:
RenderUnitRotor:
@@ -407,7 +407,7 @@ HELI:
Crewed: yes
InitialFacing: 20
ROT: 4
- Sight: 0
+ Sight: 6
Speed: 20
AttackHeli:
PrimaryWeapon: HighV
@@ -438,7 +438,7 @@ ORCA:
Crewed: yes
InitialFacing: 20
ROT: 4
- Sight: 0
+ Sight: 6
Speed: 20
AttackHeli:
PrimaryWeapon: Rockets
diff --git a/mods/ra/defaults.yaml b/mods/ra/defaults.yaml
index 9c39313834..6e35172fe6 100644
--- a/mods/ra/defaults.yaml
+++ b/mods/ra/defaults.yaml
@@ -11,6 +11,7 @@
Passenger:
IronCurtainable:
HiddenUnderFog:
+ RevealsShroud:
^Infantry:
Category: Infantry
@@ -25,6 +26,7 @@
AutoTarget:
Passenger:
HiddenUnderFog:
+ RevealsShroud:
^Ship:
Category: Ship
@@ -33,6 +35,7 @@
MovementType: Float
Selectable:
HiddenUnderFog:
+ RevealsShroud:
^Plane:
Category: Plane
@@ -40,6 +43,7 @@
TargetType: Air
Selectable:
HiddenUnderFog:
+ RevealsShroud:
^Building:
Category: Building
diff --git a/mods/ra/vehicles.yaml b/mods/ra/vehicles.yaml
index 667d1d432e..e410e9f148 100644
--- a/mods/ra/vehicles.yaml
+++ b/mods/ra/vehicles.yaml
@@ -560,7 +560,6 @@ MIG:
Ammo: 3
IronCurtainable:
ReturnOnIdle:
- HasSight:
YAK:
Inherits: ^Plane
@@ -590,7 +589,6 @@ YAK:
Ammo: 15
IronCurtainable:
ReturnOnIdle:
- HasSight:
TRAN:
Inherits: ^Plane
@@ -618,7 +616,6 @@ TRAN:
PassengerTypes: Foot
Passengers: 5
IronCurtainable:
- HasSight:
HELI:
Inherits: ^Plane
@@ -650,7 +647,6 @@ HELI:
LimitedAmmo:
Ammo: 6
IronCurtainable:
- HasSight:
HIND:
Inherits: ^Plane
@@ -680,7 +676,6 @@ HIND:
LimitedAmmo:
Ammo: 12
IronCurtainable:
- HasSight:
U2:
Inherits: ^Plane