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;