diff --git a/OpenRA.Mods.Cnc/Traits/Disguise.cs b/OpenRA.Mods.Cnc/Traits/Disguise.cs index 08def412a1..82e6ec8ff9 100644 --- a/OpenRA.Mods.Cnc/Traits/Disguise.cs +++ b/OpenRA.Mods.Cnc/Traits/Disguise.cs @@ -189,7 +189,10 @@ namespace OpenRA.Mods.Cnc.Traits } else { - var tooltip = target.TraitsImplementing().FirstOrDefault(); + var tooltip = target.TraitsImplementing().FirstEnabledTraitOrDefault(); + if (tooltip == null) + throw new ArgumentNullException("tooltip", "Missing tooltip or invalid target."); + AsPlayer = tooltip.Owner; AsActor = target.Info; AsTooltipInfo = tooltip.TooltipInfo; @@ -213,7 +216,7 @@ namespace OpenRA.Mods.Cnc.Traits AsPlayer = newOwner; AsActor = actorInfo; - AsTooltipInfo = actorInfo.TraitInfos().FirstOrDefault(); + AsTooltipInfo = actorInfo.TraitInfos().FirstOrDefault(info => info.EnabledByDefault); HandleDisguise(oldEffectiveActor, oldEffectiveOwner, oldDisguiseSetting); }