/// <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); }
/// <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); }
/// <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); } }
/// <summary> /// この視点が包含する視点を追加する /// </summary> /// <param name="child">追加する視点</param> public void AddInclusionViewpoint(Viewpoint child) { InclusionViewpoint.Add(child); }
/// <summary> /// コンストラクタ(他の視点から人外パターンをコピー) /// </summary> /// <param name="gameSetting">コピー元の視点</param> public Viewpoint(Viewpoint parent) { // 人外パターンとエージェントをコピー MonsterSidePattern = new Dictionary <int, MonsterSidePattern>(parent.MonsterSidePattern); AgentList = parent.AgentList; }