Tigran 4 years ago
parent
commit
590e5be7b7

+ 1 - 5
MafiaTelegramBot/Game/GameRoles/DameRole.cs

@@ -84,11 +84,7 @@ namespace MafiaTelegramBot.Game.GameRoles
         {
             if (Room.PlayersRole.ContainsKey(Roles.Werewolf)
                 && Room.PlayersRole[Roles.Werewolf].Count == 1)
-            {   
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).ColorRole = 2;
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).IsMafia = true;
-            }
-
+                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
             return base.Kill();
         }
         

+ 1 - 4
MafiaTelegramBot/Game/GameRoles/DonRole.cs

@@ -82,10 +82,7 @@ namespace MafiaTelegramBot.Game.GameRoles
         {
             if (Room.PlayersRole.ContainsKey(Roles.Werewolf)
                 && Room.PlayersRole[Roles.Werewolf].Count == 1)
-            {   
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).ColorRole = 2;
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).IsMafia = true;
-            }
+                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
             return base.Kill();
         }
         

+ 1 - 4
MafiaTelegramBot/Game/GameRoles/MafiaRole.cs

@@ -52,10 +52,7 @@ namespace MafiaTelegramBot.Game.GameRoles
         {
             if (Room.PlayersRole.ContainsKey(Roles.Werewolf)
                 && Room.PlayersRole[Roles.Werewolf].Count == 1)
-            {   
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).ColorRole = 2;
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).IsMafia = true;
-            }
+                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
             return base.Kill();
         }
 

+ 10 - 0
MafiaTelegramBot/Game/GameRoles/WerewolfRole.cs

@@ -43,6 +43,16 @@ namespace MafiaTelegramBot.Game.GameRoles
             }
         }
 
+        public void TransformToMafia()
+        {
+            if (IsMafia) return;
+            ColorRole = 2;
+            IsMafia = true;
+            var mafiaList = Room.Players.Values.Where(p => p.GetRole() is Roles.Don or Roles.Mafia or Roles.Dame).ToDictionary(p=>p.Id, p => p.GetRoleName());
+            foreach (var mafia in mafiaList)
+                Room.Players[mafia.Key].CurrentRole.KnownRoles.Add(Player.Id, Player.GetRoleName());
+        }
+
         public override async Task SetMafiaTarget(long userId)
         {
             if (IsMafia)