|
@@ -2,6 +2,7 @@ using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using MafiaTelegramBot.Controllers;
|
|
using MafiaTelegramBot.Controllers;
|
|
|
|
+using MafiaTelegramBot.Game.GameRoles;
|
|
using MafiaTelegramBot.Models;
|
|
using MafiaTelegramBot.Models;
|
|
using MafiaTelegramBot.Resources;
|
|
using MafiaTelegramBot.Resources;
|
|
using Telegram.Bot.Types;
|
|
using Telegram.Bot.Types;
|
|
@@ -34,9 +35,37 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
if (_room.IsDay && _room.Players[userId].IsSpeaker) _room.Players[userId].CurrentRole.TalkingActionComplete.Set();
|
|
if (_room.IsDay && _room.Players[userId].IsSpeaker) _room.Players[userId].CurrentRole.TalkingActionComplete.Set();
|
|
else await _room.PlayersMessageChannel.SendTo(userId, strings.now_is_not_your_turn);
|
|
else await _room.PlayersMessageChannel.SendTo(userId, strings.now_is_not_your_turn);
|
|
}
|
|
}
|
|
- else await _room.ForwardMessage(_room.Players[userId], text);
|
|
|
|
|
|
+ else await ForwardMessage(_room.Players[userId], text);
|
|
return update.Message;
|
|
return update.Message;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private async Task ForwardMessage(Player player, string message)
|
|
|
|
+ {
|
|
|
|
+ if(!_room.IsRunning) await _room.PlayersMessageChannel.SendExcept(player.Id, $"{player.NickName}: {message}");
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if (!player.IsAlive) await _room.PlayersMessageChannel.SendTo(player.Id, strings.you_now_died);
|
|
|
|
+ else if (player.IsBlocked) await _room.PlayersMessageChannel.SendTo(player.Id, strings.you_blocked);
|
|
|
|
+ else if (!player.IsSpeaker) await _room.PlayersMessageChannel.SendTo(player.Id, strings.now_you_cant_speak);
|
|
|
|
+ else if (_room.IsDay) await _room.PlayersMessageChannel.SendExcept(player.Id, $"({player.TurnOrder}) {player.NickName}: {message}");
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if (player.CurrentRole.ColorRole == 2)
|
|
|
|
+ await _room.MafiaMessageChannel.SendExcept(player.Id, $"({player.TurnOrder}) {player.NickName}: {message}");
|
|
|
|
+ if (player.GetRole() is Roles.Parasite)
|
|
|
|
+ {
|
|
|
|
+ var parasiteRole = player.CurrentRole as ParasiteRole;
|
|
|
|
+ await _room.PlayersMessageChannel.SendTo(parasiteRole!.ParentId, $"({player.TurnOrder}) {player.NickName}: {message}");
|
|
|
|
+ }
|
|
|
|
+ else if (_room.PlayersRole.ContainsKey(Roles.Parasite)
|
|
|
|
+ && _room.PlayersRole[Roles.Parasite].Count == 1
|
|
|
|
+ && ((ParasiteRole)_room.PlayersRole[Roles.Parasite][0].CurrentRole).ParentId == player.Id)
|
|
|
|
+ {
|
|
|
|
+ await _room.PlayersMessageChannel.SendTo(_room.PlayersRole[Roles.Parasite][0].Id, $"({player.TurnOrder}) {player.NickName}: {message}");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
private async Task LookPlayers(Player player)
|
|
private async Task LookPlayers(Player player)
|
|
{
|
|
{
|