DailyLoginView.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System.Collections.Generic;
  2. using FairyGUI;
  3. using UI.DailyLogin;
  4. using UnityEngine;
  5. namespace GFGGame
  6. {
  7. public class DailyLoginView : BaseWindow
  8. {
  9. private UI_DailyLoginUI _ui;
  10. private List<DailyLoginCfg> _cfgs;
  11. public override void Dispose()
  12. {
  13. base.Dispose();
  14. }
  15. protected override void OnInit()
  16. {
  17. base.OnInit();
  18. packageName = UI_DailyLoginUI.PACKAGE_NAME;
  19. _ui = UI_DailyLoginUI.Create();
  20. this.viewCom = _ui.target;
  21. this.modal = true;
  22. this.viewCom.Center();
  23. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  24. _ui.m_list.itemRenderer = ListItemRender;
  25. _ui.m_loaIcon.onClick.Add(OnListItemClick);
  26. }
  27. protected override void OnShown()
  28. {
  29. base.OnShown();
  30. _cfgs = DailyLoginCfgArray.Instance.GetCfgs("1");
  31. _ui.m_list.numItems = _cfgs.Count;
  32. _ui.m_loaIcon.url = "ui://DailyLogin/yzhd_dyt_7";
  33. _ui.m_loaIcon.data = _cfgs[_cfgs.Count - 1];
  34. }
  35. protected override void OnHide()
  36. {
  37. base.OnHide();
  38. }
  39. private void ListItemRender(int index, GObject obj)
  40. {
  41. DailyLoginCfg cfg = _cfgs[index];
  42. UI_ListItem item = UI_ListItem.Proxy(obj);
  43. item.m_loaBg.url = string.Format("ui://DailyLogin/yzhd_dyt_{0}", cfg.id);
  44. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.rewardsArr[0][0]);
  45. item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
  46. item.m_txtName.text = itemCfg.name;
  47. item.m_txtNum.text = "x" + cfg.rewardsArr[0][1];
  48. int dailyLoginId = ActivityDataManager.Instance.dailyLoginId;
  49. item.m_imgGot.visible = cfg.id < dailyLoginId || cfg.id == dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.GOT;
  50. if (cfg.id == dailyLoginId)
  51. {
  52. RedDotController.Instance.SetComRedDot(item.target, ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET);
  53. }
  54. if (item.target.data == null)
  55. {
  56. item.target.onClick.Add(OnListItemClick);
  57. }
  58. item.target.data = cfg;
  59. UI_ListItem.ClearProxy();
  60. }
  61. private async void OnListItemClick(EventContext context)
  62. {
  63. DailyLoginCfg cfg = (context.sender as GObject).data as DailyLoginCfg;
  64. if (cfg.id == ActivityDataManager.Instance.dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET)
  65. {
  66. bool result = await ActivitySProxy.ReqGetDailyLoginRewards(cfg.id);
  67. if (result)
  68. {
  69. _ui.m_list.numItems = _cfgs.Count;
  70. }
  71. }
  72. else
  73. {
  74. GoodsItemTipsController.ShowItemTips(cfg.rewardsArr[0][0]);
  75. }
  76. }
  77. }
  78. }