|
@@ -2,6 +2,7 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Threading.Tasks;
|
|
|
using MafiaTelegramBot.Controllers;
|
|
|
+using MafiaTelegramBot.Models;
|
|
|
using MafiaTelegramBot.Resources;
|
|
|
using Telegram.Bot.Types;
|
|
|
|
|
@@ -11,7 +12,7 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
{
|
|
|
public class MessageHandler
|
|
|
{
|
|
|
- private List<long> LeavingPlayers = new();
|
|
|
+ private readonly List<long> _exitingPlayers = new();
|
|
|
|
|
|
private readonly GameRoom _room;
|
|
|
|
|
@@ -25,7 +26,7 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
var text = update.Message.Text;
|
|
|
var userId = update.Message.From.Id;
|
|
|
if (!_room.Players.ContainsKey(userId)) return new Message();
|
|
|
- if(LeavingPlayers.Contains(userId)) await Leave(_room.Players[userId], update.Message.Text);
|
|
|
+ if(_exitingPlayers.Contains(userId)) await Leave(_room.Players[userId], update.Message.Text);
|
|
|
else if (text == keyboard.look_players_list) await LookPlayers(_room.Players[userId]);
|
|
|
else if (text == keyboard.leave) await Leave(_room.Players[userId]);
|
|
|
else if (text == keyboard.end_turn)
|
|
@@ -59,14 +60,15 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
var stopIndex = -1;
|
|
|
for (var i = 0; i <= players.Length && i != stopIndex; ++i)
|
|
|
{
|
|
|
+ i %= players.Length;
|
|
|
if (stopIndex == -1 && players[i].Id == nextPlayer.Id) stopIndex = i;
|
|
|
if (stopIndex == -1) continue;
|
|
|
- i %= players.Length;
|
|
|
var role = knownRoles.ContainsKey(players[i].Id)
|
|
|
? knownRoles[players[i].Id]
|
|
|
: "";
|
|
|
message +=
|
|
|
- $"\n{(message == strings.players_list ? strings.next + " - " : "")}({players[i].TurnOrder}) " +
|
|
|
+ $"\n{(message == strings.players_list ? strings.next + " - " : "")}" +
|
|
|
+ $"({players[i].TurnOrder}) " +
|
|
|
$"{(players[i].Id == player.Id ? strings.you : players[i].NickName)} " +
|
|
|
$"({(players[i].IsAlive ? strings.alive : strings.died)}) " +
|
|
|
$"{role}";
|
|
@@ -79,19 +81,19 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
var roomName = player.GetRoomName();
|
|
|
if (_room.IsRunning)
|
|
|
{
|
|
|
- if (LeavingPlayers.Remove(player.Id))
|
|
|
+ if (_exitingPlayers.Remove(player.Id))
|
|
|
{
|
|
|
if (text == strings.exit)
|
|
|
{
|
|
|
var resultCode = await RoomController.LeaveFromGame(player);
|
|
|
if (resultCode == ResultCode.CodeOk)
|
|
|
- await _room.PlayersCh.SendTo(player.ChatId, $"{strings.you_leave_from_game} _*{roomName}*_", Keyboard.MainMenu);
|
|
|
+ await Bot.SendWithMarkdown2(player.ChatId, $"{strings.you_leave_from_game} _*{roomName}*_", Keyboard.MainMenu);
|
|
|
else await Utilities.GetResultCodeMessage(resultCode, player.ChatId);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- LeavingPlayers.Add(player.Id);
|
|
|
+ _exitingPlayers.Add(player.Id);
|
|
|
await _room.PlayersCh.SendTo(player.ChatId, $"{strings.confirm_exit} ```{strings.exit}``` {strings.to_confirm_exit}");
|
|
|
}
|
|
|
}
|