using System.Collections.Generic; using System.Threading.Tasks; using MafiaTelegramBot.Resources; namespace MafiaTelegramBot.Game.GameRooms { public class NormalGameRoom : GameRoom { public override bool IsExtended { get; protected set; } = false; public override Dictionary> PlayersRole { get; set;} = new() { //passive roles [Roles.Villager] = new List(), //Active roles [Roles.Mafia] = new List(), [Roles.Don] = new List(), [Roles.Cop] = new List(), [Roles.Doctor] = new List(), }; protected override async Task ReadSettings() { await Task.Run(() => { Settings.Add(Roles.Villager, Players.Count); Settings.Add(Roles.Cop, 1); if (Players.Count != 8) Settings.Add(Roles.Doctor, 1); if (Players.Count % 3 == 0) Settings.Add(Roles.Mafia, Players.Count/3); else { Settings.Add(Roles.Mafia, Players.Count/3 -1); Settings.Add(Roles.Don, 1); } foreach (var (key, value) in Settings) { if (key != Roles.Villager) Settings[Roles.Villager] -= value; } if (Settings[Roles.Mafia] < 1) Settings.Remove(Roles.Mafia); if (Settings[Roles.Villager] < 1) Settings.Remove(Roles.Villager); }); return ResultCode.CodeOk; } } }