protected override void OnCloseUIFormComplete(object sender, GameEventArgs e) { CloseUIFormCompleteEventArgs eventArgs = e as CloseUIFormCompleteEventArgs; if (eventArgs.SerialId != uiFormSerialId.Value) { return; } bool exitSelectBuilding = (bool)eventArgs.UserData; if (exitSelectBuilding) { // 恢復主介面 var uiForm = GameCore.UI.GetUIForm(UIFormId.UIWorldMain, Constant.UI.GroupNames[(int)GameFramework.UI.UILevel.Default]); GameCore.UI.RefocusUIForm(uiForm.UIForm); // 返回世界地圖視角狀態 ChangeState <WorldMapView>(owner); } else { // 返回選擇建築地格 ChangeState <WorldMapSelectBuildingGrid>(owner); } }
protected override void OnCloseUIFormComplete(object sender, GameEventArgs e) { CloseUIFormCompleteEventArgs eventArgs = e as CloseUIFormCompleteEventArgs; if (eventArgs.SerialId == uiSerialId.Value) { ChangeStateToWorldMapView(); uiSerialId = null; } }
/// <summary> /// 创建关闭界面完成事件。 /// </summary> /// <param name="serialId">界面序列编号。</param> /// <param name="uiFormAssetName">界面资源名称。</param> /// <param name="uiGroup">界面所属的界面组。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>创建的关闭界面完成事件。</returns> public static CloseUIFormCompleteEventArgs Create(int serialId, string uiFormAssetName, IUIGroup uiGroup, object userData) { CloseUIFormCompleteEventArgs closeUIFormCompleteEventArgs = ReferencePool.Acquire <CloseUIFormCompleteEventArgs>(); closeUIFormCompleteEventArgs.SerialId = serialId; closeUIFormCompleteEventArgs.UIFormAssetName = uiFormAssetName; closeUIFormCompleteEventArgs.UIGroup = uiGroup; closeUIFormCompleteEventArgs.UserData = userData; return(closeUIFormCompleteEventArgs); }
protected override void OnCloseUIFormComplete(object sender, GameEventArgs e) { CloseUIFormCompleteEventArgs eventArgs = e as CloseUIFormCompleteEventArgs; if (eventArgs.UIFormAssetName.Contains(UIFormId.UICastleInfo.ToString())) { // 有建設中的建物 if (GameCore.NetData.ContainsEnchant(NetDataComponent.BuildEnchantID)) { GameCore.UI.OpenUIForm(UIFormId.UISpeedUpBuildingMsg); } else { // 無建設中的建物 if (eventArgs.UserData != null) { bool toSelectBuilding = (bool)eventArgs.UserData; if (toSelectBuilding) { // 進入選擇建設位置狀態 ChangeState <WorldMapSelectBuildingGrid>(owner); } } } } else if (eventArgs.UIFormAssetName.Contains(UIFormId.UIMainBuildingInfo.ToString())) { // 有建設中的建物 if (GameCore.NetData.ContainsEnchant(NetDataComponent.BuildEnchantID)) { GameCore.UI.OpenUIForm(UIFormId.UISpeedUpBuildingMsg); } else { // 無建設中的建物 if (eventArgs.UserData != null) { var buildingObj = eventArgs.UserData as BuildingObj; // 進入選擇副建築狀態 ChangeState <WorldMapSelectSubBuilding>(owner, new WorldMapSelectSubBuilding.Preset() { posIndex = buildingObj.PosIndex, masterTid = buildingObj.MasterTid, position = buildingObj.Position(), isMainBuildingProcess = false }); } } } }