public void EndGameMessageReceived(Player winner) { debugOut("Endgame Message Received"); mainGame.GeneralMessageQueue.Enqueue("Game Over!"); client.frameEndgame.populate(); client.frameController.activate(client.frameEndgame); if (winner.ID == clientData.CurrentPlayer.ID) { AudioHelper.play(ContentStore.soundVictory); } Thread.Sleep(3000); int maxScore = -1; PlayerContainer winners = new PlayerContainer(); foreach (Score score in network.Scores.GetAllScores()) { if (maxScore == -1 || score.Value > maxScore) { maxScore = score.Value; } } foreach (Score score in network.Scores.GetAllScores()) { if (score.Value == maxScore) { winners.AddPlayer(network.Players.GetPlayerByID(score.ID)); } } String message = ""; if (winners.GetPlayers().Count == 1) { message = winners.GetPlayers()[0].Name + " won with a score of " + maxScore + "!"; } else if (winners.GetPlayers().Count == 2) { message = winners.GetPlayers()[0].Name + " and " + winners.GetPlayers()[1].Name + " drew with a score of " + maxScore + "!"; } else if (winners.GetPlayers().Count > 2) { for (int i = 0; i < winners.GetPlayers().Count - 1; i++) { message += winners.GetPlayers()[i].Name + ", "; } message += " and " + winners.GetPlayers()[winners.GetPlayers().Count - 1].Name + " drew with a score of " + maxScore + "!"; } mainGame.GeneralMessageQueue.Enqueue(message); }
public void EndGame() { network.SendEndGameMessage(winner); if (MainGame.Instance.HostOnly) { MainGame.Instance.GeneralMessageQueue.Enqueue("Game over!"); } Thread.Sleep(3000); int maxScore = -1; PlayerContainer winners = new PlayerContainer(); foreach (Score score in network.Scores.GetAllScores()) { if (maxScore == -1 || score.Value > maxScore) { maxScore = score.Value; } } foreach (Score score in network.Scores.GetAllScores()) { if (score.Value == maxScore) { winners.AddPlayer(network.Players.GetPlayerByID(score.ID)); } } String message = ""; if (winners.GetPlayers().Count == 1) { message = winners.GetPlayers()[0].Name + " won with a score of " + maxScore + "!"; } else if (winners.GetPlayers().Count == 2) { message = winners.GetPlayers()[0].Name + " and " + winners.GetPlayers()[1].Name + " drew with a score of " + maxScore + "!"; } else if (winners.GetPlayers().Count > 2) { for (int i = 0; i < winners.GetPlayers().Count - 1; i++) { message += winners.GetPlayers()[i].Name + ", "; } message += " and " + winners.GetPlayers()[winners.GetPlayers().Count - 1].Name + " drew with a score of " + maxScore + "!"; } if (MainGame.Instance.HostOnly) { MainGame.Instance.GeneralMessageQueue.Enqueue(message); } }
public Boolean LoadNetworkState() { // TODO var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var file = Path.Combine(documents, "LastNetworkState.xml"); XmlReader reader; try { reader = XmlReader.Create(file); } catch { return(false); } using (reader) { while (reader.Read()) { if (reader.IsStartElement()) { switch (reader.Name) { case "Variables": break; case "Server": serverIP = reader ["serverIP"]; serverPort = Int32.Parse(reader ["serverPort"]); serverPIN = Int32.Parse(reader ["serverPIN"]); lastPlayerID = Int32.Parse(reader ["lastPlayerID"]); break; case "Client": clientName = reader["name"]; break; case "Common": listenPort = Int32.Parse(reader["listenPort"]); runState = (State)Int32.Parse(reader["runState"]); // HOPE THIS IS RIGHT. J break; case "Player": Player player = new Player(reader ["playerName"], Int32.Parse(reader ["playerID"])); player.Bid = Int32.Parse(reader ["playerBid"]); player.IP = reader ["playerIP"]; player.Port = Int32.Parse(reader ["playerPort"]); player.PIN = Int32.Parse(reader ["serverPIN"]); player.TricksWon = Int32.Parse(reader ["winTrickTimes"]); playerList.AddPlayer(player); break; case "Score": Score score = new Score(playerList.GetPlayerByID(Int32.Parse(reader ["playerID"])), Int32.Parse(reader ["score"])); scores.AddUpdateScore(score); break; default: break; } } } } reader.Close(); return(true); }