SuitGuideView.cs 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. using FairyGUI;
  2. using UI.FieldGuide;
  3. using UI.CommonGame;
  4. using System.Collections.Generic;
  5. using UI.ClothingSynthetic;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. public class SuitGuideView : BaseWindow
  10. {
  11. private UI_SuitGuideUI _ui;
  12. private Dictionary<int,List<int>> _menuTypeAllDataDic;
  13. private string[] _suitTypeList = { "套装", "故事" };
  14. private List<UI_SuitTypeItem> _suitTypeItems;
  15. public override void Dispose()
  16. {
  17. if (_ui != null)
  18. {
  19. _ui.Dispose();
  20. _ui = null;
  21. }
  22. base.Dispose();
  23. }
  24. protected override void OnInit()
  25. {
  26. base.OnInit();
  27. packageName = UI_SuitGuideUI.PACKAGE_NAME;
  28. _ui = UI_SuitGuideUI.Create();
  29. this.viewCom = _ui.target;
  30. isfullScreen = true;
  31. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
  32. _ui.m_suitTypeList.itemRenderer = RenderListSuitType;
  33. _ui.m_suitTypeList.numItems = _suitTypeList.Length;
  34. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  35. _ui.m_suitType2Items.itemRenderer = RenderListSuitType2Item;
  36. _ui.m_suitType2Items.onClickItem.Add(OnClickListSuitType2Item);
  37. _ui.m_suitTypeList.onClick.Add(OnClickListSuitType);
  38. InitSuitGuideType();
  39. SetType(1);
  40. }
  41. protected override void AddEventListener()
  42. {
  43. base.AddEventListener();
  44. EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
  45. }
  46. protected override void OnShown()
  47. {
  48. base.OnShown();
  49. }
  50. protected override void OnHide()
  51. {
  52. base.OnHide();
  53. }
  54. protected override void RemoveEventListener()
  55. {
  56. base.RemoveEventListener();
  57. EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
  58. }
  59. private void SetType(int type)
  60. {
  61. _ui.m_c1.SetSelectedIndex(type - 1);
  62. switch (type)
  63. {
  64. case 1:
  65. UpdateType1Progress();
  66. break;
  67. case 2:
  68. _ui.m_suitType2Items.numItems = _menuTypeAllDataDic[type].Count;
  69. break;
  70. }
  71. }
  72. private void InitSuitGuideType()
  73. {
  74. _suitTypeItems = new List<UI_SuitTypeItem>();
  75. _menuTypeAllDataDic = new Dictionary<int, List<int>>();
  76. SuitGuideMenuCfg[] menuCfgs = SuitGuideMenuCfgArray.Instance.dataArray;
  77. foreach(SuitGuideMenuCfg s in menuCfgs)
  78. {
  79. if (!_menuTypeAllDataDic.ContainsKey(s.SuitGuideMenuType))
  80. {
  81. _menuTypeAllDataDic.Add(s.SuitGuideMenuType, new List<int>());
  82. }
  83. _menuTypeAllDataDic[s.SuitGuideMenuType].Add(s.id);
  84. }
  85. InitSuitType1Item(_ui.m_suitTypeItems.m_item1, _menuTypeAllDataDic[1][0]);
  86. InitSuitType1Item(_ui.m_suitTypeItems.m_item2, _menuTypeAllDataDic[1][1]);
  87. InitSuitType1Item(_ui.m_suitTypeItems.m_item3, _menuTypeAllDataDic[1][2]);
  88. InitSuitType1Item(_ui.m_suitTypeItems.m_item4, _menuTypeAllDataDic[1][3]);
  89. InitSuitType1Item(_ui.m_suitTypeItems.m_item5, _menuTypeAllDataDic[1][4]);
  90. InitSuitType1Item(_ui.m_suitTypeItems.m_item6, _menuTypeAllDataDic[1][5]);
  91. InitSuitType1Item(_ui.m_suitTypeItems.m_item7, _menuTypeAllDataDic[1][6]);
  92. }
  93. /// <summary>
  94. /// 初始化种类1
  95. /// </summary>
  96. /// <param name="item"></param>
  97. /// <param name="typeId"></param>
  98. private void InitSuitType1Item(UI_SuitTypeItem item, int typeId)
  99. {
  100. SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(typeId);
  101. item.m_title.text = cfg.name;
  102. item.target.data = typeId;
  103. item.target.onClick.Add(() =>
  104. {
  105. ViewManager.Show<SuitGuideDetailView>(typeId, new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData });
  106. });
  107. _suitTypeItems.Add(item);
  108. }
  109. /// <summary>
  110. /// 初始化种类2
  111. /// </summary>
  112. /// <param name="index"></param>
  113. /// <param name="gObject"></param>
  114. private void RenderListSuitType2Item(int index, GObject gObject)
  115. {
  116. UI_SuitStoryItem item = UI_SuitStoryItem.Proxy(gObject);
  117. SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index]);
  118. item.m_title.text = cfg.name;
  119. int haveCount = SuitUtil.GetSuitIdList(false, true, _menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], 0).Count;
  120. int totalCount = SuitUtil.GetSuitIdList(true, true, _menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], 0).Count;
  121. item.m_progressNum.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
  122. UI_SuitStoryItem.ProxyEnd();
  123. }
  124. private void OnClickListSuitType2Item(EventContext eventContext)
  125. {
  126. GObject obj = eventContext.data as GObject;
  127. int index = _ui.m_suitType2Items.GetChildIndex(obj);
  128. ViewManager.Show<SuitGuideDetailView>(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData });
  129. }
  130. private void UpdateType1Progress()
  131. {
  132. for (int i = 0; i < _suitTypeItems.Count; i++)
  133. {
  134. int _suitTypeId = (int)_suitTypeItems[i].target.data;
  135. int haveCount = SuitUtil.GetSuitIdList(false, true, _suitTypeId, 0).Count;
  136. int totalCount = SuitUtil.GetSuitIdList(true, true, _suitTypeId, 0).Count;
  137. _suitTypeItems[i].m_progress.target.value = haveCount;
  138. _suitTypeItems[i].m_progress.target.max = totalCount;
  139. _suitTypeItems[i].m_progress.m_num.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
  140. _suitTypeItems[i].m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
  141. }
  142. }
  143. /// <summary>
  144. /// 初始化上方选择菜单
  145. /// </summary>
  146. /// <param name="index"></param>
  147. /// <param name="item"></param>
  148. private void RenderListSuitType(int index, GObject item)
  149. {
  150. UI_Button6 button6 = UI_Button6.Proxy(item);
  151. button6.m_title1.text = _suitTypeList[index];
  152. button6.target.title = _suitTypeList[index];
  153. UI_Button6.ProxyEnd();
  154. }
  155. private void OnClickListSuitType(EventContext eventContext)
  156. {
  157. SetType(_ui.m_c1.selectedIndex + 1);
  158. }
  159. private void OnClickBtnBack()
  160. {
  161. SetType(1);
  162. _ui.m_suitTypeItems.target.scrollPane.ScrollTop();
  163. ViewManager.GoBackFrom(ViewName.SUIT_GUIDE_VIEW);
  164. }
  165. }
  166. }