Exemplo n.º 1
0
        protected virtual Enum ParseEnum(Type type)
        {
            var enumNames = type.GetEnumNames();
            //TODO: support for enums other than int
            var enumValues = type.GetEnumValues().Cast <int>().Select(x => x.ToString()).ToArray();

            var zipped = enumNames.Zip(enumValues);

            IDictionary <string, string> values = zipped
                                                  .ToDictionary <(string, string), string, string>(pair => pair.Item1, pair => pair.Item2);

            AccessModifier accessModifier = ReflectionUtility.GetAccessModifier(type);

            var parameters = new EnumParameters
            {
                Name           = type.Name,
                Values         = values,
                AccessModifier = accessModifier,
                FullName       = type.FullName,
                RawType        = type
            };

            var @enum = new Enum(parameters);

            return(@enum);
        }
Exemplo n.º 2
0
 public float GetParameter(EnumParameters _key)
 {
     if (parameters.ContainsKey(_key))
     {
         return(parameters[_key]);
     }
     else
     {
         return(0.0f);
     }
 }
Exemplo n.º 3
0
    public float GetSelfParameter(EnumParameters _id)
    {
        var param = selfParameters.Find(x => x.id == _id);

        if (param != null)
        {
            return(param.value);
        }
        else
        {
            return(0.0f);
        }
    }
Exemplo n.º 4
0
    public void SetDeltaParameter(EnumParameters _key, float _value)
    {
        var max = GetMaxParameter(_key);

        parameters.AddOrUpdate(_key, _value);

        if (GetParameter(_key) > max)
        {
            parameters[_key] = max;
        }

        if (_key == EnumParameters.speed && isPlayer)
        {
            EventManager.CallOnPlayerChangeSpeed();
        }
    }
Exemplo n.º 5
0
    public float GetParameter(EnumParameters _param)
    {
        if (parameters.Count < 1)
        {
            UpdateParametersDictionary();
        }

        //TODO:
        //Добавить поиск по бонусам к параметрам в инвентаре

        if (parameters.ContainsKey(_param))
        {
            return(parameters[_param]);
        }
        else
        {
            return(0.0f);
        }
    }
Exemplo n.º 6
0
    public void SetParameter(EnumParameters _key, float _value)
    {
        var max = GetMaxParameter(_key);

        if (!parameters.ContainsKey(_key))
        {
            parameters.Add(_key, _value);
        }
        else
        {
            parameters[_key] = _value;
        }

        if (GetParameter(_key) > max)
        {
            parameters[_key] = max;
        }

        if (_key == EnumParameters.speed && isPlayer)
        {
            EventManager.CallOnPlayerChangeSpeed();
        }
    }
Exemplo n.º 7
0
 public Enum(EnumParameters parameters) : base(parameters)
 {
     Values = parameters.Values;
 }
Exemplo n.º 8
0
 public ParameterData(EnumParameters _id, float _value = 0.0f)
 {
     id    = _id;
     value = _value;
 }
Exemplo n.º 9
0
 public float GetCurrentParameterNormalize(EnumParameters _param)
 {
     return(Mathf.InverseLerp(0.0f, GetMaxParameter(_param), GetParameter(_param)));
 }
Exemplo n.º 10
0
 public static void AddOrUpdate(this Dictionary <EnumParameters, float> _dictionary, EnumParameters _key, float _value)
 {
     if (_dictionary.ContainsKey(_key))      //Ключ уже есть в словаре - обновляем значение
     {
         _dictionary[_key] += _value;
     }
     else                                    //Ключа в словаре нет, добавляем новый ключ
     {
         _dictionary.Add(_key, _value);
     }
 }
Exemplo n.º 11
0
 public ParameterData(EnumParameters _param, float _value)
 {
     id    = _param.ToString();
     value = _value;
 }