示例#1
0
    void AssignLeaderDisplayBoxTexts(EUserStats userStat)
    {
        int rankLoopCounter = 0;

        foreach (GameObject box in LeaderRowBoxes)
        {
            var texts = box.GetComponentsInChildren <Text>();
            foreach (Text currentText in texts)
            {
                switch (currentText.name)
                {
                case nameof(ELeaderboardBoxTexts.LeaderboardRankingLabel):
                    currentText.text = (rankLoopCounter + 1).ToString();
                    break;

                case nameof(ELeaderboardBoxTexts.LeaderboardPlayerNameLabel):
                    currentText.text = usernames[rankLoopCounter];
                    break;

                case nameof(ELeaderboardBoxTexts.LeaderboardStatValueLabel):
                    currentText.text = statList[rankLoopCounter].ToString();
                    break;

                default:
                    break;
                }
            }

            rankLoopCounter += 1;
        }
    }
示例#2
0
    public async Task UpdatePlayerStatAsync(EUserStats userStat, PlayerStatBlock statBlock)
    {
        DbCommand dbCommand   = ConnectionManager.GetConnection().CreateCommand();
        string    updateQuery = "UPDATE UserStats SET " + userStat.ToString() + " = @" + userStat.ToString() + " WHERE userID = @ID;";

        ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand);
        switch (userStat)
        {
        case EUserStats.distanceTraveled:
            ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalDistanceTraveled, dbCommand);
            break;

        case EUserStats.goldEarned:
            ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGoldCollected, dbCommand);
            break;

        case EUserStats.nodesHarvested:
            ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGatheringPointsHarvested, dbCommand);
            break;

        default:
            break;
        }


        dbCommand.CommandText = updateQuery;
        await Task.Run(() => dbCommand.ExecuteNonQuery());

        dbCommand.Dispose();
    }
示例#3
0
    public async Task QueryRankingStatAsync(EUserStats userStat, List <string> usernames, IList statList)
    {
        ConnectionManager.GetCMInstance();
        DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand();
        //Variables don't seem to work with the formating for this query.
        string selectQuery = "SELECT UserStats." + userStat.ToString() + ", UserAccounts.username FROM UserStats INNER JOIN UserAccounts ON UserStats.UserID = UserAccounts.ID ORDER BY " + userStat.ToString() + " desc;";

        dbCommand.CommandText = selectQuery;
        Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync();
        DbDataReader        reader     = await readerTask;

        while (await reader.ReadAsync())
        {
            switch (userStat)
            {
            case EUserStats.distanceTraveled:
                statList.Add(reader.GetFloat(0));
                break;

            case EUserStats.goldEarned:
                statList.Add(reader.GetInt32(0));
                break;

            case EUserStats.nodesHarvested:
                statList.Add(reader.GetInt32(0));
                break;

            default:
                break;
            }
            usernames.Add(reader.GetString(1));
        }
        reader.Close();
        reader.Dispose();
        dbCommand.Dispose();
    }