public override void Initialize(GameInfo gameInfo, GameSetting gameSetting) { base.Initialize(gameInfo, gameSetting); comingoutDay = new Random().Next(3) + 1; isCameout = false; }
public virtual void Initialize(GameInfo gameInfo, GameSetting gameSetting) { GameInfoMap.Clear(); GameSetting = gameSetting; Day = gameInfo.Day; GameInfoMap[Day] = gameInfo; MyRole = gameInfo.Role; Me = gameInfo.Agent; return; }
public GameData(GameSetting gameSetting) { agentStatusMap = new Dictionary<Agent, Status>(); agentRoleMap = new Dictionary<Agent, Role>(); TalkList = new List<Talk>(); WhisperList = new List<Talk>(); VoteList = new List<Vote>(); AttackVoteList = new List<Vote>(); SuddendeathList = new List<Agent>(); this.gameSetting = gameSetting; }
public TcpipServer(int port, int limit, GameSetting gameSetting) { this.gameSetting = gameSetting; this.port = port; this.limit = limit; ipAddress = IPAddress.Parse("127.0.0.1"); nameMap = new Dictionary<Agent, string>(); serverListenerSet = new HashSet<IServerListener>(); connectionAgentMap = new Dictionary<TcpClient, Agent>(); agentConnectionMap = new Dictionary<Agent, TcpClient>(); lastTalkIdxMap = new Dictionary<Agent, int>(); lastWhisperIdxMap = new Dictionary<Agent, int>(); }
public void SetGameSetting(GameSetting gameSetting) { this.gameSetting = gameSetting; }
/// <summary> /// Create packet with game inforamtion and game setting. /// </summary> /// <param name="request"></param> /// <param name="gameInfoToSend"></param> /// <param name="gameSetting"></param> public Packet(Request request, GameInfoToSend gameInfoToSend, GameSetting gameSetting) { Request = request; GameInfo = gameInfoToSend; GameSetting = gameSetting; }
public override sealed void Initialize(GameInfo gameInfo, GameSetting gameSetting) { Role? myRole = gameInfo.Role; switch (myRole) { case Role.VILLAGER: rolePlayer = VillagerPlayer; break; case Role.SEER: rolePlayer = SeerPlayer; break; case Role.MEDIUM: rolePlayer = MediumPlayer; break; case Role.BODYGUARD: rolePlayer = BodyguardPlayer; break; case Role.POSSESSED: rolePlayer = PossessedPlayer; break; case Role.WEREWOLF: rolePlayer = WerewolfPlayer; break; default: rolePlayer = VillagerPlayer; break; } rolePlayer.Initialize(gameInfo, gameSetting); }
public override void Initialize(GameInfo gameInfo, GameSetting gameSetting) { base.Initialize(gameInfo, gameSetting); List<Role> fakeRoles = gameSetting.RoleNumMap.Keys.ToList(); List<Role> nonFakeRoleList = new Role[] { Role.BODYGUARD, Role.FREEMASON, Role.POSSESSED, Role.WEREWOLF }.ToList(); fakeRoles.RemoveAll(role => nonFakeRoleList.Contains(role)); fakeRole = fakeRoles[new Random().Next(fakeRoles.Count)]; // 占い師,or霊能者なら1~3日目からランダムに選択してCO.村人ならCOしない. comingoutDay = new Random().Next(3) + 1; if (fakeRole == Role.VILLAGER) { comingoutDay = 1000; } isCameout = false; }
/// <summary> /// Called when the game started. /// </summary> /// <param name="gameInfo">Information about current game status.</param> /// <param name="gameSetting">Game settings.</param> public abstract void Initialize(GameInfo gameInfo, GameSetting gameSetting);
public object Recieve(Packet packet) { GameInfo gameInfo = lastGameInfo; GameSetting gameSetting = packet.GameSetting; if (packet.GameInfo != null) { gameInfo = packet.GameInfo.ToGameInfo(); lastGameInfo = gameInfo; } if (packet.TalkHistory != null) { Talk lastTalk = null; if (gameInfo.TalkList != null && gameInfo.TalkList.Count != 0) { lastTalk = gameInfo.TalkList[gameInfo.TalkList.Count - 1]; } foreach (var talk in packet.TalkHistory) { if (IsAfter(talk, lastTalk)) { gameInfo.TalkList.Add(talk.ToTalk()); } } } if (packet.WhisperHistory != null) { Talk lastWhisper = null; if (gameInfo.WhisperList != null && gameInfo.WhisperList.Count != 0) { lastWhisper = gameInfo.WhisperList[gameInfo.WhisperList.Count - 1]; } foreach (var whisper in packet.WhisperHistory) { if (IsAfter(whisper, lastWhisper)) { gameInfo.WhisperList.Add(whisper.ToTalk()); } } } object returnObject = null; switch (packet.Request) { case Request.INITIALIZE: Running = true; player.Initialize(gameInfo, gameSetting); break; case Request.DAILY_INITIALIZE: player.Update(gameInfo); player.DayStart(); break; case Request.DAILY_FINISH: player.Update(gameInfo); break; case Request.NAME: if (PlayerName == null) { returnObject = player.Name; if (returnObject == null) { returnObject = player.GetType().Name; } } else { returnObject = PlayerName; } break; case Request.ROLE: if (RequestRole != null) { returnObject = RequestRole.ToString(); } else { returnObject = "none"; } break; case Request.ATTACK: player.Update(gameInfo); returnObject = player.Attack(); break; case Request.TALK: player.Update(gameInfo); returnObject = player.Talk(); if (returnObject == null) { returnObject = Talk.SKIP; } break; case Request.WHISPER: player.Update(gameInfo); returnObject = player.Whisper(); if (returnObject == null) { returnObject = Talk.SKIP; } break; case Request.DIVINE: player.Update(gameInfo); returnObject = player.Divine(); break; case Request.GUARD: player.Update(gameInfo); returnObject = player.Guard(); break; case Request.VOTE: player.Update(gameInfo); returnObject = player.Vote(); break; case Request.FINISH: player.Update(gameInfo); Finish(); break; default: break; } return(returnObject); }