diff --git a/OpenRA.Mods.RA/CashTrickler.cs b/OpenRA.Mods.RA/CashTrickler.cs index 1a230d76ab..ca4130736b 100644 --- a/OpenRA.Mods.RA/CashTrickler.cs +++ b/OpenRA.Mods.RA/CashTrickler.cs @@ -14,7 +14,7 @@ using OpenRA.FileFormats; namespace OpenRA.Mods.RA { - [Desc("Let's the object generate cash in a set periodic time.")] + [Desc("Lets the actor generate cash in a set periodic time.")] class CashTricklerInfo : ITraitInfo { [Desc("Amount of money to give each time.")] @@ -27,11 +27,13 @@ namespace OpenRA.Mods.RA public readonly int TickLifetime = 30; [Desc("Pixels/tick upward movement of the cash tick indicator.")] public readonly int TickVelocity = 1; + [Desc("Amount of money awarded for capturing the actor.")] + public readonly int CaptureAmount = 0; public object Create (ActorInitializer init) { return new CashTrickler(this); } } - class CashTrickler : ITick, ISync + class CashTrickler : ITick, ISync, INotifyCapture { [Sync] int ticks; CashTricklerInfo Info; @@ -44,11 +46,25 @@ namespace OpenRA.Mods.RA { if (--ticks < 0) { - self.Owner.PlayerActor.Trait().GiveCash(Info.Amount); ticks = Info.Period; - if (Info.ShowTicks) - self.World.AddFrameEndTask(w => w.Add(new CashTick(Info.Amount, Info.TickLifetime, Info.TickVelocity, self.CenterLocation, self.Owner.Color.RGB))); + self.Owner.PlayerActor.Trait().GiveCash(Info.Amount); + MaybeAddCashTick(self, Info.Amount); } } + + public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner) + { + if (Info.CaptureAmount > 0) + { + newOwner.PlayerActor.Trait().GiveCash(Info.CaptureAmount); + MaybeAddCashTick(self, Info.CaptureAmount); + } + } + + void MaybeAddCashTick(Actor self, int amount) + { + if (Info.ShowTicks) + self.World.AddFrameEndTask(w => w.Add(new CashTick(amount, Info.TickLifetime, Info.TickVelocity, self.CenterLocation, self.Owner.Color.RGB))); + } } } diff --git a/mods/ra/rules/civilian.yaml b/mods/ra/rules/civilian.yaml index 11499c8093..08cddcdf9f 100644 --- a/mods/ra/rules/civilian.yaml +++ b/mods/ra/rules/civilian.yaml @@ -290,7 +290,6 @@ BIO: Tooltip: Name: Biological Lab - OILB: Inherits: ^TechBuilding Selectable: @@ -299,7 +298,7 @@ OILB: Footprint: xx xx Dimensions: 2,2 Health: - HP: 400 + HP: 1000 Armor: Type: Wood Bib: @@ -311,7 +310,8 @@ OILB: -MustBeDestroyed: CashTrickler: Period: 250 - Amount: 50 + Amount: 100 + CaptureAmount: 500 Tooltip: Name: Oil Derrick