From 9ec0367ecb8a572740ccd61140d285d2a6d7f71f Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 25 Oct 2010 09:33:08 +1300 Subject: [PATCH] add support for an explosion on aircraft falling out of the sky --- OpenRA.Mods.RA/FallsToEarth.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/FallsToEarth.cs b/OpenRA.Mods.RA/FallsToEarth.cs index 32adabc451..43dfae2b27 100644 --- a/OpenRA.Mods.RA/FallsToEarth.cs +++ b/OpenRA.Mods.RA/FallsToEarth.cs @@ -12,7 +12,11 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { - class FallsToEarthInfo : TraitInfo { } + class FallsToEarthInfo : TraitInfo + { + [WeaponReference] + public readonly string Explosion = null; + } class FallsToEarth : INotifyDamage { @@ -23,7 +27,7 @@ namespace OpenRA.Mods.RA self.Trait().RemoveOnDeath = false; self.CancelActivity(); - self.QueueActivity(new FallToEarth()); + self.QueueActivity(new FallToEarth(self.Info.Traits.Get())); } } } @@ -32,6 +36,12 @@ namespace OpenRA.Mods.RA { int acceleration = 0; int spin = 0; + FallsToEarthInfo info; + + public FallToEarth(FallsToEarthInfo info) + { + this.info = info; + } public override IActivity Tick(Actor self) { @@ -41,6 +51,9 @@ namespace OpenRA.Mods.RA var aircraft = self.Trait(); if (aircraft.Altitude <= 0) { + if (info.Explosion != null) + Combat.DoExplosion(self, info.Explosion, self.CenterLocation, 0); + self.Destroy(); return null; } @@ -52,6 +65,6 @@ namespace OpenRA.Mods.RA return this; } - protected override bool OnCancel( Actor self ) { return false; } + protected override bool OnCancel(Actor self) { return false; } } }