Selaa lähdekoodia

show roles on start the game

Tigran 4 vuotta sitten
vanhempi
commit
cb66147fe4

+ 12 - 9
MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

@@ -4,7 +4,6 @@ using System.Threading;
 using System.Threading.Tasks;
 using MafiaTelegramBot.Controllers;
 using MafiaTelegramBot.CustomCollections.Extensions;
-using MafiaTelegramBot.DataBase.EntityDao;
 using MafiaTelegramBot.Models;
 using MafiaTelegramBot.Resources;
 using Telegram.Bot.Types;
@@ -160,16 +159,20 @@ namespace MafiaTelegramBot.Game.GameRooms
                             .GroupBy(p => p.CurrentRole.GetNightTarget())
                             .Select(item => new {id = item.Key, count = item.Count()})
                             .ToList();
-                        var max = votes.Max(item => item.count);
-                        var maxCount = votes.Count(item => item.count == max);
-                        if (maxCount != 1)
+                        if (votes.Count > 0)
                         {
-                            mafiaNotAgree = $"\n{strings.mafia_not_agree}";
-                            continue;
+                            var max = votes.Max(item => item.count);
+                            var maxCount = votes.Count(item => item.count == max);
+                            if (maxCount != 1)
+                            {
+                                mafiaNotAgree = $"\n{strings.mafia_not_agree}";
+                                continue;
+                            }
+
+                            var selected = votes.First(item => item.count == max);
+                            if (selected.id == -1) continue;
+                            await Players[selected.id].CurrentRole.Kill();
                         }
-                        var selected = votes.First(item => item.count == max);
-                        if (selected.id == -1) continue;
-                        await Players[selected.id].CurrentRole.Kill();
                         foreach (var mafia in players) await mafia.CurrentRole.ApplyNightActionResult();
                     }
                     else if (players.Count == 1)

+ 8 - 5
MafiaTelegramBot/Game/GameRooms/GameRoom.PrepareRoom.cs

@@ -30,20 +30,23 @@ namespace MafiaTelegramBot.Game.GameRooms
         
         private async Task AssignRoles()
         {
-            await Task.Run(() =>
+            await Task.Run(async () =>
             {
+                var message = strings.in_this_game_we_have;
                 var random = new Random();
-                var roles = new List<Roles>();
+                var rolesList = new List<Roles>();
                 foreach (var (key, value) in Settings)
                 {
-                    roles.AddTimes(key, value);
+                    rolesList.AddTimes(key, value);
+                    if (value > 0) message += $"\n{roles.ResourceManager.GetString(key.ToString())} - {value}";
                     Settings.Remove(key);
                 }
+                await PlayersCh.Send(message);
                 for (var i = 0; i < _turnOrder.Count; ++i)
                 {
                     var user = _turnOrder.Dequeue();
-                    var value = random.Next(roles.Count);
-                    var next = roles.GetAndRemove(value);
+                    var value = random.Next(rolesList.Count);
+                    var next = rolesList.GetAndRemove(value);
                     PlayersRole[next].Add(user);
                     user.CurrentRole = Role.GetNewRoleInstance(next, this, user);
                     _turnOrder.Enqueue(user);

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

@@ -860,5 +860,11 @@ namespace MafiaTelegramBot {
                 return ResourceManager.GetString("player_not_died_he_has_alibi", resourceCulture);
             }
         }
+        
+        internal static string in_this_game_we_have {
+            get {
+                return ResourceManager.GetString("in_this_game_we_have", resourceCulture);
+            }
+        }
     }
 }

+ 3 - 0
MafiaTelegramBot/Resources/strings.resx

@@ -426,4 +426,7 @@
     <data name="player_not_died_he_has_alibi" xml:space="preserve">
         <value>но у него есть алиби</value>
     </data>
+    <data name="in_this_game_we_have" xml:space="preserve">
+        <value>В этой игре имеются следующие роли:</value>
+    </data>
 </root>