コード例 #1
0
ファイル: BaseGameMode.cs プロジェクト: Ailtop/RustDocuments
 public GameMode.PlayerScore GetPlayerScoreForPlayer(BasePlayer player)
 {
     GameMode.PlayerScore playerScore = null;
     foreach (GameMode.PlayerScore playerScore2 in gameModeScores.playerScores)
     {
         if (playerScore2.userid == player.userID)
         {
             playerScore = playerScore2;
             break;
         }
     }
     if (playerScore == null)
     {
         playerScore            = new GameMode.PlayerScore();
         playerScore.ShouldPool = false;
         playerScore.playerName = player.displayName;
         playerScore.userid     = player.userID;
         playerScore.scores     = new List <int>();
         string[] array = scoreColumns;
         for (int i = 0; i < array.Length; i++)
         {
             string text = array[i];
             playerScore.scores.Add(0);
         }
         gameModeScores.playerScores.Add(playerScore);
     }
     return(playerScore);
 }
コード例 #2
0
ファイル: BaseGameMode.cs プロジェクト: Ailtop/RustDocuments
 public void CopyGameModeScores(GameMode from, GameMode to)
 {
     to.teams.Clear();
     to.scoreColumns.Clear();
     to.playerScores.Clear();
     foreach (GameMode.TeamInfo team in from.teams)
     {
         GameMode.TeamInfo teamInfo = new GameMode.TeamInfo();
         teamInfo.score = team.score;
         to.teams.Add(teamInfo);
     }
     foreach (GameMode.ScoreColumn scoreColumn2 in from.scoreColumns)
     {
         GameMode.ScoreColumn scoreColumn = new GameMode.ScoreColumn();
         scoreColumn.name = scoreColumn2.name;
         to.scoreColumns.Add(scoreColumn);
     }
     foreach (GameMode.PlayerScore playerScore2 in from.playerScores)
     {
         GameMode.PlayerScore playerScore = new GameMode.PlayerScore();
         playerScore.playerName = playerScore2.playerName;
         playerScore.userid     = playerScore2.userid;
         playerScore.team       = playerScore2.team;
         playerScore.scores     = new List <int>();
         foreach (int score in playerScore2.scores)
         {
             playerScore.scores.Add(score);
         }
         to.playerScores.Add(playerScore);
     }
 }
コード例 #3
0
ファイル: BaseGameMode.cs プロジェクト: Ailtop/RustDocuments
    public virtual bool IsDraw()
    {
        if (IsTeamGame())
        {
            int num  = -1;
            int num2 = 1000000;
            for (int i = 0; i < teams.Length; i++)
            {
                int teamScore = GetTeamScore(i);
                if (teamScore < num2)
                {
                    num2 = teamScore;
                }
                if (teamScore > num)
                {
                    num = teamScore;
                }
            }
            if (num == num2)
            {
                return(true);
            }
            return(false);
        }
        int num3 = -1;
        int num4 = 0;
        int num5 = ScoreColumnIndex(victoryScoreName);

        if (num5 != -1)
        {
            for (int j = 0; j < gameModeScores.playerScores.Count; j++)
            {
                GameMode.PlayerScore playerScore = gameModeScores.playerScores[j];
                if (playerScore.scores[num5] > num3)
                {
                    num3 = playerScore.scores[num5];
                    num4 = 1;
                }
                else if (playerScore.scores[num5] == num3)
                {
                    num4++;
                }
            }
        }
        if (num3 != 0)
        {
            return(num4 > 1);
        }
        return(true);
    }
コード例 #4
0
ファイル: BaseGameMode.cs プロジェクト: Ailtop/RustDocuments
    public virtual string GetWinnerName()
    {
        int num  = -1;
        int num2 = -1;

        if (IsTeamGame())
        {
            for (int i = 0; i < teams.Length; i++)
            {
                int teamScore = GetTeamScore(i);
                if (teamScore > num)
                {
                    num  = teamScore;
                    num2 = i;
                }
            }
            if (num2 == -1)
            {
                return("NO ONE");
            }
            return(teams[num2].name);
        }
        int num3 = ScoreColumnIndex(victoryScoreName);

        if (num3 != -1)
        {
            for (int j = 0; j < gameModeScores.playerScores.Count; j++)
            {
                GameMode.PlayerScore playerScore = gameModeScores.playerScores[j];
                if (playerScore.scores[num3] > num)
                {
                    num  = playerScore.scores[num3];
                    num2 = j;
                }
            }
        }
        if (num2 != -1)
        {
            return(gameModeScores.playerScores[num2].playerName);
        }
        return("");
    }
コード例 #5
0
ファイル: BaseGameMode.cs プロジェクト: Ailtop/RustDocuments
 public virtual void OnPlayerDisconnected(BasePlayer player)
 {
     if (gameModeScores == null || base.isClient)
     {
         return;
     }
     GameMode.PlayerScore playerScore = null;
     foreach (GameMode.PlayerScore playerScore2 in gameModeScores.playerScores)
     {
         if (playerScore2.userid == player.userID)
         {
             playerScore = playerScore2;
             break;
         }
     }
     if (playerScore != null)
     {
         gameModeScores.playerScores.Remove(playerScore);
     }
 }
コード例 #6
0
ファイル: BaseGameMode.cs プロジェクト: Ailtop/RustDocuments
 public virtual bool DidPlayerWin(BasePlayer player)
 {
     if (player == null)
     {
         return(false);
     }
     if (IsDraw())
     {
         return(false);
     }
     if (IsTeamGame())
     {
         GameMode.PlayerScore playerScoreForPlayer = GetPlayerScoreForPlayer(player);
         if (playerScoreForPlayer.team == -1)
         {
             return(false);
         }
         return(playerScoreForPlayer.team == GetWinningTeamIndex());
     }
     return(GetPlayerRank(player) == 1);
 }