//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, February 28, 2019
|
//--------------------------------------------------------
|
using EnhancedUI.EnhancedScroller;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
|
namespace Snxxz.UI
|
{
|
|
public class FullServiceAuctioncell : MonoBehaviour
|
{
|
[SerializeField] GameObject m_NeedImage;//需要
|
[SerializeField] GameObject m_ParticipateImage;//参与竞价
|
[SerializeField] ItemCell m_ItemCell;//物品
|
[SerializeField] TextEx m_ItemName;//物品名
|
[SerializeField] GameObject m_EquipmentScoreObj;//装备评分
|
[SerializeField] TextEx m_Score;//评分
|
[SerializeField] GameObject m_StateIcon;//上升剪头
|
[SerializeField] GameObject m_DeclineIcon;//下降剪头
|
[SerializeField] Text m_BiddingText;//竞价中
|
[SerializeField] GameObject m_HighestPriceImage;//最高价
|
[SerializeField] TextEx m_JadeNumber;//当前价格
|
[SerializeField] TextEx m_TimeText;//时间
|
|
[SerializeField] Button m_PriceButton;//一口价按钮
|
[SerializeField] ImageEx m_PriceImage;
|
[SerializeField] TextEx m_JadeNumber1;
|
|
[SerializeField] Button m_BiddingButton;//竞价按钮
|
[SerializeField] ImageEx m_BiddingImage;
|
[SerializeField] TextEx m_JadeNumber2;
|
AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } }
|
AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } }
|
ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
|
private AuctionItemConfig AuctionItem;
|
private AuctionItemClass FullServiceAuction;
|
|
public void GetFullServiceAuctionGUID(string GUID, int index)
|
{
|
m_NeedImage.SetActive(false);
|
m_ParticipateImage.SetActive(false);
|
m_HighestPriceImage.SetActive(false);
|
m_EquipmentScoreObj.SetActive(false);
|
var indexList = model.FullServiceAuctionList.FindIndex((x) => { return x.ItemGUID == GUID; });
|
if (indexList == -1)
|
{
|
DebugEx.LogError("未查找到相应的列表数据");
|
return;
|
}
|
var fullServiceAuction = model.FullServiceAuctionList[indexList];
|
if (index < 5)
|
{
|
var sendNumber = AuctionInquiry.Instance.GetSendNumber();
|
if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.UpBool && !auctionHelpModel.isOpenPanel)
|
{
|
AuctionInquiry.Instance.SendQueryAuction(fullServiceAuction.ItemGUID, sendNumber, 2);
|
auctionHelpModel.Wait = false;
|
}
|
}
|
else if (index >= model.FullServiceAuctionList.Count - 3)
|
{
|
var sendNumber = AuctionInquiry.Instance.GetSendNumber();
|
if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.DownBool && !auctionHelpModel.isOpenPanel)
|
{
|
AuctionInquiry.Instance.SendQueryAuction(fullServiceAuction.ItemGUID, sendNumber, 1);
|
auctionHelpModel.Wait = false;
|
}
|
}
|
FullServiceAuction = fullServiceAuction;
|
var playerId = PlayerDatas.Instance.baseData.PlayerID;
|
var auctionItem = AuctionItemConfig.Get(fullServiceAuction.ItemID);
|
var itemConfig = ItemConfig.Get(fullServiceAuction.ItemID);
|
if (itemConfig == null)
|
{
|
DebugEx.LogError("物品表没有找到该物品,物品ID为" + fullServiceAuction.ItemID);
|
return;
|
}
|
if (auctionItem == null)
|
{
|
DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为" + fullServiceAuction.ItemID);
|
return;
|
}
|
AuctionItem = auctionItem;
|
var equipNeedBool = auctionHelpModel.WhetherEquipped(itemConfig.LV, itemConfig.EquipPlace);
|
if (!equipNeedBool)
|
{
|
m_NeedImage.SetActive(true);
|
}
|
if (model.BiddingItemInfoDic.ContainsKey(fullServiceAuction.ItemGUID))//参与了竞价的物品
|
{
|
var biddingItemInfo = model.BiddingItemInfoDic[fullServiceAuction.ItemGUID];
|
m_ParticipateImage.SetActive(true);
|
if (biddingItemInfo.BidderID == playerId)//判断是否最高竞价
|
{
|
m_HighestPriceImage.SetActive(true);
|
}
|
else
|
{
|
m_BiddingText.text = Language.Get("PMH_06");
|
}
|
}
|
else
|
{
|
m_BiddingText.text = Language.Get("PMH_05");
|
}
|
|
ItemCellModel cellModel = new ItemCellModel(fullServiceAuction.ItemID, true, (ulong)fullServiceAuction.ItemCount);
|
m_ItemCell.Init(cellModel);
|
m_ItemCell.button.SetListener(()=>
|
{
|
ItemAttrData attrData = new ItemAttrData(fullServiceAuction.ItemID, true, (ulong)1);
|
itemTipsModel.SetItemTipsModel(attrData);
|
});
|
m_ItemName.text = itemConfig.ItemName;
|
if (itemConfig.EquipPlace != 0)
|
{
|
m_EquipmentScoreObj.SetActive(true);
|
m_Score.text = cellModel.score.ToString();
|
var equipScore = auctionHelpModel.GetEquipScore(itemConfig.LV, itemConfig.EquipPlace);
|
m_StateIcon.SetActive(cellModel.score > equipScore);
|
m_DeclineIcon.SetActive(equipScore> cellModel.score);
|
}
|
else
|
{
|
m_EquipmentScoreObj.SetActive(false);
|
}
|
int needJade = 0;
|
int priceMax = 0;
|
priceMax = auctionItem.BuyoutPrice * fullServiceAuction.ItemCount;
|
if (fullServiceAuction.BidderPrice == 0)
|
{
|
needJade = auctionItem.BasePrice * fullServiceAuction.ItemCount;
|
}
|
else
|
{
|
needJade = fullServiceAuction.BidderPrice + auctionItem.BiddingAdd * fullServiceAuction.ItemCount;
|
}
|
if (auctionItem.BuyoutPrice != 0 && needJade > priceMax)//竞价价格永远不能大于最高价
|
{
|
needJade = priceMax;
|
}
|
m_JadeNumber.text = fullServiceAuction.BidderPrice.ToString();
|
m_JadeNumber1.text = priceMax.ToString();
|
if (auctionItem.BuyoutPrice == 0)
|
{
|
m_PriceButton.gameObject.SetActive(false);
|
}
|
else
|
{
|
m_PriceButton.gameObject.SetActive(true);
|
}
|
m_PriceButton.SetListener(() => //一口价
|
{
|
int jade = (int)PlayerDatas.Instance.baseData.diamond;
|
string str = Language.Get("PMH_02", priceMax);
|
ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), str, (bool isOk) =>
|
{
|
if (isOk)
|
{
|
if (jade >= priceMax)
|
{
|
AuctionInquiry.Instance.SendSellAuctionItem(fullServiceAuction.ItemGUID, priceMax);
|
}
|
else
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
});
|
});
|
m_JadeNumber2.text = needJade.ToString();
|
m_BiddingButton.SetListener(() => //竞价
|
{
|
int jade = (int)PlayerDatas.Instance.baseData.diamond;
|
string str = Language.Get("PMH_01", needJade);
|
ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), str, (bool isOk) =>
|
{
|
if (isOk)
|
{
|
if (jade >= needJade)
|
{
|
AuctionInquiry.Instance.SendSellAuctionItem(fullServiceAuction.ItemGUID, needJade);
|
}
|
else
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
});
|
});
|
}
|
|
private void LateUpdate()
|
{
|
if (AuctionItem != null && FullServiceAuction != null)
|
{
|
var timeNow = TimeUtility.ServerNow;
|
TimeSpan timeSpan = timeNow - FullServiceAuction.Time;
|
int minute = (int)timeSpan.TotalMinutes;
|
if (minute < AuctionItem.NoticeSaleMinutes)//预热中
|
{
|
if (m_PriceButton.interactable)
|
{
|
m_PriceButton.interactable = false;
|
m_PriceImage.gray = true;
|
}
|
if (m_BiddingButton.interactable)
|
{
|
m_BiddingButton.interactable = false;
|
m_BiddingImage.gray = true;
|
}
|
int seconds = AuctionItem.NoticeSaleMinutes * 60 - (int)timeSpan.TotalSeconds;
|
m_TimeText.text = Language.Get("PMH_03", TimeUtility.SecondsToHMS(seconds));
|
}
|
else if (minute >= AuctionItem.NoticeSaleMinutes && minute <= AuctionItem.WorldSaleMinutes)//拍卖中
|
{
|
var maxMoney = AuctionItem.BuyoutPrice * FullServiceAuction.ItemCount;
|
var needMoney = 0;
|
if (FullServiceAuction.BidderPrice == 0)
|
{
|
needMoney = AuctionItem.BasePrice * FullServiceAuction.ItemCount;
|
}
|
else
|
{
|
needMoney = FullServiceAuction.BidderPrice + AuctionItem.BiddingAdd * FullServiceAuction.ItemCount;
|
}
|
if (!m_PriceButton.interactable || m_PriceImage.gray)
|
{
|
m_PriceButton.interactable = true;
|
m_PriceImage.gray = false;
|
}
|
if ((!m_BiddingButton.interactable || m_BiddingImage.gray) && maxMoney > needMoney)
|
{
|
m_BiddingButton.interactable = true;
|
m_BiddingImage.gray = false;
|
}
|
if (m_BiddingButton.interactable && needMoney >= maxMoney && AuctionItem.BuyoutPrice != 0)
|
{
|
m_PriceButton.interactable = false;
|
m_PriceImage.gray = true;
|
}
|
int seconds = AuctionItem.WorldSaleMinutes * 60 - ((int)timeSpan.TotalSeconds - AuctionItem.NoticeSaleMinutes * 60);
|
m_TimeText.text = Language.Get("PMH_04", TimeUtility.SecondsToHMS(seconds));
|
}
|
}
|
}
|
}
|
|
}
|