Forráskód Böngészése

Add opening Hooker role after are you winning son?

Veloe 4 éve
szülő
commit
7d6ee19b5c
1 módosított fájl, 17 hozzáadás és 4 törlés
  1. 17 4
      MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

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

@@ -453,23 +453,27 @@ namespace MafiaTelegramBot.Game.GameRooms
                 var rolesMessage = strings.in_this_game_roles;
                 var players = Players.Values.ToList();
                 
-                var statsQuery = "SELECT * FROM mafia.statistics WHERE";
+                var statsQueryStats = "SELECT * FROM mafia.statistics WHERE";
+                var statsQueryOpenRoles = "SELECT * FROM mafia.opened_roles WHERE";
                 
                 foreach (var player in players)
                 {
                     rolesMessage += $"\n({player.TurnOrder}) {player.NickName} - {player.GetRoleName()}";
-                    statsQuery += $" id = {player.Id} AND role = '{player.GetRole().ToString()}' OR role = 'All' OR";
+                    statsQueryStats += $" id = {player.Id} AND role = '{player.GetRole().ToString()}' OR role = 'All' OR";
+                    statsQueryOpenRoles += $" id = {player.Id} OR";
                 }
                 
                 await PlayersCh.Send(rolesMessage);
                 
                 //var updatingNotifications = await PlayersCh.SendWithReturn("Update data! Wait until it disappears");
                 
-                statsQuery = statsQuery.Substring(0, statsQuery.Length - 2);
+                statsQueryStats = statsQueryStats.Substring(0, statsQueryStats.Length - 2);
+                statsQueryOpenRoles = statsQueryOpenRoles.Substring(0, statsQueryOpenRoles.Length - 2);
 
                 try
                 {
-                    var statsList = UserDao.DataBase.Statistics.FromSqlRaw(statsQuery).ToArrayAsync().Result;
+                    var statsList = UserDao.DataBase.Statistics.FromSqlRaw(statsQueryStats).ToArrayAsync().Result;
+                    var openRolesList = UserDao.DataBase.OpenedRoles.FromSqlRaw(statsQueryOpenRoles).ToArrayAsync().Result;
                     
                     void UpdateWins(Player player)
                     {
@@ -479,6 +483,11 @@ namespace MafiaTelegramBot.Game.GameRooms
                             row.Wins++;
                         }
 
+                        var roles = openRolesList.Where(o => o.Id == player.Id).First();
+
+                        if (roles.Hooker == false)
+                            roles.Hooker = true;
+
                         if (userProfile.Statistics.Contains(Roles.All))
                         {
                             userProfile.Statistics[player.CurrentRole.RoleKey].Wins++;
@@ -507,6 +516,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                         player.ResetState();
                     }
                     UserDao.DataBase.Statistics.UpdateRange(statsList);
+                    UserDao.DataBase.OpenedRoles.UpdateRange(openRolesList);
                     await UserDao.DataBase.SaveChangesAsync();
                 }
                 catch (Exception e)
@@ -519,6 +529,9 @@ namespace MafiaTelegramBot.Game.GameRooms
                     await Bot.Get().DeleteMessageAsync(message.Chat.Id,message.MessageId);
                 }
                 */
+                
+                
+                
                 IsRunning = false;
                 IsDay = false;
                 _turnOrder.Clear();