Tigran 4 years ago
parent
commit
2765c41861

+ 1 - 1
MafiaTelegramBot/Game/GameRoles/BodyguardRole.cs

@@ -11,6 +11,7 @@ namespace MafiaTelegramBot.Game.GameRoles
 
         public override async Task NightAction()
         {
+            NightTargetId = -1;
             NightTargetList = Room.Players.Values.Where(p => p.IsAlive && p.Id != Player.Id).ToList();
             var message = await Bot.SendWithMarkdown2(Player.ChatId, strings.choose_target_to_protect, 
                 Keyboard.NightChooseTargetKeyboard(NightTargetList, Player.Id));
@@ -28,7 +29,6 @@ namespace MafiaTelegramBot.Game.GameRoles
                 }
                 if(Room.Players.ContainsKey(NightTargetId))
                 {
-                    NightTargetId = -1;
                     if (!Room.Players[NightTargetId].IsAlive)
                     {
                         Room.Players[NightTargetId].IsAlive = true;

+ 1 - 1
MafiaTelegramBot/Game/GameRoles/CopRole.cs

@@ -11,6 +11,7 @@ namespace MafiaTelegramBot.Game.GameRoles
 
         public override async Task NightAction()
         {
+            NightTargetId = -1;
             NightTargetList = Room.Players.Values.Except(KnownRoles).Where(p => p.IsAlive).ToList();
             var message = await Room.PlayersCh.SendTo(Player.ChatId, strings.choose_player_to_check_role, 
                 Keyboard.NightChooseTargetKeyboard(NightTargetList, Player.Id));
@@ -35,7 +36,6 @@ namespace MafiaTelegramBot.Game.GameRoles
                         : roles.Villager;
                     await Room.PlayersCh.EditTo(Player.Id, MessageId,
                         $"{strings.role_of_your_target} {Room.Players[NightTargetId].NickName} - {role}");
-                    NightTargetId = -1;
                 }
                 else await Room.PlayersCh.EditTo(Player.Id, MessageId, strings.this_player_left_from_game);
             }

+ 1 - 0
MafiaTelegramBot/Game/GameRoles/DoctorRole.cs

@@ -15,6 +15,7 @@ namespace MafiaTelegramBot.Game.GameRoles
                 Keyboard.NightChooseTargetKeyboard(NightTargetList, Player.Id));
             if (NightTargetId != Player.Id && Room.Players.ContainsKey(NightTargetId))
                 Room.Players[NightTargetId].CanBeHealed = true;
+            NightTargetId = -1;
             MessageId = message.MessageId;
         }
 

+ 0 - 2
MafiaTelegramBot/Game/GameRoles/MafiaRole.cs

@@ -1,8 +1,6 @@
 using System.Linq;
 using System.Threading.Tasks;
-using MafiaTelegramBot.CustomCollections.Extensions;
 using MafiaTelegramBot.Game.GameRooms;
-using MafiaTelegramBot.Models;
 using MafiaTelegramBot.Resources;
 
 namespace MafiaTelegramBot.Game.GameRoles

+ 1 - 1
MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

@@ -211,7 +211,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 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};
+                Timer votingTimer = new() {Interval = 20 * 1000, AutoReset = false};
                 var resetEvent = new ManualResetEvent(false);
                 votingTimer.Elapsed += (_, _) => resetEvent.Set();
                 List<Message> messagesToDelete = new();

+ 2 - 3
MafiaTelegramBot/Game/GameRooms/GameRoom.Role.cs

@@ -98,10 +98,10 @@ namespace MafiaTelegramBot.Game.GameRooms
 
             public async Task VotingAction()
             {
-                var voteTimer = new Timer(10 * 1000) {AutoReset = false};
+                var voteTimer = new Timer(20 * 1000) {AutoReset = false};
                 var alivePlayers = Room.Players.Values.Where(p => p.IsAlive).Except(Room.VoteUpList).ToList();
                 var message = await Room.PlayersCh.SendTo(Player.ChatId,
-                    $"{strings.put_up_vote}\n{strings.you_have_ten_seconds}",  
+                    $"{strings.put_up_vote}\n{strings.you_have_ten_seconds}{(Player.IsFirst ? "\n" + strings.user_not_choose : "")}",  
                     Keyboard.VoteKeyboard(alivePlayers, Player.Id, !Player.IsFirst));
                 voteTimer.Elapsed += async (_, _) =>
                 {
@@ -109,7 +109,6 @@ namespace MafiaTelegramBot.Game.GameRooms
                     else await Room.PutUpVote(Player.Id, 0, message.MessageId);
                     VoteActionComplete.Set();
                 };
-                if(Player.IsFirst) await Room.PlayersCh.SendTo(Player.Id, strings.user_not_choose);
                 voteTimer.Start();
                 VoteActionComplete.WaitOne();
                 voteTimer.Stop();