using System; using System.Collections.Generic; using MafiaCommon.Packets; namespace MafiaServer { public class Game { private List _players = new List(); private bool isStarted = false; public Game() { } public void ConnectPlayer(PlayerSocketWorker player) { if (isStarted) { player.sendPacket(new DisconnectPacket("Game already started!")); player.disconnect(); } else { foreach (PlayerSocketWorker othPlayer in _players) { othPlayer.sendPacket(new PlayerConnectedPacket(player.PlayerName,_players.Count+1,Settings.Config().MaxPlayers)); } _players.Add(player); player.Id = _players.LastIndexOf(player); player.OnDisconnectByErrorEvent += OnDisconnectByError; player.OnPlayerSendMessageEvent += PlayerOnOnPlayerSendMessageEvent; player.sendPacket(new WelcomePacket(Settings.Config().ServerName,_players.Count,Settings.Config().MaxPlayers)); } } public void Start() { if (_players.Count < 2) { Console.WriteLine("Not Enough Players"); return; } } private void OnDisconnectByError(PlayerSocketWorker sender) { _players.Remove(sender); foreach (PlayerSocketWorker player in _players) { player.sendPacket(new PlayerDisconnectedPacket(true,sender.Id,_players.Count,Settings.Config().MaxPlayers)); } } private void PlayerOnOnPlayerSendMessageEvent(PlayerSocketWorker sender, ChatType chatType, string text) { switch (chatType) { case ChatType.Queue: if (!isStarted) { foreach (PlayerSocketWorker player in _players) { player.sendPacket(new MessageReceivePacket(ChatType.Queue,false,sender.PlayerName,text)); } } break; } } } }