diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index 828212e89f..310bdc07cc 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -27,12 +27,13 @@ namespace OpenRA.Traits [Flags] public enum ImpactType { + None = 0, Ground = 1, Water = 2, Air = 4, GroundHit = 8, WaterHit = 16, - AirHit = 32, + AirHit = 32 } public class AttackInfo diff --git a/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs b/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs index e22cf62c76..b966f11125 100644 --- a/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs +++ b/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs @@ -29,10 +29,10 @@ namespace OpenRA.Mods.RA public readonly string ImpactSound = null; [Desc("What impact types should this effect apply to.")] - public readonly ImpactType[] ValidImpactTypes = { ImpactType.Ground, ImpactType.Water, ImpactType.Air, ImpactType.GroundHit, ImpactType.WaterHit, ImpactType.AirHit }; + public readonly ImpactType ValidImpactTypes = ImpactType.Ground | ImpactType.Water | ImpactType.Air | ImpactType.GroundHit | ImpactType.WaterHit | ImpactType.AirHit; [Desc("What impact types should this effect NOT apply to.", "Overrides ValidImpactTypes.")] - public readonly ImpactType[] InvalidImpactTypes = { }; + public readonly ImpactType InvalidImpactTypes = ImpactType.None; public override void DoImpact(Target target, Actor firedBy, float firepowerModifier) { @@ -102,7 +102,7 @@ namespace OpenRA.Mods.RA var world = firedBy.World; var targetTile = world.Map.CellContaining(pos); var impactType = GetImpactType(world, targetTile, pos); - if ((!ValidImpactTypes.Contains(impactType)) || (InvalidImpactTypes.Contains(impactType))) + if (!ValidImpactTypes.HasFlag(impactType) || InvalidImpactTypes.HasFlag(impactType)) return false; return true;