123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using MafiaTelegramBot.Resources;
- namespace MafiaTelegramBot.Game.GameRooms
- {
- public abstract partial class GameRoom
- {
- public bool IsRunning;
- public bool IsDay = false;
- public int MaxPlayers = 10;
- private int _minPlayers = Constants.PLAYER_LIMITS_MIN;
- public bool IsPrivate { get; init; }
- public abstract bool IsExtended { get; protected set; }
- public bool TimerEnabled { get; set; } = true;
- public string RoomName { get; init; } = "NoNameRoom";
- public Player Owner { get; init; } = new();
- private int _largeVote = 0; //большее из количеств голосов за игроков
- private readonly List<Player> _voteUpList = new();
- protected Player PlayerToDispatch = null;
- public readonly MessageHandler MHandler;
- public readonly QueryHandler QHandler;
- private readonly MafiaChannel _mafiaCh;
- public readonly PlayersChannel PlayersCh;
- private readonly Queue<Player> _turnOrder = new();
- public readonly Dictionary<long, Player> Players = new();
- protected readonly Dictionary<Roles, int> Settings = new();
- public abstract Dictionary<Roles, List<Player>> PlayersRole { get; set; }
-
- protected GameRoom()
- {
- MHandler = new MessageHandler(this);
- QHandler = new QueryHandler(this);
- _mafiaCh = new MafiaChannel(this);
- PlayersCh = new PlayersChannel(this);
- }
- public async Task<List<Player>> GetPlayers()
- {
- return await Task.Run(() =>
- {
- var players = Players.Values.ToList();
- players.Remove(Owner);
- return players;
- });
- }
- public bool IsFilled()
- {
- return Players.Count == MaxPlayers;
- }
- }
- }
|