From c994ee4668ddd7682fe6b1b5a0b599601cfe1b31 Mon Sep 17 00:00:00 2001 From: atlimit8 Date: Sat, 4 Oct 2014 19:07:41 -0500 Subject: [PATCH] DonateSupplies as Enter subclass --- OpenRA.Mods.RA/Activities/DonateSupplies.cs | 27 +++++++++------------ OpenRA.Mods.RA/SupplyTruck.cs | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/OpenRA.Mods.RA/Activities/DonateSupplies.cs b/OpenRA.Mods.RA/Activities/DonateSupplies.cs index b6407e5823..2bd123ba3c 100644 --- a/OpenRA.Mods.RA/Activities/DonateSupplies.cs +++ b/OpenRA.Mods.RA/Activities/DonateSupplies.cs @@ -13,33 +13,28 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA.Activities { - class DonateSupplies : Activity + class DonateSupplies : Enter { - Target target; - int payload; + readonly Actor target; + readonly int payload; - public DonateSupplies(Actor target, int payload) + public DonateSupplies(Actor self, Actor target, int payload) + : base(self, target) { - this.target = Target.FromActor(target); + this.target = target; this.payload = payload; } - public override Activity Tick(Actor self) + protected override void OnInside(Actor self) { - if (IsCanceled || !target.IsValidFor(self)) - return NextActivity; + if (target.IsDead()) + return; - if (target.Type != TargetType.Actor) - return NextActivity; - - var targetActor = target.Actor; - targetActor.Owner.PlayerActor.Trait().GiveCash(payload); + target.Owner.PlayerActor.Trait().GiveCash(payload); self.Destroy(); if (self.Owner.IsAlliedWith(self.World.RenderPlayer)) - self.World.AddFrameEndTask(w => w.Add(new FloatingText(targetActor.CenterPosition, targetActor.Owner.Color.RGB, FloatingText.FormatCashTick(payload), 30))); - - return this; + self.World.AddFrameEndTask(w => w.Add(new FloatingText(target.CenterPosition, target.Owner.Color.RGB, FloatingText.FormatCashTick(payload), 30))); } } } diff --git a/OpenRA.Mods.RA/SupplyTruck.cs b/OpenRA.Mods.RA/SupplyTruck.cs index 61b392caf2..1b50f07615 100644 --- a/OpenRA.Mods.RA/SupplyTruck.cs +++ b/OpenRA.Mods.RA/SupplyTruck.cs @@ -67,7 +67,7 @@ namespace OpenRA.Mods.RA self.CancelActivity(); self.SetTargetLine(target, Color.Yellow); - self.QueueActivity(new Enter(self, target.Actor, new DonateSupplies(target.Actor, info.Payload))); + self.QueueActivity(new DonateSupplies(self, target.Actor, info.Payload)); } class SupplyTruckOrderTargeter : UnitOrderTargeter