move flash

This commit is contained in:
Chris Forbes
2009-12-22 23:19:00 +13:00
parent 96728262e6
commit 6af7d83fec
4 changed files with 56 additions and 15 deletions

View File

@@ -25,17 +25,24 @@ namespace OpenRa.Game
void ApplyOrders(float2 xy, MouseInput mi)
{
var doVoice = null as Actor;
if (orderGenerator != null)
foreach (var order in orderGenerator.Order(xy.ToInt2(), mi))
{
AddOrder( order );
if (order.Subject != null && order.Player == Game.LocalPlayer)
doVoice = order.Subject;
}
if (orderGenerator == null) return;
if (doVoice != null && doVoice.traits.Contains<Unit>())
Sound.PlayVoice("Move", doVoice);
var orders = orderGenerator.Order(xy.ToInt2(), mi).ToArray();
recentOrders.AddRange( orders );
var voicedActor = orders.Select(o => o.Subject)
.FirstOrDefault(a => a.Owner == Game.LocalPlayer && a.traits.Contains<Unit>());
var isMove = orders.Any(o => o.OrderString == "Move");
var isAttack = orders.Any( o => o.OrderString == "Attack" );
if (voicedActor != null)
{
Sound.PlayVoice(isAttack ? "Attack" : "Move", voicedActor);
if (isMove)
Game.world.Add(new Effects.MoveFlash(Game.CellSize * xy));
}
}
public void AddOrder(Order o) { recentOrders.Add(o); }