Remove some bs from buildings with multiple damage states; cnc civilian structure rubble persists after death.

This commit is contained in:
Paul Chote
2010-07-31 01:08:22 +12:00
parent 62c2c3a1c6
commit 9b051a6624
11 changed files with 127 additions and 143 deletions

View File

@@ -1,44 +0,0 @@
#region Copyright & License Information
/*
* Copyright 2007-2010 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see LICENSE.
*/
#endregion
using OpenRA.Effects;
using OpenRA.Traits;
namespace OpenRA.Mods.Cnc
{
class CriticalBuildingStateInfo : ITraitInfo, ITraitPrerequisite<HealthInfo>
{
public readonly int LingerTime = 20;
public object Create(ActorInitializer init) { return new CriticalBuildingState(init.self, this); }
}
class CriticalBuildingState : INotifyDamage
{
CriticalBuildingStateInfo info;
public CriticalBuildingState(Actor self, CriticalBuildingStateInfo info)
{
this.info = info;
self.traits.Get<Health>().RemoveOnDeath = false;
}
public void Damaged(Actor self, AttackInfo e)
{
if (e.DamageStateChanged && e.DamageState == DamageState.Dead)
{
self.traits.Get<RenderSimple>().anim.PlayRepeating("critical-idle");
self.World.AddFrameEndTask(
w => w.Add(
new DelayedAction(info.LingerTime,
() => w.Remove(self))));
}
}
}
}

View File

