StoreView.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. using UI.Store;
  2. using UI.CommonGame;
  3. using FairyGUI;
  4. using System.Collections.Generic;
  5. using ET;
  6. using UnityEngine;
  7. using System;
  8. using cfg;
  9. using cfg.GfgCfg;
  10. // using System.Diagnostics;
  11. namespace GFGGame
  12. {
  13. public class StoreView : BaseWindow
  14. {
  15. private UI_StoreUI _ui;
  16. // private ValueBarController _valueBarController;
  17. private List<List<string>> _arenaSubTab = new List<List<string>>();
  18. //private List<string[]> _storeTabCfgs = new List<string[]>();
  19. private System.Collections.Generic.List<SubTabParam> _storeTabCfgs = new List<SubTabParam>();
  20. private int _curTabIndex = 0;
  21. private int _curSubTabIndex = 0;
  22. private string _curViewName = "";
  23. public override void Dispose()
  24. {
  25. if (_ui != null)
  26. {
  27. _ui.Dispose();
  28. }
  29. _arenaSubTab.Clear();
  30. _ui = null;
  31. base.Dispose();
  32. }
  33. protected override void OnInit()
  34. {
  35. base.OnInit();
  36. packageName = UI_StoreUI.PACKAGE_NAME;
  37. _ui = UI_StoreUI.Create();
  38. this.viewCom = _ui.target;
  39. isfullScreen = true;
  40. isReturnView = true;
  41. this.bringToFontOnClick = false;
  42. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_fhl");
  43. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  44. _ui.m_comTab.m_c1.onChanged.Add(OnTabChange);
  45. _ui.m_listSubTab.itemRenderer = RenderListSubTabItem;
  46. _ui.m_listSubTab.onClickItem.Add(OnListSubTabClick);
  47. PreloadStoreChargeAddUp();
  48. }
  49. protected override void AddEventListener()
  50. {
  51. base.AddEventListener();
  52. EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, UpdateRedDot);
  53. EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateRedDot);
  54. EventAgent.AddEventListener(ConstMessage.CONTINUOUS_REBATE_GIFT, UpdateRedDot);
  55. EventAgent.AddEventListener(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, UpdateStoreMonthRedDot);
  56. EventAgent.AddEventListener(ConstMessage.STORE_BROCADE_WEAV_RECEIVE, UpdateStoreMonthRedDot);
  57. }
  58. protected override void OnShown()
  59. {
  60. base.OnShown();
  61. //StoreTabCfg arenaTab = StoreTabCfgArray.Instance.GetCfgByfunctionId(ConstFunctionId.STORE_ARENA);
  62. StoreTabCfg arenaTab = CommonDataManager.Tables.TblStoreTabCfg.GetGroup1ByFunctionId(ConstFunctionId.STORE_ARENA)[0];
  63. _arenaSubTab.Clear();
  64. _arenaSubTab.Add(new List<string>() { arenaTab.SubTab[0].Name, arenaTab.SubTab[0].Num.ToString(), arenaTab.SubTab[0].View });
  65. for (int i = ArenaDataManager.Instance.SeasonId; i > 0; i--)
  66. {
  67. List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_ARENA, i);
  68. if (shopCfgs.Count == 0)
  69. {
  70. continue;
  71. }
  72. _arenaSubTab.Add(new List<string>() { string.Format("第{0}赛季", i), i.ToString(), "StoreArenaView" });
  73. }
  74. _curTabIndex = this.viewData == null ? ConstStoreTabId.STORE_CHARGE : (int)(this.viewData as object[])[0];
  75. _ui.m_comTab.m_c1.selectedIndex = _curTabIndex;
  76. _ui.m_comTab.target.scrollPane.SetPercX((float)(_curTabIndex - 1) / (float) CommonDataManager.Tables.TblStoreTabCfg.DataList.Count, false);
  77. _curSubTabIndex = this.viewData == null ? 0 : (int)(this.viewData as object[])[1];
  78. if (_curTabIndex == ConstStoreTabId.STORE_GIFT_BAG && _curSubTabIndex > 0 && !ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_GIFT_BAG,ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY)) {
  79. _curSubTabIndex -= 1;
  80. }
  81. if (_curTabIndex == ConstStoreTabId.STORE_EXCHANGE && _curSubTabIndex > 0 && !ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_EXCHANGE,ConstStoreSubId.STORE_ACTIVITY_EXCHANGE))
  82. {
  83. _curSubTabIndex -= 1;
  84. }
  85. if (_ui.m_listSubTab.numItems > _curSubTabIndex)
  86. {
  87. _ui.m_listSubTab.selectedIndex = _curSubTabIndex;
  88. _ui.m_listSubTab.ScrollToView(_curSubTabIndex);
  89. OnListSubTabChange(_curSubTabIndex);
  90. }
  91. if(_curTabIndex == ConstStoreTabId.STORE_MONTH_CARD && _curSubTabIndex == 2)
  92. ViewManager.Hide<StoreBrocadeWeavView>();
  93. UpdateRedDot();
  94. }
  95. protected override void OnHide()
  96. {
  97. base.OnHide();
  98. _ui.m_comTab.m_c1.selectedIndex = 0;
  99. _ui.m_listSubTab.selectedIndex = 0;
  100. ViewManager.Hide(_curViewName);
  101. }
  102. protected override void RemoveEventListener()
  103. {
  104. base.RemoveEventListener();
  105. EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, UpdateRedDot);
  106. EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateRedDot);
  107. EventAgent.RemoveEventListener(ConstMessage.CONTINUOUS_REBATE_GIFT, UpdateRedDot);
  108. EventAgent.RemoveEventListener(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, UpdateStoreMonthRedDot);
  109. EventAgent.RemoveEventListener(ConstMessage.STORE_BROCADE_WEAV_RECEIVE, UpdateStoreMonthRedDot);
  110. }
  111. private void OnClickBtnBack()
  112. {
  113. this.Hide();
  114. //ViewManager.GoBackFrom(typeof(StoreView).FullName);
  115. }
  116. private void OnTabChange()
  117. {
  118. StoreTabCfg tabCfg = CommonDataManager.Tables.TblStoreTabCfg.GetOrDefault(_ui.m_comTab.m_c1.selectedIndex);
  119. if (tabCfg == null) return;
  120. if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(tabCfg.FunctionId))
  121. {
  122. _ui.m_comTab.m_c1.selectedIndex = _ui.m_comTab.m_c1.previsousIndex;
  123. }
  124. _curTabIndex = _ui.m_comTab.m_c1.selectedIndex;
  125. if (tabCfg.FunctionId == ConstFunctionId.STORE_ARENA)
  126. {
  127. _ui.m_listSubTab.numItems = _arenaSubTab.Count;
  128. }
  129. else
  130. {
  131. _storeTabCfgs.Clear();
  132. if (tabCfg.Index == ConstStoreTabId.STORE_GIFT_BAG)
  133. {
  134. for (int i = 0; i < tabCfg.SubTab.Count; i++)
  135. {
  136. int menu2 = tabCfg.SubTab[i].Num;
  137. if (menu2 == ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY)
  138. {
  139. if (!ShopDataManager.Instance.GetShopActivityIsShow(tabCfg.Index,menu2)) continue;
  140. }
  141. if(tabCfg.SubTab[i].View != "StoreZGDCView")
  142. {
  143. _storeTabCfgs.Add(tabCfg.SubTab[i]);
  144. }
  145. else
  146. {
  147. if (TimeHelper.ServerNow() <= 1724637600000)
  148. {
  149. _storeTabCfgs.Add(tabCfg.SubTab[i]);
  150. }
  151. }
  152. }
  153. }
  154. else if (tabCfg.Index == ConstStoreTabId.STORE_EXCHANGE)
  155. {
  156. for (int i = 0; i < tabCfg.SubTab.Count; i++)
  157. {
  158. int menu2 = tabCfg.SubTab[i].Num;
  159. if (menu2 == ConstStoreSubId.STORE_ACTIVITY_EXCHANGE)
  160. {
  161. if (!ShopDataManager.Instance.GetShopActivityIsShow(tabCfg.Index, menu2)) continue;
  162. }
  163. _storeTabCfgs.Add(tabCfg.SubTab[i]);
  164. }
  165. }
  166. else
  167. {
  168. _storeTabCfgs = new List<SubTabParam>(tabCfg.SubTab);
  169. }
  170. _ui.m_listSubTab.numItems = _storeTabCfgs.Count;
  171. }
  172. _ui.m_listSubTab.selectedIndex = 0;
  173. _curSubTabIndex = 0;
  174. OnListSubTabChange(_curSubTabIndex);
  175. UpdateRedDot();
  176. }
  177. private void RenderListSubTabItem(int index, GObject obj)
  178. {
  179. GButton item = obj.asButton;
  180. StoreTabCfg tabCfg = CommonDataManager.Tables.TblStoreTabCfg.GetOrDefault(_curTabIndex);
  181. int menu2 = 0;
  182. if (tabCfg.FunctionId == ConstFunctionId.STORE_ARENA)
  183. {
  184. item.title = _arenaSubTab[index][0];
  185. menu2 = int.Parse(_arenaSubTab[index][1]);
  186. }
  187. else
  188. {
  189. //成长基金单独处理
  190. if (_storeTabCfgs[index].View == "StoreGrowthFundView")
  191. {
  192. ActivityOpenCfg activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(3002);
  193. if (RoleDataManager.lvl < activityCfg.Level)
  194. {
  195. if (!RedDotDataManager.Instance.GetGrowthFundRewardRed())
  196. {
  197. item.visible = false;
  198. }
  199. }
  200. else
  201. {
  202. item.visible = true;
  203. }
  204. }
  205. else if(_storeTabCfgs[index].View == "StoreSummerGiftView")
  206. {
  207. long curTime = TimeHelper.ServerNow();
  208. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(ActivityAfuGiftDataManager.Instance.SummerActivityID);
  209. if (activityInfo == null)
  210. {
  211. item.visible = false;
  212. }
  213. else
  214. {
  215. item.visible = true;
  216. }
  217. }
  218. else if (_storeTabCfgs[index].View == "StoreZGDCView")
  219. {
  220. if (TimeHelper.ServerNow() > 1724637600000)
  221. {
  222. item.visible = false;
  223. }
  224. }
  225. else
  226. {
  227. item.visible = true;
  228. }
  229. item.title = _storeTabCfgs[index].Name;
  230. menu2 = _storeTabCfgs[index].Num;
  231. }
  232. item.data = index;
  233. }
  234. private void OnListSubTabClick(EventContext context)
  235. {
  236. GObject obj = context.data as GObject;
  237. int index = (int)obj.data;
  238. if (index < 0) return;
  239. OnListSubTabChange(index);
  240. }
  241. private void OnListSubTabChange(int index)
  242. {
  243. StoreTabCfg tabCfg = CommonDataManager.Tables.TblStoreTabCfg.GetOrDefault(_curTabIndex);
  244. string viewName = "";
  245. int menu2 = 0;
  246. if (tabCfg.FunctionId == ConstFunctionId.STORE_ARENA)
  247. {
  248. menu2 = int.Parse(_arenaSubTab[index][1]);
  249. viewName = _arenaSubTab[index][2];
  250. }
  251. else
  252. {
  253. menu2 = _storeTabCfgs[index].Num;
  254. viewName = _storeTabCfgs[index].View;
  255. }
  256. if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(viewName))
  257. {
  258. _ui.m_listSubTab.selectedIndex = _curSubTabIndex;
  259. return;
  260. }
  261. ViewManager.Hide(_curViewName);
  262. if (!string.IsNullOrEmpty(viewName) && viewName != "“”")
  263. {
  264. //特殊处理
  265. if(viewName == "StoreSummerGiftView")
  266. {
  267. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xrqlzl_bg");
  268. }
  269. else
  270. {
  271. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_fhl");
  272. }
  273. ViewManager.Show("GFGGame." + viewName, menu2);
  274. }
  275. _curSubTabIndex = index;
  276. _curViewName = "GFGGame." + viewName;
  277. }
  278. private void UpdateRedDot()
  279. {
  280. RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn0.target, RedDotDataManager.Instance.GetChargeAddUpRewardRed());
  281. for (int i = 0; i < _ui.m_listSubTab.numItems; i++)
  282. {
  283. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(i).asCom, false);
  284. }
  285. if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_CHARGE)
  286. {
  287. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_CHARGE_ADDUP).asCom, RedDotDataManager.Instance.GetChargeAddUpRewardRed());
  288. }
  289. UpdateStoreMonthRedDot();
  290. UpdateGrowthFunRed();
  291. RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn2.target, (RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetGiftBagRebateRed()));
  292. if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_GIFT_BAG)
  293. {
  294. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY).asCom,RedDotDataManager.Instance.GetGiftBagRewardRed());
  295. int needSub = 0;
  296. if (!ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY))
  297. needSub = 1;
  298. //if (!ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE))
  299. // needSub = 1;
  300. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GIFT_BAG_REBATE - needSub).asCom,RedDotDataManager.Instance.GetGiftBagRebateRed());
  301. }
  302. }
  303. //月卡红点刷新
  304. private void UpdateStoreMonthRedDot()
  305. {
  306. RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn1.target, RedDotDataManager.Instance.GetGoldCardRewardRed() || RedDotDataManager.Instance.GetBlackCardRewardRed() || RedDotDataManager.Instance.GetBlackCardClothingRed()
  307. || RedDotDataManager.Instance.GetStoreBrocadeWeavRewardRed()||RedDotDataManager.Instance.GetGrowthFundRewardRed()|| ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState());
  308. if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_MONTH_CARD)
  309. {
  310. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_GOLD_CARD).asCom, RedDotDataManager.Instance.GetGoldCardRewardRed());
  311. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_BLACK_CARD).asCom, RedDotDataManager.Instance.GetBlackCardRewardRed() || RedDotDataManager.Instance.GetBlackCardClothingRed());
  312. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_BROCADE_WEAV).asCom, RedDotDataManager.Instance.GetStoreBrocadeWeavRewardRed());
  313. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GROWTH_FUND).asCom, RedDotDataManager.Instance.GetGrowthFundRewardRed());
  314. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(4).asCom, ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState());
  315. }
  316. }
  317. //成长基金红点
  318. public void UpdateGrowthFunRed()
  319. {
  320. if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_MONTH_CARD)
  321. {
  322. RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GROWTH_FUND).asCom, RedDotDataManager.Instance.GetGrowthFundRewardRed());
  323. }
  324. }
  325. //会员中心模型预加载
  326. private void PreloadStoreChargeAddUp()
  327. {
  328. int vipIndex = Math.Max(0, RoleDataManager.vipLv - 1);
  329. for (int i = vipIndex; i >= 0; i--)
  330. {
  331. PreloadSuitModel(i);
  332. }
  333. for (int i = vipIndex + 1; i <CommonDataManager.Tables.TblVipCfg.DataList.Count -1 ; i++)
  334. {
  335. PreloadSuitModel(i);
  336. }
  337. }
  338. private void PreloadSuitModel(int index)
  339. {
  340. VipCfg vipCfg = CommonDataManager.Tables.TblVipCfg.DataList[index + 1];
  341. SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(vipCfg.SuitId);
  342. ResType resType = ResType.Sprite;
  343. if (suitCfg.AniRes != "")
  344. resType = ResType.Animation;
  345. PreDownloadManager.Instance.PreDownloadSuitRes(vipCfg.SuitId, resType, new int[] { ConstDressUpItemType.BEI_JING }, true);
  346. }
  347. }
  348. }