소스 검색

Room timer apply

Tigran 4 년 전
부모
커밋
b5490a51e9
2개의 변경된 파일8개의 추가작업 그리고 5개의 파일을 삭제
  1. 2 0
      MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs
  2. 6 5
      MafiaTelegramBot/Game/GameRooms/GameRoom.Role.cs

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

@@ -39,6 +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 Bot.SendWithMarkdown2(player.ChatId, strings.you_turn_say);
                     await player.CurrentRole.SpeakAction();
                     if (firstPlayer != null && player.IsPlaying) _turnOrder.Enqueue(player);
                     else firstPlayer = player;
@@ -115,6 +116,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 Bot.SendWithMarkdown2(player.ChatId, strings.you_turn_say);
                 await player.CurrentRole.SpeakAction();
                 await player.CurrentRole.VotingAction();
                 if (player.IsFirst) firstPlayer = player;

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

@@ -39,7 +39,8 @@ 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 SpeakAction();
+                await Bot.SendWithMarkdown2(Player.ChatId, strings.you_turn_say);
+                await SpeakAction(enableTimer: true);
                 await Kill();
             }
 
@@ -74,16 +75,16 @@ namespace MafiaTelegramBot.Game.GameRooms
                 return NightTargetId;
             }
 
-            public async Task SpeakAction(int seconds = 60)
+            public async Task SpeakAction(int seconds = 60, bool enableTimer = false)
             {
                 TalkingActionComplete.Reset();
-                await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.your_turn}\n{strings.you_turn_say}", Keyboard.InGamePlayerMenuWithEndTurn);
+                await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.your_turn}", Keyboard.InGamePlayerMenuWithEndTurn);
                 Player.IsSpeaker = true;
                 var timer = new Timer(seconds * 1000) {AutoReset = false};
                 timer.Elapsed += (_, _) => TalkingActionComplete.Set();
-                timer.Start();
+                if (Room.TimerEnabled || enableTimer) timer.Start();
                 TalkingActionComplete.WaitOne();
-                timer.Stop();
+                if (Room.TimerEnabled || enableTimer) timer.Stop();
                 await Bot.SendWithMarkdown2(Player.ChatId, strings.your_turn_ended, Keyboard.InGamePlayerMenu);
                 Player.IsSpeaker = false;
             }