Migrate frozen actors from ExtraData to Target.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user