Tigran пре 4 година
родитељ
комит
cf4e53dbff

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

@@ -39,7 +39,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                     var player = _turnOrder.Dequeue();
                     if(!player.IsPlaying) continue;
                     await PlayersCh.Send($"{strings.now_turn} \\({player.TurnOrder}\\) {player.NickName}");
-                    await player.CurrentRole.OneMinuteSpeak();
+                    await player.CurrentRole.SpeakAction();
                     if (firstPlayer != null && player.IsPlaying) _turnOrder.Enqueue(player);
                     else firstPlayer = player;
                 }
@@ -115,7 +115,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 if(!player.IsPlaying || !player.IsAlive) continue;
                 if (firstPlayer == null) player.IsFirst = true;
                 await PlayersCh.Send($"{strings.now_turn} \\({player.TurnOrder}\\) {player.NickName}");
-                await player.CurrentRole.OneMinuteSpeak();
+                await player.CurrentRole.SpeakAction();
                 await player.CurrentRole.VotingAction();
                 if (player.IsFirst) firstPlayer = player;
                 else _turnOrder.Enqueue(player);
@@ -194,14 +194,11 @@ namespace MafiaTelegramBot.Game.GameRooms
             return await Task.Run( async () =>
             {
                 var contendersForDispatch = _voteUpList.Where(p => p.VotedCount == _largeVote).ToList();
+                foreach (var defender in _voteUpList) defender.VotedCount = 0;
                 _voteUpList.Clear();
                 _largeVote = 0;
                 if (contendersForDispatch.Count == 1) return contendersForDispatch;
-                foreach (var defender in _voteUpList)
-                {
-                    defender.VotedCount = 0;
-                    await defender.CurrentRole.DefenceAction();
-                }
+                foreach (var defender in contendersForDispatch) await defender.CurrentRole.DefenceAction();
                 var votersPlayers = Players.Values
                     .Where(p => p.IsAlive)
                     .Except(contendersForDispatch)

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

@@ -39,7 +39,7 @@ namespace MafiaTelegramBot.Game.GameRooms
             public virtual async Task Dispatch()
             {
                 await Room.PlayersCh.SendExcept(Player.Id, $"{strings.to_player} {Player.NickName} {strings.issued_posthumous_minute}");
-                await OneMinuteSpeak();
+                await SpeakAction();
                 await Kill();
             }
 
@@ -74,12 +74,12 @@ namespace MafiaTelegramBot.Game.GameRooms
                 return NightTargetId;
             }
 
-            public async Task OneMinuteSpeak()
+            public async Task SpeakAction(int seconds = 60)
             {
                 TalkingActionComplete.Reset();
                 await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.your_turn}\n{strings.you_turn_say}", Keyboard.InGamePlayerMenuWithEndTurn);
                 Player.IsSpeaker = true;
-                var timer = new Timer(60 * 1000) {AutoReset = false};
+                var timer = new Timer(seconds * 1000) {AutoReset = false};
                 timer.Elapsed += (_, _) => TalkingActionComplete.Set();
                 timer.Start();
                 TalkingActionComplete.WaitOne();
@@ -119,7 +119,8 @@ namespace MafiaTelegramBot.Game.GameRooms
             public async Task DefenceAction()
             {
                 await Room.PlayersCh.SendExcept(Player.Id, $"{strings.now_defence} \\({Player.TurnOrder}\\) {Player.NickName}");
-                await OneMinuteSpeak();
+                await Bot.SendWithMarkdown2(Player.ChatId, strings.you_have_eigty_seconds_to_defence);
+                await SpeakAction(90);
             }
             public static Role GetNewRoleInstance(Roles roleKey, GameRoom room, Player player)
             {

+ 6 - 0
MafiaTelegramBot/Resources/strings.Designer.cs

@@ -848,5 +848,11 @@ namespace MafiaTelegramBot {
                 return ResourceManager.GetString("players_not_equal_roles", resourceCulture);
             }
         }
+        
+        internal static string you_have_eigty_seconds_to_defence {
+            get {
+                return ResourceManager.GetString("you_have_eigty_seconds_to_defence", resourceCulture);
+            }
+        }
     }
 }

+ 3 - 0
MafiaTelegramBot/Resources/strings.resx

@@ -420,4 +420,7 @@
     <data name="players_not_equal_roles" xml:space="preserve">
         <value>Количество игроков не равно количеству ролей</value> 
     </data>
+    <data name="you_have_eigty_seconds_to_defence" xml:space="preserve">
+        <value>У вас есть 90 секунд на оправдание</value>
+    </data>
 </root>