Exemple #1
0
        /// <summary>
        /// Get ActorRoles mapped to roles held in RoleFilter Flags
        /// </summary>
        /// <param name="role">RoleFilter</param>
        /// <returns>List of IfcActorRole</returns>
        private List <IfcActorRole> GetActorRoles(RoleFilter role)
        {
            if (RoleMap == null)
            {
                RoleMap = new Dictionary <RoleFilter, IfcActorRole>();
            }

            List <IfcActorRole> actorRoles = new List <IfcActorRole>();

            if (role.HasFlag(RoleFilter.Architectural))
            {
                actorRoles.Add(RoleMap.ContainsKey(RoleFilter.Architectural) ? RoleMap[RoleFilter.Architectural] : MapRole(RoleFilter.Architectural, IfcRole.Architect));
            }
            if (role.HasFlag(RoleFilter.Mechanical))
            {
                actorRoles.Add(RoleMap.ContainsKey(RoleFilter.Mechanical) ? RoleMap[RoleFilter.Mechanical] : MapRole(RoleFilter.Mechanical, IfcRole.MechanicalEngineer));
            }
            if (role.HasFlag(RoleFilter.Electrical))
            {
                actorRoles.Add(RoleMap.ContainsKey(RoleFilter.Electrical) ? RoleMap[RoleFilter.Electrical] : MapRole(RoleFilter.Electrical, IfcRole.ElectricalEngineer));
            }
            if (role.HasFlag(RoleFilter.Plumbing))
            {
                actorRoles.Add(RoleMap.ContainsKey(RoleFilter.Plumbing) ? RoleMap[RoleFilter.Plumbing] : MapRole(RoleFilter.Plumbing, IfcRole.UserDefined));
            }
            if (role.HasFlag(RoleFilter.FireProtection))
            {
                actorRoles.Add(RoleMap.ContainsKey(RoleFilter.FireProtection) ? RoleMap[RoleFilter.FireProtection] : MapRole(RoleFilter.FireProtection, IfcRole.UserDefined));
            }
            if (role.HasFlag(RoleFilter.Unknown))
            {
                actorRoles.Add(RoleMap.ContainsKey(RoleFilter.Unknown) ? RoleMap[RoleFilter.Unknown] : MapRole(RoleFilter.Unknown, IfcRole.UserDefined));
            }
            return(actorRoles);
        }
Exemple #2
0
        /// <summary>
        /// Get ActorRoles mapped to roles held in RoleFilter Flags
        /// </summary>
        /// <param name="role">RoleFilter</param>
        /// <returns>List of IfcActorRole</returns>
        private List <IIfcActorRole> GetActorRoles(RoleFilter role)
        {
            if (RoleMap == null)
            {
                RoleMap = new Dictionary <RoleFilter, IIfcActorRole>();
            }
            var actorRoles = new List <IIfcActorRole>();

            using (var tx = Model.BeginTransaction("RoleSettings"))
            {
                if (role.HasFlag(RoleFilter.Architectural))
                {
                    actorRoles.Add(
                        RoleMap.ContainsKey(RoleFilter.Architectural)
                        ? RoleMap[RoleFilter.Architectural]
                        : MapRole(RoleFilter.Architectural, IfcRoleEnum.ARCHITECT));
                }
                if (role.HasFlag(RoleFilter.Mechanical))
                {
                    actorRoles.Add(
                        RoleMap.ContainsKey(RoleFilter.Mechanical)
                        ? RoleMap[RoleFilter.Mechanical]
                        : MapRole(RoleFilter.Mechanical, IfcRoleEnum.MECHANICALENGINEER));
                }
                if (role.HasFlag(RoleFilter.Electrical))
                {
                    actorRoles.Add(
                        RoleMap.ContainsKey(RoleFilter.Electrical)
                        ? RoleMap[RoleFilter.Electrical]
                        : MapRole(RoleFilter.Electrical, IfcRoleEnum.ELECTRICALENGINEER));
                }
                if (role.HasFlag(RoleFilter.Plumbing))
                {
                    actorRoles.Add(
                        RoleMap.ContainsKey(RoleFilter.Plumbing)
                        ? RoleMap[RoleFilter.Plumbing]
                        : MapRole(RoleFilter.Plumbing, IfcRoleEnum.USERDEFINED));
                }
                if (role.HasFlag(RoleFilter.FireProtection))
                {
                    actorRoles.Add(
                        RoleMap.ContainsKey(RoleFilter.FireProtection)
                        ? RoleMap[RoleFilter.FireProtection]
                        : MapRole(RoleFilter.FireProtection, IfcRoleEnum.USERDEFINED));
                }
                if (role.HasFlag(RoleFilter.Unknown))
                {
                    actorRoles.Add(
                        RoleMap.ContainsKey(RoleFilter.Unknown)
                        ? RoleMap[RoleFilter.Unknown]
                        : MapRole(RoleFilter.Unknown, IfcRoleEnum.USERDEFINED));
                }
                tx.Commit();
            }

            return(actorRoles);
        }
Exemple #3
0
        /// <summary>
        /// 生存している人狼のリストを取得する
        /// (自分が人狼のとき、及びゲーム終了後のみ結果を取得できる)
        /// </summary>
        /// <returns></returns>
        public List <Agent> GetAliveWerewolf()
        {
            List <Agent> ret = new List <Agent>();

            foreach (Agent agent in latestGameInfo.AliveAgentList)
            {
                if (RoleMap.ContainsKey(agent) && RoleMap[agent] == Role.WEREWOLF)
                {
                    ret.Add(agent);
                }
            }

            return(ret);
        }