StudioPropertyView.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. using System.Collections.Generic;
  2. using cfg.GfgCfg;
  3. using FairyGUI;
  4. using UI.Studio;
  5. using UnityEngine;
  6. namespace GFGGame
  7. {
  8. public class StudioPropertyView : StudioBaseView
  9. {
  10. //private GList _listProperty;
  11. private GLoader _bg0;
  12. private GLoader _btnChageLine;
  13. private Controller _croProperty;
  14. private int _propertySelectIndex = 0;
  15. private int firstOpenProperty = -1;//第一个开放的副本(打开界面时,如未选择副本,则默认选中第一个开启的副本)
  16. //书画副本
  17. public override void Dispose()
  18. {
  19. base.Dispose();
  20. }
  21. protected override void OnInit()
  22. {
  23. base.OnInit();
  24. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  25. // _ui.m_listProperty.itemRenderer = ListPropertyItemRender;
  26. // _ui.m_listProperty.onClickItem.Add(OnClickListProperty);
  27. //com = UIPackage.CreateObject(UI_StudioUI.PACKAGE_NAME, "ComProperty").asCom;
  28. //AddChildCom(com, false);
  29. //list.itemRenderer = ListItemRender;
  30. }
  31. protected override void OnShown()
  32. {
  33. GComponent com = UIPackage.CreateObject(UI_StudioUI.PACKAGE_NAME, "ComProperty").asCom;
  34. AddChildCom(com);
  35. _croProperty = com.GetController("c1");
  36. _bg0 = com.GetChild("loaBg").asLoader;
  37. _btnChageLine = com.GetChild("btnChageLine").asLoader;
  38. list.itemRenderer = ListItemRender;
  39. _croProperty.onChanged.Add(OnControllerChange);
  40. _bg0.url = ResPathUtil.GetBgImgPath("gzs_fb_bj");
  41. //_bg1.url = "ui://Studio/lm_db_chang_2";
  42. _btnChageLine.url = ResPathUtil.GetCommonGameResPath("zsx_fl");
  43. _propertySelectIndex = this.viewData == null ? 0 : (int)this.viewData;
  44. StudioDataManager.Instance.VIEW_NAME = typeof(StudioPropertyView).FullName;
  45. List<StudioCfg> studioCfgs = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPropertyView).Name);
  46. firstOpenProperty = -1;
  47. for (int i = 0; i < studioCfgs.Count; i++)
  48. {
  49. GButton btn = com.GetChild("btn" + i).asButton;
  50. bool isOpen = TimeUtil.CheckDayOfWeek(studioCfgs[i].Time) ? true : false;
  51. btn.GetChild("icon").visible = isOpen;
  52. if (firstOpenProperty < 0 && isOpen) firstOpenProperty = i;
  53. }
  54. _propertySelectIndex = TimeUtil.CheckDayOfWeek(studioCfgs[_propertySelectIndex].Time) ? _propertySelectIndex : firstOpenProperty;
  55. _croProperty.selectedIndex = _propertySelectIndex;
  56. StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _propertySelectIndex;
  57. this._studioCfg = studioCfgs[_propertySelectIndex];
  58. this.storyLevelCfgs = StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
  59. list.numItems = this.storyLevelCfgs.Count;
  60. list.ScrollToView(curIndex);
  61. Timers.inst.AddUpdate(CheckGuide);
  62. base.OnShown();
  63. com.height = _ui.target.height;
  64. _ui.m_loaBg.visible = false;
  65. }
  66. protected override void OnHide()
  67. {
  68. base.OnHide();
  69. Timers.inst.Remove(CheckGuide);
  70. }
  71. private void OnClickBtnBack()
  72. {
  73. ViewManager.GoBackFrom(typeof(StudioPropertyView).FullName);
  74. }
  75. private void OnControllerChange()
  76. {
  77. // int index = _croProperty.selectedIndex;
  78. List<StudioCfg> studioCfgs = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPropertyView).Name);
  79. StudioCfg studioCfg = studioCfgs[_croProperty.selectedIndex];
  80. if (!TimeUtil.CheckDayOfWeek(studioCfg.Time))
  81. {
  82. string str = "";
  83. for (int i = 0; i < studioCfg.Time.Count; i++)
  84. {
  85. str += NumberUtil.GetChiniseNumberWeekText(studioCfg.Time[i]);
  86. if (i == studioCfg.Time.Count - 1) break;
  87. str += "、";
  88. }
  89. PromptController.Instance.ShowFloatTextPrompt(string.Format("周{0}开放", str));
  90. _croProperty.selectedIndex = _croProperty.previsousIndex;
  91. return;
  92. }
  93. // _propertySelectIndex = index;
  94. this._studioCfg = studioCfg;
  95. this.storyLevelCfgs = StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
  96. list.numItems = this.storyLevelCfgs.Count;
  97. list.ScrollToView(curIndex);
  98. UpdateView();
  99. StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _croProperty.selectedIndex;
  100. }
  101. private void CheckGuide(object param)
  102. {
  103. if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0)
  104. {
  105. UpdateToCheckGuide(null);
  106. }
  107. else
  108. {
  109. Timers.inst.Remove(CheckGuide);
  110. }
  111. }
  112. protected override void UpdateToCheckGuide(object param)
  113. {
  114. if (!ViewManager.CheckIsTopView(this.viewCom)) return;
  115. GuideController.TryGuide(list, ConstGuideId.STUDIO_PROPERTY, 4, "通关这个副本可以获得风系词牌的升星材料哦~", 0);
  116. GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.STUDIO_PROPERTY, 6, "挑战成功啦,让我们继续新旅程~");
  117. //GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 6);
  118. }
  119. protected override void TryCompleteGuide()
  120. {
  121. base.TryCompleteGuide();
  122. // GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.STUDIO_PROPERTY);
  123. //GuideController.TryCompleteGuideIndex(ConstGuideId.STUDIO_PROPERTY, 6);
  124. //GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 6);
  125. }
  126. protected override void ListItemRender(int index, GObject obj)
  127. {
  128. UI_ListPorcelainItem item = UI_ListPorcelainItem.Proxy(obj);
  129. StudioDataManager.Instance.IsCanFight(storyLevelCfgs, index, out bool canFight, out string content);
  130. ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[index].Id).bonusBase[0];
  131. ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemData.id);
  132. item.m_loaIcon.url = string.Format("ui://Studio/{0}", indexString[index]);//ResPathUtil.GetIconPath(itemCfg);
  133. item.m_star.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(storyLevelCfgs[index].Id);
  134. item.m_imgLock.visible = canFight ? false : true;
  135. item.m_imgLockBg.visible = canFight ? false : true;
  136. item.m_txtName.text = storyLevelCfgs[index].Name;
  137. if (canFight) curIndex = index;
  138. if (item.m_loaIcon.data == null)
  139. {
  140. item.m_loaIcon.onClick.Add(OnLoaItemClick);
  141. }
  142. item.m_loaIcon.data = index;
  143. if (item.m_loaBg.data == null)
  144. {
  145. item.m_loaBg.onClick.Add(OnCliclListItem);
  146. }
  147. item.m_loaBg.data = index;
  148. UI_ListPorcelainItem.ProxyEnd();
  149. }
  150. }
  151. }