public async void Init(bool isCreateRoom) { client.setCallBack((byte)DataType.GAMESTART, gameStartCallBack); client.setCallBack((byte)DataType.GAMEOVER, gameOverCallBack); client.setCallBack((byte)DataType.START, playerStartCallBack); client.setCallBack((byte)DataType.OVER, playerOverCallBack); client.setCallBack((byte)DataType.SELECT, selectCallBack); client.setCallBack((byte)DataType.HANDLE, HandleShareCallBack); client.setCallBack((byte)DataType.BUY, BuyCallBack); client.setCallBack((byte)DataType.UPDATE, UpdateInformationCallBack); client.setCallBack((byte)DataType.UPDATETILES, UpdateTilesCallBack); mainWindow.ClientPresenter = this; HttpClient httpClient = new HttpClient(); if (isCreateRoom) { await mainWindow.Dispatcher.Invoke(async() => { var content = new StringContent(JsonConvert.SerializeObject(new RoomSettingWindow().getSetting())); var respond = await httpClient.PostAsync(hostname + "create", content); if (respond.IsSuccessStatusCode) { var respondString = await respond.Content.ReadAsStringAsync(); ServerResponse res = JsonConvert.DeserializeObject <ServerResponse>(respondString); client.Initialize(res.port); } else { HandleError(); } }); } else { var respondString = await httpClient.GetStringAsync(hostname + "search"); RoomInfomation[] res = JsonConvert.DeserializeObject <RoomInfomation[]>(respondString); int port = new SelectServerWindow().SelectRoom(res); if (port > -1) { var content = new StringContent(port.ToString()); var selectMessage = await httpClient.PostAsync(hostname + "select", content); var selectRes = bool.Parse(await selectMessage.Content.ReadAsStringAsync()); if (selectRes) { client.Initialize(port); } else { HandleError(); } } else { throw new NotSupportedException(); } } }
/** 更新按钮背景 */ private void UpdateButtonBg() { if (fatherWindow is SelectServerWindow) { SelectServerWindow ssw = fatherWindow as SelectServerWindow; ssw.UpdateSelectBgPosition(this); } }