Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
        }