From f2dd5eb0a3c126a5a5c30d7abd48127534169317 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sat, 24 Dec 2011 12:19:59 +1300 Subject: [PATCH] simplify UOG --- OpenRA.Game/Orders/UnitOrderGenerator.cs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/OpenRA.Game/Orders/UnitOrderGenerator.cs b/OpenRA.Game/Orders/UnitOrderGenerator.cs index ae1db35602..bc48460593 100644 --- a/OpenRA.Game/Orders/UnitOrderGenerator.cs +++ b/OpenRA.Game/Orders/UnitOrderGenerator.cs @@ -21,11 +21,7 @@ namespace OpenRA.Orders { var underCursor = world.FindUnitsAtMouse(mi.Location) .Where(a => a.HasTrait()) - .OrderByDescending( - a => - a.Info.Traits.Contains() - ? a.Info.Traits.Get().Priority - : int.MinValue) + .OrderByDescending(a => a.SelectionPriority()) .FirstOrDefault(); var orders = world.Selection.Actors @@ -55,7 +51,7 @@ namespace OpenRA.Orders var underCursor = world.FindUnitsAtMouse(mi.Location) .Where(a => a.HasTrait()) - .OrderByDescending(a => a.Info.Traits.Contains() ? a.Info.Traits.Get().Priority : int.MinValue) + .OrderByDescending(a => a.SelectionPriority()) .FirstOrDefault(); if (mi.Modifiers.HasModifier(Modifiers.Shift) || !world.Selection.Actors.Any()) @@ -130,4 +126,13 @@ namespace OpenRA.Orders } } } + + public static class SelectableExts + { + public static int SelectionPriority(this Actor a) + { + var selectableInfo = a.Info.Traits.GetOrDefault(); + return selectableInfo != null ? selectableInfo.Priority : int.MinValue; + } + } }