//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, March 06, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
//拍品上架
|
namespace Snxxz.UI
|
{
|
|
public class AuctionShelfWin : Window
|
{
|
[SerializeField] ItemCell m_ItemCell;
|
[SerializeField] Text m_ItemName;
|
|
[SerializeField] RectTransform m_UnOverdueContainer;
|
[SerializeField] Text m_BasePriceText;
|
|
[SerializeField] Transform m_SupportBuyout;
|
[SerializeField] Text m_BuyoutPriceText;
|
[SerializeField] Transform m_NotSupportBuyout;
|
|
[SerializeField] RectTransform m_OverdueContainer;
|
|
[SerializeField] Button m_CloseBtn;
|
[SerializeField] Button m_UseBtn;
|
[SerializeField] Button m_Auction;
|
[SerializeField] Button m_Overdue;
|
|
AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } }
|
EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_CloseBtn.SetListener(() => { CloseImmediately(); });
|
m_UseBtn.SetListener(OnClickUseBtn);
|
m_Auction.SetListener(OnClickAuction);
|
m_Overdue.SetListener(OnClickOverdueItem);
|
}
|
|
protected override void OnPreOpen()
|
{
|
DisplayItem();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
private void OnClickUseBtn()
|
{
|
CloseImmediately();
|
|
if (ItemLogicUtility.Instance.IsOverdue(auctionHelpModel.ItemModel.guid))
|
{
|
ItemOperateUtility.Instance.ProcessOverdueItem(auctionHelpModel.ItemModel.guid);
|
}
|
else
|
{
|
ItemOperateUtility.Instance.UseItem(auctionHelpModel.ItemModel.guid);
|
}
|
}
|
|
private void OnClickAuction()
|
{
|
CloseImmediately();
|
|
var equipGuid = equipModel.GetEquip(new Int2(auctionHelpModel.ItemModel.config.LV, auctionHelpModel.ItemModel.config.EquipPlace));
|
var isMySuit = false;
|
var myEquipColor = 0;
|
if (!string.IsNullOrEmpty(equipGuid))
|
{
|
var equip = packModel.GetItemByGuid(equipGuid);
|
if (equip != null)
|
{
|
isMySuit = equip.config.SuiteiD > 0;
|
myEquipColor = equip.config.ItemColor;
|
}
|
}
|
|
if (auctionHelpModel.ItemModel.config.JobLimit == 0
|
|| auctionHelpModel.ItemModel.config.JobLimit == PlayerDatas.Instance.baseData.Job)
|
{
|
if (!isMySuit && auctionHelpModel.ItemModel.config.SuiteiD > 0)
|
{
|
AuctionBetterConfirmWin.remindType = 2;
|
WindowCenter.Instance.Open<AuctionBetterConfirmWin>();
|
return;
|
}
|
|
if (auctionHelpModel.ItemModel.config.ItemColor > myEquipColor)
|
{
|
AuctionBetterConfirmWin.remindType = 1;
|
WindowCenter.Instance.Open<AuctionBetterConfirmWin>();
|
return;
|
}
|
}
|
|
AuctionInquiry.Instance.SendSellAuctionItem(auctionHelpModel.ItemModel.itemInfo.index);
|
}
|
|
private void OnClickOverdueItem()
|
{
|
SysNotifyMgr.Instance.ShowTip("LotAuctionLimit");
|
}
|
|
private void DisplayItem()
|
{
|
if (auctionHelpModel.ItemModel == null)
|
{
|
return;
|
}
|
|
var item = auctionHelpModel.ItemModel;
|
|
var config = AuctionItemConfig.Get(item.itemId);
|
var cellModel = new ItemCellModel(item.itemId, true, (ulong)item.count);
|
m_ItemCell.Init(cellModel);
|
m_ItemName.text = auctionHelpModel.ItemModel.config.ItemName;
|
m_ItemCell.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(item.itemId);
|
});
|
|
var isOverdue = ItemLogicUtility.Instance.IsOverdue(auctionHelpModel.ItemModel.guid);
|
|
m_UnOverdueContainer.gameObject.SetActive(!isOverdue);
|
m_OverdueContainer.gameObject.SetActive(isOverdue);
|
m_Auction.gameObject.SetActive(!isOverdue);
|
m_Overdue.gameObject.SetActive(isOverdue);
|
|
if (!isOverdue)
|
{
|
m_BasePriceText.text = config.BasePrice.ToString();
|
m_SupportBuyout.gameObject.SetActive(config.BuyoutPrice != 0);
|
m_NotSupportBuyout.gameObject.SetActive(config.BuyoutPrice == 0);
|
m_BuyoutPriceText.text = config.BuyoutPrice.ToString();
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|