//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, March 06, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
//拍品上架
|
namespace vnxbqy.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;
|
[SerializeField] Slider m_SplitSlider;
|
[SerializeField] Button m_AddBtn;
|
[SerializeField] Button m_ReduceBtn;
|
[SerializeField] Text m_Number;
|
[SerializeField] Transform SplitObj;
|
|
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);
|
m_SplitSlider.SetListener((float value) => { OnSplitValueChange(); });
|
m_AddBtn.SetListener(OnClickAddBtn);
|
m_ReduceBtn.SetListener(OnClickReduceBtn);
|
}
|
|
protected override void OnPreOpen()
|
{
|
DisplayItem();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
|
public void OnSplitValueChange()
|
{
|
m_Number.text = Mathf.Ceil(m_SplitSlider.value).ToString();
|
|
var sellCnt = Mathf.Ceil(m_SplitSlider.value);
|
var item = auctionHelpModel.ItemModel;
|
|
var config = AuctionItemConfig.Get(item.itemId);
|
m_Number.text = sellCnt.ToString();
|
m_BasePriceText.text = (config.BasePrice * sellCnt).ToString();
|
m_SupportBuyout.SetActive(config.BuyoutPrice != 0);
|
m_NotSupportBuyout.SetActive(config.BuyoutPrice == 0);
|
m_BuyoutPriceText.text = (config.BuyoutPrice * sellCnt).ToString();
|
}
|
|
public void OnClickAddBtn()
|
{
|
if (m_SplitSlider.value < m_SplitSlider.maxValue)
|
{
|
m_SplitSlider.value++;
|
}
|
}
|
|
public void OnClickReduceBtn()
|
{
|
if (m_SplitSlider.value > m_SplitSlider.minValue)
|
{
|
m_SplitSlider.value--;
|
}
|
}
|
|
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()
|
{
|
|
OnClickAuctionLogic();
|
CloseImmediately();
|
}
|
|
private void OnClickAuctionLogic()
|
{
|
var sellCnt = (ushort)int.Parse(m_Number.text);
|
if (sellCnt == 0)
|
return;
|
|
if (auctionHelpModel.ItemModel == null)
|
{
|
return;
|
}
|
|
if (auctionHelpModel.ItemModel.config == null)
|
{
|
return;
|
}
|
|
if (auctionHelpModel.ItemModel.itemInfo == null)
|
{
|
return;
|
}
|
if (ItemLogicUtility.Instance.IsRealmEquip(auctionHelpModel.ItemModel.itemId))
|
{
|
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, sellCnt);
|
|
|
}
|
|
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.guid);
|
});
|
|
var isOverdue = ItemLogicUtility.Instance.IsOverdue(auctionHelpModel.ItemModel.guid);
|
|
m_UnOverdueContainer.SetActive(!isOverdue);
|
m_OverdueContainer.SetActive(isOverdue);
|
m_Auction.SetActive(!isOverdue);
|
m_Overdue.SetActive(isOverdue);
|
SplitObj.SetActive(!isOverdue);
|
m_SplitSlider.minValue = 1;
|
m_SplitSlider.maxValue = item.count;
|
|
if (!isOverdue)
|
{
|
m_SplitSlider.value = 1;
|
var sellCnt = Mathf.Ceil(m_SplitSlider.value);
|
m_Number.text = sellCnt.ToString();
|
m_BasePriceText.text = (config.BasePrice * sellCnt).ToString();
|
m_SupportBuyout.SetActive(config.BuyoutPrice != 0);
|
m_NotSupportBuyout.SetActive(config.BuyoutPrice == 0);
|
m_BuyoutPriceText.text = (config.BuyoutPrice * sellCnt).ToString();
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
|