Browse Source

Handling callbacks bug fix

Tigran 4 years ago
parent
commit
e9875009d0

+ 0 - 2
MafiaTelegramBot/Controllers/MessageController.cs

@@ -34,8 +34,6 @@ namespace MafiaTelegramBot.Controllers
                     Username = chat.Username
                 };
             }
-            var text = Newtonsoft.Json.JsonConvert.SerializeObject(update);
-            LogOut(text);
             
             try
             {

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

@@ -116,6 +116,7 @@ namespace MafiaTelegramBot.Game.GameRooms
 
         private bool GameNotEnded()
         {
+            if (Constants.INFINITY_GAME) return true;
             var playersCount = Players.Values.Count(p => p.IsAlive);
             var mafiaCount = Players.Values.Count(p => p.IsAlive && p.CurrentRole.ColorRole is 2);
             var villagersCount = playersCount - mafiaCount;
@@ -141,11 +142,10 @@ namespace MafiaTelegramBot.Game.GameRooms
             await PlayersMessageChannel.Send(strings.disscution_time);
             discussionTimer.Start();
             discussionEnded.WaitOne();
-
-            var turnsCount = _turnOrder.Count;
-            for (var i = 0; i < turnsCount; ++i)
+            
+            for (var i = 0; i < _turnOrder.Count; ++i)
             {
-                var player = _turnOrder.Dequeue();
+                var player = _turnOrder.Peek();
                 if (!Players.ContainsKey(player.Info.Id)) continue;
                 if (!player.IsBlocked && player.IsAlive)
                 {
@@ -157,7 +157,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                     }
                     if (Players.ContainsKey(player.Info.Id)) await player.CurrentRole.VotingAction(VoteUpList.Count == 0);
                 }
-                _turnOrder.Enqueue(player);
+                _turnOrder.Enqueue(_turnOrder.Dequeue());
             }
             _turnOrder.Enqueue(_turnOrder.Dequeue());
         }

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

@@ -97,7 +97,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                         ? knownRoles[players[i].Info.Id]
                         : "";
                     message +=
-                        $"\n{(message == strings.players_list ? strings.next + " - " : "")}" +
+                        $"\n{(message == strings.players_list ? strings.current + " - " : "")}" +
                         $"({players[i].TurnOrder}) " +
                         $"{(players[i].Info.Id == player.Info.Id ? strings.you : players[i].Info.NickName)} " +
                         $"({(players[i].IsAlive ? strings.alive : strings.died)}) " +

+ 5 - 5
MafiaTelegramBot/Game/GameRooms/GameRoom.QueryHandler.cs

@@ -25,20 +25,20 @@ namespace MafiaTelegramBot.Game.GameRooms
                 {
                     case Callback.Vote:
                         var message = await _room.PutUpVote(player.Info.Id, 
-                            long.Parse(data[2]), update.CallbackQuery.Message.MessageId);
+                            long.Parse(data[1]), update.CallbackQuery.Message.MessageId);
                         player.CurrentRole.VoteActionComplete.Set();
                         player.CurrentRole.VoteActionComplete.Reset();
                         return message;
                     case Callback.VoteToKill:
-                        return await _room.PutUpVote(player.Info.Id, long.Parse(data[2]), update.CallbackQuery.Message.MessageId, true);
+                        return await _room.PutUpVote(player.Info.Id, long.Parse(data[1]), update.CallbackQuery.Message.MessageId, true);
                     case Callback.NightTarget:
-                        await player.CurrentRole.SetNightTarget(long.Parse(data[2]));
+                        await player.CurrentRole.SetNightTarget(long.Parse(data[1]));
                         return new Message();
                     case Callback.MafiaTarget:
-                        await player.CurrentRole.SetMafiaTarget(long.Parse(data[2]));
+                        await player.CurrentRole.SetMafiaTarget(long.Parse(data[1]));
                         return new Message();
                     case Callback.DetectiveTarget:
-                        await ((DetectiveRole) player.CurrentRole).SetNightTarget(long.Parse(data[2]), data[3]);
+                        await ((DetectiveRole) player.CurrentRole).SetNightTarget(long.Parse(data[1]), data[2]);
                         return new Message();
                     default:
                         return await _room.PlayersMessageChannel.SendTo(player.Info, strings.not_supported_in_game);

+ 3 - 1
MafiaTelegramBot/Resources/Constants.cs

@@ -8,7 +8,8 @@ namespace MafiaTelegramBot.Resources
 {
     public static class Constants
     {
-        public const bool DEBUG = true;
+        public const bool DEBUG = false;
+        public const bool INFINITY_GAME = DEBUG;
         
         public const int PLAYER_LIMITS_MIN = DEBUG ? 1 : 6;
         public const int MEMORY_CLEANER_INTERVAL = DEBUG ? 20 * 1000 : 5 * 60 * 1000;
@@ -29,6 +30,7 @@ namespace MafiaTelegramBot.Resources
             new LabeledPrice {Label = "100 рублей", Amount = 10000}
         };
 
+
         public const bool ENABLE_AUTO_VOTING = !DEBUG;
 
         public const int FIRST_NIGHT_INTERVAL = DEBUG ? 1*1000 : 10 * 1000;

+ 9 - 9
MafiaTelegramBot/Resources/strings.Designer.cs

@@ -465,6 +465,15 @@ namespace MafiaTelegramBot {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Сейчас ходит.
+        /// </summary>
+        internal static string current {
+            get {
+                return ResourceManager.GetString("current", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Текущая рассадка в комнате:.
         /// </summary>
@@ -1014,15 +1023,6 @@ namespace MafiaTelegramBot {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Следующий.
-        /// </summary>
-        internal static string next {
-            get {
-                return ResourceManager.GetString("next", resourceCulture);
-            }
-        }
-        
         /// <summary>
         ///   Looks up a localized string similar to Никто ни за кого не проголосовал.
         /// </summary>

+ 2 - 2
MafiaTelegramBot/Resources/strings.resx

@@ -528,8 +528,8 @@
     <data name="not_enogh_mafia" xml:space="preserve">
         <value>Количество черных ролей меньше, чем необходимо</value>
     </data>
-    <data name="next" xml:space="preserve">
-        <value>Следующий</value>
+    <data name="current" xml:space="preserve">
+        <value>Сейчас ходит</value>
     </data>
     <data name="container" xml:space="preserve">
         <value>Носитель</value>