|
@@ -1,3 +1,4 @@
|
|
|
+using System.Collections.Generic;
|
|
|
using System.Threading.Tasks;
|
|
|
using MafiaTelegramBot.Resources;
|
|
|
|
|
@@ -7,31 +8,36 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
{
|
|
|
public override bool IsExtended { get; protected set; } = false;
|
|
|
|
|
|
+ protected override Dictionary<Roles, List<Player>> PlayersRole { get; } = new()
|
|
|
+ {
|
|
|
+ [Roles.Mafia] = new List<Player>(),
|
|
|
+ [Roles.Don] = new List<Player>(),
|
|
|
+ [Roles.Villager] = new List<Player>(),
|
|
|
+ [Roles.Cop] = new List<Player>(),
|
|
|
+ [Roles.Doctor] = new List<Player>()
|
|
|
+ };
|
|
|
+
|
|
|
protected override async Task ReadSettings()
|
|
|
{
|
|
|
await Task.Run(() =>
|
|
|
{
|
|
|
- Settings[Roles.Villager] = Players.Count;
|
|
|
- Settings[Roles.Cop] = 1;
|
|
|
- if (Players.Count != 8) Settings[Roles.Doctor] = 1;
|
|
|
- else Settings[Roles.Doctor] = 0;
|
|
|
+ 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[Roles.Mafia] = Players.Count / 3;
|
|
|
- Settings[Roles.Don] = 0;
|
|
|
- }
|
|
|
+ Settings.Add(Roles.Mafia, Players.Count/3);
|
|
|
else
|
|
|
{
|
|
|
- Settings[Roles.Mafia] = (Players.Count / 3) - 1;
|
|
|
- Settings[Roles.Don] = 1;
|
|
|
+ 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;
|
|
|
- foreach (var (key, value) in Settings)
|
|
|
- if (value < 1)
|
|
|
- Settings.Remove(key);
|
|
|
+ }
|
|
|
+ if (Settings[Roles.Mafia] < 1) Settings.Remove(Roles.Mafia);
|
|
|
+ if (Settings[Roles.Villager] < 1) Settings.Remove(Roles.Villager);
|
|
|
});
|
|
|
}
|
|
|
}
|