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

@@ -72,29 +72,14 @@ namespace OpenRA.Mods.Cnc.Traits
if (IsTraitDisabled)
return false;
// Not targeting an actor
if (order.ExtraData == 0 && order.TargetActor == null)
return false;
IEnumerable<string> targetTypes = null;
if (order.Target.Type == TargetType.FrozenActor)
targetTypes = order.Target.FrozenActor.TargetTypes;
IEnumerable<string> targetTypes;
if (order.ExtraData != 0)
{
// Targeted an actor under the fog
var frozenLayer = self.Owner.PlayerActor.TraitOrDefault<FrozenActorLayer>();
if (frozenLayer == null)
return false;
var frozen = frozenLayer.FromID(order.ExtraData);
if (frozen == null)
return false;
targetTypes = frozen.TargetTypes;
}
else
if (order.Target.Type == TargetType.Actor)
targetTypes = order.TargetActor.GetEnabledTargetTypes();
return Info.Types.Overlaps(targetTypes);
return targetTypes != null && Info.Types.Overlaps(targetTypes);
}
public string VoicePhraseForOrder(Actor self, Order order)