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

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

@@ -207,17 +207,17 @@ namespace MafiaTelegramBot.Game.GameRooms
             await Task.Run( async () =>
             {
                 var contendersCopy = contenders.ToList();
+                VoteUpList.Clear();
+                VoteKillList.Clear();
                 foreach (var contender in contendersCopy) await contender.CurrentRole.DefenceAction();
                 var votersPlayers = Players.Values.Where(p => p.IsAlive).ToArray();
                 Timer votingTimer = new() {Interval = 10 * 1000, AutoReset = false};
                 var resetEvent = new ManualResetEvent(false);
                 votingTimer.Elapsed += (_, _) => resetEvent.Set();
                 List<Message> messagesToDelete = new();
-                VoteUpList.Clear();
-                VoteKillList.Clear();
                 foreach (var player in votersPlayers)
                     messagesToDelete.Add(await PlayersCh.SendTo(player.ChatId, strings.you_have_ten_seconds_to_vote,  
-                        Keyboard.VoteKeyboard(contenders, player.Id, vote: Callback.VoteToKill)));
+                        Keyboard.VoteKeyboard(contendersCopy, player.Id, vote: Callback.VoteToKill)));
                 votingTimer.Start();
                 resetEvent.WaitOne();
                 votingTimer.Stop();
@@ -299,7 +299,7 @@ namespace MafiaTelegramBot.Game.GameRooms
             var max = votes.Max(item => item.count);
             var maxObjects = votes.Where(item => item.count == max);
             result.AddRange(from obj in maxObjects select Players[obj.id]);
-            return result.ToList();
+            return result;
         }
 
         private async Task PutUpVote(long playerId, long targetId, int messageId, bool toKill = false)
@@ -333,6 +333,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                         } 
                         else if (VoteKillList.AddUniqueByKey(playerId, targetId))
                         {
+                            VoteUpList.Add(Players[targetId]);
                             if (playerId != targetId)
                                 await PlayersCh.EditTo(playerId, messageId, $"{strings.you_vote_to_kill} {Players[targetId].NickName}");
                             else