Exemplo n.º 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);
    }
    // CTOR

    public UserStatString(string i_Id, string i_DefaultValue, StringCombineFunction i_CombineFunction)
        : base(i_Id)
    {
        m_Value = i_DefaultValue;
        m_StringCombineFunction = i_CombineFunction;
    }