using System.Collections; using UnityEngine; using UI.RoleInfo; using UI.Main; using ET; using FairyGUI; using System.Threading.Tasks; using System.Collections.Generic; namespace GFGGame { public class MainBgChooseView : BaseWindow { private UI_MainBgChooseUI _ui; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_MainBgChooseUI.PACKAGE_NAME; _ui = UI_MainBgChooseUI.Create(); this.viewCom = _ui.target; isfullScreen = true; isReturnView = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_grsz"); _ui.m_bgList.itemRenderer = BgListItemRenderer; _ui.m_bgList.onClickItem.Add(OnClickBgListItem); _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_btnChange.target.onClick.Add(OnClickBtnChange); _ui.m_bgList.numItems = MainBackgroundCfgArray.Instance.dataArray.Length; _ui.m_btnRule.onClick.Add(OnBtnRuleClick); _ui.m_btnSaveDressUpBg.target.onClick.Add(OnBtnSaveDressUpBgClick); _ui.m_btnGoShop.onClick.Add(OnBtnGoShopClick); PicAdaption(); } protected override void OnShown() { base.OnShown(); SetDefaultSelectedBg(); InitMainUIPreview(); UpdateSaveDressUpBgBtn(); Timers.inst.AddUpdate(CheckGuide); } protected override void OnHide() { base.OnHide(); ReleaseMainUIPreview(); Timers.inst.Remove(CheckGuide); } private ValueBarController _valueBarController; /// /// 同步主界面信息 /// private void InitMainUIPreview() { UI_MainUI mainUI = UI_MainUI.Proxy(_ui.m_mainUIShow); _valueBarController = new ValueBarController(mainUI.m_valueBar); _valueBarController.OnShown(); mainUI.m_type.SetSelectedIndex(1); mainUI.m_headBar.m_txtLvl.text = "" + GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl); RoleInfoManager.Instance.UpdateHead(mainUI.m_headBar.m_comHead, RoleDataManager.headId, RoleDataManager.headBorderId); mainUI.m_headBar.m_txtName.text = RoleDataManager.roleName; mainUI.m_btnXiuFang.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(XiuFangView).Name, false); mainUI.m_btnHaiZhiShi.m_loaLockIcons.visible = false; mainUI.m_btnHuanZhuang.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DressUpView).Name, false); mainUI.m_btnCiPai.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false); mainUI.m_btnZhaiXing.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LuckyBoxView).Name, false); mainUI.m_btnMain.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoryChapterListView).Name, false); mainUI.m_btnGongGao.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(NoticeView).Name, false); mainUI.m_btnYouJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MailView).Name, false); mainUI.m_list.GetChild("btnHaoYou").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FriendView).Name, false); mainUI.m_list.GetChild("btnLeague").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LeagueView).Name, false); mainUI.m_list.GetChild("btnStore").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoreView).Name, false); mainUI.m_list.GetChild("btnTuJian").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldGuideView).Name, false); mainUI.m_list.ResizeToFit(); UI_MainUI.ProxyEnd(); } private void ReleaseMainUIPreview() { _valueBarController.OnHide(); _valueBarController.Dispose(); } private void OnClickBtnBack() { Hide(); } private void BgListItemRenderer(int index, GObject item) { UI_bgItem bgItem = UI_bgItem.Proxy(item); bgItem.m_bgImg.url = ResPathUtil.GetBgImgPath(MainBackgroundCfgArray.Instance.dataArray[index].res); bgItem.m_name.text = MainBackgroundCfgArray.Instance.dataArray[index].name; UI_bgItem.ProxyEnd(); item.data = MainBackgroundCfgArray.Instance.dataArray[index].id; } private void OnClickBgListItem(EventContext context) { GObject listItem = context.data as GObject; string res = MainBackgroundCfgArray.Instance.GetCfg((int)listItem.data).res; ChangeBg(res); } private void OnClickBtnChange() { PromptController.Instance.ShowFloatTextPrompt("主界面背景已更换"); RoleDataManager.SaveMainBgID((int)_ui.m_bgList.GetChildAt(_ui.m_bgList.selectedIndex).data); Hide(); } private void ChangeBg(string res) { UI_MainUI mainUI = UI_MainUI.Proxy(_ui.m_mainUIShow); mainUI.m_loaBg.url = ResPathUtil.GetBgImgPath(res); UI_MainUI.ProxyEnd(); } /// /// 预览图适配 /// /// private async Task PicAdaption() { _ui.m_mainUIShow.visible = false; _ui.m_frame.visible = false; await Task.Delay(5); float orginHeight = _ui.m_frame.height; float curHeight = _ui.m_heightAdaptHelper.size.y; if (orginHeight != curHeight) { float rate = curHeight * 1.0f / orginHeight; _ui.m_frame.scale *= rate; _ui.m_mainUIShow.scale *= rate; // 预览图居中 _ui.m_mainUIShow.y = _ui.m_frame.y + ((_ui.m_frame.height * _ui.m_frame.scale.y) - (_ui.m_mainUIShow.height * _ui.m_mainUIShow.scale.y)) / 2; } _ui.m_mainUIShow.visible = true; _ui.m_frame.visible = true; } private void OnBtnRuleClick() { ViewManager.Show(); } private void SetDefaultSelectedBg() { _ui.m_bgList.selectedIndex = 0; string res = MainBackgroundCfgArray.Instance.dataArray[0].res; ChangeBg(res); } private void OnBtnSaveDressUpBgClick() { bool canChange = GameGlobal.myNumericComponent.GetAsLong(NumericType.MonthCardGoldEndTime) > TimeHelper.ServerNow() || GameGlobal.myNumericComponent.GetAsLong(NumericType.MonthCardBlackGoldEndTime) > TimeHelper.ServerNow(); if (canChange) { if (RoleDataManager.saveDressUpBgToMainBg == 0) { AlertSystem.Show("特权开启后换装背景将用于主界面,是否前往更换?") .SetLeftButton(true) .SetRightButton(true, "确认", (object data) => { RoleInfoSProxy.ReqSaveChangeGearSwitch(1); ViewManager.Show(null, true); ViewManager.DeleteViewStackCountDown("MainUIView"); }); } else { AlertSystem.Show("特权关闭后仅可使用三个默认背景,是否确认关闭?") .SetLeftButton(true) .SetRightButton(true, "确认", (object data) => { UpdateSaveDressUpBgToggleState(0); RoleDataManager.SaveMainBgID(MainBackgroundCfgArray.Instance.dataArray[0].id); }); } } else { PromptController.Instance.ShowFloatTextPrompt("该功能尚未开启~"); } } private void OnBtnGoShopClick() { GuideSimulationDataManager.Instance.GuideMonthlyJumpType = 2; ViewManager.Show(new object[] { ConstStoreTabId.STORE_MONTH_CARD, ConstStoreSubId.STORE_MONTH_GOLD_CARD }); } private async Task UpdateSaveDressUpBgToggleState(int isOn) { await RoleInfoSProxy.ReqSaveChangeGearSwitch(isOn); UpdateSaveDressUpBgBtn(); } private void UpdateSaveDressUpBgBtn() { UI_ButtonToggle2 buttonToggle2 = UI_ButtonToggle2.Proxy(_ui.m_btnSaveDressUpBg.target); buttonToggle2.m_type.SetSelectedIndex(RoleDataManager.saveDressUpBgToMainBg); UI_ButtonToggle2.ProxyEnd(); } private void CheckGuide(object param) { if (GuideDataManager.IsGuideFinish(ConstGuideId.SHEZHI_ZHUJIEMBG) <= 0) { UpdateCheckGuide(null); } else { Timers.inst.Remove(CheckGuide); } } protected void UpdateCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 1) { GuideController.TryGuide(_ui.m_btnSaveDressUpBg.target, ConstGuideId.SHEZHI_ZHUJIEMBG, 4, "开启背景更换特权"); } else if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 2) { GuideController.TryGuide(_ui.m_btnSaveDressUpBg.target, ConstGuideId.SHEZHI_ZHUJIEMBG, 2, "开启背景更换特权"); } } protected override void TryCompleteGuide() { if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 1) { GuideController.TryCompleteGuideIndex(ConstGuideId.SHEZHI_ZHUJIEMBG, 4); GuideController.TryCompleteGuide(ConstGuideId.SHEZHI_ZHUJIEMBG, 4); } else if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 2) { GuideController.TryCompleteGuideIndex(ConstGuideId.SHEZHI_ZHUJIEMBG, 2); GuideController.TryCompleteGuide(ConstGuideId.SHEZHI_ZHUJIEMBG, 2); } } } }