mod UOG to create a group from all actors that generate orders together for a ui action

This commit is contained in:
Chris Forbes
2010-05-16 11:35:02 +12:00
parent 6c6a121746
commit 39c5877ebc

View File

@@ -30,12 +30,18 @@ namespace OpenRA.Orders
{ {
public IEnumerable<Order> Order( World world, int2 xy, MouseInput mi ) public IEnumerable<Order> Order( World world, int2 xy, MouseInput mi )
{ {
foreach( var unit in Game.controller.selection.Actors ) var orders = Game.controller.selection.Actors
{ .Select(a => a.Order(xy, mi))
var ret = unit.Order( xy, mi ); .Where(o => o != null)
if( ret != null ) .ToArray();
yield return ret;
} var actorsInvolved = orders.Select(o => o.TargetActor).Distinct();
if (actorsInvolved.Any())
yield return new Order("CreateGroup", actorsInvolved.First().Owner.PlayerActor,
string.Join(",", actorsInvolved.Select(a => a.ActorID.ToString()).ToArray()));
foreach (var o in orders)
yield return o;
} }
public void Tick( World world ) {} public void Tick( World world ) {}