|
@@ -13,17 +13,24 @@ namespace MafiaTelegramBot.Game.GameRoles
|
|
|
public override async Task NightAction()
|
|
|
{
|
|
|
Player.IsSpeaker = true;
|
|
|
- var targets = Room.Players.Values.Except(KnownRoles).Where(p => p.IsAlive).ToList();
|
|
|
+ var alivePlayers = Room.Players.Values.Where(p => p.IsAlive).ToList();
|
|
|
+ var targets = alivePlayers.Except(KnownRoles).ToList();
|
|
|
+
|
|
|
var message = await Bot.SendWithMarkdown2(Player.ChatId, strings.choose_player_to_check_role,
|
|
|
Keyboard.NightChooseTargetKeyboard(targets, Player.Id));
|
|
|
MessageId = message.MessageId;
|
|
|
+
|
|
|
+ message = await Bot.SendWithMarkdown2(Player.ChatId, strings.choose_player_to_kill,
|
|
|
+ Keyboard.NightMafiaTargetKeyboard(alivePlayers, Player.Id));
|
|
|
+ MafiaMessageId = message.MessageId;
|
|
|
}
|
|
|
|
|
|
public override async Task ApplyNightActionResult()
|
|
|
{
|
|
|
Player.IsSpeaker = false;
|
|
|
- if (NightTargetId == -1)
|
|
|
- await Bot.EditMessageAsync(Player.ChatId, MessageId, strings.you_have_not_choosen_target);
|
|
|
+ if (MafiaTargetId == -1) await Room.PlayersCh.EditTo(Player.Id, MafiaMessageId, strings.you_have_not_choosen_target);
|
|
|
+ else MafiaTargetId = -1;
|
|
|
+ if (NightTargetId == -1) await Room.PlayersCh.EditTo(Player.Id, MessageId, strings.you_have_not_choosen_target);
|
|
|
else
|
|
|
{
|
|
|
var user = Room.Players[NightTargetId];
|
|
@@ -38,8 +45,22 @@ namespace MafiaTelegramBot.Game.GameRoles
|
|
|
|
|
|
public override async Task SetNightTarget(long userId)
|
|
|
{
|
|
|
- NightTargetId = userId;
|
|
|
- await Bot.EditMessageAsync(Player.ChatId, MessageId, $"{strings.you_choose_target} {Room.Players[userId].NickName}");
|
|
|
+ if(userId == -1) await Room.PlayersCh.EditTo(Player.Id, MafiaMessageId, strings.you_skip_vote);
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NightTargetId = userId;
|
|
|
+ await Bot.EditMessageAsync(Player.ChatId, MessageId, $"{strings.you_choose_target} {Room.Players[userId].NickName}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public override async Task SetMafiaTarget(long userId)
|
|
|
+ {
|
|
|
+ if(userId == -1) await Room.PlayersCh.EditTo(Player.Id, MafiaMessageId, strings.you_skip_vote);
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MafiaTargetId = userId;
|
|
|
+ await Room.PlayersCh.EditTo(Player.Id, MafiaMessageId, $"{strings.you_choose_target} {Room.Players[userId].NickName}");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public DonRole(GameRoom room, Player player) : base(room, player) { }
|