//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, July 18, 2018
|
//--------------------------------------------------------
|
|
using Spine;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//砍树获得装备界面
|
namespace vnxbqy.UI
|
{
|
public class FairyTreeUpgradeWin : Window
|
{
|
[SerializeField] Button closeButton;
|
[SerializeField] Text curLVTxt;
|
[SerializeField] Text nextLVTxt;
|
[SerializeField] List<Text> qualityName;
|
[SerializeField] List<Text> qualityRate;
|
[SerializeField] List<Text> qualityNextRate;
|
[SerializeField] List<Image> qualityIcon;
|
[SerializeField] ScrollerController itemScroller;
|
[SerializeField] Transform upgradeState; //升级中
|
[SerializeField] Text leftTime;
|
[SerializeField] Button TimeUpBtn;
|
[SerializeField] Text itemCntTxt;
|
[SerializeField] Transform upgradeState2; //待升级
|
[SerializeField] Text needTime;
|
[SerializeField] Text moneyText;
|
[SerializeField] Image moneyTypeImg;
|
[SerializeField] Button upgradeButton;
|
|
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
CutTreeModel cutTreeModel { get { return ModelCenter.Instance.GetModel<CutTreeModel>(); } }
|
StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
|
#region Built-in
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
|
closeButton.AddListener(CloseClick);
|
TimeUpBtn.AddListener(() => {
|
var storeConfig = StoreConfig.GetStoreCfg(cutTreeModel.timeUpTreeItemID, 1, 1);
|
if (UIHelper.GetMoneyCnt(1) < (ulong)storeConfig.MoneyNumber && packModel.GetItemCountByID(PackType.Item, cutTreeModel.timeUpTreeItemID) < 1)
|
{
|
ItemTipUtility.Show(cutTreeModel.timeUpTreeItemID);
|
}
|
else
|
{
|
WindowCenter.Instance.Open<TreeTimeUpItemBuyConfirmWin>();
|
}
|
});
|
|
upgradeButton.AddListener(() => {
|
var config = TreeLVConfig.Get(cutTreeModel.GetTreeLV());
|
if (UIHelper.GetMoneyCnt(cutTreeModel.upgradeTreeMoneyType) < (ulong)config.LVUPNeedMoney)
|
{
|
SysNotifyMgr.Instance.ShowTip("LackMoneyCommon", cutTreeModel.upgradeTreeMoneyType);
|
ItemTipUtility.Show(470);
|
return;
|
}
|
cutTreeModel.SendUpgradeTreeLV(0);
|
});
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
Display();
|
cutTreeModel.UpdateTreeLVEvent += Display;
|
itemScroller.OnRefreshCell += OnRefreshCell;
|
PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefreshEvent;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
cutTreeModel.UpdateTreeLVEvent -= Display;
|
itemScroller.OnRefreshCell -= OnRefreshCell;
|
PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefreshEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void LateUpdate()
|
{
|
if (cutTreeModel.m_LVUPState == 1)
|
{
|
if (cutTreeModel.GetLVUPRemainTime() > 0)
|
{
|
TimeUpShow();
|
}
|
}
|
}
|
|
|
|
#endregion
|
|
void Display()
|
{
|
curLVTxt.text = Language.Get("CutTree3", cutTreeModel.GetUIShowTreeLV());
|
nextLVTxt.text = Language.Get("CutTree4", cutTreeModel.GetUIShowTreeLV() + 1);
|
var startQuality = cutTreeModel.GetStartEquipQuality();
|
var config = TreeLVConfig.Get(cutTreeModel.GetTreeLV());
|
var nextConfig = TreeLVConfig.Get(cutTreeModel.GetTreeLV() + 1);
|
for (int i = 0; i < qualityName.Count; i++)
|
{
|
var quality = startQuality + i;
|
qualityName[i].text = Language.Get("Item_Text_" + quality);
|
float rate = 0;
|
if (config != null)
|
{
|
if (quality - 1 < config.EquipColorRateList.Length)
|
rate = config.EquipColorRateList[quality - 1] / 100.0f;
|
}
|
qualityRate[i].text = rate + "%";
|
if (nextConfig != null)
|
{
|
if (quality - 1 < nextConfig.EquipColorRateList.Length)
|
rate = nextConfig.EquipColorRateList[quality - 1] / 100.0f;
|
}
|
qualityNextRate[i].text = rate + "%";
|
qualityIcon[i].SetSprite("TreeItemQuality_" + quality);
|
}
|
CreateScroller();
|
|
if (cutTreeModel.m_LVUPState == 0)
|
{
|
upgradeState.SetActive(false);
|
upgradeState2.SetActive(true);
|
needTime.text = TimeUtility.SecondsToDHMS(config.LVUPNeedTime);
|
ShowMoney();
|
moneyTypeImg.SetSprite("Money_Type_" + cutTreeModel.upgradeTreeMoneyType);
|
}
|
else
|
{
|
upgradeState.SetActive(true);
|
upgradeState2.SetActive(false);
|
TimeUpShow();
|
}
|
}
|
|
void TimeUpShow()
|
{
|
var remainTime = cutTreeModel.GetLVUPRemainTime();
|
leftTime.text = TimeUtility.SecondsToDHMS(cutTreeModel.GetLVUPRemainTime());
|
int itemCnt = packModel.GetItemCountByID(PackType.Item, cutTreeModel.timeUpTreeItemID);
|
int needCount = (int)Math.Ceiling((float)remainTime / cutTreeModel.timeUpTreeItemSubTime);
|
itemCntTxt.text = itemCnt + "/" + needCount;
|
itemCntTxt.color = itemCnt >= needCount ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true);
|
}
|
|
void CreateScroller()
|
{
|
itemScroller.Refresh();
|
foreach (int key in TreeLVConfig.itemUnlockInfo.Keys)
|
{
|
itemScroller.AddCell(ScrollerDataType.Header, key);
|
}
|
itemScroller.Restart();
|
if (cutTreeModel.GetTreeLV() > 7)
|
{
|
itemScroller.JumpIndex(4);
|
}
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var itemCell = cell as FairyTreeAwardCell;
|
itemCell.Display(cell.index);
|
}
|
|
private void OnPlayerDataRefreshEvent(PlayerDataType type)
|
{
|
if (type == HeroControler.Instance.GetMoneyPlayerDataType(cutTreeModel.upgradeTreeMoneyType))
|
{
|
ShowMoney();
|
}
|
}
|
|
|
void ShowMoney()
|
{
|
var config = TreeLVConfig.Get(cutTreeModel.GetTreeLV());
|
string needMoney = config.LVUPNeedMoney.ToString();
|
if (config.LVUPNeedMoney >= 1000000)
|
needMoney = UIHelper.ReplaceLargeNum(config.LVUPNeedMoney);
|
|
ulong lsMoney = UIHelper.GetMoneyCnt(cutTreeModel.upgradeTreeMoneyType);
|
string money = lsMoney.ToString();
|
if (lsMoney >= 1000000)
|
money = UIHelper.ReplaceLargeNum(lsMoney);
|
|
moneyText.text = money + "/" + needMoney;
|
moneyText.color = lsMoney >= (ulong)config.LVUPNeedMoney ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true);
|
}
|
}
|
|
}
|