diff --git a/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs b/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs index 610ea7ce3..f5b7c4323 100644 --- a/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs +++ b/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs @@ -107,7 +107,7 @@ namespace Barotrauma public string[] propertyNames; private object[] propertyEffects; - private PropertyConditional.Comparison conditionalComparison = PropertyConditional.Comparison.And; + private PropertyConditional.Comparison conditionalComparison = PropertyConditional.Comparison.Or; private List propertyConditionals; private bool setValue; @@ -465,6 +465,13 @@ namespace Barotrauma if (target == null || target.SerializableProperties == null) { continue; } foreach (PropertyConditional pc in propertyConditionals) { + if (!string.IsNullOrEmpty(pc.TargetItemComponentName)) + { + if (!(target is ItemComponent ic) || ic.GetType().ToString() != pc.TargetItemComponentName) + { + continue; + } + } if (pc.Matches(target)) { return true; } } } @@ -475,6 +482,13 @@ namespace Barotrauma if (target == null || target.SerializableProperties == null) { continue; } foreach (PropertyConditional pc in propertyConditionals) { + if (!string.IsNullOrEmpty(pc.TargetItemComponentName)) + { + if (!(target is ItemComponent ic) || ic.GetType().ToString() != pc.TargetItemComponentName) + { + continue; + } + } if (!pc.Matches(target)) { return false; } } }