StudioBaseView.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. using System.Collections.Generic;
  2. using ET;
  3. using FairyGUI;
  4. using UI.Studio;
  5. namespace GFGGame
  6. {
  7. public class StudioBaseView : BaseWindow
  8. {
  9. protected UI_StudioEctypeUI _ui;
  10. private ValueBarController _valueBarController;
  11. public GList list;
  12. private GTextField _txtTime;
  13. private GTextField _txtNum;
  14. private GButton _btnBuy;
  15. private GLoader _icon;
  16. private int _time = 0;
  17. protected StudioCfg _studioCfg;
  18. protected List<StoryLevelCfg> storyLevelCfgs;
  19. protected int curIndex = 0;
  20. protected List<string> indexString = new List<string>{"gzs_fb_wz_yi","gzs_fb_wz_er","gzs_fb_wz_san","gzs_fb_wz_si","gzs_fb_wz_wu"};
  21. public override void Dispose()
  22. {
  23. if (_valueBarController != null)
  24. {
  25. _valueBarController.Dispose();
  26. _valueBarController = null;
  27. }
  28. if (_ui != null)
  29. {
  30. _ui.Dispose();
  31. _ui = null;
  32. }
  33. base.Dispose();
  34. }
  35. protected override void OnInit()
  36. {
  37. base.OnInit();
  38. packageName = UI_StudioEctypeUI.PACKAGE_NAME;
  39. _ui = UI_StudioEctypeUI.Create();
  40. this.viewCom = _ui.target;
  41. isfullScreen = true;
  42. isReturnView = true;
  43. _valueBarController = new ValueBarController(_ui.m_valueBar);
  44. // _ui.m_list.itemRenderer = ListItemRender;
  45. // // _ui.m_list.onClickItem.Add(OnCliclListItem);
  46. // _ui.m_list.SetVirtual();
  47. // _ui.m_btnBuy.onClick.Add(OnCliclBtnBuy);
  48. }
  49. protected override void AddEventListener()
  50. {
  51. base.AddEventListener();
  52. EventAgent.AddEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, OnLimitChanged);
  53. }
  54. public void AddChildCom(GComponent com,bool isNeedRender = true)
  55. {
  56. _ui.target.AddChildAt(com, 1);
  57. list = com.GetChild("list").asList;
  58. _txtNum = com.GetChild("txtNum").asTextField;
  59. _txtTime = com.GetChild("txtTime").asTextField;
  60. _btnBuy = com.GetChild("btnBuy").asButton;
  61. _icon = com.GetChild("icon").asLoader;
  62. if (isNeedRender)
  63. {
  64. list.itemRenderer = ListItemRender;
  65. }
  66. _btnBuy.onClick.Add(OnCliclBtnBuy);
  67. _icon.onClick.Add(OnIconBtnClick);
  68. }
  69. protected override void OnShown()
  70. {
  71. base.OnShown();
  72. _valueBarController.OnShown();
  73. // _valueBarController.Controller(1);
  74. //_ui.m_loaBg.url = ResPathUtil.GetBgImgPath("gzs_bjbj");
  75. //add by zyq
  76. UpdateItem();
  77. UpdateView();
  78. Timers.inst.Add(1, 0, UpdateShowTime);
  79. }
  80. protected override void OnHide()
  81. {
  82. _ui.target.RemoveChildAt(1);
  83. base.OnHide();
  84. _valueBarController.OnHide();
  85. _studioCfg = null;
  86. storyLevelCfgs = null;
  87. Timers.inst.Remove(UpdateShowTime);
  88. Timers.inst.Remove(OnTimerUpdate);
  89. }
  90. protected override void RemoveEventListener()
  91. {
  92. base.RemoveEventListener();
  93. EventAgent.RemoveEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, OnLimitChanged);
  94. }
  95. private void OnLimitChanged(EventContext context)
  96. {
  97. int limitId = (int)context.data;
  98. if (this._studioCfg.limit != limitId)
  99. {
  100. return;
  101. }
  102. UpdateView();
  103. }
  104. protected void UpdateView()
  105. {
  106. var limitData = RoleLimitDataManager.GetLimitData(this._studioCfg.limit);
  107. _txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes,
  108. limitData.MaxStorageCount);
  109. ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[0].id).bonusBase[0];
  110. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
  111. _icon.url = ResPathUtil.GetIconPath(itemCfg);
  112. }
  113. private void UpdateView(int limitId)
  114. {
  115. }
  116. private void UpdateShowTime(object param)
  117. {
  118. long curTime = TimeHelper.ServerNow();
  119. long endTime = GameGlobal.myNumericComponent.GetAsInt(NumericType.DailyResetSecs);
  120. _txtTime.text = string.Format("{0}后刷新", TimeUtil.FormattingTime(curTime, endTime * 1000));
  121. }
  122. protected virtual void ListItemRender(int index, GObject obj)
  123. {
  124. UI_ListItem item = UI_ListItem.Proxy(obj);
  125. StudioDataManager.Instance.IsCanFight(storyLevelCfgs, index, out bool canFight, out string content);
  126. ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[index].id).bonusBase[0];
  127. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
  128. item.m_loaIcon.url = string.Format("ui://Studio/{0}",indexString[index]);//ResPathUtil.GetIconPath(itemCfg);
  129. item.m_star.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(storyLevelCfgs[index].id);
  130. item.m_imgLock.visible = canFight ? false : true;
  131. if (item.m_imgLockBg != null)
  132. {
  133. item.m_imgLockBg.visible = canFight ? false : true;
  134. }
  135. item.m_txtTitle.text = storyLevelCfgs[index].name;//: content;
  136. if (canFight) curIndex = index;
  137. if (item.m_loaIcon.data == null)
  138. {
  139. item.m_loaIcon.onClick.Add(OnLoaItemClick);
  140. }
  141. item.m_loaIcon.data = index;
  142. if (item.m_loaBg.data == null)
  143. {
  144. item.m_loaBg.onClick.Add(OnCliclListItem);
  145. }
  146. item.m_loaBg.data = index;
  147. UI_ListItem.ProxyEnd();
  148. }
  149. public void OnCliclListItem(EventContext context)
  150. {
  151. GObject obj = context.sender as GObject;
  152. int index = (int)obj.data;
  153. StoryLevelCfg storyLevelCfg = storyLevelCfgs[index];
  154. StudioDataManager.Instance.IsCanFight(storyLevelCfgs, index, out bool canFight, out string content);
  155. if (!canFight)
  156. {
  157. PromptController.Instance.ShowFloatTextPrompt(content);
  158. return;
  159. }
  160. // StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _ui.m_listProperty.selectedIndex;
  161. // StudioDataManager.Instance.TYPE_SELECT_INDEX = _ui.m_c1.selectedIndex;
  162. InstanceZonesController.ShowLevelView(storyLevelCfg.id, StudioDataManager.Instance.OnFinishStudioStoryLevel);
  163. }
  164. public void OnLoaItemClick(EventContext context)
  165. {
  166. GObject obj = context.sender as GObject;
  167. int index = (int)obj.data;
  168. ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[index].id).bonusBase[0];
  169. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
  170. GoodsItemTipsController.ShowItemTips(itemCfg.id);
  171. }
  172. public void OnIconBtnClick()
  173. {
  174. ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[0].id).bonusBase[0];
  175. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
  176. GoodsItemTipsController.ShowItemTips(itemCfg.id);
  177. }
  178. private void OnCliclBtnBuy()
  179. {
  180. ViewManager.Show<StudioBuyNumView>(this._studioCfg.limit);
  181. }
  182. private void UpdateItem()
  183. {
  184. for (int i = 0; i < list.numChildren; i++)
  185. {
  186. list.GetChildAt(i).visible = false;
  187. }
  188. _time = 0;
  189. Timers.inst.Add(0.07f, list.numChildren, OnTimerUpdate, 1);
  190. }
  191. private void OnTimerUpdate(object param)
  192. {
  193. list.GetChildAt(_time).visible = true;
  194. UI_ListItem listItem = UI_ListItem.Proxy(list.GetChildAt(_time++));
  195. //播放动效
  196. if (listItem.m_test != null)
  197. {
  198. listItem.m_test.Play();
  199. }
  200. UI_ListItem.ProxyEnd();
  201. }
  202. }
  203. }