public static void TimerTour(int IndexClient) { if (ClientManager.ListClient[IndexClient].info_game.isplaying) { if (ClientManager.ListClient[IndexClient].info_game.tour) { int TimeCount = (Environment.TickCount / 1000) - (ClientManager.ListClient[IndexClient].info_game.timeTourCount / 1000); int TimeExist = ClientManager.ListClient[IndexClient].info_game.timeExist; if (TimeCount >= 30) { int IndexOpponent = ClientManager.byPseudo(ClientManager.ListClient[IndexClient].info_game.opponent); if (IndexOpponent == -1) { return; } ClientManager.ListClient[IndexClient].info_game.asked = false; ClientManager.ListClient[IndexOpponent].info_game.asked = false; Careful.checkJumpingNotPlayed(ClientManager.ListClient[IndexClient], 0, 0, true); playerManager.ChangeGameTurn(ClientManager.ListClient[IndexClient]); ClientManager.ListClient[IndexClient].SendMsg("Temps écoulé ! Changement de tour !"); ClientManager.ListClient[IndexOpponent].SendMsg("Temps écoulé ! Changement de tour !"); } else if (TimeCount % 10 == 0 && TimeCount != 0 && TimeExist != (30 - TimeCount)) { int IndexOpponent = ClientManager.byPseudo(ClientManager.ListClient[IndexClient].info_game.opponent); if (IndexOpponent == -1) { return; } ClientManager.ListClient[IndexClient].info_game.timeExist = 30 - TimeCount; ClientManager.ListClient[IndexOpponent].info_game.timeExist = 30 - TimeCount; ClientManager.ListClient[IndexClient].SendMsg("Il ne vous reste plus que " + (30 - TimeCount) + " secondes !"); ClientManager.ListClient[IndexOpponent].SendMsg("Il ne lui reste plus que " + (30 - TimeCount) + " secondes !"); } } } }
public static bool pawnMoving(Client isPlaying, int x, int y, int xSelected, int ySelected) { if (isPlaying.info_game.asked) { isPlaying.SendMsg("En attente de la réponse ..."); return(false); } if (isPlaying.info_main.playerTop != isPlaying.info_game.plateauCases[ySelected][xSelected].pawnTop) { Careful.isNotCareful(isPlaying, ySelected, xSelected); return(false); } if (!isPlaying.info_game.tour) { isPlaying.SendMsg("Ce n'est pas votre tour !"); return(false); } if (isPlaying.info_game.iscombo) { if (!isPlaying.info_game.plateauCases[ySelected][xSelected].mainCombo) { isPlaying.SendMsg("Vous ne pouvez jouer que le pion 'combo'"); return(false); } } int IndexClient = ClientManager.byPseudo(isPlaying.info_main.pseudo); Client Player = playerManager.WhosNext(isPlaying); Client Opponent = playerManager.GetOpponent(Player); bool playerTop = Player.info_main.playerTop; if (ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].pawnExist) { return(false); } if (x == xSelected && y == ySelected) { isPlaying.SendMsg("Choix annulé"); return(false); } else if (!ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].pawnExist) { int ruleDistance = Distance.distanceStatus(isPlaying, y, x, ySelected, xSelected, playerTop); if (ruleDistance == 0 || (ruleDistance != 2 && ClientManager.ListClient[IndexClient].info_game.plateauCases[ySelected][xSelected].mainCombo && Player.info_game.iscombo) || !Distance.sameDiagonal(y, x, ySelected, xSelected)) { isPlaying.SendMsg("Vous ne pouvez pas faire cela"); return(false); } //sendAnimation(isPlaying, (int)BunifuAnimatorNS.AnimationType.Transparent, x, y); Careful.resetNotCarefulOpponent(Opponent); Careful.checkJumpingNotPlayed(Player, x, y); ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].king = ClientManager.ListClient[IndexClient].info_game.plateauCases[ySelected][xSelected].king; ClientManager.ListClient[IndexClient].info_game.plateauCases[ySelected][xSelected].king = false; Match.SynchroWithOpponents(isPlaying); setCase(isPlaying, x, y, imageManager.getPawnImgByPlayer(playerTop, ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].king), true, playerTop); setCase(isPlaying, xSelected, ySelected); imageManager.pawnToKing(isPlaying, playerTop, x, y); if (ruleDistance == 2) { bool isKing = ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].king; int xPawn = Distance.xPawn; int yPawn = Distance.yPawn; //sendAnimation(isPlaying, (int)BunifuAnimatorNS.AnimationType.Particles, xPawn, yPawn); setCase(isPlaying, xPawn, yPawn); Opponent.info_game.pawnAlive--; if (!isKing) { if (Attack.detectCanAtk(Player, x, y)) { Player.info_game.iscombo = true; ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].mainCombo = true; Match.SynchroWithOpponents(isPlaying); return(true); } } else { if (Attack.detectCanAtkForKing(Player, x, y)) { Player.info_game.iscombo = true; ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].mainCombo = true; Match.SynchroWithOpponents(isPlaying); return(true); } } Player.info_game.iscombo = false; ClientManager.ListClient[IndexClient].info_game.plateauCases[y][x].mainCombo = false; Match.SynchroWithOpponents(isPlaying); if (EndGame.OpponentIsDead(Opponent)) { return(true); } } playerManager.ChangeGameTurn(Player); xSelected = -1; ySelected = -1; } return(true); }