//-------------------------------------------------------- // [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(); } } EquipModel equipModel { get { return ModelCenter.Instance.GetModel(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel(); } } #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(); 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(); return; } if (auctionHelpModel.ItemModel.config.ItemColor > myEquipColor) { AuctionBetterConfirmWin.remindType = 1; WindowCenter.Instance.Open(); 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.guid); }); 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 * item.count).ToString(); m_SupportBuyout.gameObject.SetActive(config.BuyoutPrice != 0); m_NotSupportBuyout.gameObject.SetActive(config.BuyoutPrice == 0); m_BuyoutPriceText.text = (config.BuyoutPrice * item.count).ToString(); } } #endregion } }