From 7b8a3c4968b82759dd3c7a75af491b608d013581 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 28 Dec 2009 20:24:06 +1300 Subject: [PATCH] fixing up engineer behavior --- OpenRa.Game/MainWindow.cs | 4 ++++ OpenRa.Game/Traits/Activities/CaptureBuilding.cs | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/OpenRa.Game/MainWindow.cs b/OpenRa.Game/MainWindow.cs index c110d5cf9a..e49f0a60ba 100755 --- a/OpenRa.Game/MainWindow.cs +++ b/OpenRa.Game/MainWindow.cs @@ -129,6 +129,10 @@ namespace OpenRa.Game Game.LocalPlayer.IsReady ? "ready" : "not ready") { IsImmediate = true }); } + /* temporary hack: DO NOT LEAVE IN */ + if (e.KeyCode == Keys.F2) + Game.LocalPlayer = Game.players[(Game.LocalPlayer.Index + 1) % 4]; + if (!Game.chat.isChatting) if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) Game.controller.DoControlGroup( (int)e.KeyCode - (int)Keys.D0, (Modifiers)(int)e.Modifiers ); diff --git a/OpenRa.Game/Traits/Activities/CaptureBuilding.cs b/OpenRa.Game/Traits/Activities/CaptureBuilding.cs index f074284346..6cb033960c 100644 --- a/OpenRa.Game/Traits/Activities/CaptureBuilding.cs +++ b/OpenRa.Game/Traits/Activities/CaptureBuilding.cs @@ -21,19 +21,21 @@ namespace OpenRa.Game.Traits.Activities { if (target.Health == target.Info.Strength) return NextActivity; - target.Health += EngineerCapture.EngineerDamage; + target.InflictDamage(self, -EngineerCapture.EngineerDamage, Rules.WarheadInfo["Super"]); } else { - target.Health -= EngineerCapture.EngineerDamage; - if (target.Health <= 0) + if (target.Health - EngineerCapture.EngineerDamage <= 0) { target.Owner = self.Owner; - target.Health = EngineerCapture.EngineerDamage; + target.InflictDamage(self, target.Health - EngineerCapture.EngineerDamage, Rules.WarheadInfo["Super"]); } + else + target.InflictDamage(self, EngineerCapture.EngineerDamage, Rules.WarheadInfo["Super"]); } // the engineer is sacrificed. + self.Health = 0; Game.world.AddFrameEndTask(w => w.Remove(self)); return NextActivity;