|   | 
| using System; | 
|   | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
|   | 
| public class BlessLVWin : UIBase | 
| { | 
|     [SerializeField] Text curLVTxt; | 
|     [SerializeField] Text nextLVTxt; | 
|     [SerializeField] ScrollerController scroller; | 
|     [SerializeField] Text leftTime; | 
|     [SerializeField] Transform upgradeOnState;  //升级中按钮 | 
|     [SerializeField] Text itemCntTxt; | 
|     [SerializeField] Image itemIcon; | 
|     [SerializeField] Button timeUpBtn;  //加速时间按钮 | 
|     [SerializeField] Button freeBtn; | 
|     [SerializeField] Text freeLeftTime; | 
|   | 
|     [SerializeField] Transform upgradeWaiteState; //待升级 | 
|     [SerializeField] Image processImg;  //进度 | 
|     [SerializeField] Text moneyText; | 
|     [SerializeField] Image moneyTypeImg; | 
|     [SerializeField] Button upgradeButton; | 
|     [SerializeField] UIEffectPlayer upgradeEffect; | 
|     [SerializeField] UIEffectPlayer btnEffect; | 
|   | 
|   | 
|   | 
|   | 
|     protected override void InitComponent() | 
|     { | 
|   | 
|         timeUpBtn.AddListener(() => | 
|         { | 
|             UIManager.Instance.OpenWindow<BlessLVTimeUpWin>(); | 
|         }); | 
|   | 
|         upgradeButton.AddListener(OnUpgrade); | 
|   | 
|         freeBtn.AddListener(() => | 
|         { | 
|             var pack = new CA504_tagCMPlayerGetReward(); | 
|             pack.RewardType = 82; | 
|             GameNetSystem.Instance.SendInfo(pack); | 
|         }); | 
|     } | 
|   | 
|   | 
|     protected override void OnPreOpen() | 
|     { | 
|         BlessLVManager.Instance.OnBlessLVUpdateEvent += Display; | 
|         PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefreshEvent; | 
|         GlobalTimeEvent.Instance.secondEvent += OnTimeEvent; | 
|         scroller.OnRefreshCell += OnRefreshCell; | 
|         CreateScroller(); | 
|         Display(); | 
|         BlessLVManager.Instance.AutoUpgrade(); | 
|     } | 
|   | 
|   | 
|     protected override void OnPreClose() | 
|     { | 
|         BlessLVManager.Instance.OnBlessLVUpdateEvent -= Display; | 
|         PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefreshEvent; | 
|         GlobalTimeEvent.Instance.secondEvent -= OnTimeEvent; | 
|         scroller.OnRefreshCell -= OnRefreshCell; | 
|     } | 
|   | 
|   | 
|     void DisplayLVUPEffect() | 
|     { | 
|         if (BlessLVManager.Instance.lastTreeLV != BlessLVManager.Instance.m_TreeLV) | 
|         { | 
|             BlessLVManager.Instance.lastTreeLV = BlessLVManager.Instance.m_TreeLV; | 
|             upgradeEffect.Play(); | 
|         } | 
|         else | 
|         { | 
|             upgradeEffect.Stop(); | 
|         } | 
|     } | 
|   | 
|     void OnTimeEvent() | 
|     { | 
|         if (BlessLVManager.Instance.m_LVUPState == 1) | 
|         { | 
|             if (BlessLVManager.Instance.GetLVUPRemainTime() > 0) | 
|             { | 
|                 TimeUpShow(); | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     void Display() | 
|     { | 
|         curLVTxt.text = Language.Get("L1100", Language.Get("BlessTree2"), BlessLVManager.Instance.m_TreeLV); | 
|         nextLVTxt.text = Language.Get("L1100", Language.Get("BlessTree3"), BlessLVManager.Instance.m_TreeLV + 1); | 
|         var config = TreeLVConfig.Get(BlessLVManager.Instance.m_TreeLV); | 
|         itemIcon.SetItemSprite(BlessLVManager.Instance.timeUpTreeItemID); | 
|   | 
|         //待升级 | 
|         if (BlessLVManager.Instance.m_LVUPState == 0) | 
|         { | 
|             upgradeOnState.SetActive(false); | 
|             upgradeWaiteState.SetActive(true); | 
|             leftTime.text = Language.Get("L1100", Language.Get("BlessTree8"), TimeUtility.SecondsToDHMSEx(config.LVUPNeedTime)); | 
|             ShowMoney(); | 
|             moneyTypeImg.SetIconWithMoneyType(BlessLVManager.Instance.upgradeTreeMoneyType); | 
|         } | 
|         else | 
|         { | 
|             upgradeOnState.SetActive(true); | 
|             upgradeWaiteState.SetActive(false); | 
|             TimeUpShow(); | 
|         } | 
|         DisplayLVUPEffect(); | 
|         scroller.m_Scorller.RefreshActiveCellViews(); | 
|     } | 
|   | 
|     void TimeUpShow() | 
|     { | 
|         var remainTime = BlessLVManager.Instance.GetLVUPRemainTime(); | 
|         leftTime.text = Language.Get("L1100", Language.Get("BlessTree8"), TimeUtility.SecondsToDHMSEx(remainTime)); | 
|         long itemCnt = PackManager.Instance.GetItemCountByID(PackType.Item, BlessLVManager.Instance.timeUpTreeItemID); | 
|         int needCount = (int)Math.Ceiling((float)remainTime / BlessLVManager.Instance.timeUpTreeItemSubTime); | 
|         itemCntTxt.text = itemCnt + "/" + needCount; | 
|         itemCntTxt.color = itemCnt >= needCount ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); | 
|   | 
|         if (BlessLVManager.Instance.m_FreeTimeCnt < BlessLVManager.Instance.dayFreeMaxTimes) | 
|         { | 
|             var freeeRemainTime = BlessLVManager.Instance.GetFreeRemainTime(); | 
|             if (freeeRemainTime > 0) | 
|             { | 
|                 freeLeftTime.text = TimeUtility.SecondsToHMS(freeeRemainTime); | 
|                 freeBtn.interactable = false; | 
|             } | 
|             else | 
|             { | 
|                 freeLeftTime.text = ""; | 
|                 freeBtn.interactable = true; | 
|             } | 
|   | 
|         } | 
|         else | 
|         { | 
|             freeLeftTime.text = ""; | 
|             freeBtn.interactable = false; | 
|         } | 
|     } | 
|   | 
|     void CreateScroller() | 
|     { | 
|         scroller.Refresh(); | 
|         for (int i = 0; i < 9; i++) | 
|         { | 
|             scroller.AddCell(ScrollerDataType.Header, i); | 
|         } | 
|         scroller.Restart(); | 
|     } | 
|   | 
|     void OnRefreshCell(ScrollerDataType type, CellView cell) | 
|     { | 
|         var _cell = cell as BlessLVCell; | 
|         _cell.Display(cell.index); | 
|     } | 
|   | 
|     private void OnPlayerDataRefreshEvent(PlayerDataType type) | 
|     { | 
|         if (type == UIHelper.moneyTypeToPlayerDataType[BlessLVManager.Instance.upgradeTreeMoneyType]) | 
|         { | 
|             ShowMoney(); | 
|         } | 
|     } | 
|   | 
|   | 
|     void ShowMoney() | 
|     { | 
|         var config = TreeLVConfig.Get(BlessLVManager.Instance.m_TreeLV); | 
|         string needMoney = config.LVUPNeedMoney.ToString(); | 
|         if (config.LVUPNeedMoney >= 1000000) | 
|             needMoney = UIHelper.ReplaceLargeNum(config.LVUPNeedMoney); | 
|   | 
|         long lsMoney = UIHelper.GetMoneyCnt(BlessLVManager.Instance.upgradeTreeMoneyType); | 
|         string money = lsMoney.ToString(); | 
|         if (lsMoney >= 1000000) | 
|             money = UIHelper.ReplaceLargeNum(lsMoney); | 
|   | 
|         moneyText.text = money + "/" + needMoney; | 
|         // moneyText.color = lsMoney >= config.LVUPNeedMoney ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); | 
|         moneyTypeImg.SetIconWithMoneyType(BlessLVManager.Instance.upgradeTreeMoneyType); | 
|         processImg.fillAmount = (float)lsMoney / config.LVUPNeedMoney; | 
|         if (lsMoney >= config.LVUPNeedMoney) | 
|             btnEffect.Play(); | 
|         else | 
|             btnEffect.Stop(); | 
|     } | 
|   | 
|     void OnUpgrade() | 
|     { | 
|         var config = TreeLVConfig.Get(BlessLVManager.Instance.m_TreeLV); | 
|         if (config.LVUPNeedMoney > UIHelper.GetMoneyCnt(BlessLVManager.Instance.upgradeTreeMoneyType)) | 
|         { | 
|             ItemTipUtility.ShowMoneyTip(BlessLVManager.Instance.upgradeTreeMoneyType); | 
|             return; | 
|         } | 
|   | 
|         var pack = new CB223_tagCMTreeLVUP(); | 
|         pack.Type = 0; | 
|         GameNetSystem.Instance.SendInfo(pack); | 
|     } | 
| } |