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

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

@@ -217,7 +217,8 @@ namespace MafiaTelegramBot.Game.GameRooms
         {
         {
             await Task.Run( async () =>
             await Task.Run( async () =>
             {
             {
-                foreach (var contender in contenders) await contender.CurrentRole.DefenceAction();
+                var contendersCopy = contenders.ToList();
+                foreach (var contender in contendersCopy) await contender.CurrentRole.DefenceAction();
                 var votersPlayers = Players.Values.Where(p => p.IsAlive).ToArray();
                 var votersPlayers = Players.Values.Where(p => p.IsAlive).ToArray();
                 Timer votingTimer = new() {Interval = 10 * 1000, AutoReset = false};
                 Timer votingTimer = new() {Interval = 10 * 1000, AutoReset = false};
                 var resetEvent = new ManualResetEvent(false);
                 var resetEvent = new ManualResetEvent(false);
@@ -296,7 +297,8 @@ namespace MafiaTelegramBot.Game.GameRooms
         private async Task<List<Player>> CalculateCandidates()
         private async Task<List<Player>> CalculateCandidates()
         {
         {
             var message = strings.results_of_voting;
             var message = strings.results_of_voting;
-            foreach (var (playerId, targetId) in VoteKillList.Where(item => item.Value != 0))
+            var voteKillCopy = VoteKillList.ToDictionary(e => e.Key, e => e.Value);
+            foreach (var (playerId, targetId) in voteKillCopy.Where(item => item.Value != 0))
             {
             {
                 var player = Players.GetIfContains(playerId);
                 var player = Players.GetIfContains(playerId);
                 var target = Players.GetIfContains(targetId);
                 var target = Players.GetIfContains(targetId);