Fix exploding walls

This commit is contained in:
Paul Chote
2011-06-02 18:11:30 +12:00
parent 2f86208a9a
commit 64497c9b2f
5 changed files with 35 additions and 9 deletions

View File

@@ -347,6 +347,7 @@
<Compile Include="Activities\CaptureActor.cs" />
<Compile Include="InvisibleToEnemy.cs" />
<Compile Include="ParachuteAttachment.cs" />
<Compile Include="Render\WithBuildingExplosion.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">

View File

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA.Render
}
}
public class RenderBuilding : RenderSimple, INotifyDamageStateChanged, IRenderModifier, INotifyKilled
public class RenderBuilding : RenderSimple, INotifyDamageStateChanged, IRenderModifier
{
readonly RenderBuildingInfo Info;
@@ -103,13 +103,5 @@ namespace OpenRA.Mods.RA.Render
else if (e.DamageState < DamageState.Heavy)
anim.ReplaceAnim("idle");
}
public void Killed(Actor self, AttackInfo e)
{
var bi = self.Info.Traits.Get<BuildingInfo>();
FootprintUtils.UnpathableTiles(self.Info.Name, bi, self.Location).Do(
t => self.World.AddFrameEndTask(
w => w.Add(new Explosion(w, Traits.Util.CenterOfCell(t), "building", false, 0))));
}
}
}

View File

@@ -0,0 +1,28 @@
#region Copyright & License Information
/*
* Copyright 2007-2011 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 COPYING.
*/
#endregion
using OpenRA.Mods.RA.Buildings;
using OpenRA.Mods.RA.Effects;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Render
{
class WithBuildingExplosionInfo : TraitInfo<WithBuildingExplosion> { }
class WithBuildingExplosion : INotifyKilled
{
public void Killed(Actor self, AttackInfo e)
{
var bi = self.Info.Traits.Get<BuildingInfo>();
FootprintUtils.UnpathableTiles(self.Info.Name, bi, self.Location).Do(
t => self.World.AddFrameEndTask(
w => w.Add(new Explosion(w, Traits.Util.CenterOfCell(t), "building", false, 0))));
}
}
}