소스 검색

Fix some bugs

Tigran 4 년 전
부모
커밋
d5988e1ee9

+ 3 - 1
MafiaTelegramBot/Controllers/RoomController.cs

@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using MafiaTelegramBot.CustomCollections.Extensions;
 using MafiaTelegramBot.Game;
 using MafiaTelegramBot.Game.GameRooms;
 using MafiaTelegramBot.Models;
@@ -85,7 +86,8 @@ namespace MafiaTelegramBot.Controllers
             return await Task.Run(() =>
             {
                 var rooms = OpenedGames.Values.ToList();
-                foreach (var room in rooms.Where(room => room.IsPrivate || room.IsFilled())) rooms.Remove(room);
+                foreach (var room in OpenedGames.Values.ToList().
+                    Where(room => room.IsPrivate || room.IsFilled())) rooms.Remove(room);
                 return rooms;
             });
         }

+ 5 - 0
MafiaTelegramBot/CustomCollections/Extensions/ListExtension.cs

@@ -15,5 +15,10 @@ namespace MafiaTelegramBot.CustomCollections.Extensions
         {
             for (var i = 0; i < times; ++i) list.Add(item);
         }
+
+        public static List<T> Copy<T>(this List<T> list)
+        {
+            return new(list);
+        }
     }
 }

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

@@ -17,7 +17,7 @@ namespace MafiaTelegramBot.Game.GameRooms
         protected bool IsRunning;
         public int MaxPlayers = 10;
         private int _minPlayers = Constants.PLAYER_LIMITS_MIN;
-        public bool IsPrivate { get; init; } = false;
+        public bool IsPrivate { get; init; }
         public abstract bool IsExtended { get; protected set; }
         public bool TimerEnabled { get; set; } = true;
         public string RoomName { get; init; } = "NoNameRoom";
@@ -42,7 +42,7 @@ namespace MafiaTelegramBot.Game.GameRooms
             new Task(async () =>
             {
                 IsRunning = true;
-                await FirstDay();
+                await FirstNight();
                 await GameCycle();
                 await EndOfGame();
             }).Start();
@@ -58,8 +58,9 @@ namespace MafiaTelegramBot.Game.GameRooms
             return resultCode;
         }
 
-        private async Task FirstDay()
+        private async Task FirstNight()
         {
+            
             await Task.Run(() => { });
         }
 
@@ -118,7 +119,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 for (var i = 0; i < _turnOrder.Count; ++i)
                 {
                     var user = _turnOrder.Dequeue();
-                    var value = roles.Count == 1 ? 1 : random.Next(roles.Count - 1);
+                    var value = random.Next(roles.Count);
                     var next = roles.GetAndRemove(value);
                     user.CurrentRole = (Role.GetNewRoleInstance(next));
                     _turnOrder.Enqueue(user);

+ 0 - 1
MafiaTelegramBot/Models/Inlines/KickSelectedPlayerQuery.cs

@@ -14,7 +14,6 @@ namespace MafiaTelegramBot.Models.Inlines
             var user = await UserDao.GetPlayerById(UserId);
             var resultCode = await RoomController.LeaveFromGame(user);
             if (resultCode != ResultCode.CodeOk) return await Utilities.GetResultCodeMessage(resultCode, ChatId);
-            await Bot.SendWithMarkdown2(ChatId, $"{strings.kick_user_success}");
             return await Bot.SendWithMarkdown2(user.ChatId, $"{strings.you_were_kicked}", Keyboards.MainMenu);
         }
     }

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

@@ -428,5 +428,11 @@ namespace MafiaTelegramBot {
                 return ResourceManager.GetString("link", resourceCulture);
             }
         }
+        
+        internal static string kicked_from_game {
+            get {
+                return ResourceManager.GetString("kicked_from_game", resourceCulture);
+            }
+        }
     }
 }

+ 4 - 1
MafiaTelegramBot/Resources/strings.resx

@@ -82,7 +82,7 @@
         <value>Комната с таким именем уже существует</value>
     </data>
     <data name="leave_from_game" xml:space="preserve">
-        <value>Вы покинули игру</value>
+        <value>покинул игру</value>
     </data>
     <data name="user_not_in_game" xml:space="preserve">
         <value>Вы не находитесь сейчас в игре</value>
@@ -210,4 +210,7 @@
     <data name="link" xml:space="preserve">
         <value>Ссылка для подключения к комнате</value>
     </data>
+    <data name="kicked_from_game" xml:space="preserve">
+        <value>исключен из игры</value>
+    </data>
 </root>