|
@@ -43,14 +43,25 @@ 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());
|
|
|
+ KnownRoles.Add(player.Key, player.Value);
|
|
|
+ }
|
|
|
+ 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)
|