|
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);
|
}
|
}
|