Browse Source

Fix sending message if player left

Tigran 4 years ago
parent
commit
86c5134a3c
1 changed files with 5 additions and 6 deletions
  1. 5 6
      MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

+ 5 - 6
MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

@@ -32,13 +32,14 @@ namespace MafiaTelegramBot.Game.GameRooms
                 for (var i = 0; i < turnsCount; ++i)
                 for (var i = 0; i < turnsCount; ++i)
                 {
                 {
                     var player = _turnOrder.Dequeue();
                     var player = _turnOrder.Dequeue();
+                    if(!player.IsPlaying) continue;
                     await PlayersCh.SendExcept(player.Id, $"{strings.now_turn} {player.NickName}");
                     await PlayersCh.SendExcept(player.Id, $"{strings.now_turn} {player.NickName}");
-                    await Bot.SendWithMarkdown2(player.ChatId, strings.your_turn);
+                    if(player.IsPlaying) await Bot.SendWithMarkdown2(player.ChatId, strings.your_turn);
                     player.IsSpeaker = true;
                     player.IsSpeaker = true;
                     Thread.Sleep(60*1000);
                     Thread.Sleep(60*1000);
                     player.IsSpeaker = false;
                     player.IsSpeaker = false;
-                    await Bot.SendWithMarkdown2(player.ChatId, strings.your_turn_ended);
-                    if (i != 0) _turnOrder.Enqueue(player);
+                    if(player.IsPlaying) await Bot.SendWithMarkdown2(player.ChatId, strings.your_turn_ended);
+                    if (firstPlayer != null && player.IsPlaying) _turnOrder.Enqueue(player);
                     else firstPlayer = player;
                     else firstPlayer = player;
                 }
                 }
                 _turnOrder.Enqueue(firstPlayer);
                 _turnOrder.Enqueue(firstPlayer);
@@ -57,9 +58,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 var message = strings.your_teammates;
                 var message = strings.your_teammates;
                 if (don != null) message += $" \\({don.TurnOrder}\\) {don.NickName} - {roles.Don}";
                 if (don != null) message += $" \\({don.TurnOrder}\\) {don.NickName} - {roles.Don}";
                 message = mafia.Aggregate(message, (current, player) => current + $" \\({player.TurnOrder}\\) {player.NickName}");
                 message = mafia.Aggregate(message, (current, player) => current + $" \\({player.TurnOrder}\\) {player.NickName}");
-                if (don != null) await Bot.SendWithMarkdown2(don.ChatId, message);
-                foreach (var player in mafia)
-                    await Bot.SendWithMarkdown2(player.ChatId, message);
+                await MafiaCh.Send(message);
                 Thread.Sleep(10*1000);
                 Thread.Sleep(10*1000);
             });
             });
             IsFirstNight = false;
             IsFirstNight = false;