Migrate frozen actors from ExtraData to Target.

This commit is contained in:
Paul Chote
2017-10-15 19:37:15 +00:00
committed by Pavel Penev
parent 29c423772f
commit 5f9a67ed87
6 changed files with 26 additions and 88 deletions

View File

@@ -159,28 +159,6 @@ namespace OpenRA.Mods.Common.Traits
self.CancelActivity();
}
static Target TargetFromOrder(Actor self, Order order)
{
// Not targeting a frozen actor
if (order.ExtraData == 0)
return Target.FromOrder(self.World, order);
// Targeted an actor under the fog
var frozenLayer = self.Owner.PlayerActor.TraitOrDefault<FrozenActorLayer>();
if (frozenLayer == null)
return Target.Invalid;
var frozen = frozenLayer.FromID(order.ExtraData);
if (frozen == null)
return Target.Invalid;
// Target is still alive - resolve the real order
if (frozen.Actor != null && frozen.Actor.IsInWorld)
return Target.FromActor(frozen.Actor);
return Target.Invalid;
}
string IOrderVoice.VoicePhraseForOrder(Actor self, Order order)
{
return order.OrderString == attackOrderName || order.OrderString == forceAttackOrderName ? Info.Voice : null;