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); } }