using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using vnxbqy.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class GuardOverdueWin : Window
|
{
|
[SerializeField]
|
Button closeBtn;
|
[SerializeField]
|
Button renewalBtn;
|
[SerializeField]
|
Text renewalNumText;
|
[SerializeField]
|
Button goldRenewalBtn;
|
[SerializeField]
|
Text goldRenewalNumText;
|
[SerializeField]
|
Button bindGoldRenewalBtn;
|
[SerializeField]
|
Text bindGoldRenewalNumText;
|
[SerializeField]
|
Image itemBG;
|
[SerializeField]
|
Image itemIcon;
|
[SerializeField] Image guardIcon;
|
[SerializeField] List<GameObject> showObjlist = new List<GameObject>();
|
|
ItemOverdueModel _itemOverdue;
|
ItemOverdueModel itemOverdue
|
{
|
get { return _itemOverdue ?? (_itemOverdue = ModelCenter.Instance.GetModel<ItemOverdueModel>()); }
|
}
|
|
PackModel _playerPack;
|
PackModel playerPack
|
{
|
get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
|
}
|
|
ItemModel itemModel;
|
List<int> itemOverduelist;
|
|
ItemConfig itemConfig;
|
TimeSpan guardTime;
|
public static string guid;
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.AddListener(CloseWin);
|
renewalBtn.AddListener(OnClickRenewal);
|
goldRenewalBtn.AddListener(OnClickRenewal);
|
bindGoldRenewalBtn.AddListener(OnClickBindGoldRenewal);
|
}
|
|
protected override void OnPreOpen()
|
{
|
InitUI();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void InitUI()
|
{
|
itemOverduelist = null;
|
DebugEx.LogFormat("itemOverdue.currentShowItem.guid is null?", itemOverdue.currentShowItem.guid == null);
|
guid = string.IsNullOrEmpty(guid) || guid == "" ? itemOverdue.currentShowItem.guid : guid;
|
itemModel = playerPack.GetItemByGuid(guid);
|
if (itemModel == null) return;
|
|
itemBG.SetItemBackGround(ItemLogicUtility.Instance.GetItemQuality(itemModel.itemId,itemModel.useDataDict));
|
itemIcon.SetSprite(itemModel.config.IconKey);
|
itemOverduelist = itemOverdue.GetRenewallist(itemModel.itemId);
|
itemConfig = ItemConfig.Get(itemOverduelist[0]);
|
guardTime = TimeSpan.FromSeconds(itemConfig.ExpireTime);
|
guardIcon.SetSprite(itemOverdue.GetGuardOverdueIcon(itemModel.itemId));
|
if (itemOverduelist[2] == 0)
|
{
|
goldRenewalBtn.SetActive(false);
|
bindGoldRenewalBtn.SetActive(false);
|
renewalBtn.SetActive(true);
|
renewalNumText.text = itemOverduelist[1].ToString();
|
}
|
else
|
{
|
goldRenewalBtn.SetActive(true);
|
bindGoldRenewalBtn.SetActive(true);
|
renewalBtn.SetActive(false);
|
goldRenewalNumText.text = itemOverduelist[1].ToString();
|
bindGoldRenewalNumText.text = itemOverduelist[2].ToString();
|
}
|
|
for(int i = 0; i < showObjlist.Count; i++)
|
{
|
var showObj = showObjlist[i];
|
string showName = showObj.name;
|
if(showName.Contains(itemModel.itemId.ToString()))
|
{
|
showObj.SetActive(true);
|
}
|
else
|
{
|
showObj.SetActive(false);
|
}
|
}
|
}
|
|
private void OnClickBindGoldRenewal()
|
{
|
if (itemOverduelist == null) return;
|
|
if (itemOverdue.IsMoneyEnough(2, itemOverduelist[2]))
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("ItemOverdue101", Language.Get("ItemOverdue106", itemOverduelist[2]), itemConfig.ItemName, GetGuardTime()), (bool isOk) => {
|
|
if (isOk)
|
{
|
itemOverdue.SendRenewalQuest(itemModel.gridIndex,2);
|
CloseWin();
|
}
|
});
|
}
|
}
|
|
private void OnClickRenewal()
|
{
|
if (itemOverduelist == null) return;
|
|
if(itemOverdue.IsMoneyEnough(1,itemOverduelist[1]))
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),Language.Get("ItemOverdue101",Language.Get("ItemOverdue105", itemOverduelist[1]),itemConfig.ItemName,GetGuardTime()),(bool isOk)=> {
|
|
if(isOk)
|
{
|
itemOverdue.SendRenewalQuest(itemModel.gridIndex, 1);
|
CloseWin();
|
}
|
});
|
}
|
else
|
{
|
if (VersionConfig.Get().isBanShu)
|
{
|
SysNotifyMgr.Instance.ShowTip("GoldErr");
|
return;
|
}
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
|
private string GetGuardTime()
|
{
|
if (guardTime.TotalDays > 1)
|
{
|
return Language.Get("ItemOverdue102",(int)guardTime.TotalDays);
|
}
|
else if (guardTime.TotalHours > 1)
|
{
|
return Language.Get("ItemOverdue103", (int)guardTime.TotalHours);
|
}
|
else if (guardTime.TotalMinutes > 1)
|
{
|
return Language.Get("ItemOverdue104", (int)guardTime.TotalMinutes);
|
}
|
|
return "";
|
}
|
|
private void CloseWin()
|
{
|
itemOverdue.ReportConfirmUseItem(guid);
|
guid = string.Empty;
|
CloseImmediately();
|
}
|
|
}
|
}
|