FieldTaskView.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections.Generic;
  3. using FairyGUI;
  4. using UI.Field;
  5. using UnityEngine;
  6. namespace GFGGame
  7. {
  8. public class FieldTaskView : BaseWindow
  9. {
  10. private UI_FieldTaskUI _ui;
  11. private List<FieldTaskCfg> _cfgs;
  12. private string[] difficulty = new string[] { "初级", "中级", "高级" };
  13. public override void Dispose()
  14. {
  15. base.Dispose();
  16. }
  17. protected override void OnInit()
  18. {
  19. base.OnInit();
  20. _ui = UI_FieldTaskUI.Create();
  21. this.viewCom = _ui.target;
  22. this.viewCom.Center();
  23. this.modal = true;
  24. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  25. _ui.m_list.itemRenderer = ListItemRender;
  26. }
  27. protected override void OnShown()
  28. {
  29. base.OnShown();
  30. _cfgs = FieldDataManager.Instance.GetTaskCfgs();
  31. _ui.m_list.numItems = _cfgs.Count;
  32. }
  33. protected override void OnHide()
  34. {
  35. base.OnHide();
  36. }
  37. private void ListItemRender(int index, GObject obj)
  38. {
  39. UI_ListItem item = UI_ListItem.Proxy(obj);
  40. FieldCfg cfg = FieldCfgArray.Instance.GetCfg(_cfgs[index].chapterId);
  41. item.m_txtDesc.text = string.Format("{0}难度挑战成功", cfg.name);
  42. item.m_btnGet.m_txtTitle.text = string.Format("每周上限+{0}", _cfgs[index].addRewardLimit);
  43. item.m_btnGet.m_c1.selectedIndex = FieldDataManager.Instance.GetTaskState(_cfgs[index].id);
  44. if (item.m_btnGet.target.data == null)
  45. {
  46. item.m_btnGet.target.onClick.Add(OnBtnGetClick);
  47. }
  48. item.m_btnGet.target.data = _cfgs[index].id;
  49. UI_ListItem.ClearProxy();
  50. }
  51. private async void OnBtnGetClick(EventContext context)
  52. {
  53. int taskId = (int)(context.sender as GObject).data;
  54. int state = FieldDataManager.Instance.GetTaskState(taskId);
  55. if (state == 1)
  56. {
  57. bool result = await FieldSProxy.ReqFieldTaskBonus(taskId);
  58. if (result)
  59. {
  60. PromptController.Instance.ShowFloatTextPrompt("每周奖励上限提升");
  61. _ui.m_list.numItems = _cfgs.Count;
  62. }
  63. }
  64. }
  65. }
  66. }