TravelTimeDetailView.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. using System.Collections;
  2. using UnityEngine;
  3. using UI.Travel;
  4. using ET;
  5. using FairyGUI;
  6. using System.Collections.Generic;
  7. namespace GFGGame
  8. {
  9. public class TravelTimeDetailView : BaseWindow
  10. {
  11. private UI_TravelTimeDetailUI _ui;
  12. private ValueBarController _valueBarController;
  13. private const int spendItemID = 3000102;
  14. public override void Dispose()
  15. {
  16. if (_valueBarController != null)
  17. {
  18. _valueBarController.Dispose();
  19. _valueBarController = null;
  20. }
  21. if (_ui != null)
  22. {
  23. _ui.Dispose();
  24. _ui = null;
  25. }
  26. base.Dispose();
  27. }
  28. protected override void OnInit()
  29. {
  30. base.OnInit();
  31. packageName = UI_TravelTimeDetailUI.PACKAGE_NAME;
  32. _ui = UI_TravelTimeDetailUI.Create();
  33. viewCom = _ui.target;
  34. viewCom.Center();
  35. modal = true;
  36. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  37. _valueBarController = new ValueBarController(_ui.m_comValueBar);
  38. _ui.m_btnFinish.onClick.Add(OnClickBtnFinish);
  39. _ui.m_btnSpeedUp.onClick.Add(OnClickBtnSpeedUp);
  40. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(spendItemID);
  41. _ui.m_iconFinishSpend.url = ResPathUtil.GetIconPath(itemCfg.res, "png");
  42. _ui.m_iconSpeedUpSpend.url = _ui.m_iconFinishSpend.url;
  43. _ui.m_spend.url = _ui.m_iconFinishSpend.url;
  44. }
  45. protected override void OnShown()
  46. {
  47. base.OnShown();
  48. _valueBarController.OnShown();
  49. _valueBarController.UpdateList(new List<int>() { spendItemID });
  50. UpdateTime(null);
  51. Timers.inst.Add(1, -1, UpdateTime);
  52. }
  53. protected override void OnHide()
  54. {
  55. base.OnHide();
  56. Timers.inst.Remove(UpdateTime);
  57. _valueBarController.OnHide();
  58. }
  59. private void UpdateTime(object param)
  60. {
  61. long endTime = TravelDataManager.Instance.TravelData.EndTime;
  62. long curTime = TimeHelper.ServerNow();
  63. long time = endTime - curTime;
  64. if (curTime >= endTime)
  65. {
  66. Hide();
  67. EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE);
  68. return;
  69. }
  70. string timeStr = TimeUtil.FormattingTimeTo_HHmmss(time);
  71. _ui.m_txtTime.text = timeStr;
  72. CalculateNum(timeStr);
  73. }
  74. /// <summary>
  75. /// 计算立即完成需要的总消耗
  76. /// </summary>
  77. /// <param name="timeStr"></param>
  78. private void CalculateNum(string timeStr)
  79. {
  80. string[] strArr = timeStr.Split(':');
  81. int num = int.Parse(strArr[0]) + (int.Parse(strArr[1]) > 0 ? 1 : 0);
  82. _ui.m_numFinishSpend.text = num.ToString();
  83. }
  84. private void OnClickBtnFinish()
  85. {
  86. int spendNum = int.Parse(_ui.m_numFinishSpend.text);
  87. List<ItemInfoProto> list = new List<ItemInfoProto>();
  88. ItemInfoProto item = new ItemInfoProto
  89. {
  90. ConfigId = spendItemID,
  91. Count = spendNum
  92. };
  93. list.Add(item);
  94. SpeedUp(1, list);
  95. }
  96. private void OnClickBtnSpeedUp()
  97. {
  98. int spendNum = int.Parse(_ui.m_numSpeedUpSpend.text);
  99. List<ItemInfoProto> list = new List<ItemInfoProto>();
  100. ItemInfoProto item = new ItemInfoProto
  101. {
  102. ConfigId = spendItemID,
  103. Count = spendNum
  104. };
  105. list.Add(item);
  106. SpeedUp(2, list);
  107. }
  108. private async void SpeedUp(int type, List<ItemInfoProto> list)
  109. {
  110. await TravelSProxy.ReqTravelSpeedUp(type, list);
  111. UpdateTime(null);
  112. }
  113. }
  114. }