|
@@ -231,7 +231,8 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
.ToList();
|
|
|
if (votes.Count == 0)
|
|
|
{
|
|
|
- var allMafiaVotes = Players.Values.Where(p => p.CurrentRole.MafiaTargetId is -1 or -2 or -3).Distinct().ToList();
|
|
|
+ var allMafiaVotes = Players.Values.Where(p => p.CurrentRole.ColorRole == 2 && p.IsAlive
|
|
|
+ && p.CurrentRole.MafiaTargetId is -1 or -2 or -4).Distinct().ToList();
|
|
|
if (allMafiaVotes.Count == 1)
|
|
|
{
|
|
|
mafiaNotAgree = allMafiaVotes[0].CurrentRole.MafiaTargetId switch
|
|
@@ -503,23 +504,26 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var villagerTeam = players.Where(p => p.CurrentRole.ColorRole == 1 && p.GetRole() != Roles.Lawyer).Select(p => p.Id);
|
|
|
- var mafiaTeam = players.Where(p => p.CurrentRole.ColorRole == 2 || p.GetRole() == Roles.Lawyer).Select(p => p.Id);
|
|
|
+ var villagerTeam = players.Where(p => p.CurrentRole.ColorRole == 1 && p.GetRole() != Roles.Lawyer).Select(p => p.Id).ToList();
|
|
|
+ var mafiaTeam = players.Where(p => p.CurrentRole.ColorRole == 2 || p.GetRole() == Roles.Lawyer).Select(p => p.Id).ToList();
|
|
|
|
|
|
foreach (var player in players)
|
|
|
{
|
|
|
if (aliveMafia == 0)
|
|
|
{
|
|
|
- if(player.CurrentRole.ColorRole == 1 && player.CurrentRole.RoleKey != Roles.Lawyer)
|
|
|
+ if(player.CurrentRole.ColorRole == 1 && player.GetRole() != Roles.Lawyer)
|
|
|
{
|
|
|
UpdateWins(player);
|
|
|
player.HookerRoleAchievementEvent();
|
|
|
- player.ParasiteRoleAchievementEvent(villagerTeam.ToList());
|
|
|
+ await player.ParasiteRoleAchievementEvent(villagerTeam.ToList());
|
|
|
player.WerewolfRoleAchievementEvent(1);
|
|
|
}
|
|
|
- else if (player.CurrentRole.ColorRole == 2)
|
|
|
- player.WerewolfRoleAchievementEvent(2, true);
|
|
|
- else player.ResetParasiteProgress();
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (player.CurrentRole.ColorRole == 2)
|
|
|
+ player.WerewolfRoleAchievementEvent(2, true);
|
|
|
+ player.ResetParasiteProgress();
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -527,12 +531,15 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
{
|
|
|
UpdateWins(player);
|
|
|
player.HookerRoleAchievementEvent();
|
|
|
- player.ParasiteRoleAchievementEvent(mafiaTeam.ToList());
|
|
|
+ await player.ParasiteRoleAchievementEvent(mafiaTeam.ToList());
|
|
|
player.WerewolfRoleAchievementEvent(2);
|
|
|
}
|
|
|
- else if (player.CurrentRole.ColorRole == 1)
|
|
|
- player.WerewolfRoleAchievementEvent(1, true);
|
|
|
- else player.ResetParasiteProgress();
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (player.CurrentRole.ColorRole == 1)
|
|
|
+ player.WerewolfRoleAchievementEvent(1, true);
|
|
|
+ player.ResetParasiteProgress();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (player.CurrentRole.ColorRole == 3)
|
|
@@ -542,7 +549,7 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
player.HookerRoleAchievementEvent();
|
|
|
UpdateWins(player);
|
|
|
}
|
|
|
- else player.ResetParasiteProgress();
|
|
|
+ player.ResetParasiteProgress();
|
|
|
}
|
|
|
|
|
|
if (player.CurrentRole.RoleKey == Roles.Cop)
|