Example #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);
    }
Example #2
0
    // LOGIC

    public void Initialize()
    {
        m_Database = Resources.Load <UserStatsDatabase>(m_DatabaseResourcePath);

        if (m_Database != null)
        {
            for (int userStatIndex = 0; userStatIndex < m_Database.statsCount; ++userStatIndex)
            {
                UserStatDescriptor descriptor = m_Database.GetUserStat(userStatIndex);
                if (descriptor != null)
                {
                    UserStat userStat = CreateUserStat(descriptor);
                    if (userStat != null)
                    {
                        m_UserStats.Add(userStat);
                    }
                }
            }
        }
        else
        {
            LogManager.LogWarning(this, "Database could not be loaded.");
        }
    }