|
@@ -289,18 +289,29 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
else
|
|
else
|
|
{
|
|
{
|
|
var target = Players[targetId];
|
|
var target = Players[targetId];
|
|
- VoteUpList.Add(target);
|
|
|
|
- if (toKill) VoteKillList.Add(playerId, targetId);
|
|
|
|
- if (playerId != targetId)
|
|
|
|
|
|
+ if (!toKill)
|
|
{
|
|
{
|
|
- if (!toKill) await PlayersCh.SendExcept(player.ChatId, $"{player.NickName} {strings.put_up_vote_to} {target.NickName}");
|
|
|
|
- await PlayersCh.EditTo(player.Id, messageId, $"{strings.you_vote_player} {target.NickName}");
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- if (!toKill) await PlayersCh.SendExcept(player.ChatId, $"{player.NickName} {strings.vote_to_self}");
|
|
|
|
- await PlayersCh.EditTo(player.Id, messageId, strings.you_vote_to_self);
|
|
|
|
|
|
+ if (VoteUpList.AddUnique(target))
|
|
|
|
+ {
|
|
|
|
+ if (playerId != targetId)
|
|
|
|
+ {
|
|
|
|
+ await PlayersCh.SendExcept(player.ChatId, $"{player.NickName} {strings.put_up_vote_to} {target.NickName}");
|
|
|
|
+ await PlayersCh.EditTo(player.Id, messageId, $"{strings.you_vote_player} {target.NickName}");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ await PlayersCh.SendExcept(player.ChatId, $"{player.NickName} {strings.vote_to_self}");
|
|
|
|
+ await PlayersCh.EditTo(player.Id, messageId, strings.you_vote_to_self);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ else if (VoteKillList.AddUniqueByKey(playerId, targetId))
|
|
|
|
+ {
|
|
|
|
+ if (playerId != targetId)
|
|
|
|
+ await PlayersCh.EditTo(player.Id, messageId, $"{strings.you_vote_player} {target.NickName}");
|
|
|
|
+ else
|
|
|
|
+ await PlayersCh.EditTo(player.Id, messageId, strings.you_vote_to_self);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -328,7 +339,7 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
await PlayersCh.SendSticker(Stickers.Sticker["MafiaWins"]);
|
|
await PlayersCh.SendSticker(Stickers.Sticker["MafiaWins"]);
|
|
}
|
|
}
|
|
|
|
|
|
- if (PlayersRole.ContainsKey(Roles.Fool)) await PlayersRole[Roles.Fool][0].CurrentRole.IsWon();
|
|
|
|
|
|
+ if (PlayersRole.ContainsKey(Roles.Fool) && PlayersRole[Roles.Fool].Count == 1) await PlayersRole[Roles.Fool][0].CurrentRole.IsWon();
|
|
var rolesMessage = strings.in_this_game_roles;
|
|
var rolesMessage = strings.in_this_game_roles;
|
|
var sortedPLayers = Players.Values.ToList();
|
|
var sortedPLayers = Players.Values.ToList();
|
|
sortedPLayers.Sort((x, y) => x.TurnOrder - y.TurnOrder);
|
|
sortedPLayers.Sort((x, y) => x.TurnOrder - y.TurnOrder);
|