@@ -0,0 +1,48 @@
#region Copyright & License Information
/*
* Copyright 2007-2010 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see LICENSE.
*/
#endregion
using OpenRA.Effects;
using OpenRA.Traits;
namespace OpenRA.Mods.Cnc
{
class DeadBuildingStateInfo : ITraitInfo, ITraitPrerequisite<HealthInfo>, ITraitPrerequisite<RenderSimpleInfo>
{
public readonly int LingerTime = 20;
public readonly bool Zombie = false; // Civilian structures stick around after death
public object Create(ActorInitializer init) { return new DeadBuildingState(init.self, this); }
}
class DeadBuildingState : INotifyDamage
{
DeadBuildingStateInfo info;
RenderSimple rs;
public DeadBuildingState(Actor self, DeadBuildingStateInfo info)
{
this.info = info;
rs = self.traits.Get<RenderSimple>();
self.traits.Get<Health>().RemoveOnDeath = !rs.anim.HasSequence("dead");
}
public void Damaged(Actor self, AttackInfo e)
{
if (e.DamageStateChanged && e.DamageState == DamageState.Dead)
{
if (!rs.anim.HasSequence("dead")) return;
rs.anim.PlayRepeating("dead");
if (!info.Zombie)
self.World.AddFrameEndTask(
w => w.Add(
new DelayedAction(info.LingerTime,
() => w.Remove(self))));
}
}
}
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -52,7 +52,6 @@
<Reference Include="System.Drawing" />
</ItemGroup>
<ItemGroup>
<Compile Include="CriticalBuildingState.cs" />
<Compile Include="Effects\IonCannon.cs" />
<Compile Include="IonCannonPower.cs" />
<Compile Include="PoisonedByTiberium.cs" />
@@ -60,6 +59,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TiberiumRefineryDockAction.cs" />
<Compile Include="MobileAir.cs" />
<Compile Include="DeadBuildingState.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">

View File

@@ -15,7 +15,6 @@ namespace OpenRA.Mods.RA.Render
{
class RenderBuildingWallInfo : RenderBuildingInfo
{
public readonly int DamageStates = 2;
public override object Create(ActorInitializer init) { return new RenderBuildingWall(init.self); }
}
@@ -33,30 +32,25 @@ namespace OpenRA.Mods.RA.Render
public override void Damaged(Actor self, AttackInfo e)
{
var numStates = self.Info.Traits.Get<RenderBuildingWallInfo>().DamageStates;
if (!e.DamageStateChanged) return;
switch (e.DamageState)
{
case DamageState.Light:
var bi = self.Info.Traits.Get<BuildingInfo>();
if (e.DamageState == DamageState.Medium && anim.HasSequence("scratched-idle"))
seqName = "scratched-idle";
else if (e.DamageState <= DamageState.Medium)
seqName = "idle";
break;
case DamageState.Medium:
if (numStates >= 4)
seqName = "minor-damaged-idle";
break;
case DamageState.Heavy:
seqName = "damaged-idle";
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
break;
case DamageState.Critical:
if (numStates >= 3)
else if (e.DamageState == DamageState.Critical && anim.HasSequence("critical-idle"))
{
seqName = "critical-idle";
Sound.Play(self.Info.Traits.Get<BuildingInfo>().DamagedSound, self.CenterLocation);
if (e.DamageState > e.PreviousDamageState)
Sound.Play(bi.DamagedSound, self.CenterLocation);
}
break;
else if (e.DamageState <= DamageState.Critical)
{
seqName = "damaged-idle";
if (e.DamageState > e.PreviousDamageState)
Sound.Play(bi.DamagedSound, self.CenterLocation);
}
anim.PlayFetchIndex(seqName, () => adjacentWalls);

View File

@@ -107,7 +107,7 @@
DamagedSound: xplos.aud
DestroyedSound: xplobig4.aud
RenderBuilding:
CriticalBuildingState:
DeadBuildingState:
EmitInfantryOnSell:
ActorTypes: c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,e1,e1,e1,e1,e1,e1,e1
MustBeDestroyed:
@@ -121,6 +121,8 @@
^CivBuilding:
Inherits: ^Building
DeadBuildingState:
Zombie: true
Health:
HP: 400
Armor: wood
@@ -132,6 +134,8 @@
^CivField:
Inherits: ^CivBuilding
-Selectable:
DeadBuildingState:
Zombie: true
Valued:
Description: Field
RenderBuilding:
@@ -158,7 +162,6 @@
RenderBuildingWall:
HasMakeAnimation: false
Palette: terrain
DamageStates: 2
GivesExperience:
^Tree:

View File

@@ -133,187 +133,187 @@
<unit name="v01">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v25">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v02">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v20">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v03">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v21">
<sequence name="idle" start="0" length="3" />
<sequence name="damaged-idle" start="3" length="3" />
<sequence name="critical-idle" start="6" length="1" />
<sequence name="dead" start="6" length="1" />
</unit>
<unit name="v04">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v24">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v05">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v22">
<sequence name="idle" start="0" length="3" />
<sequence name="damaged-idle" start="3" length="3" />
<sequence name="critical-idle" start="6" length="1" />
<sequence name="dead" start="6" length="1" />
</unit>
<unit name="v06">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v26">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v07">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v30">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v08">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v23">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v09">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v27">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v10">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v28">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v11">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v29">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v12">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v34">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v13">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v35">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<!-- Buildings that can't be mapped from tem into desert (Fields) -->
<unit name="v14">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v15">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v16">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v17">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v18">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<!-- Buildings that can't be mapped from desert into tem -->
<unit name="v31">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v32">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
<unit name="v33">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
</unit>
</sequences>

View File

@@ -4,17 +4,16 @@
<unit name="fact">
<sequence name="build" start="4" length="20" />
<sequence name="idle" start="0" length="4" tick="80" />
<sequence name="critical-build" start="28" length="20" />
<sequence name="damaged-build" start="28" length="20" />
<sequence name="critical-idle" start="48" length="1" />
<sequence name="damaged-idle" start="24" length="4" tick="80" />
<sequence name="damaged-build" start="28" length="20" />
<sequence name="dead" start="48" length="1" />
<sequence name="make" start="0" length="32" src="factmake" />
</unit>
<!-- Power Plant -->
<unit name="nuke">
<sequence name="idle" start="0" length="4" tick="400" />
<sequence name="damaged-idle" start="4" length="4" tick="400" />
<sequence name="critical-idle" start="8" length="1" tick="400" />
<sequence name="dead" start="8" length="1" tick="400" />
<sequence name="make" start="0" length="*" src="nukemake" />
</unit>
<!-- Tiberium Refinary -->
@@ -26,116 +25,109 @@
<sequence name="active" start="0" length="30" />
<sequence name="damaged-idle" start="30" />
<sequence name="damaged-active" start="30" length="30" />
<sequence name="critical-idle" start="60" />
<sequence name="critical-active" start="30" length="30" />
<sequence name="dead" start="60" />
<sequence name="make" start="0" length="*" src="procmake" />
</unit>
<!-- Tiberium Silo -->
<unit name="silo">
<sequence name="idle" start="0" length="5" />
<sequence name="damaged-idle" start="5" length="5" />
<sequence name="critical-idle" start="10" length="1" />
<sequence name="dead" start="10" length="1" />
<sequence name="make" start="0" length="*" src="silomake" />
</unit>
<!-- Hand of Nod -->
<unit name="hand">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
<sequence name="make" start="0" length="*" src="handmake" />
</unit>
<!-- GDI Barracks -->
<unit name="pyle">
<sequence name="idle" start="0" length="10" />
<sequence name="damaged-idle" start="10" length="10" />
<sequence name="critical-idle" start="20" length="1" />
<sequence name="dead" start="20" length="1" />
<sequence name="make" start="0" length="*" src="pylemake" />
</unit>
<!-- GDI Weapons factor -->
<unit name="weap">
<sequence name="idle" start="0" />
<sequence name="damaged-idle" start="1" />
<sequence name="critical-idle" start="2" />
<sequence name="dead" start="2" />
<sequence name="build-top" start="0" length="10" src="weap2" />
<sequence name="damaged-build-top" start="10" length="10" src="weap2" />
<sequence name="critical-build-top" start="10" length="10" src="weap2" />
<sequence name="idle-top" start="0" length="1" src="weap2" />
<sequence name="damaged-idle-top" start="4" length="1" src="weap2" />
<sequence name="critical-idle-top" start="4" length="1" src="weap2" />
<sequence name="make" start="0" length="*" src="weapmake" />
</unit>
<!-- Nod Airfield -->
<unit name="afld">
<sequence name="idle" start="0" length="16" tick="120" />
<sequence name="damaged-idle" start="16" length="16" tick="120" />
<sequence name="critical-idle" start="32" length="1" />
<sequence name="dead" start="32" length="1" />
<sequence name="make" start="0" length="*" src="afldmake" />
</unit>
<!-- Communications Center -->
<unit name="hq">
<sequence name="idle" start="0" length="16" tick="200" />
<sequence name="damaged-idle" start="16" length="16" tick="200" />
<sequence name="critical-idle" start="32" />
<sequence name="dead" start="32" />
<sequence name="make" start="0" length="*" src="hqmake" />
</unit>
<!-- Advanced Power Plant -->
<unit name="nuk2">
<sequence name="idle" start="0" length="4" tick="400" />
<sequence name="damaged-idle" start="4" length="4" tick="400" />
<sequence name="critical-idle" start="8" length="1" />
<sequence name="dead" start="8" length="1" />
<sequence name="make" start="0" length="*" src="nuk2make" />
</unit>
<!-- Helipad -->
<unit name="hpad">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="7" length="1" />
<sequence name="critical-idle" start="14" length="1" />
<sequence name="active" start="1" length="6" />
<sequence name="damaged-active" start="8" length="6" />
<sequence name="critical-active" start="14" length="1" />
<sequence name="dead" start="14" length="1" />
<sequence name="make" start="0" length="20" src="hpadmake" />
</unit>
<!-- Repair Facility -->
<unit name="fix">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="7" length="1" />
<sequence name="critical-idle" start="14" length="1" />
<sequence name="active" start="0" length="7" />
<sequence name="damaged-active" start="7" length="7" />
<sequence name="critical-active" start="14" length="1" />
<sequence name="dead" start="14" length="1" />
<sequence name="make" start="0" length="14" src="fixmake" />
</unit>
<!-- Advanced Communications Center -->
<unit name="eye">
<sequence name="idle" start="0" length="16" tick="200" />
<sequence name="damaged-idle" start="16" length="16" tick="200" />
<sequence name="critical-idle" start="32" />
<sequence name="dead" start="32" />
<sequence name="make" start="0" length="*" src="eyemake" />
</unit>
<!-- Temple of Nod -->
<unit name="tmpl">
<sequence name="idle" start="0" />
<sequence name="damaged-idle" start="5" />
<sequence name="critical-idle" start="10" />
<sequence name="active" start="0" length="5" />
<sequence name="damaged-active" start="5" length="5" />
<sequence name="critical-active" start="5" length="5" />
<sequence name="dead" start="10" />
<sequence name="make" start="0" length="*" src="tmplmake" />
</unit>
<!-- Obelisk of Light -->
<unit name="obli">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="4" length="1" />
<sequence name="critical-idle" start="8" length="1" />
<sequence name="active" start="0" length="4" />
<sequence name="damaged-active" start="4" length="4" />
<sequence name="critical-active" start="4" length="4" />
<sequence name="dead" start="8" length="1" />
<sequence name="make" start="0" length="13" src="oblimake" />
</unit>
<!-- Concrete Barrier -->
<unit name="brik">
<sequence name="idle" start="0" length="16" />
<sequence name="minor-damaged-idle" start="16" length="16" />
<sequence name="scratched-idle" start="16" length="16" />
<sequence name="damaged-idle" start="32" length="16" />
<sequence name="critical-idle" start="48" length="16" />
</unit>
@@ -165,7 +157,6 @@
<sequence name="idle" start="0" facings="32" />
<sequence name="recoil" start="32" facings="32" />
<sequence name="damaged-idle" start="64" facings="32" />
<sequence name="critical-idle" start="64" facings="32" />
<sequence name="damaged-recoil" start="96" facings="32" />
<sequence name="make" start="0" length="20" src="gunmake" />
</unit>
@@ -173,21 +164,20 @@
<unit name="sam">
<sequence name="idle" start="17" facings="32" />
<sequence name="damaged-idle" start="81" facings="32" />
<sequence name="critical-idle" start="81" facings="32" />
<sequence name="make" start="0" length="20" src="sammake" />
</unit>
<!-- Guard Tower -->
<unit name="gtwr">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
<sequence name="make" start="0" length="20" src="gtwrmake" />
</unit>
<!-- Advanced Guard Tower -->
<unit name="atwr">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
<sequence name="critical-idle" start="2" length="1" />
<sequence name="dead" start="2" length="1" />
<sequence name="make" start="0" length="14" src="atwrmake" />
</unit>
</sequences>

View File

@@ -442,8 +442,6 @@ CYCL:
Health:
HP: 300
Armor: none
RenderBuildingWall:
DamageStates: 3
SBAG:
Category: Defense
@@ -474,8 +472,6 @@ BRIK:
Health:
HP: 1000
Armor: heavy
RenderBuildingWall:
DamageStates: 4
Wall:
CrushClasses: heavywall
@@ -505,6 +501,7 @@ GUN:
PrimaryWeapon: TurretGun
AutoTarget:
-RenderBuilding:
-DeadBuildingState:
RenderRangeCircle:
SAM:
@@ -535,6 +532,7 @@ SAM:
PrimaryWeapon: Nike
AutoTarget:
-RenderBuilding:
-DeadBuildingState:
RenderRangeCircle:
GTWR:

View File

@@ -131,7 +131,6 @@
RenderBuildingWall:
HasMakeAnimation: false
Palette: terrain
DamageStates: 2
GivesExperience:
^CivBuilding:

View File

@@ -868,7 +868,7 @@
</unit>
<unit name="brik">
<sequence name="idle" start="0" length="16" />
<sequence name="minor-damaged-idle" start="16" length="16" />
<sequence name="scratched-idle" start="16" length="16" />
<sequence name="damaged-idle" start="32" length="16" />
<sequence name="critical-idle" start="48" length="16" />
</unit>

View File

@@ -946,8 +946,6 @@ BRIK:
Health:
HP: 1500
Armor: none
RenderBuildingWall:
DamageStates: 4
Wall:
CrushClasses: heavywall
CYCL:
@@ -955,8 +953,6 @@ CYCL:
Health:
HP: 100
Armor: none
RenderBuildingWall:
DamageStates: 3
BARB:
Inherits: ^Wall