diff --git a/OpenRA.Game/Traits/Render/RenderBuildingWall.cs b/OpenRA.Game/Traits/Render/RenderBuildingWall.cs
new file mode 100644
index 0000000000..856e1452b1
--- /dev/null
+++ b/OpenRA.Game/Traits/Render/RenderBuildingWall.cs
@@ -0,0 +1,89 @@
+#region Copyright & License Information
+/*
+ * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
+ * This file is part of OpenRA.
+ *
+ * OpenRA is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenRA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with OpenRA. If not, see .
+ */
+#endregion
+
+using System.Linq;
+
+namespace OpenRa.Traits
+{
+ class RenderBuildingWallInfo : RenderBuildingInfo
+ {
+ public override object Create(Actor self) { return new RenderBuildingWall(self); }
+ }
+
+ class RenderBuildingWall : RenderBuilding
+ {
+ string seqName;
+ Actor self;
+
+ public RenderBuildingWall(Actor self)
+ : base(self)
+ {
+ seqName = "idle";
+ this.self = self;
+ }
+
+ public override void Damaged(Actor self, AttackInfo e)
+ {
+ if (!e.DamageStateChanged) return;
+
+ switch (e.DamageState)
+ {
+ case DamageState.Normal:
+ seqName = "idle";
+ break;
+ case DamageState.Half:
+ seqName = "damaged-idle";
+ Sound.Play("kaboom1.aud");
+ break;
+ }
+ }
+
+ public override void Tick(Actor self)
+ {
+ base.Tick(self);
+
+ // TODO: This only needs updating when a wall is built or destroyed
+ int index = NearbyWalls( self.Location );
+
+ anim.PlayFetchIndex(seqName, () => index);
+
+ }
+ bool IsWall( int x, int y)
+ {
+ return self.World.Queries.WithTrait().Any(a => (a.Actor.Info.Name == self.Info.Name && a.Actor.Location.X == x && a.Actor.Location.Y == y));
+ }
+
+ int NearbyWalls( int2 xy )
+ {
+ int ret = 0;
+
+ if( IsWall( xy.X, xy.Y - 1 ) )
+ ret |= 1;
+ if( IsWall( xy.X + 1, xy.Y ) )
+ ret |= 2;
+ if( IsWall( xy.X, xy.Y + 1 ) )
+ ret |= 4;
+ if( IsWall( xy.X - 1, xy.Y ) )
+ ret |= 8;
+ return ret;
+ }
+
+ }
+}
diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj
index 1e887ff951..892f8ab787 100644
--- a/OpenRa.Game/OpenRa.Game.csproj
+++ b/OpenRa.Game/OpenRa.Game.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -263,6 +263,8 @@
+
+
diff --git a/OpenRa.Game/Traits/Wall.cs b/OpenRa.Game/Traits/Wall.cs
new file mode 100644
index 0000000000..ec94fb0700
--- /dev/null
+++ b/OpenRa.Game/Traits/Wall.cs
@@ -0,0 +1,32 @@
+#region Copyright & License Information
+/*
+ * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
+ * This file is part of OpenRA.
+ *
+ * OpenRA is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenRA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with OpenRA. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using OpenRa.Effects;
+using OpenRa.GameRules;
+using OpenRa.Traits.Activities;
+
+namespace OpenRa.Traits
+{
+ public class WallInfo : StatelessTraitInfo {}
+ public class Wall {}
+}
diff --git a/mods/ra/rules.yaml b/mods/ra/rules.yaml
index 81a0e3fe26..b1ea843c2f 100644
--- a/mods/ra/rules.yaml
+++ b/mods/ra/rules.yaml
@@ -2499,17 +2499,18 @@ BRIK:
Buildable:
TechLevel: 8
Prerequisites: fact
- Owner: soviet
+ Owner: allies,soviet
Cost: 100
Description: Concrete Wall
LongDesc: Its a wall.
Building:
Power: 0
- Footprint: x
- Dimensions: 1,1
Capturable: false
Bib: no
HP: 1
Armor: none
Crewed: no
Sight: 0
+ Wall:
+ RenderBuildingWall:
+ -RenderBuilding:
\ No newline at end of file
diff --git a/mods/ra/sequences.xml b/mods/ra/sequences.xml
index aaa14c95ec..ec16b56ff1 100644
--- a/mods/ra/sequences.xml
+++ b/mods/ra/sequences.xml
@@ -860,8 +860,8 @@
-
-
+
+
\ No newline at end of file