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