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

@@ -56,25 +56,13 @@ namespace OpenRA.Mods.Common.Traits
static bool IsValidOrder(Actor self, Order order)
{
// Not targeting a frozen actor
if (order.ExtraData == 0 && order.TargetActor == null)
return false;
if (order.Target.Type == TargetType.FrozenActor)
return order.Target.FrozenActor.DamageState > DamageState.Undamaged;
if (order.ExtraData != 0)
{
// Targeted an actor under the fog
var frozenLayer = self.Owner.PlayerActor.TraitOrDefault<FrozenActorLayer>();
if (frozenLayer == null)
return false;
if (order.Target.Type == TargetType.Actor)
return order.TargetActor.GetDamageState() > DamageState.Undamaged;
var frozen = frozenLayer.FromID(order.ExtraData);
if (frozen == null)
return false;
return frozen.DamageState > DamageState.Undamaged;
}
return order.TargetActor.GetDamageState() > DamageState.Undamaged;
return false;
}
public string VoicePhraseForOrder(Actor self, Order order)