Make attack moving and guarding use a grouped order

This commit is contained in:
abcdefg30
2019-12-12 22:39:10 +01:00
committed by atlimit8
parent 78bf27709f
commit e57462e7ca
3 changed files with 4 additions and 8 deletions

View File

@@ -10,7 +10,7 @@
#endregion
using System.Collections.Generic;
using OpenRA.Graphics;
using System.Linq;
using OpenRA.Traits;
namespace OpenRA.Orders
@@ -53,8 +53,7 @@ namespace OpenRA.Orders
world.CancelInputMode();
var queued = mi.Modifiers.HasModifier(Modifiers.Shift);
foreach (var subject in Subjects)
yield return new Order(OrderName, subject, Target.FromCell(world, cell), queued);
yield return new Order(OrderName, null, Target.FromCell(world, cell), queued, null, Subjects.ToArray());
}
}

View File

@@ -34,9 +34,7 @@ namespace OpenRA.Mods.Common.Orders
world.CancelInputMode();
var queued = mi.Modifiers.HasModifier(Modifiers.Shift);
foreach (var subject in Subjects)
if (subject != target)
yield return new Order(OrderName, subject, Target.FromActor(target), queued);
yield return new Order(OrderName, null, Target.FromActor(target), queued, null, Subjects.Where(s => s != target).ToArray());
}
public override void Tick(World world)

View File

@@ -117,8 +117,7 @@ namespace OpenRA.Mods.Common.Traits
// Cells outside the playable area should be clamped to the edge for consistency with move orders
cell = world.Map.Clamp(cell);
foreach (var s in subjects)
yield return new Order(orderName, s.Actor, Target.FromCell(world, cell), queued);
yield return new Order(orderName, null, Target.FromCell(world, cell), queued, null, subjects.Select(s => s.Actor).ToArray());
}
}