Tigran 4 년 전
부모
커밋
ad18ca3c56

+ 3 - 3
MafiaTelegramBot/Game/GameRoles/DameRole.cs

@@ -80,12 +80,12 @@ namespace MafiaTelegramBot.Game.GameRoles
             }
         }
 
-        public override Task Kill()
+        public override async Task Kill()
         {
             if (Room.PlayersRole.ContainsKey(Roles.Werewolf)
                 && Room.PlayersRole[Roles.Werewolf].Count == 1)
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
-            return base.Kill();
+                await ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
+            await base.Kill();
         }
         
         public DameRole(GameRoom room, Player player) : base(room, player) { }

+ 3 - 3
MafiaTelegramBot/Game/GameRoles/DonRole.cs

@@ -78,12 +78,12 @@ namespace MafiaTelegramBot.Game.GameRoles
             }
         }
         
-        public override Task Kill()
+        public override async Task Kill()
         {
             if (Room.PlayersRole.ContainsKey(Roles.Werewolf)
                 && Room.PlayersRole[Roles.Werewolf].Count == 1)
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
-            return base.Kill();
+                await ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
+            await base.Kill();
         }
         
         public DonRole(GameRoom room, Player player) : base(room, player) { }

+ 1 - 2
MafiaTelegramBot/Game/GameRoles/JournalistRole.cs

@@ -4,7 +4,6 @@ using System.Threading.Tasks;
 using MafiaTelegramBot.Game.GameRooms;
 using MafiaTelegramBot.Models;
 using MafiaTelegramBot.Resources;
-using Telegram.Bot.Types;
 
 namespace MafiaTelegramBot.Game.GameRoles
 {
@@ -82,7 +81,7 @@ namespace MafiaTelegramBot.Game.GameRoles
                 else if (NightTargetTwoId == -1)
                 {
                     NightTargetTwoId = userId;
-                    await Room.PlayersCh.EditTo(Player.ChatId, MessageId, $"{strings.choosed_targets} {Room.Players[NightTargetId]} - {Room.Players[NightTargetTwoId]}");
+                    await Room.PlayersCh.EditTo(Player.ChatId, MessageId, $"{strings.choosed_targets} {Room.Players[NightTargetId].NickName} - {Room.Players[NightTargetTwoId].NickName}");
                 }
             }
         }

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

@@ -47,13 +47,13 @@ namespace MafiaTelegramBot.Game.GameRoles
                 }
             }
         }
-
-        public override Task Kill()
+        
+        public override async Task Kill()
         {
             if (Room.PlayersRole.ContainsKey(Roles.Werewolf)
                 && Room.PlayersRole[Roles.Werewolf].Count == 1)
-                ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
-            return base.Kill();
+                await ((WerewolfRole) Room.PlayersRole[Roles.Werewolf][0].CurrentRole).TransformToMafia();
+            await base.Kill();
         }
 
         public MafiaRole(GameRoom room, Player player) : base(room, player) { }

+ 11 - 3
MafiaTelegramBot/Game/GameRoles/WerewolfRole.cs

@@ -43,14 +43,22 @@ namespace MafiaTelegramBot.Game.GameRoles
             }
         }
 
-        public void TransformToMafia()
+        public async Task 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());
+            foreach (var player in mafiaList)
+                Room.Players[player.Key].CurrentRole.KnownRoles.Add(Player.Id, Player.GetRoleName());
+            var mafia = Room.Players.Values.Where(player => player.GetRole() is Roles.Mafia).ToArray();
+            var don = Room.Players.Values.FirstOrDefault(player => player.GetRole() is Roles.Don);
+            var dame = Room.Players.Values.FirstOrDefault(player => player.GetRole() is Roles.Dame);
+            var message = strings.your_teammates;
+            if (don != null) message += $"\n({don.TurnOrder}) {don.NickName} - {roles.Don}";
+            if (dame != null) message += $"\n({dame.TurnOrder}) {dame.NickName} - {roles.Dame}";
+            message = mafia.Aggregate(message, (current, player) => current + $"\n({player.TurnOrder}) {player.NickName}");
+            await Room.PlayersCh.SendTo(Player.Id, message);
         }
 
         public override async Task SetMafiaTarget(long userId)

+ 2 - 0
MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

@@ -61,8 +61,10 @@ namespace MafiaTelegramBot.Game.GameRooms
                 await PlayersCh.Send(strings.city_falls_asleep);
                 var mafia = Players.Values.Where(player => player.GetRole() is Roles.Mafia).ToArray();
                 var don = Players.Values.FirstOrDefault(player => player.GetRole() is Roles.Don);
+                var dame = Players.Values.FirstOrDefault(player => player.GetRole() is Roles.Dame);
                 var message = strings.your_teammates;
                 if (don != null) message += $"\n({don.TurnOrder}) {don.NickName} - {roles.Don}";
+                if (dame != null) message += $"\n({dame.TurnOrder}) {dame.NickName} - {roles.Dame}";
                 message = mafia.Aggregate(message, (current, player) => current + $"\n({player.TurnOrder}) {player.NickName}");
                 await _mafiaCh.Send(message);
                 var resetEvent = new ManualResetEvent(false);