using FairyGUI; using UI.Main; using UI.CommonGame; using UnityEngine; using System.Collections.Generic; using ET; namespace GFGGame { public class MainUIView : BaseView { private UI_MainUI _ui; private GameObject _scenePrefab; private GameObject _sceneObject; private ValueBarController _valueBarController; private float effectTime = 0.7f; private bool isOpen = false; private GButton _btnGongGao; private GButton _btnHaoYou; private GButton _btnYouJian; private GButton _btnRenWu; private GButton _btnPengYouQuan; private GButton _btnJInShu; private GButton _btnTianGong; private GButton _btnStore; private GButton _btnTuJian; private GameObject _effectObj4; private GoWrapper _wrapper4; private GameObject _effectObj4_1; private GoWrapper _wrapper4_1; private GameObject _effectObj5; private GoWrapper _wrapper5; private List _effects = new List(); private List _wrappers = new List(); private List _effects1 = new List(); private List _wrappers1 = new List(); private UI_ButtonModle1[] _btns; public override void Dispose() { _valueBarController.Dispose(); _valueBarController = null; for (int i = 0; i < _btns.Length; i++) { SceneController.DestroyObjectFromView(_effects[i]); SceneController.DestroyObjectFromView(_effects[i]); } base.Dispose(); } protected override void Init() { base.Init(); packageName = UI_MainUI.PACKAGE_NAME; _ui = UI_MainUI.Create(); viewCom = _ui.target; isfullScreen = true; _scenePrefab = GFGAsset.Load(ResPathUtil.GetPrefabPath("SceneMain")); } protected override void OnInit() { base.OnInit(); _valueBarController = new ValueBarController(_ui.m_valueBar); _btnGongGao = _ui.m_list.GetChild("btnGongGao").asButton; _btnHaoYou = _ui.m_list.GetChild("btnHaoYou").asButton; _btnYouJian = _ui.m_list.GetChild("btnYouJian").asButton; _btnRenWu = _ui.m_list.GetChild("btnRenWu").asButton; _btnPengYouQuan = _ui.m_list.GetChild("btnPengYouQuan").asButton; _btnStore = _ui.m_list.GetChild("btnStore").asButton; _btnTianGong = _ui.m_list.GetChild("btnTianGong").asButton; _btnTuJian = _ui.m_list.GetChild("btnTuJian").asButton; _btnJInShu = _ui.m_list.GetChild("btnJInShu").asButton; // _btnGongGao.visible = false; // _btnHaoYou.visible = false; // _btnRenWu.visible = false; _btnPengYouQuan.visible = false; _btnJInShu.visible = false; _btnTianGong.visible = false; _btns = new UI_ButtonModle1[] { _ui.m_btnHuanZhuang, _ui.m_btnZhaiXing, _ui.m_btnXiuFang, _ui.m_btnCiPai, _ui.m_btnStudio, _ui.m_btnField }; _ui.m_btnMain.target.onTouchBegin.Add(OnClickBtnMain); _ui.m_btnHuanZhuang.target.onTouchBegin.Add(OnClickBtnHuanZhuang); _ui.m_btnZhaiXing.target.onTouchBegin.Add(OnClickBtnZhaiXing); _ui.m_btnDailyLogin.target.onTouchBegin.Add(OnClickBtnDailyLogin); _ui.m_btnXiuFang.target.onTouchBegin.Add(OnClickBtnXiuFang); _ui.m_btnCiPai.target.onTouchBegin.Add(OnClickBtnCiPai); _ui.m_btnStudio.target.onTouchBegin.Add(OnClickBtnStudio); _ui.m_btnField.target.onTouchBegin.Add(OnClickBtnField); _ui.m_headBar.target.onClick.Add(OnClickHeadBar); _btnStore.onClick.Add(OnClickBtnStore); _btnTuJian.onClick.Add(OnClickBtnTuJian); _btnYouJian.onClick.Add(OnClickBtnYouJian); _btnHaoYou.onClick.Add(OnClickBtnHaoYou); _btnGongGao.onClick.Add(OnClickBtnGongGao); _btnRenWu.onClick.Add(OnClickBtnRenWu); AddEffect(); EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange); } protected override void OnShown() { base.OnShown(); _ui.m_btnChange.selected = true; _ui.m_headBar.m_txtName.text = RoleDataManager.roleName; if (_sceneObject == null) { _sceneObject = GameObject.Instantiate(_scenePrefab); } SceneController.UpdateMainScene(_sceneObject); UpdateRoleLvl(); _valueBarController.OnShown(); CheckFunOpen(); // UpdateToCheckGuide(); Timers.inst.AddUpdate(Update); } protected override void OnHide() { base.OnHide(); if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } _valueBarController.OnHide(); Timers.inst.Remove(Update); } private void AddEffect() { string resPath0 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_xf_tx"); string resPath3 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_zjm_dj"); for (int i = 0; i < _btns.Length; i++) { GameObject gameObject0; GoWrapper wrapper0; GameObject gameObject1; GoWrapper wrapper1; SceneController.AddObjectToView(null, null, _btns[i].m_holder, resPath0, out gameObject0, out wrapper0); SceneController.AddObjectToView(null, null, _btns[i].m_holder1, resPath3, out gameObject1, out wrapper1); _effects.Add(gameObject0); _wrappers.Add(wrapper0); _effects1.Add(gameObject1); _wrappers1.Add(wrapper1); } string resPath1 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_zzl_tx"); SceneController.AddObjectToView(_effectObj4, _wrapper4, _ui.m_btnMain.m_holder, resPath1, out _effectObj4, out _wrapper4); SceneController.AddObjectToView(_effectObj4_1, _wrapper4_1, _ui.m_btnMain.m_holder1, resPath3, out _effectObj4_1, out _wrapper4_1); string resPath2 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_zjm_tx"); SceneController.AddObjectToView(_effectObj5, _wrapper5, _ui.m_headBar.m_holder, resPath2, out _effectObj5, out _wrapper5); } private void OnClickBtnMain() { if (isOpen) return; isOpen = true; _ui.m_btnMain.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnMain.m_holder1.visible = false; // this.Hide(); ViewManager.Show(ViewName.STORY_CHAPTER_LIST_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); isOpen = false; ; }); } private void OnClickBtnHuanZhuang() { if (isOpen) return; isOpen = true; _ui.m_btnHuanZhuang.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnHuanZhuang.m_holder1.visible = false; this.Hide(); ViewManager.Show(ViewName.DRESS_UP_VIEW); isOpen = false; }); } private void OnClickBtnZhaiXing() { if (isOpen) return; isOpen = true; _ui.m_btnZhaiXing.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnZhaiXing.m_holder1.visible = false; ViewManager.Show(ViewName.LUCKY_BOX_VIEW, null, null, false, true); isOpen = false; }); } private void OnClickBtnXiuFang() { if (isOpen) return; isOpen = true; _ui.m_btnXiuFang.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnXiuFang.m_holder1.visible = false; ViewManager.Show(ViewName.XIU_FANG_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); isOpen = false; }); } private void OnClickBtnDailyLogin() { // if (isOpen) return; // isOpen = true; _ui.m_btnDailyLogin.m_holder.visible = true; // Timers.inst.Add(effectTime, 1, (param) => // { // _ui.m_btnDailyLogin.m_holder.visible = false; // List list = new List(); // list.Add("StudioView"); // list.Add("XiuFangView"); // ViewManager.Show(list); ViewManager.Show(null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); // isOpen = false; // }); } private void OnClickBtnCiPai() { if (isOpen) return; isOpen = true; _ui.m_btnCiPai.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnCiPai.m_holder1.visible = false; ViewManager.Show(ViewName.CARD_DETAIL_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); isOpen = false; }); } private void OnClickBtnStudio() { ViewManager.Show(null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); } private void OnClickBtnField() { ViewManager.Show(null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); } private void OnClickBtnStore() { ViewManager.Show(ViewName.RECHARGE_STORE_VIEW); } private void OnClickBtnTuJian() { ViewManager.Show(ViewName.FIELD_GUIDE_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); } private void OnClickBtnYouJian() { ViewManager.Show(); } private void OnClickBtnHaoYou() { ViewManager.Show(null, new object[] { ViewName.MAINUI_VIEW, this.viewData }, true); } private void OnClickBtnGongGao() { // /null, new object[] { ViewName.MAINUI_VIEW, this.viewData } ViewManager.Show(); } private void OnClickBtnRenWu() { ViewManager.Show(); } private void OnClickHeadBar() { ViewManager.Show(ViewName.ROLE_INFO_VIEW); } private void Update(object param) { UpdateRedDot(); ShowExitAlert(); } private void ShowExitAlert() { if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home)) { Alert.Show("我会想你的") .SetLeftButton(true, "继续游戏") .SetRightButton(true, "退出游戏", (object data) => { Application.Quit(); }); } } private void OnNumericChange(EventContext context) { if ((int)context.data == NumericType.Lvl) { UpdateRoleLvl(); } } private void UpdateRoleLvl() { _ui.m_headBar.m_txtLvl.text = "" + GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl); } private void CheckFunOpen() { _ui.m_btnXiuFang.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(XiuFangView).Name, false); _ui.m_btnMain.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoryChapterListView).Name, false); _ui.m_btnStudio.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false); _ui.m_btnHuanZhuang.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DressUpView).Name, false); _ui.m_btnZhaiXing.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LuckyBoxView).Name, false); _ui.m_btnCiPai.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false); _ui.m_btnDailyLogin.target.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailyLoginView).Name, false); _btnGongGao.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(NoticeView).Name, false); _btnHaoYou.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FriendView).Name, false); _btnYouJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MailView).Name, false); _btnStore.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(RechargeStoreView).Name, false); _btnTuJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldGuideView).Name, false); // _btnTianGong.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false); // _btnPengYouQuan.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false); // _btnJInShu.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false); } private void UpdateRedDot() { RedDotController.Instance.SetComRedDot(_btnGongGao, RedDotDataManager.Instance.GetNoticeRed()); RedDotController.Instance.SetComRedDot(_btnRenWu, RedDotDataManager.Instance.GetTaskRed()); RedDotController.Instance.SetComRedDot(_ui.m_btnDailyLogin.target, RedDotDataManager.Instance.GetDailyLoginRed()); } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(_ui.m_btnZhaiXing.target, ConstGuideId.LUCKY_BOX, 2, "“摘星”里可以通过星辰的力量获得服饰", -1, false); GuideController.TryCompleteGuide(ConstGuideId.FREEDOM_DRESS, 6); GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.FREEDOM_DRESS, 2, "在这里,可以自由搭配服饰和分享哦~", -1, false); GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_DECOMPOSE, 2, "绣坊里增添了新功能", -1, false); GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 1, "进入绣坊界面", -1, false); GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_SYNTHETIC, 7); GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_LV, 2, "获得了一张“词牌”,点击查看", -1, false, 0, 0, 0, true, true); GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_OPEN, 1, "工作室开门啦,进去看看~~"); GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.SUIT_LIST_VIEW, 1, "获得“天衣”服饰后,可进行养护和焕新,到绣坊看看"); } } }