Beispiel #1
0
 public PRoomModeOrder() : base("mode",
                                null,
                                (string[] args) => {
     string GameMode     = args[1];
     PSystem.CurrentMode = PMode.ListModes().Find((PMode Mode) => Mode.Name.Equals(GameMode));
 }) {
 }
Beispiel #2
0
 /// <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)
         };
     });
 }
Beispiel #3
0
 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");
     }
 }
Beispiel #5
0
 /// <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");
            }
        }
Beispiel #7
0
 /// <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);
        }
Beispiel #9
0
 /// <summary>
 /// 新建一个游戏状态
 /// </summary>
 /// <param name="_Map">原型地图(新建的游戏采用其复制品)</param>
 /// <param name="_GameMode">游戏模式</param>
 public PGameStatus(PMap _Map, PMode _GameMode)
 {
     Map      = (PMap)_Map.Clone();
     GameMode = _GameMode;
 }
Beispiel #10
0
 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;
     });
 }