public float GetValue(int prefabVariantIndex, bool useExpectedValue = false) { if (prefabVariantValueMappings == null || prefabVariantValueMappings.Count == 0) { return(useExpectedValue ? defaultValueCurve.ExpectedValue() : defaultValueCurve.EvalRandom()); } PrefabVariantValueMapping valueMapping = prefabVariantValueMappings.Find(x => x.prefabVariantIndex == prefabVariantIndex); if (valueMapping == null) { return(useExpectedValue ? defaultValueCurve.ExpectedValue() : defaultValueCurve.EvalRandom()); } return(useExpectedValue ? valueMapping.valueCurve.ExpectedValue() : valueMapping.valueCurve.EvalRandom()); }
// Returns PositiveInfinity if the curve is null public float GetValue(int prefabVariantIndex, ChangeType changeType, bool useExpectedValue = false) { if (modifierType == ModifierType.OnAction) { MinMaxCurve minMaxCurve = defaultLevelCurveChange; if (prefabVariantValueMappings != null && prefabVariantValueMappings.Count > 0) { PrefabVariantValueMapping valueMapping = prefabVariantValueMappings.Find(x => x.prefabVariantIndex == prefabVariantIndex); if (valueMapping != null) { minMaxCurve = valueMapping.levelCurveChange; } } if (minMaxCurve == null) { return(float.PositiveInfinity); } return(useExpectedValue ? minMaxCurve.ExpectedValue() : minMaxCurve.EvalRandom()); } // Always Modifier Type - does not use curves float changeValue = 0f; if (prefabVariantValueMappings != null && prefabVariantValueMappings.Count > 0) { PrefabVariantValueMapping valueMapping = prefabVariantValueMappings.Find(x => x.prefabVariantIndex == prefabVariantIndex); if (valueMapping != null) { switch (changeType) { case ChangeType.Level: changeValue = valueMapping.levelChange; break; case ChangeType.Min: changeValue = valueMapping.minChange; break; case ChangeType.Max: changeValue = valueMapping.maxChange; break; } return(changeValue); } } switch (changeType) { case ChangeType.Level: changeValue = defaultLevelChange; break; case ChangeType.Min: changeValue = defaultMinChange; break; case ChangeType.Max: changeValue = defaultMaxChange; break; } return(changeValue); }