Browse Source

hooker opening edit

zelpold 4 years ago
parent
commit
b194db58f7

+ 5 - 0
MafiaTelegramBot/DataBase/Entity/OpenedRolesEntity.cs

@@ -98,5 +98,10 @@ namespace MafiaTelegramBot.DataBase.Entity
         {
             Parasite = true;
         }
+
+        public void OpenHooker()
+        {
+            Hooker = true;
+        }
     }
 }

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

@@ -497,10 +497,14 @@ namespace MafiaTelegramBot.Game.GameRooms
                             row.Wins++;
                         }
 
-                        var roles = openRolesList.Where(o => o.Id == player.Id).First();
-
-                        if (roles.Hooker == false)
-                            roles.Hooker = true;
+                        // var roles = openRolesList.Where(o => o.Id == player.Id).First();
+                        //
+                        // if (roles.Hooker == false)
+                        // {
+                        //     roles.Hooker = true;
+                        //     
+                        // }
+                            
 
                         if (userProfile.Statistics.Contains(Roles.All))
                         {
@@ -519,6 +523,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                             if(player.CurrentRole.ColorRole == 1 && player.CurrentRole.RoleKey != Roles.Lawyer)
                             {
                                 UpdateWins(player);
+                                player.HookerRoleAchievementEvent();
                                 player.ParasiteRoleAchievementEvent(villagerTeam.ToList());
                             }
                             else player.ResetParasiteProgress();
@@ -534,6 +539,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                             if(player.CurrentRole.ColorRole == 2 || player.CurrentRole.RoleKey == Roles.Lawyer)
                             {
                                 UpdateWins(player);
+                                player.HookerRoleAchievementEvent();
                                 player.ParasiteRoleAchievementEvent(mafiaTeam.ToList());
                             }
                             else player.ResetParasiteProgress();
@@ -547,7 +553,11 @@ namespace MafiaTelegramBot.Game.GameRooms
 
                         if (player.CurrentRole.ColorRole == 3)
                         {
-                            if (player.CurrentRole.IsWon().Result != "") UpdateWins(player);
+                            if (player.CurrentRole.IsWon().Result != "")
+                            {
+                                player.HookerRoleAchievementEvent();
+                                UpdateWins(player);
+                            }
                             else player.ResetParasiteProgress();
                         }
                         

+ 15 - 0
MafiaTelegramBot/Game/Player.cs

@@ -311,6 +311,21 @@ namespace MafiaTelegramBot.Game
                 });
             }
         }
+
+        public void HookerRoleAchievementEvent()
+        {
+            if (!OpenedRoles.Hooker)
+            {
+                Task.Run(async () =>
+                {
+                    
+                    await Bot.SendWithMarkdown2(ChatId,
+                        $"{strings.congrats} {roles.Hooker}! {strings.you_can_use}");
+                    await Bot.SendStickerAsync(ChatId, Stickers.Sticker[Roles.Hooker.ToString()]);
+                    OpenedRoles.OpenHooker();
+                });
+            }
+        }
         
         public void ParasiteRoleAchievementEvent(List<long> team)
         {