public PRoomModeOrder() : base("mode", null, (string[] args) => { string GameMode = args[1]; PSystem.CurrentMode = PMode.ListModes().Find((PMode Mode) => Mode.Name.Equals(GameMode)); }) { }
/// <summary> /// 建立单一服务器,用于全AI测试 /// </summary> /// <param name="GameMap">游戏地图</param> /// <param name="GameMode">游戏模式</param> public static void CreateSingleServer(PMap GameMap, PMode GameMode) { AbortClient(); CurrentHostType = PHostType.Server; PThread.Async(() => { _NetworkServer = new PServer() { maxConnectionNumber = GameMode.PlayerNumber, Game = new PGame(GameMap, GameMode) }; }); }
public PRoom(PMode Mode) : this(Mode.PlayerNumber) { for (int i = 0; i < Mode.PlayerNumber; ++i) { PlayerList[i].PlayerType = Mode.Seats[i].DefaultType; PLogger.Log((i + 1).ToString() + " NICKNAME=" + PlayerList[i].Nickname + " NAME=" + Mode.Seats[i].Name); if (PlayerList[i].Nickname.Equals(string.Empty)) { PlayerList[i].Nickname = Mode.Seats[i].Name; } } }
internal static string EnumToRef(PMode pMode) { switch (pMode) { case PMode.FormidleDigitalPost: return FormidleDigitalPostReferanse; case PMode.FormidleFysiskPost: return FormidleFysiskPostReferanse; case PMode.KvitteringsForespoersel: return FormidleDigitalPostReferanse; default: throw new ArgumentOutOfRangeException("pMode", pMode.ToString(), "Fant ingen referanse for angitt pMode"); } }
/// <summary> /// 新建一个游戏 /// </summary> /// <param name="_Map">原型地图(新建的游戏采用其复制品)</param> /// <param name="_GameMode">游戏模式</param> public PGame(PMap _Map, PMode _GameMode) : base(_Map, _GameMode) { Room = new PRoom(GameMode); PLogger.Log("新建游戏,模式:" + GameMode.Name); this._Map = _Map; GameMode.Open(this); Logic = new PGameLogic(this); Monitor = new PMonitor(this); TagManager = new PTagManager(); CardManager = new PCardManager(this); GameMode.Install(this); StartGameFlag = false; EndGameFlag = false; ReadyToStartGameFlag = true; PreparedList = new List <bool>(); }
internal static string EnumToRef(PMode pMode) { switch (pMode) { case PMode.FormidleDigitalPost: return(FormidleDigitalPostReferanse); case PMode.FormidleFysiskPost: return(FormidleFysiskPostReferanse); case PMode.KvitteringsForespoersel: return(FormidleDigitalPostReferanse); default: throw new ArgumentOutOfRangeException(nameof(pMode), pMode.ToString(), "Fant ingen referanse for angitt pMode"); } }
/// <summary> /// 建立服务器,同时建立和它连接的客户端 /// </summary> /// <param name="GameMap">游戏地图</param> /// <param name="GameMode">游戏模式</param> public static void CreateServer(PMap GameMap, PMode GameMode) { AbortClient(); CurrentHostType = PHostType.Server; PThread.Async(() => { _NetworkServer = new PServer() { maxConnectionNumber = GameMode.PlayerNumber, Game = new PGame(GameMap, GameMode) }; Thread.Sleep(PNetworkConfig.ListenerInterval); try { _NetworkClient = new PClient(new TcpClient(PNetworkConfig.IP.ToString(), PNetworkConfig.ServerPort)); } catch (Exception e) { PLogger.Log("服务器客户端创建错误"); PLogger.Log(PNetworkConfig.IP.ToString()); PLogger.Log(e.ToString()); } CurrentNickname = PNetworkConfig.DefaultNickname; }); }
private XmlElement CollaborationInfoElement() { XmlElement collaborationInfo = Context.CreateElement("eb", "CollaborationInfo", NavneromUtility.EbXmlCore); { PMode currPmode = Settings.Forsendelse.PostInfo.PMode(); var currPmodeRef = PModeHelper.EnumToRef(currPmode); XmlElement agreementRef = collaborationInfo.AppendChildElement("AgreementRef", "eb", NavneromUtility.EbXmlCore, Context); agreementRef.InnerText = currPmodeRef; XmlElement service = collaborationInfo.AppendChildElement("Service", "eb", NavneromUtility.EbXmlCore, Context); service.InnerText = "SDP"; XmlElement action = collaborationInfo.AppendChildElement("Action", "eb", NavneromUtility.EbXmlCore, Context); action.InnerText = currPmode.ToString(); XmlElement conversationId = collaborationInfo.AppendChildElement("ConversationId", "eb", NavneromUtility.EbXmlCore, Context); conversationId.InnerText = Settings.Forsendelse.KonversasjonsId.ToString(); } return(collaborationInfo); }
/// <summary> /// 新建一个游戏状态 /// </summary> /// <param name="_Map">原型地图(新建的游戏采用其复制品)</param> /// <param name="_GameMode">游戏模式</param> public PGameStatus(PMap _Map, PMode _GameMode) { Map = (PMap)_Map.Clone(); GameMode = _GameMode; }
public override void Open() { base.Open(); #region 初始化选择地图下拉框 PSystem.MapList.ForEach((PMap Map) => { ChooseMapDropdown.options.Add(new Dropdown.OptionData { text = Map.Name }); }); #endregion #region 初始化选择模式下拉框 PMode.ListModes().ForEach((PMode Mode) => { ChooseModeDropdown.options.Add(new Dropdown.OptionData { text = Mode.Name }); }); #endregion ResetDropdowns(); QuickModeToggle.isOn = PPlayer.Config.QuickMode; #region 返回按钮:回到InitialUI ReturnButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("返回:转到IUI", () => PUIManager.ChangeUI <PInitialUI>()); }); #endregion #region 确定按钮:创建服务器 EnterButton.onClick.AddListener(() => { int MapValue = ChooseMapDropdown.value; int ModeValue = ChooseModeDropdown.value; PSystem.AllAi = false; try { PNetworkManager.CreateServer(PSystem.MapList[MapValue], PMode.ListModes().Find((PMode Mode) => Mode.Name.Equals(ChooseModeDropdown.options[ModeValue].text))); } catch (Exception e) { PLogger.Log("建立服务器错误"); PLogger.Log(e.ToString()); } // 等待客户端接收到信息 }); #endregion #region 测试按钮:开启AI测试界面 TestButton.onClick.AddListener(() => { int MapValue = ChooseMapDropdown.value; int ModeValue = ChooseModeDropdown.value; PSystem.AllAi = true; try { PNetworkManager.CreateServer(PSystem.MapList[MapValue], PMode.ListModes().Find((PMode Mode) => Mode.Name.Equals(ChooseModeDropdown.options[ModeValue].text))); } catch (Exception e) { PLogger.Log("建立服务器错误"); PLogger.Log(e.ToString()); } //int MapValue = ChooseMapDropdown.value; //int ModeValue = ChooseModeDropdown.value; //PSystem.AllAiConfig = string.Empty; //PSystem.CurrentMode = PMode.ListModes().Find((PMode Mode) => Mode.Name.Equals(ChooseModeDropdown.options[ModeValue].text)); //PSystem.CurrentMap = PSystem.MapList[MapValue]; //PUIManager.AddNewUIAction("测试:转到TUI", () => PUIManager.ChangeUI<PTestUI>()); }); #endregion QuickModeToggle.onValueChanged.AddListener((bool value) => { PPlayer.Config.QuickMode = value; }); }