Пример #1
0
        private static bool CheckAvailability(
            IExtraRole role,
            ICollection all,
            ICollection imposters,
            ICollection crew)
        {
            var needed       = role.GetNeededRoles();
            var impNeeded    = needed.Count(t => t == RoleType.Imposter);
            var crewNeeded   = needed.Count(t => t == RoleType.Crewmate);
            var eitherNeeded = needed.Count(t => t == RoleType.Either);

            if (crewNeeded > crew.Count)
            {
                return(false);
            }

            if (impNeeded > imposters.Count)
            {
                return(false);
            }

            if (all.Count - impNeeded - crewNeeded < eitherNeeded)
            {
                return(false);
            }

            return(true);
        }
Пример #2
0
 public void RegisterRole(IExtraRole role)
 {
     _roles.Add(role.GetName().ToLower(), role);
     _logger.LogInformation($"The role {role.GetName()} has been registered!");
 }