LeagueAnswerRewardView.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System.Collections.Generic;
  2. using System.Text.RegularExpressions;
  3. using ET;
  4. using FairyGUI;
  5. using UI.League;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. //联盟答题奖励展示
  10. public class LeagueAnswerRewardView : BaseWindow
  11. {
  12. private UI_LeagueAnswerRewardUI _ui;
  13. List<string> ruleDatas = new List<string>();
  14. public override void Dispose()
  15. {
  16. if (_ui != null)
  17. {
  18. _ui.Dispose();
  19. _ui = null;
  20. }
  21. base.Dispose();
  22. }
  23. protected override void OnInit()
  24. {
  25. base.OnInit();
  26. packageName = UI_LeagueAnswerRewardUI.PACKAGE_NAME;
  27. _ui = UI_LeagueAnswerRewardUI.Create();
  28. this.viewCom = _ui.target;
  29. this.viewCom.Center();
  30. this.modal = true;
  31. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  32. _ui.m_btnClose.onClick.Add(Hide);
  33. _ui.m_list.itemRenderer = RenderListItem;
  34. _ui.m_listRule.itemRenderer = RenderListRuleItem;
  35. }
  36. protected override void AddEventListener()
  37. {
  38. base.AddEventListener();
  39. }
  40. protected override void OnShown()
  41. {
  42. base.OnShown();
  43. _ui.m_list.numItems = LeagueQuestionBonusCfgArray.Instance.dataArray.Length;
  44. string rule = TextDescCfgArray.Instance.GetCfg(300008).text;
  45. string[] rules = rule.Split(new char[] { '.', '\n' });
  46. for (int i = 0; i < rules.Length; i++)
  47. {
  48. if (i % 2 == 0) continue;
  49. ruleDatas.Add(rules[i]);
  50. }
  51. _ui.m_listRule.numItems = ruleDatas.Count;
  52. }
  53. protected override void OnHide()
  54. {
  55. base.OnHide();
  56. ruleDatas.Clear();
  57. }
  58. protected override void RemoveEventListener()
  59. {
  60. base.RemoveEventListener();
  61. }
  62. private void RenderListRuleItem(int index, GObject obj)
  63. {
  64. UI_ListAnswerRuleItem item = UI_ListAnswerRuleItem.Proxy(obj);
  65. item.m_txtRule.text = ruleDatas[index];
  66. UI_ListAnswerRuleItem.ProxyEnd();
  67. }
  68. private void RenderListItem(int index, GObject obj)
  69. {
  70. UI_ListAnswerRewardItem item = UI_ListAnswerRewardItem.Proxy(obj);
  71. item.m_txtDesc.text = string.Format("答对{0}题", index + 1);
  72. if (item.m_listReward.data == null)
  73. {
  74. item.m_listReward.itemRenderer = RenderListIrem;
  75. }
  76. item.m_listReward.data = LeagueQuestionBonusCfgArray.Instance.dataArray[index].bonusArr;
  77. item.m_listReward.numItems = LeagueQuestionBonusCfgArray.Instance.dataArray[index].bonusArr.Length;
  78. UI_ListAnswerRewardItem.ProxyEnd();
  79. }
  80. private void RenderListIrem(int index, GObject obj)
  81. {
  82. int[][] rewards = (int[][])obj.parent.data;
  83. ItemUtil.UpdateItemNeedNum(obj, rewards[index]);
  84. }
  85. }
  86. }