diff --git a/OpenRa.Mods.RA/Activities/LayMine.cs b/OpenRa.Mods.RA/Activities/LayMine.cs new file mode 100755 index 0000000000..b1c4f4354b --- /dev/null +++ b/OpenRa.Mods.RA/Activities/LayMine.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using OpenRa.Traits.Activities; + +namespace OpenRa.Mods.RA.Activities +{ + class LayMine : IActivity + { + public IActivity NextActivity { get; set; } + + public IActivity Tick( Actor self ) + { + self.World.AddFrameEndTask( + w => w.CreateActor(self.Info.Traits.Get().Mine, self.Location, self.Owner)); + return NextActivity; + } + + public void Cancel( Actor self ) + { + } + } +} diff --git a/OpenRa.Mods.RA/Minelayer.cs b/OpenRa.Mods.RA/Minelayer.cs index 825388f6ec..e3419fecd5 100644 --- a/OpenRa.Mods.RA/Minelayer.cs +++ b/OpenRa.Mods.RA/Minelayer.cs @@ -1,5 +1,6 @@ using System.Linq; using OpenRa.Traits; +using OpenRa.Mods.RA.Activities; namespace OpenRa.Mods.RA { @@ -34,10 +35,7 @@ namespace OpenRa.Mods.RA if (limitedAmmo != null) limitedAmmo.Attacking(self); - // todo: delay a bit? (req making deploy-mine an activity) - - self.World.AddFrameEndTask( - w => w.CreateActor(self.Info.Traits.Get().Mine, self.Location, self.Owner)); + self.QueueActivity( new LayMine() ); } } } diff --git a/OpenRa.Mods.RA/OpenRa.Mods.RA.csproj b/OpenRa.Mods.RA/OpenRa.Mods.RA.csproj index 15986d235e..d9c4d3eb39 100644 --- a/OpenRa.Mods.RA/OpenRa.Mods.RA.csproj +++ b/OpenRa.Mods.RA/OpenRa.Mods.RA.csproj @@ -49,6 +49,7 @@ + @@ -73,9 +74,6 @@ OpenRa.Game - - -