Beispiel #1
0
    // STATIC INTERNALS

    private static UserStat CreateUserStat(UserStatDescriptor i_Descriptor)
    {
        UserStat userStat = null;

        string id = i_Descriptor.id;

        if (id != "")
        {
            switch (i_Descriptor.type)
            {
            case UserStatType.Bool:

                bool defaultBoolValue = i_Descriptor.defaultBoolValue;
                BooleanCombineFunction booleanCombineFunction = i_Descriptor.booleanCombineFunction;

                userStat = new UserStatBool(id, defaultBoolValue, booleanCombineFunction);

                break;

            case UserStatType.Float:

                float defaultFloatValue   = i_Descriptor.defaultFloatValue;
                bool  usingFloatLowLimit  = i_Descriptor.usingLowLimit;
                bool  usingFloatHighLimit = i_Descriptor.usingHighLimit;
                float minFloatValue       = i_Descriptor.minFloatValue;
                float maxFloatValue       = i_Descriptor.maxFloatValue;
                NumericCombineFunction floatCombineFunction = i_Descriptor.numericCombineFunction;

                userStat = new UserStatFloat(id, defaultFloatValue, usingFloatLowLimit, usingFloatHighLimit, minFloatValue, maxFloatValue, floatCombineFunction);

                break;

            case UserStatType.Int:

                int  defaultIntValue   = i_Descriptor.defaultIntValue;
                bool usingIntLowLimit  = i_Descriptor.usingLowLimit;
                bool usingIntHighLimit = i_Descriptor.usingHighLimit;
                int  minIntValue       = i_Descriptor.minIntValue;
                int  maxIntValue       = i_Descriptor.maxIntValue;
                NumericCombineFunction intCombineFunction = i_Descriptor.numericCombineFunction;

                userStat = new UserStatInt(id, defaultIntValue, usingIntLowLimit, usingIntHighLimit, minIntValue, maxIntValue, intCombineFunction);

                break;

            case UserStatType.String:

                string defaultStringValue = i_Descriptor.defaultStringValue;
                StringCombineFunction stringCombineFunction = i_Descriptor.stringCombineFunction;

                userStat = new UserStatString(id, defaultStringValue, stringCombineFunction);

                break;
            }
        }

        return(userStat);
    }
Beispiel #2
0
    // CTOR

    public UserStatFloat(string i_Id, float i_DefaultValue, bool i_UseLowLimit, bool i_UseHighLimit, float i_MinValue, float i_MaxValue, NumericCombineFunction i_CombineFunction)
        : base(i_Id)
    {
        m_Value = i_DefaultValue;

        m_UsingLowLimit  = i_UseLowLimit;
        m_UsingHighLimit = i_UseHighLimit;

        m_MinValue = i_MinValue;
        m_MaxValue = i_MaxValue;

        m_Value = InternalClamp(m_Value);

        m_NumericCombineFunction = i_CombineFunction;
    }