Пример #1
0
        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());
        }
Пример #2
0
        // 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);
        }