|
@@ -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
|