public static void ChangeGameTurn(Client IsPlaying) { int IndexOpponent = ClientManager.byPseudo(IsPlaying.info_game.opponent); int IndexClient = ClientManager.byPseudo(IsPlaying.info_main.pseudo); if (IndexClient == -1 || IndexOpponent == -1) { return; } ClientManager.ListClient[IndexClient].info_game.timeTourCount = Environment.TickCount; ClientManager.ListClient[IndexOpponent].info_game.timeTourCount = Environment.TickCount; ClientManager.ListClient[IndexClient].info_game.timeExist = 0; ClientManager.ListClient[IndexOpponent].info_game.timeExist = 0; if (IsPlaying.info_game.tour) { ClientManager.ListClient[IndexClient].info_game.tour = !ClientManager.ListClient[IndexClient].info_game.tour; ClientManager.ListClient[IndexOpponent].info_game.tour = !ClientManager.ListClient[IndexOpponent].info_game.tour; } if (!EndGame.canMakeAnAction(WhosNext(IsPlaying))) { ClientManager.ListClient[IndexClient].SendMsg("Partie terminée"); ClientManager.ListClient[IndexOpponent].SendMsg("Partie terminée"); ClientManager.RedirectEnding(WhosNext(IsPlaying), false); } }
public static bool OpponentIsDead(Client isPlaying) { int IndexClient = ClientManager.byPseudo(isPlaying.info_main.pseudo); int IndexOpponent = ClientManager.byPseudo(isPlaying.info_game.opponent); if (IndexClient == -1 || IndexOpponent == -1) { return(false); } if (isPlaying.info_game.pawnAlive <= 0) { ClientManager.RedirectEnding(isPlaying, false); return(true); } return(false); }
public void Deconnexion() { ClientManager.RedirectEnding(this, true); bool EnAttente = MatchMaking.DejaInscrit(this); if (EnAttente) { MatchMaking.SupprimerListeAttente(this.info_main.pseudo); } ClientManager.threadLock.WaitOne(); ClientManager.ListClient.RemoveAt(ClientManager.bySocket(MySocket)); ClientManager.threadLock.ReleaseMutex(); Console.WriteLine("Le client " + info_main.pseudo + " vient de se deconnecter"); InitialisationConnexion(false); if (MySocket != null) { MySocket.Close(); } if (MyThread != null) { if (MyThread.IsAlive) { MyThread.Abort(); } } if (MySendThread != null) { if (MySendThread.IsAlive) { MySendThread.Abort(); } } }