ActivitySyntheticView.cs 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. using FairyGUI;
  2. using UI.ActivityAfternoonTea;
  3. using UI.CommonGame;
  4. using ET;
  5. using System.Collections.Generic;
  6. using cfg.GfgCfg;
  7. namespace GFGGame
  8. {
  9. public class ActivitySyntheticView : BaseWindow
  10. {
  11. private UI_ActivitySyntheticUI _ui;
  12. private ValueBarController _valueBarController;
  13. private SuitCfg _suitCfg;
  14. public override void Dispose()
  15. {
  16. if (_valueBarController != null)
  17. {
  18. _valueBarController.Dispose();
  19. _valueBarController = null;
  20. }
  21. if (_ui != null)
  22. {
  23. _ui.Dispose();
  24. _ui = null;
  25. }
  26. base.Dispose();
  27. }
  28. protected override void OnInit()
  29. {
  30. base.OnInit();
  31. packageName = UI_ActivitySyntheticUI.PACKAGE_NAME;
  32. _ui = UI_ActivitySyntheticUI.Create();
  33. this.viewCom = _ui.target;
  34. isfullScreen = true;
  35. isReturnView = true;
  36. _valueBarController = new ValueBarController(_ui.m_valueBar);
  37. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  38. _ui.m_listSynthetic.itemRenderer = RenderListSyntheticItem;
  39. }
  40. protected override void OnShown()
  41. {
  42. base.OnShown();
  43. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic);
  44. ActivityOpenCfg activityOpenCfg =
  45. CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfo.ActivityId);
  46. _suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(activityOpenCfg.Params1[0]);
  47. ItemCfg itemSyntheticCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[0]);
  48. _valueBarController.OnShown();
  49. _valueBarController.UpdateList(new List<int>()
  50. { itemSyntheticCfg.SyntheticMateriars[0].ItemId, ConstItemID.GOLD });
  51. _ui.m_listSynthetic.numItems = _suitCfg.Parts.Count;
  52. RefreshTimeText();
  53. _ui.m_txtTips.SetVar("name", _suitCfg.Name).FlushVars();
  54. Timers.inst.Add(1, 0, UpdateTime);
  55. }
  56. protected override void OnHide()
  57. {
  58. base.OnHide();
  59. _valueBarController.OnHide();
  60. Timers.inst.Remove(UpdateTime);
  61. }
  62. protected override void AddEventListener()
  63. {
  64. base.AddEventListener();
  65. EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemChange);
  66. }
  67. protected override void RemoveEventListener()
  68. {
  69. base.RemoveEventListener();
  70. EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, OnItemChange);
  71. }
  72. private void OnItemChange(EventContext context)
  73. {
  74. var itemId = (int)context.data;
  75. ItemCfg itemSyntheticCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[0]);
  76. if (itemId != itemSyntheticCfg.SyntheticMateriars[0].ItemId &&
  77. itemId != itemSyntheticCfg.SyntheticMateriars[1].ItemId) return;
  78. _ui.m_listSynthetic.numItems = _suitCfg.Parts.Count;
  79. }
  80. private void OnClickBtnBack()
  81. {
  82. ViewManager.GoBackFrom(typeof(ActivitySyntheticView).FullName);
  83. }
  84. private void UpdateTime(object param)
  85. {
  86. RefreshTimeText();
  87. }
  88. private void RefreshTimeText()
  89. {
  90. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic);
  91. long curTime = ActivityDataManager.Instance.GetActivityTime(activityInfo.ActivityId);
  92. _ui.m_txtTime.text = "剩余:" + TimeUtil.FormattingTimeTo_DDHHmm(curTime);
  93. }
  94. private void RenderListSyntheticItem(int index, GObject obj)
  95. {
  96. UI_SyntheticItemUI comBox = UI_SyntheticItemUI.Proxy(obj);
  97. UI_ComItem item1 = UI_ComItem.Proxy(comBox.m_item1);
  98. ItemCfg itemSyntheticCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[index]);
  99. var materiarsArr = itemSyntheticCfg.SyntheticMateriars;
  100. ItemCfg itemCfg1 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(materiarsArr[0].ItemId);
  101. RarityIconController.UpdateRarityIcon(item1.m_loaRarity, itemCfg1.Id, false);
  102. string ext1 = ItemUtil.GetItemResExt(itemCfg1.ItemType, itemCfg1.SubType, true);
  103. item1.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg1.Res, ext1);
  104. if (item1.target.data == null)
  105. item1.target.onClick.Add(OnSelectorItemClick);
  106. item1.target.data = materiarsArr[0].ItemId;
  107. item1.m_QualityType.selectedIndex = itemCfg1.Rarity - 1;
  108. item1.m_txtCount.text = materiarsArr[0].Count.ToString();
  109. UI_ComItem.ProxyEnd();
  110. UI_ComItem item2 = UI_ComItem.Proxy(comBox.m_item2);
  111. ItemCfg itemCfg2 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(materiarsArr[1].ItemId);
  112. RarityIconController.UpdateRarityIcon(item2.m_loaRarity, itemCfg2.Id, false);
  113. string ext2 = ItemUtil.GetItemResExt(itemCfg2.ItemType, itemCfg2.SubType, true);
  114. item2.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg2.Res, ext2);
  115. if (item2.target.data == null)
  116. item2.target.onClick.Add(OnSelectorItemClick);
  117. item2.target.data = materiarsArr[1].ItemId;
  118. item2.m_QualityType.selectedIndex = itemCfg2.Rarity - 1;
  119. item2.m_txtCount.text = materiarsArr[1].Count.ToString();
  120. UI_ComItem.ProxyEnd();
  121. UI_ComItem item3 = UI_ComItem.Proxy(comBox.m_item3);
  122. ItemCfg itemCfg3 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[index]);
  123. RarityIconController.UpdateRarityIcon(item3.m_loaRarity, itemCfg3.Id, false);
  124. string ext3 = ItemUtil.GetItemResExt(itemCfg3.ItemType, itemCfg3.SubType, true);
  125. item3.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg3.Res, ext3);
  126. if (item3.target.data == null)
  127. item3.target.onClick.Add(OnSelectorItemClick);
  128. item3.target.data = _suitCfg.Parts[index];
  129. item3.m_QualityType.selectedIndex = itemCfg3.Rarity - 1;
  130. item3.m_txtCount.text = "1";
  131. UI_ComItem.ProxyEnd();
  132. if (ItemDataManager.GetItemNum(_suitCfg.Parts[index]) > 0)
  133. {
  134. comBox.m_btnType.selectedIndex = 2;
  135. }
  136. else if (ItemDataManager.GetItemNum(materiarsArr[0].ItemId) >= materiarsArr[0].Count &&
  137. ItemDataManager.GetItemNum(materiarsArr[1].ItemId) >= materiarsArr[1].Count)
  138. {
  139. comBox.m_btnType.selectedIndex = 1;
  140. if (comBox.m_btnMake.data == null)
  141. comBox.m_btnMake.onClick.Add(OnClickBtnMake);
  142. comBox.m_btnMake.data = _suitCfg.Parts[index];
  143. }
  144. else
  145. {
  146. comBox.m_btnType.selectedIndex = 0;
  147. if (comBox.m_btnGet.data == null)
  148. comBox.m_btnGet.onClick.Add(OnClickBtnGet);
  149. comBox.m_btnGet.data = index;
  150. }
  151. RedDotController.Instance.SetComRedDot(comBox.m_btnMake, comBox.m_btnType.selectedIndex == 1);
  152. UI_SyntheticItemUI.ProxyEnd();
  153. }
  154. private async void OnClickBtnMake(EventContext context)
  155. {
  156. if (!(context.sender is GObject obj)) return;
  157. int itemID = (int)obj.data;
  158. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic);
  159. bool result = await ActivityTeaSProxy.ReqItemSynthetic(activityInfo.ActivityId, itemID);
  160. if (result)
  161. {
  162. _ui.m_listSynthetic.numItems = _suitCfg.Parts.Count;
  163. }
  164. }
  165. private void OnClickBtnGet(EventContext context)
  166. {
  167. if (!(context.sender is GObject obj)) return;
  168. int index = (int)obj.data;
  169. ItemCfg itemSyntheticCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[index]);
  170. var materiarsArr = itemSyntheticCfg.SyntheticMateriars;
  171. if (ItemDataManager.GetItemNum(materiarsArr[0].ItemId) < materiarsArr[0].Count)
  172. MainControllerr.GotoStoryChapter();
  173. else
  174. ItemUtil.BuyCurrency(materiarsArr[1].ItemId,
  175. materiarsArr[1].Count - ItemDataManager.GetItemNum(materiarsArr[1].ItemId));
  176. }
  177. private void OnSelectorItemClick(EventContext context)
  178. {
  179. if (!(context.sender is GObject obj)) return;
  180. int itemID = (int)obj.data;
  181. GoodsItemTipsController.ShowItemTips(itemID);
  182. }
  183. }
  184. }