Ejemplo n.º 1
0
        public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities)
        {
            managerLogger.AddLogMessage("Score", "Recieved score");

            string name = inc.ReadString();

            playerAndConnection = players.FirstOrDefault(p => p.Player.Username == name);
            if (playerAndConnection == null)
            {
                return;
            }
            playerAndConnection.Player.Score++;

            managerLogger.AddLogMessage("Score", "Sending out score");
            var outmsg = server.NetServer.CreateMessage();

            outmsg.Write((byte)PacketType.Score);
            outmsg.Write(playerAndConnection.Player.Username);
            outmsg.Write(playerAndConnection.Player.Score);
            server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered);

            //whenver a player gets score it is a new round meaning that now a new seed should be sent!!!
            RandomSeedCommand command = new RandomSeedCommand();

            command.Run(managerLogger, server, inc, playerAndConnection, players, abilities);
        }
        public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc,
                        PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities)
        {
            string name  = inc.ReadString();
            bool   ready = inc.ReadBoolean();

            managerLogger.AddLogMessage("Ready", "Recieved ready check");

            var player = players.FirstOrDefault(p => p.Player.Username == name);

            player.Player.Ready = ready;

            var outmsg = server.NetServer.CreateMessage();

            outmsg.Write((byte)PacketType.ReadyCheck);
            outmsg.Write(name);
            outmsg.Write(ready);
            server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered);

            server.NetServer.FlushSendQueue();

            bool allReady = true;

            for (int i = 0; i < players.Count; i++)
            {
                if (!players[i].Player.Ready)
                {
                    allReady = false;
                }
            }
            if (allReady)
            {
                RandomSeedCommand randomSeedCommand = new RandomSeedCommand();
                randomSeedCommand.Run(managerLogger, server, inc, playerAndConnection, players, abilities);
            }
        }