add explosive crates

This commit is contained in:
Chris Forbes
2010-03-21 09:49:27 +13:00
parent 26e37d17f2
commit a38b5b89db
2 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenRA.Traits;
using OpenRA.Effects;
namespace OpenRA.Mods.RA.Crates
{
class ExplodeCrateActionInfo : ITraitInfo
{
public string Weapon = null;
public int SelectionShares = 5;
public object Create(Actor self) { return new ExplodeCrateAction(self, this); }
}
class ExplodeCrateAction : ICrateAction
{
Actor self;
ExplodeCrateActionInfo info;
public ExplodeCrateAction(Actor self, ExplodeCrateActionInfo info)
{
this.self = self;
}
public int SelectionShares
{
get { return info.SelectionShares; }
}
public void Activate(Actor collector)
{
self.World.AddFrameEndTask(
w => w.Add(new Bullet(info.Weapon, self.Owner,
self, self.CenterLocation.ToInt2(), self.CenterLocation.ToInt2(),
0, 0)));
}
}
}

View File

@@ -53,6 +53,7 @@
<Compile Include="Activities\Steal.cs" />
<Compile Include="C4Demolition.cs" />
<Compile Include="Crates\ArmorUpgradeCrateAction.cs" />
<Compile Include="Crates\ExplodeCrateAction.cs" />
<Compile Include="Crates\FirepowerUpgradeCrateAction.cs" />
<Compile Include="Crates\GiveCashCrateAction.cs" />
<Compile Include="Effects\CrateEffect.cs" />