using System.Collections; using UnityEngine; using UI.Travel; using ET; using FairyGUI; using System.Collections.Generic; namespace GFGGame { public class TravelTimeDetailView : BaseWindow { private UI_TravelTimeDetailUI _ui; private ValueBarController _valueBarController; private const int spendItemID = 3000102; public override void Dispose() { if (_valueBarController != null) { _valueBarController.Dispose(); _valueBarController = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_TravelTimeDetailUI.PACKAGE_NAME; _ui = UI_TravelTimeDetailUI.Create(); viewCom = _ui.target; viewCom.Center(); modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _valueBarController = new ValueBarController(_ui.m_comValueBar); _ui.m_btnFinish.onClick.Add(OnClickBtnFinish); _ui.m_btnSpeedUp.onClick.Add(OnClickBtnSpeedUp); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(spendItemID); _ui.m_iconFinishSpend.url = ResPathUtil.GetIconPath(itemCfg.res, "png"); _ui.m_iconSpeedUpSpend.url = _ui.m_iconFinishSpend.url; _ui.m_spend.url = _ui.m_iconFinishSpend.url; } protected override void OnShown() { base.OnShown(); _valueBarController.OnShown(); _valueBarController.UpdateList(new List() { spendItemID }); UpdateTime(null); Timers.inst.Add(1, -1, UpdateTime); } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(UpdateTime); _valueBarController.OnHide(); } private void UpdateTime(object param) { long endTime = TravelDataManager.Instance.TravelData.EndTime; long curTime = TimeHelper.ServerNow(); long time = endTime - curTime; if (curTime >= endTime) { Hide(); EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE); return; } string timeStr = TimeUtil.FormattingTimeTo_HHmmss(time); _ui.m_txtTime.text = timeStr; CalculateNum(timeStr); } /// /// 计算立即完成需要的总消耗 /// /// private void CalculateNum(string timeStr) { string[] strArr = timeStr.Split(':'); int num = int.Parse(strArr[0]) + (int.Parse(strArr[1]) > 0 ? 1 : 0); _ui.m_numFinishSpend.text = num.ToString(); } private void OnClickBtnFinish() { int spendNum = int.Parse(_ui.m_numFinishSpend.text); List list = new List(); ItemInfoProto item = new ItemInfoProto { ConfigId = spendItemID, Count = spendNum }; list.Add(item); SpeedUp(1, list); } private void OnClickBtnSpeedUp() { int spendNum = int.Parse(_ui.m_numSpeedUpSpend.text); List list = new List(); ItemInfoProto item = new ItemInfoProto { ConfigId = spendItemID, Count = spendNum }; list.Add(item); SpeedUp(2, list); } private async void SpeedUp(int type, List list) { await TravelSProxy.ReqTravelSpeedUp(type, list); UpdateTime(null); } } }