using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
using Snxxz.UI;
|
|
namespace Snxxz.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] GameObject ShowObj4101;
|
[SerializeField] GameObject ShowObj4102;
|
[SerializeField] GameObject ShowObj4105;
|
|
ItemOverdueModel _itemOverdue;
|
ItemOverdueModel itemOverdue
|
{
|
get { return _itemOverdue ?? (_itemOverdue = ModelCenter.Instance.GetModel<ItemOverdueModel>()); }
|
}
|
|
PackModelInterface _modelInterface;
|
PackModelInterface modelInterface
|
{
|
get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
|
}
|
|
PlayerPackModel _playerPack;
|
PlayerPackModel playerPack
|
{
|
get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
|
}
|
|
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()
|
{
|
guid = string.Empty;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void InitUI()
|
{
|
itemOverduelist = null;
|
guid = string.IsNullOrEmpty(guid) || guid == "" ? itemOverdue.currentShowItem.guid : guid;
|
itemModel = playerPack.GetItemModelByGUID(guid);
|
if (itemModel == null) return;
|
|
itemBG.SetItemBackGround(modelInterface.GetItemQuality(itemModel.itemInfo.ItemID,itemModel.useDataDict));
|
itemIcon.SetSprite(itemModel.chinItemModel.IconKey);
|
itemOverduelist = itemOverdue.GetRenewallist(itemModel.itemInfo.ItemID);
|
itemConfig = Config.Instance.Get<ItemConfig>(itemOverduelist[0]);
|
guardTime = TimeSpan.FromSeconds(itemConfig.ExpireTime);
|
guardIcon.SetSprite(itemOverdue.GetGuardOverdueIcon(itemModel.itemInfo.ItemID));
|
if (itemOverduelist[2] == 0)
|
{
|
goldRenewalBtn.gameObject.SetActive(false);
|
bindGoldRenewalBtn.gameObject.SetActive(false);
|
renewalBtn.gameObject.SetActive(true);
|
renewalNumText.text = itemOverduelist[1].ToString();
|
}
|
else
|
{
|
goldRenewalBtn.gameObject.SetActive(true);
|
bindGoldRenewalBtn.gameObject.SetActive(true);
|
renewalBtn.gameObject.SetActive(false);
|
goldRenewalNumText.text = itemOverduelist[1].ToString();
|
bindGoldRenewalNumText.text = itemOverduelist[2].ToString();
|
}
|
|
switch(itemModel.itemInfo.ItemID)
|
{
|
case 4101:
|
SetShowTipUI(true,false,false);
|
break;
|
case 4102:
|
SetShowTipUI(false, true, false);
|
break;
|
case 4105:
|
SetShowTipUI(false, false, true);
|
break;
|
}
|
}
|
|
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.itemInfo.ItemPlace,2);
|
CloseWin();
|
}
|
});
|
}
|
else
|
{
|
WindowCenter.Instance.Open<BindGoldRechargeWin>();
|
}
|
}
|
|
private void SetShowTipUI(params bool[] isShow)
|
{
|
ShowObj4101.SetActive(isShow[0]);
|
ShowObj4102.SetActive(isShow[1]);
|
ShowObj4105.SetActive(isShow[2]);
|
}
|
|
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.itemInfo.ItemPlace, 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()
|
{
|
CloseImmediately();
|
}
|
|
}
|
}
|