Ejemplo 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);
    }
    // CALLBACKS

    private void OnUserStatsReceived(UserStatsReceived_t i_CallbackParams)
    {
        if (m_UserStatsManager == null || m_RemoteStatsMapper == null)
        {
            return;
        }

        if (i_CallbackParams.m_nGameID == ((ulong)m_GameId))
        {
            EResult callbackResult = i_CallbackParams.m_eResult;
            if (callbackResult == EResult.k_EResultOK)
            {
                for (int userStatIndex = 0; userStatIndex < m_UserStatsManager.statsCount; ++userStatIndex)
                {
                    UserStat userStat = m_UserStatsManager.GetStatByIndex(userStatIndex);
                    if (userStat != null)
                    {
                        UserStatType userStatType = userStat.type;
                        switch (userStatType)
                        {
                        case UserStatType.Int:

                            UserStatInt userStatInt = (UserStatInt)userStat;
                            CombineIntUserStat(userStatInt);

                            break;

                        case UserStatType.Bool:

                            UserStatBool userStatBool = (UserStatBool)userStat;
                            CombineBoolUserStat(userStatBool);

                            break;

                        case UserStatType.Float:

                            UserStatFloat userStatFloat = (UserStatFloat)userStat;
                            CombineFloatUserStat(userStatFloat);

                            break;

                        case UserStatType.String:

                            UserStatString userStatString = (UserStatString)userStat;
                            CombineStringUserStat(userStatString);

                            break;
                        }
                    }
                }

                m_StatsValid = true;
            }
        }
    }
    public void StoreStats()
    {
        if (!SteamManager.initializedMain)
        {
            return;
        }

        if (!m_StatsValid)
        {
            return;
        }

        for (int userStatIndex = 0; userStatIndex < m_UserStatsManager.statsCount; ++userStatIndex)
        {
            UserStat userStat = m_UserStatsManager.GetStatByIndex(userStatIndex);
            if (userStat != null)
            {
                UserStatType userStatType = userStat.type;
                switch (userStatType)
                {
                case UserStatType.Int:

                    UserStatInt userStatInt = (UserStatInt)userStat;
                    StoreIntUserStat(userStatInt);

                    break;

                case UserStatType.Bool:

                    UserStatBool userStatBool = (UserStatBool)userStat;
                    StoreBoolUserStat(userStatBool);

                    break;

                case UserStatType.Float:

                    UserStatFloat userStatFloat = (UserStatFloat)userStat;
                    StoreFloatUserStat(userStatFloat);

                    break;

                case UserStatType.String:

                    UserStatString userStatString = (UserStatString)userStat;
                    StoreStringUserStat(userStatString);

                    break;
                }
            }
        }

        SteamManager.SetStatsDirtyMain();
    }
Ejemplo n.º 4
0
 public void UnregisterStringStatHandler(int i_StatId, UserStatValueChangedEvent <string> i_Handler)
 {
     for (int userStatIndex = 0; userStatIndex < m_UserStats.Count; ++userStatIndex)
     {
         UserStat userStat = m_UserStats[userStatIndex];
         if (userStat != null)
         {
             int statId = userStat.hashId;
             if (statId == i_StatId)
             {
                 if (userStat.type == UserStatType.String)
                 {
                     UserStatString intUserStat = (UserStatString)userStat;
                     intUserStat.onValueChangedEvent -= i_Handler;
                     break;
                 }
             }
         }
     }
 }
Ejemplo n.º 5
0
    private void InternalUpdateStringStat(UserStatString i_Stat, string i_Value, StringStatUpdateFunction i_UpdateFunction)
    {
        switch (i_UpdateFunction)
        {
        case StringStatUpdateFunction.Add:
            i_Stat.Add(i_Value);
            break;

        case StringStatUpdateFunction.Max:
            i_Stat.Max(i_Value);
            break;

        case StringStatUpdateFunction.Min:
            i_Stat.Min(i_Value);
            break;

        case StringStatUpdateFunction.Set:
            i_Stat.Set(i_Value);
            break;
        }
    }
Ejemplo n.º 6
0
    public UserStatString GetStringStat(int i_StatId)
    {
        for (int userStatIndex = 0; userStatIndex < m_UserStats.Count; ++userStatIndex)
        {
            UserStat userStat = m_UserStats[userStatIndex];
            if (userStat != null)
            {
                int statId = userStat.hashId;
                if (statId == i_StatId)
                {
                    if (userStat.type == UserStatType.String)
                    {
                        UserStatString stringUserStat = (UserStatString)userStat;
                        return(stringUserStat);
                    }
                }
            }
        }

        return(null);
    }
Ejemplo n.º 7
0
    public bool TryGetStringStatValue(int i_StatId, out string o_Value)
    {
        o_Value = "";

        for (int userStatIndex = 0; userStatIndex < m_UserStats.Count; ++userStatIndex)
        {
            UserStat userStat = m_UserStats[userStatIndex];
            if (userStat != null)
            {
                int statId = userStat.hashId;
                if (statId == i_StatId)
                {
                    if (userStat.type == UserStatType.String)
                    {
                        UserStatString stringUserStat = (UserStatString)userStat;
                        o_Value = stringUserStat.stringValue;
                        return(true);
                    }
                }
            }
        }

        return(false);
    }
Ejemplo n.º 8
0
    // OVERRIDE

    public override void Initialize(StatsModule i_StatsModule)
    {
        m_Stat = i_StatsModule.GetStringStat(m_StatId);
    }
 private void StoreStringUserStat(UserStatString i_UserStatString)
 {
     // Steam does not implement string stats
 }
 private void CombineStringUserStat(UserStatString i_UserStatString)
 {
     // Steam does not implement string stats.
 }