Unify TargetFlash handling around Targets.

This commit is contained in:
Paul Chote
2018-05-27 11:36:08 +00:00
committed by reaperrr
parent d0be594609
commit 768265bbd2
5 changed files with 14 additions and 29 deletions

View File

@@ -200,17 +200,21 @@ namespace OpenRA.Mods.Common.Widgets
continue;
if (!flashed && !o.SuppressVisualFeedback)
{
var visualTargetActor = o.VisualFeedbackTarget ?? o.TargetActor;
if (visualTargetActor != null)
{
var visualTarget = o.VisualFeedbackTarget.Type != TargetType.Invalid ? o.VisualFeedbackTarget : o.Target;
if (visualTarget.Type == TargetType.Actor)
{
world.AddFrameEndTask(w => w.Add(new FlashTarget(visualTargetActor)));
world.AddFrameEndTask(w => w.Add(new FlashTarget(visualTarget.Actor)));
flashed = true;
}
else if (o.TargetLocation != CPos.Zero)
else if (visualTarget.Type == TargetType.FrozenActor)
{
var pos = world.Map.CenterOfCell(cell);
world.AddFrameEndTask(w => w.Add(new SpriteEffect(pos, world, "moveflsh", "idle", "moveflash", true, true)));
visualTarget.FrozenActor.Flash();
flashed = true;
}
else if (visualTarget.Type == TargetType.Terrain)
{
world.AddFrameEndTask(w => w.Add(new SpriteEffect(visualTarget.CenterPosition, world, "moveflsh", "idle", "moveflash", true, true)));
flashed = true;
}
}