|
@@ -1,8 +1,7 @@
|
|
|
|
+using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
-using System.ComponentModel;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
-using System.Threading.Tasks;
|
|
|
|
using MafiaTelegramBot.Resources;
|
|
using MafiaTelegramBot.Resources;
|
|
|
|
|
|
namespace MafiaTelegramBot.DataBase.Entity
|
|
namespace MafiaTelegramBot.DataBase.Entity
|
|
@@ -103,5 +102,59 @@ namespace MafiaTelegramBot.DataBase.Entity
|
|
{
|
|
{
|
|
Hooker = true;
|
|
Hooker = true;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public bool TryOpenRole(Roles role)
|
|
|
|
+ {
|
|
|
|
+ switch (role)
|
|
|
|
+ {
|
|
|
|
+ case Roles.All or Roles.Doctor or Roles.Mafia or Roles.Don or Roles.Cop or Roles.Villager or Roles.None: return false;
|
|
|
|
+ case Roles.Hooker:
|
|
|
|
+ if (Hooker) return false;
|
|
|
|
+ OpenHooker();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Elder:
|
|
|
|
+ if (Elder) return false;
|
|
|
|
+ OpenElder();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Werewolf:
|
|
|
|
+ if (Werewolf) return false;
|
|
|
|
+ OpenWerewolf();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Journalist:
|
|
|
|
+ if (Journalist) return false;
|
|
|
|
+ OpenJournalist();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Detective:
|
|
|
|
+ if (Detective) return false;
|
|
|
|
+ OpenDetective();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Dame:
|
|
|
|
+ if (Dame) return false;
|
|
|
|
+ OpenDame();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Parasite:
|
|
|
|
+ if (Parasite) return false;
|
|
|
|
+ OpenParasite();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Lawyer:
|
|
|
|
+ if (Lawyer) return false;
|
|
|
|
+ OpenLawyer();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Fool:
|
|
|
|
+ if (Fool) return false;
|
|
|
|
+ OpenFool();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Necromancer:
|
|
|
|
+ if (Necromancer) return false;
|
|
|
|
+ OpenNecromancer();
|
|
|
|
+ return true;
|
|
|
|
+ case Roles.Bodyguard:
|
|
|
|
+ if (Bodyguard) return false;
|
|
|
|
+ OpenBodyguard();
|
|
|
|
+ return true;
|
|
|
|
+ default:
|
|
|
|
+ throw new ArgumentOutOfRangeException(nameof(role), role, null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|