diff --git a/OpenRA.Mods.RA/Activities/CaptureBuilding.cs b/OpenRA.Mods.RA/Activities/CaptureBuilding.cs index 41aa80e841..1a767b4708 100644 --- a/OpenRA.Mods.RA/Activities/CaptureBuilding.cs +++ b/OpenRA.Mods.RA/Activities/CaptureBuilding.cs @@ -33,16 +33,16 @@ namespace OpenRA.Mods.RA.Activities public IActivity Tick(Actor self) { if (target == null || target.IsDead) return NextActivity; - + var damage = -self.Info.Traits.Get().EngineerDamage; if (self.Owner.Stances[ target.Owner ] == Stance.Ally) { if (target.Health == target.Info.Traits.Get().HP) return NextActivity; - target.InflictDamage(self, -EngineerCapture.EngineerDamage, null); + target.InflictDamage(self, damage, null); } else { - if (target.Health - EngineerCapture.EngineerDamage <= 0) + if (target.Health - damage <= 0) { target.World.AddFrameEndTask(w => { // momentarily remove from world so the ownership queries don't get confused @@ -54,10 +54,10 @@ namespace OpenRA.Mods.RA.Activities t.OnCapture(target, self); }); - target.InflictDamage(self, target.Health - EngineerCapture.EngineerDamage, null); + target.InflictDamage(self, target.Health - damage, null); } else - target.InflictDamage(self, EngineerCapture.EngineerDamage, null); + target.InflictDamage(self, damage, null); } // the engineer is sacrificed. diff --git a/OpenRA.Mods.RA/EngineerCapture.cs b/OpenRA.Mods.RA/EngineerCapture.cs index 81cfa847f7..c25f121008 100644 --- a/OpenRA.Mods.RA/EngineerCapture.cs +++ b/OpenRA.Mods.RA/EngineerCapture.cs @@ -1,4 +1,4 @@ -#region Copyright & License Information +#region Copyright & License Information /* * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford. * This file is part of OpenRA. @@ -24,11 +24,13 @@ using OpenRA.Traits.Activities; namespace OpenRA.Mods.RA { - class EngineerCaptureInfo : TraitInfo { } + class EngineerCaptureInfo : TraitInfo + { + public readonly int EngineerDamage = 300; + } class EngineerCapture : IIssueOrder, IResolveOrder { - public const int EngineerDamage = 300; // todo: push into rules, as a weapon public Order IssueOrder(Actor self, int2 xy, MouseInput mi, Actor underCursor) { @@ -39,7 +41,7 @@ namespace OpenRA.Mods.RA // todo: other bits if (underCursor.Owner == null) return null; // don't allow capturing of bridges, etc. - var isCapture = underCursor.Health <= EngineerDamage && + var isCapture = underCursor.Health <= self.Info.Traits.Get().EngineerDamage && self.Owner.Stances[underCursor.Owner] != Stance.Ally; return new Order(isCapture ? "Capture" : "Infiltrate", diff --git a/mods/cnc/infantry.yaml b/mods/cnc/infantry.yaml index 3ae42833eb..c98a613a91 100644 --- a/mods/cnc/infantry.yaml +++ b/mods/cnc/infantry.yaml @@ -120,14 +120,11 @@ E6: Unit: HP: 25 Speed: 4 - AttackBase: - PrimaryWeapon: Chemspray - PrimaryOffset: 0,0,0,-5 - FireDelay: 3 TakeCover: Passenger: ColorOfCargoPip: Yellow EngineerCapture: + EngineerDamage: 9999999 -AutoTarget: RMBO: