1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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<Roles, List<Player>> PlayersRole { get; set;} = new()
- {
- //passive roles
- [Roles.Villager] = new List<Player>(),
- //Active roles
- [Roles.Mafia] = new List<Player>(),
- [Roles.Don] = new List<Player>(),
- [Roles.Cop] = new List<Player>(),
- [Roles.Doctor] = new List<Player>(),
- };
- protected override async Task<ResultCode> 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;
- }
- }
- }
|