ValueBarController.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. using UI.CommonGame;
  2. using FairyGUI;
  3. using ET;
  4. using System.Collections.Generic;
  5. using cfg.GfgCfg;
  6. namespace GFGGame
  7. {
  8. public class ValueBarController
  9. {
  10. private UI_ComponentValueBar _valueBar;
  11. public ValueBarController(GComponent valueBar, int ctrlSelected = 0)
  12. {
  13. _valueBar = UI_ComponentValueBar.Create(valueBar);
  14. _valueBar.m_btnGold.target.onClick.Add(OnClickGold);
  15. _valueBar.m_btnPower.target.onClick.Add(OnClickPower);
  16. _valueBar.m_btnDiamondPurple.target.onClick.Add(OnClickDiamondPurple);
  17. _valueBar.m_btnDiamondRed.target.onClick.Add(OnClickDiamondRed);
  18. _valueBar.m_btnTravel.target.onClick.Add(OnClickTravel);
  19. _valueBar.m_btnGallery.target.onClick.Add(OnClickGallery);
  20. _valueBar.m_btnLeagueContribuation.target.onClick.Add(OnClickLeagueContribuation);
  21. _valueBar.m_btnCJ.target.onClick.Add(OnBtnClick);
  22. }
  23. private void OnClickGold()
  24. {
  25. ItemUtil.AddGold(null, 1);
  26. }
  27. private void OnClickPower()
  28. {
  29. ItemUtil.AddPower(null, 1);
  30. }
  31. private void OnClickDiamondPurple()
  32. {
  33. ItemUtil.AddDiamondPurple();
  34. }
  35. private void OnClickDiamondRed()
  36. {
  37. ItemUtil.AddDiamondRed();
  38. }
  39. private void OnClickTravel()
  40. {
  41. object[] sourceDatas = new object[] { CommonDataManager.Tables.TblGlobalCfg.TravelCost[0], new object[] { typeof(TravelView).FullName, null } };
  42. GoodsItemTipsController.ShowItemTips(CommonDataManager.Tables.TblGlobalCfg.TravelCost[0], sourceDatas);
  43. }
  44. private void OnClickGallery()
  45. {
  46. ViewManager.Show<PoemGalleryRuleView>();
  47. }
  48. private void OnClickLeagueContribuation()
  49. {
  50. object[] sourceDatas = new object[] { ConstItemID.LEAGUE_CONTRIBUTION, null };
  51. GoodsItemTipsController.ShowItemTips(ConstItemID.LEAGUE_CONTRIBUTION, sourceDatas);
  52. }
  53. private void OnClickLeagueContribuation(object[] gobackParam = null)
  54. {
  55. object[] sourceDatas = new object[] { ConstItemID.LEAGUE_CONTRIBUTION, gobackParam };
  56. GoodsItemTipsController.ShowItemTips(ConstItemID.LEAGUE_CONTRIBUTION, sourceDatas);
  57. }
  58. private void OnClickLeagueCurrency(object[] gobackParam = null)
  59. {
  60. object[] sourceDatas = new object[] { ConstItemID.LEAGUE_CURRENCY, gobackParam };
  61. GoodsItemTipsController.ShowItemTips(ConstItemID.LEAGUE_CURRENCY, sourceDatas);
  62. }
  63. // 活动摘星道具
  64. private void OnClickLuckyBoxActivityProp(object[] gobackParam = null)
  65. {
  66. object[] sourceDatas = new object[] { ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST_2, gobackParam };
  67. GoodsItemTipsController.ShowItemTips(ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST_2, sourceDatas);
  68. }
  69. public void Dispose()
  70. {
  71. if (_valueBar != null)
  72. {
  73. _valueBar.Dispose();
  74. }
  75. _valueBar = null;
  76. }
  77. public void OnShown()
  78. {
  79. UpdateNumeric();
  80. UpdateItem();
  81. EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, UpdateNumeric);
  82. EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateItem);
  83. }
  84. public void Controller(int ctrlSelected)
  85. {
  86. _valueBar.m_c1.selectedIndex = ctrlSelected;
  87. }
  88. public void OnHide()
  89. {
  90. EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, UpdateNumeric);
  91. EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateItem);
  92. }
  93. private void UpdateItem()
  94. {
  95. UpdateCurrency();
  96. UpdateCJExchange();
  97. UpdateCJAExchange();
  98. UpdateCJ();
  99. UpdateTravel();
  100. UpdateGallery();
  101. UpdateArena();
  102. UpdateLeagueContribution();
  103. _valueBar.m_list.numItems = _valueBar.m_list.numItems;
  104. }
  105. private void UpdateCurrency()
  106. {
  107. _valueBar.m_btnGold.target.text = "" + RoleDataManager.gold;
  108. _valueBar.m_btnDiamondPurple.target.text = "" + RoleDataManager.diaP;
  109. _valueBar.m_btnDiamondRed.target.text = "" + RoleDataManager.diaR;
  110. }
  111. private void UpdateNumeric()
  112. {
  113. _valueBar.m_btnPower.target.text = string.Format("{0}/{1}", RoleDataManager.power, RoleDataManager.powerLimit);
  114. }
  115. //ժ�ǣ��齱���һ�
  116. private void UpdateCJExchange()
  117. {
  118. _valueBar.m_btnCJLuoXing.target.text = "" + ItemDataManager.GetItemNum(ConstItemID.LUCKYBOX_STORE_COST);
  119. _valueBar.m_btnCJLuoXing.target.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.LUCKYBOX_STORE_COST).Res);
  120. }
  121. private void UpdateCJAExchange()
  122. {
  123. _valueBar.m_btnCJHuoDong.target.text = "" + ItemDataManager.GetItemNum(ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST);
  124. _valueBar.m_btnCJHuoDong.target.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST).Res);
  125. }
  126. public void UpdateCJ()
  127. {
  128. LuckyBoxCfg luckyBoxCfg = CommonDataManager.Tables.TblLuckyBoxCfg.GetOrDefault(LuckyBoxDataManager.Instance.currentBoxId);
  129. if (luckyBoxCfg == null) return;
  130. _valueBar.m_btnCJ.target.text = "" + ItemDataManager.GetItemNum(luckyBoxCfg.CostID);
  131. ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(luckyBoxCfg.CostID);
  132. if (itemCfg == null) return;
  133. _valueBar.m_btnCJ.target.icon = ResPathUtil.GetCommonGameResPath(itemCfg.Res);
  134. _valueBar.m_btnCJ.target.data = luckyBoxCfg.CostID;
  135. }
  136. private void UpdateTravel()
  137. {
  138. int itemId = CommonDataManager.Tables.TblGlobalCfg.TravelCost[0];
  139. _valueBar.m_btnTravel.target.text = "" + ItemDataManager.GetItemNum(itemId);
  140. _valueBar.m_btnTravel.target.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId).Res);
  141. }
  142. private void UpdateGallery()
  143. {
  144. _valueBar.m_btnGallery.target.text = "" + ItemDataManager.GetItemNum(ConstItemID.GALLERY_STORE_COST);
  145. _valueBar.m_btnGallery.target.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.GALLERY_STORE_COST).Res);
  146. }
  147. private void UpdateArena()
  148. {
  149. _valueBar.m_btnArena.m_imgAdd.visible = false;
  150. _valueBar.m_btnArena.target.text = "" + ItemDataManager.GetItemNum(CommonDataManager.Tables.TblGlobalCfg.BonusSpecialWin[0].ItemId);
  151. _valueBar.m_btnArena.target.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault( CommonDataManager.Tables.TblGlobalCfg.BonusSpecialWin[0].ItemId).Res);
  152. }
  153. private void UpdateLeagueContribution()
  154. {
  155. _valueBar.m_btnLeagueContribuation.target.text = "" + ItemDataManager.GetItemNum(ConstItemID.LEAGUE_CONTRIBUTION);
  156. _valueBar.m_btnLeagueContribuation.target.icon = ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.LEAGUE_CONTRIBUTION).Res);
  157. }
  158. public void UpdateList(List<int> itemIds)
  159. {
  160. itemIds.Sort((x, y) => -x.CompareTo(y));
  161. if (_valueBar.m_list.data == null)
  162. {
  163. _valueBar.m_list.itemRenderer = RenderListItem;
  164. }
  165. _valueBar.m_list.data = itemIds;
  166. _valueBar.m_list.numItems = itemIds.Count;
  167. }
  168. public void UpdateRedPoint()
  169. {
  170. RedDotController.Instance.SetComRedDot(_valueBar.m_btnPower.target, RedDotDataManager.Instance.GetPowerRed());
  171. RedDotController.Instance.SetComRedDot(_valueBar.m_btnGold.target, RedDotDataManager.Instance.GetGoldRed());
  172. }
  173. private void RenderListItem(int index, GObject obj)
  174. {
  175. int itemId = (obj.parent.data as List<int>)[index];
  176. UpdateButton(obj, itemId);
  177. }
  178. private void UpdateButton(GObject obj, int itemId)
  179. {
  180. UI_ButtonInValueBar button = UI_ButtonInValueBar.Proxy(obj);
  181. // 体力特殊处理
  182. if(itemId == ConstItemID.POWER)
  183. {
  184. button.target.text = string.Format("{0}/{1}", RoleDataManager.power, RoleDataManager.powerLimit);
  185. }
  186. else
  187. {
  188. button.target.text = "" + ItemDataManager.GetItemNum(itemId);
  189. }
  190. //button.target.icon = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(itemId).res);
  191. button.target.icon = ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId).Res,"png");
  192. switch (itemId)
  193. {
  194. case ConstItemID.GOLD:
  195. case ConstItemID.POWER:
  196. case ConstItemID.DIAMOND_PURPLE:
  197. case ConstItemID.DIAMOND_RED:
  198. case ConstItemID.TRAVEL:
  199. case ConstItemID.GALLERY_STORE_COST:
  200. case ConstItemID.LEAGUE_CONTRIBUTION:
  201. case ConstItemID.LEAGUE_CURRENCY:
  202. case ConstItemID.LUCKYBOX_COST_2:
  203. case ConstItemID.ARENA_CUR_COST:
  204. case ConstItemID.ARENA_PAST_COST:
  205. case ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST_2:
  206. case ConstItemID.OPEN_SERVER_COST_1:
  207. case ConstItemID.GET_TICKETS:
  208. case ConstItemID.YUANXIAO_GAME_CONSUME:
  209. case ConstItemID.YUANXIAO_REWARD:
  210. case ConstItemID.SYJH_PropID:
  211. button.m_imgAdd.visible = true;
  212. break;
  213. default:
  214. button.m_imgAdd.visible = false;
  215. break;
  216. }
  217. if (button.target.data == null)
  218. {
  219. button.target.onClick.Add(OnBtnClick);
  220. }
  221. button.target.data = itemId;
  222. UI_ButtonInValueBar.ProxyEnd();
  223. }
  224. private void OnBtnClick(EventContext context)
  225. {
  226. int itemId = (int)(context.sender as GObject).data;
  227. OnBtnClick(itemId);
  228. }
  229. private void OnBtnClick(int itemId)
  230. {
  231. object[] param = null;
  232. switch (itemId)
  233. {
  234. case ConstItemID.GOLD:
  235. OnClickGold();
  236. break;
  237. case ConstItemID.POWER:
  238. OnClickPower();
  239. break;
  240. case ConstItemID.DIAMOND_PURPLE:
  241. OnClickDiamondPurple();
  242. break;
  243. case ConstItemID.DIAMOND_RED:
  244. OnClickDiamondRed();
  245. break;
  246. case ConstItemID.TRAVEL:
  247. OnClickGold();
  248. break;
  249. case ConstItemID.GALLERY_STORE_COST:
  250. OnClickGallery();
  251. break;
  252. case ConstItemID.LEAGUE_CONTRIBUTION:
  253. if (ViewManager.isViewOpen(typeof(StoreView).FullName) && ViewManager.isViewOpen(typeof(StoreExchangeView).FullName))
  254. {
  255. param = new object[] { typeof(StoreView).FullName, new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_LEAGUE } };
  256. }
  257. OnClickLeagueContribuation(param);
  258. break;
  259. case ConstItemID.LEAGUE_CURRENCY:
  260. if (ViewManager.isViewOpen(typeof(StoreView).FullName) && ViewManager.isViewOpen(typeof(StoreExchangeView).FullName))
  261. {
  262. param = new object[] { typeof(StoreView).FullName, new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_LEAGUE } };
  263. }
  264. OnClickLeagueCurrency(param);
  265. break;
  266. case ConstItemID.LUCKYBOX_COST_0:
  267. case ConstItemID.LUCKYBOX_COST_1:
  268. case ConstItemID.LUCKYBOX_COST_2:
  269. case ConstItemID.OPEN_SERVER_COST_1:
  270. // ItemUtil.ExchangeItemById(itemId, 10, true, null, true, GameConst.MAX_COUNT_TO_BUY_DIAMOND_RED, true);
  271. BuyItemConteoller.Show(itemId, 1, ConstBuyType.TYPE_ITEM, null, true, false, GameConst.MAX_COUNT_TO_BUY_DIAMOND_RED);
  272. break;
  273. case ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST_2:
  274. OnClickLuckyBoxActivityProp();
  275. break;
  276. case ConstItemID.ARENA_CUR_COST:
  277. object[] sourceDatas = new object[] { ConstItemID.ARENA_CUR_COST, null };
  278. GoodsItemTipsController.ShowItemTips(ConstItemID.ARENA_CUR_COST, sourceDatas);
  279. break;
  280. case ConstItemID.ARENA_PAST_COST:
  281. GoodsItemTipsController.ShowItemTips(ConstItemID.ARENA_PAST_COST, new object[] { ConstItemID.ARENA_PAST_COST, null });
  282. break;
  283. default:
  284. GoodsItemTipsController.ShowItemTips(itemId, new object[] { itemId, null });
  285. break;
  286. }
  287. }
  288. }
  289. }