Example #1
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="gameInfo"></param>
        /// <param name="gameSetting"></param>
        public AdvanceGameInfo(GameInfo gameInfo, GameSetting gameSetting)
        {
            // ゲーム設定を保管
            GameSetting = gameSetting;

            // 全視点情報・自分視点情報の初期化
            AllViewSystemInfo  = new Viewpoint(GameSetting);
            SelfViewSystemInfo = AllViewSystemInfo.AddInclusionViewpoint();
            // 自分視点から自分が人外の内訳を削除する
            ICondition condition = TeamCondition.GetCondition(gameInfo.Agent, Team.VILLAGER);

            SelfViewSystemInfo.RemoveNotMatchPattern(condition);
        }
Example #2
0
        /// <summary>
        /// この視点が包含する視点を追加する
        /// </summary>
        /// <returns>追加した視点</returns>
        public Viewpoint AddInclusionViewpoint()
        {
            Viewpoint newViewPoint = new Viewpoint();

            // 人外パターンをコピー
            foreach (MonsterSidePattern pattern in MonsterSidePattern)
            {
                newViewPoint.MonsterSidePattern.Add(pattern);
            }

            // 包含する視点として追加
            InclusionViewpoint.Add(newViewPoint);

            return(newViewPoint);
        }
Example #3
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="gameInfo"></param>
        /// <param name="gameSetting"></param>
        public AdvanceGameInfo(GameInfo gameInfo, GameSetting gameSetting)
        {
            // ゲーム設定を保管
            GameSetting    = gameSetting;
            latestGameInfo = gameInfo;

            AgentList = gameInfo.AgentList;

            // 全視点情報・自分視点情報の初期化
            AllViewSystemInfo  = new Viewpoint(GameSetting, gameInfo);
            AllViewTrustInfo   = new Viewpoint(AllViewSystemInfo);
            SelfViewSystemInfo = new Viewpoint(AllViewSystemInfo);
            SelfViewTrustInfo  = new Viewpoint(AllViewSystemInfo);
            AllViewSystemInfo.AddInclusionViewpoint(AllViewTrustInfo);
            AllViewSystemInfo.AddInclusionViewpoint(SelfViewSystemInfo);
            AllViewTrustInfo.AddInclusionViewpoint(SelfViewTrustInfo);
            SelfViewSystemInfo.AddInclusionViewpoint(SelfViewTrustInfo);
            if (MyRole == Role.POSSESSED)
            {
                SelfPossessedViewTrustInfo = new Viewpoint(AllViewTrustInfo);
                AllViewTrustInfo.AddInclusionViewpoint(SelfPossessedViewTrustInfo);
            }

            // 自分視点から自分が人外の内訳を削除する
            BitCondition condition = new BitCondition();

            condition.AddWerewolfTeam(gameInfo.Agent);
            SelfViewSystemInfo.RemoveMatchPattern(condition);

            // 自分狂人視点から自分が狂人でない内訳を削除する
            if (MyRole == Role.POSSESSED)
            {
                condition = new BitCondition();
                condition.AddNotPossessed(gameInfo.Agent);
                SelfPossessedViewTrustInfo.RemoveMatchPattern(condition);
            }
        }
Example #4
0
 /// <summary>
 /// この視点が包含する視点を追加する
 /// </summary>
 /// <param name="child">追加する視点</param>
 public void AddInclusionViewpoint(Viewpoint child)
 {
     InclusionViewpoint.Add(child);
 }
Example #5
0
 /// <summary>
 /// コンストラクタ(他の視点から人外パターンをコピー)
 /// </summary>
 /// <param name="gameSetting">コピー元の視点</param>
 public Viewpoint(Viewpoint parent)
 {
     // 人外パターンとエージェントをコピー
     MonsterSidePattern = new Dictionary <int, MonsterSidePattern>(parent.MonsterSidePattern);
     AgentList          = parent.AgentList;
 }