From e2af08f8122858a3844b7367190a6755622662d6 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 6 Feb 2011 13:15:47 +1300 Subject: [PATCH] Add a scatter key --- OpenRA.Mods.RA/Move/Mobile.cs | 5 +++++ OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/OpenRA.Mods.RA/Move/Mobile.cs b/OpenRA.Mods.RA/Move/Mobile.cs index f685b96804..20d512d0ba 100755 --- a/OpenRA.Mods.RA/Move/Mobile.cs +++ b/OpenRA.Mods.RA/Move/Mobile.cs @@ -283,6 +283,11 @@ namespace OpenRA.Mods.RA.Move if (order.OrderString == "Stop") { self.CancelActivity(); + } + + if (order.OrderString == "Scatter") + { + OnNudge(self, self); } } diff --git a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs index 8e08bdf11a..b85df3980a 100644 --- a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs +++ b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs @@ -14,6 +14,7 @@ namespace OpenRA.Mods.RA.Widgets public char AttackMoveKey = 'a'; public char StopKey = 's'; + public char ScatterKey = 'x'; public readonly OrderManager OrderManager; [ObjectCreator.UseCtor] @@ -46,6 +47,9 @@ namespace OpenRA.Mods.RA.Widgets if (e.KeyChar == StopKey) return PerformStop(); + + if (e.KeyChar == ScatterKey) + return PerformScatter(); } return false; @@ -67,5 +71,14 @@ namespace OpenRA.Mods.RA.Widgets return true; } + + bool PerformScatter() + { + /* issue a stop order to everyone. */ + foreach (var a in World.Selection.Actors) + World.IssueOrder(new Order("Scatter", a, false)); + + return true; + } } } \ No newline at end of file