diff --git a/OpenRA.Mods.Common/Warheads/Warhead.cs b/OpenRA.Mods.Common/Warheads/Warhead.cs index a471a97925..d336b38ebd 100644 --- a/OpenRA.Mods.Common/Warheads/Warhead.cs +++ b/OpenRA.Mods.Common/Warheads/Warhead.cs @@ -18,10 +18,10 @@ namespace OpenRA.Mods.Common.Warheads public abstract class Warhead : IWarhead { [Desc("What types of targets are affected.")] - public readonly string[] ValidTargets = { "Ground", "Water" }; + public readonly HashSet ValidTargets = new HashSet { "Ground", "Water" }; [Desc("What types of targets are unaffected.", "Overrules ValidTargets.")] - public readonly string[] InvalidTargets = { }; + public readonly HashSet InvalidTargets = new HashSet(); [Desc("What diplomatic stances are affected.")] public readonly Stance ValidStances = Stance.Ally | Stance.Neutral | Stance.Enemy; @@ -33,16 +33,9 @@ namespace OpenRA.Mods.Common.Warheads public readonly int Delay = 0; int IWarhead.Delay { get { return Delay; } } - HashSet validTargetSet; - HashSet invalidTargetSet; - public bool IsValidTarget(IEnumerable targetTypes) { - if (validTargetSet == null) - validTargetSet = new HashSet(ValidTargets); - if (invalidTargetSet == null) - invalidTargetSet = new HashSet(InvalidTargets); - return validTargetSet.Overlaps(targetTypes) && !invalidTargetSet.Overlaps(targetTypes); + return ValidTargets.Overlaps(targetTypes) && !InvalidTargets.Overlaps(targetTypes); } /// Applies the warhead's effect against the target.