using System.Collections.Generic; using FairyGUI; using UI.Studio; using UnityEngine; namespace GFGGame { public class StudioPropertyView : StudioBaseView { //private GList _listProperty; private GLoader _bg0; private GLoader _btnChageLine; private Controller _croProperty; private int _propertySelectIndex = 0; private int firstOpenProperty = -1;//第一个开放的副本(打开界面时,如未选择副本,则默认选中第一个开启的副本) //书画副本 public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui.m_btnBack.onClick.Add(OnClickBtnBack); // _ui.m_listProperty.itemRenderer = ListPropertyItemRender; // _ui.m_listProperty.onClickItem.Add(OnClickListProperty); //com = UIPackage.CreateObject(UI_StudioUI.PACKAGE_NAME, "ComProperty").asCom; //AddChildCom(com, false); //list.itemRenderer = ListItemRender; } protected override void OnShown() { GComponent com = UIPackage.CreateObject(UI_StudioUI.PACKAGE_NAME, "ComProperty").asCom; AddChildCom(com); _croProperty = com.GetController("c1"); _bg0 = com.GetChild("bg0").asLoader; _btnChageLine = com.GetChild("btnChageLine").asLoader; list.itemRenderer = ListItemRender; _croProperty.onChanged.Add(OnControllerChange); _bg0.url = ResPathUtil.GetBgImgPath("bg_fhl"); //_bg1.url = "ui://Studio/lm_db_chang_2"; _btnChageLine.url = ResPathUtil.GetCommonGameResPath("zsx_fl"); _propertySelectIndex = this.viewData == null ? 0 : (int)this.viewData; StudioDataManager.Instance.VIEW_NAME = typeof(StudioPropertyView).FullName; List studioCfgs = StudioCfgArray.Instance.GetCfgsByfunId(typeof(StudioPropertyView).Name); firstOpenProperty = -1; for (int i = 0; i < studioCfgs.Count; i++) { GButton btn = com.GetChild("btn" + i).asButton; bool isOpen = TimeUtil.CheckDayOfWeek(studioCfgs[i].timeArr) ? true : false; btn.GetChild("icon").visible = isOpen; if (firstOpenProperty < 0 && isOpen) firstOpenProperty = i; } _propertySelectIndex = TimeUtil.CheckDayOfWeek(studioCfgs[_propertySelectIndex].timeArr) ? _propertySelectIndex : firstOpenProperty; _croProperty.selectedIndex = _propertySelectIndex; StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _propertySelectIndex; this._studioCfg = studioCfgs[_propertySelectIndex]; this.storyLevelCfgs = StoryLevelCfgArray.Instance.GetCfgsBytypeAndsubTypeAndchapterId(this._studioCfg.type, this._studioCfg.subType, this._studioCfg.id); list.numItems = this.storyLevelCfgs.Count; list.ScrollToView(curIndex); Timers.inst.AddUpdate(CheckGuide); base.OnShown(); com.height = _ui.target.height; _ui.m_loaBg.visible = false; } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(CheckGuide); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(StudioPropertyView).FullName); } private void OnControllerChange() { // int index = _croProperty.selectedIndex; List studioCfgs = StudioCfgArray.Instance.GetCfgsByfunId(typeof(StudioPropertyView).Name); StudioCfg studioCfg = studioCfgs[_croProperty.selectedIndex]; if (!TimeUtil.CheckDayOfWeek(studioCfg.timeArr)) { string str = ""; for (int i = 0; i < studioCfg.timeArr.Length; i++) { str += NumberUtil.GetChiniseNumberWeekText(studioCfg.timeArr[i]); if (i == studioCfg.timeArr.Length - 1) break; str += "、"; } PromptController.Instance.ShowFloatTextPrompt(string.Format("周{0}开放", str)); _croProperty.selectedIndex = _croProperty.previsousIndex; return; } // _propertySelectIndex = index; this._studioCfg = studioCfg; this.storyLevelCfgs = StoryLevelCfgArray.Instance.GetCfgsBytypeAndsubTypeAndchapterId(this._studioCfg.type, this._studioCfg.subType, this._studioCfg.id); list.numItems = this.storyLevelCfgs.Count; list.ScrollToView(curIndex); UpdateView(); StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _croProperty.selectedIndex; } private void CheckGuide(object param) { if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0) { UpdateToCheckGuide(null); } else { Timers.inst.Remove(CheckGuide); } } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(list, ConstGuideId.STUDIO_PROPERTY, 4, "通关这个副本可以获得风系词牌的升星材料哦~", 0); GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.STUDIO_PROPERTY, 6, "挑战成功啦,让我们继续新旅程~"); GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 6); } protected override void TryCompleteGuide() { base.TryCompleteGuide(); // GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.STUDIO_PROPERTY); GuideController.TryCompleteGuideIndex(ConstGuideId.STUDIO_PROPERTY, 6); GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 6); } protected override void ListItemRender(int index, GObject obj) { UI_PropertyItem item = UI_PropertyItem.Proxy(obj); StudioDataManager.Instance.IsCanFight(storyLevelCfgs, index, out bool canFight, out string content); ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[index].id).bonusBase[0]; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id); item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); item.m_star.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(storyLevelCfgs[index].id); item.m_imgLock.visible = canFight ? false : true; item.m_lock.visible = canFight ? false : true; item.m_txtTitle.text = canFight ? storyLevelCfgs[index].name : content; if (canFight) curIndex = index; if (item.m_loaIcon.data == null) { item.m_loaIcon.onClick.Add(OnLoaItemClick); } item.m_loaIcon.data = index; if (item.m_loaBg.data == null) { item.m_loaBg.onClick.Add(OnCliclListItem); } item.m_loaBg.data = index; UI_PropertyItem.ProxyEnd(); } } }