DailyWelfareView.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using FairyGUI;
  5. using UI.DailyWelfare;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. public class DailyWelfareView : BaseWindow
  10. {
  11. private UI_DailyWelfareUI _ui;
  12. private ValueBarController _valueBarController;
  13. private int _month;
  14. private int _day;
  15. public override void Dispose()
  16. {
  17. base.Dispose();
  18. if (_valueBarController != null)
  19. {
  20. _valueBarController.Dispose();
  21. _valueBarController = null;
  22. }
  23. if (_ui != null)
  24. {
  25. _ui.Dispose();
  26. _ui = null;
  27. }
  28. }
  29. protected override void OnInit()
  30. {
  31. base.OnInit();
  32. packageName = UI_DailyWelfareUI.PACKAGE_NAME;
  33. _ui = UI_DailyWelfareUI.Create();
  34. this.viewCom = _ui.target;
  35. isfullScreen = true;
  36. _valueBarController = new ValueBarController(_ui.m_comValueBar);
  37. _ui.m_btnback.onClick.Add(OnBtnBackClick);
  38. _ui.m_list.itemRenderer = ListItemRender;
  39. }
  40. protected override void OnShown()
  41. {
  42. base.OnShown();
  43. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("mrqd_bjbj");
  44. _valueBarController.OnShown();
  45. _month = DateTime.Now.Month;
  46. _day = DateTime.Now.Day;
  47. // _ui.m_list.ScrollToView(0);
  48. UpdateSgignView();
  49. }
  50. protected override void OnHide()
  51. {
  52. _valueBarController.OnHide();
  53. base.OnHide();
  54. }
  55. private void OnBtnBackClick()
  56. {
  57. ViewManager.GoBackFrom(typeof(DailyWelfareView).FullName);
  58. }
  59. private void UpdateSgignView()
  60. {
  61. _ui.m_txtSignCount.text = DailyWelfareManager.Instance.DailySignDatas.Count.ToString();
  62. _ui.m_proSign.target.max = DailySignCfgArray.Instance.GetCfgsBymonth(_month).Count;
  63. _ui.m_proSign.target.value = DailyWelfareManager.Instance.DailySignDatas.Count;
  64. List<DailySignCfg> signCfgs = DailySignCfgArray.Instance.GetCfgsBymonth(_month);
  65. for (int i = 0; i < signCfgs.Count; i++)
  66. {
  67. GComponent comProBonus = _ui.m_proSign.target.GetChild("comProBonus" + i).asCom;
  68. comProBonus.x = (signCfgs[i].day / (float)_ui.m_proSign.target.max) * _ui.m_proSign.target.width;
  69. UI_ComProBonus item = UI_ComProBonus.Proxy(comProBonus);
  70. item.m_loaIcon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(signCfgs[i].bonusArr[0][0]));
  71. item.m_txtCount.text = signCfgs[i].bonusArr[0][1].ToString();
  72. item.m_txtDay.text = signCfgs[i].day.ToString();
  73. UI_ComProBonus.ProxyEnd();
  74. }
  75. _ui.m_list.numItems = DailySignCfgArray.Instance.GetCfgsBymonth(_month).Count;
  76. }
  77. private void UpdateSupplyView()
  78. {
  79. }
  80. private void UpdateReward()
  81. {
  82. }
  83. private void ListItemRender(int index, GObject obj)
  84. {
  85. DailySignBonusCfg bonusCfg = DailySignBonusCfgArray.Instance.GetCfgsBymonth(_month)[index];
  86. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(bonusCfg.bonusArr[0][0]);
  87. UI_ListSignItem item = UI_ListSignItem.Proxy(obj);
  88. item.m_c1.selectedIndex = itemCfg.itemType == ConstItemType.ITEM ? 0 : bonusCfg.type;
  89. item.m_txtDay.text = bonusCfg.day.ToString();
  90. item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
  91. item.m_txtCount.text = bonusCfg.bonusArr[0][1].ToString();
  92. item.m_imgGot.visible = DailyWelfareManager.Instance.DailySignDatas.IndexOf(bonusCfg.day) >= 0;
  93. item.m_imgNotGet.visible = bonusCfg.day < _day && DailyWelfareManager.Instance.DailySignDatas.IndexOf(bonusCfg.day) >= 0;
  94. RedDotController.Instance.SetComRedDot(item.target, bonusCfg.day == _day && DailyWelfareManager.Instance.DailySignDatas.IndexOf(bonusCfg.day) < 0);
  95. if (item.target.data == null)
  96. {
  97. item.target.onClick.Add(OnGetSignBonus);
  98. }
  99. item.target.data = bonusCfg.day;
  100. UI_ListSignItem.ProxyEnd();
  101. }
  102. private async void OnGetSignBonus(EventContext context)
  103. {
  104. GObject obj = context.sender as GObject;
  105. int day = (int)obj.data;
  106. bool result = false;
  107. if (day > _day) return;
  108. if (day < _day)
  109. {
  110. int[] cost = GlobalCfgArray.globalCfg.dailySignConsumeArr[0];
  111. AlertUI.Show(string.Format("是否确定花费{0}{1}补签?", cost[1], ItemCfgArray.Instance.GetCfg(cost[0]).name)).
  112. SetLeftButton(true, "否").
  113. SetRightButton(true, "是", async (object param) =>
  114. {
  115. result = await DailyWelfareSProxy.ReqReSign(day);
  116. });
  117. }
  118. else
  119. {
  120. result = await DailyWelfareSProxy.ReqSign(day);
  121. }
  122. if (result)
  123. {
  124. _ui.m_list.numItems = DailySignCfgArray.Instance.GetCfgsBymonth(_month).Count;
  125. }
  126. }
  127. private void ListBonusItemRender(int index, GObject obj)
  128. {
  129. }
  130. }
  131. }