//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, February 28, 2019
|
//--------------------------------------------------------
|
using EnhancedUI.EnhancedScroller;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class FullServiceAuctioncell : MonoBehaviour
|
{
|
[SerializeField] Transform m_Container;
|
[SerializeField] GameObject m_NeedImage;//需要
|
[SerializeField] GameObject m_ParticipateImage;//参与竞价
|
[SerializeField] ItemCell m_ItemCell;//物品
|
[SerializeField] TextEx m_ItemName;//物品名
|
[SerializeField] Text m_BiddingText;//竞价中
|
[SerializeField] GameObject m_HighestPriceImage;//最高价
|
[SerializeField] TextEx m_JadeNumber;//当前价格
|
[SerializeField] TextEx m_TimeText;//时间
|
|
[SerializeField] Button m_PriceButton;//一口价按钮
|
[SerializeField] TextEx m_JadeNumber1;
|
|
[SerializeField] Button m_BiddingButton;//竞价按钮
|
[SerializeField] TextEx m_JadeNumber2;
|
|
AuctionModel model { get { return ModelCenter.Instance.GetModel<AuctionModel>(); } }
|
|
string auctionItemGuid;
|
|
bool m_IsWarmUp = false;
|
bool isWarmUp
|
{
|
get { return m_IsWarmUp; }
|
set
|
{
|
if (value != m_IsWarmUp)
|
{
|
m_IsWarmUp = value;
|
AuctionItem auctionItem;
|
if (model.TryGetServerAuctionItem(auctionItemGuid, out auctionItem))
|
{
|
Display(auctionItem);
|
}
|
}
|
}
|
}
|
|
float timer = 0f;
|
|
public void GetFullServiceAuctionGUID(string guid, int index, int totalCount)
|
{
|
m_Container.SetActive(!string.IsNullOrEmpty(guid));
|
|
m_NeedImage.SetActive(false);
|
m_ParticipateImage.SetActive(false);
|
m_HighestPriceImage.SetActive(false);
|
|
this.auctionItemGuid = guid;
|
|
AuctionItem auctionItem;
|
if (!model.TryGetServerAuctionItem(guid, out auctionItem))
|
{
|
return;
|
}
|
|
#region 滚动查询
|
var inquiryIndex = model.GetQueryIndex();
|
if (index < 2)
|
{
|
if (model.SatisfyQueryAuction(2))
|
{
|
model.SendInquiryServerAcution(inquiryIndex, auctionItem.itemGuid, 2);
|
}
|
}
|
else if (index >= totalCount - 5)
|
{
|
if (model.SatisfyQueryAuction(1))
|
{
|
model.SendInquiryServerAcution(inquiryIndex, auctionItem.itemGuid, 1);
|
}
|
}
|
#endregion
|
|
m_NeedImage.SetActive(AuctionLogicUtil.IsSatisfyEquipBetterEquip(auctionItem));
|
|
if (model.IsMyTopPrice(guid))//参与了竞价的物品
|
{
|
m_HighestPriceImage.SetActive(true);
|
}
|
|
if (model.IsParticipateInBidding(guid))
|
{
|
m_ParticipateImage.SetActive(true);
|
}
|
|
ItemCellModel cellModel = new ItemCellModel(auctionItem.itemId, true, (ulong)auctionItem.itemCount,
|
string.Empty, PackType.Deleted, false, auctionItem.userDataDict);
|
m_ItemCell.Init(cellModel);
|
var score = 0;
|
if (ItemLogicUtility.Instance.IsSuitEquip(auctionItem.itemId))
|
{
|
score = ItemLogicUtility.Instance.GetEquipScore(auctionItem.itemId, auctionItem.userDataDict);
|
var isUp = ItemLogicUtility.Instance.IsFightUp(auctionItem.itemId, score);
|
m_ItemCell.stateIcon.SetActive(isUp == 1);
|
if (isUp == 1)
|
{
|
m_ItemCell.stateIcon.SetSprite(isUp == 1 ? "EquipUpIcon" : "EquipDownIcon");
|
}
|
}
|
else
|
{
|
m_ItemCell.stateIcon.SetActive(false);
|
}
|
m_ItemCell.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(new ItemTipUtility.ItemViewInfo()
|
{
|
itemId = auctionItem.itemId,
|
compare = true,
|
isAuctionEquip = ItemLogicUtility.Instance.IsRealmEquip(auctionItem.itemId),
|
score = score,
|
legendProperty = ItemLogicUtility.Instance.IsRealmEquip(auctionItem.itemId) ?
|
ItemTipUtility.GetLegendProperty(auctionItem.itemId, auctionItem.userDataDict)
|
: default(ItemTipUtility.LegendProperty),
|
});
|
});
|
|
var itemConfig = ItemConfig.Get(auctionItem.itemId);
|
|
m_ItemName.text = UIHelper.GetItemName(auctionItem.itemId, true);
|
m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true);
|
|
int requireMoney = AuctionLogicUtil.GetBiddingRequireMoney(auctionItem);
|
|
var config = AuctionItemConfig.Get(auctionItem.itemId);
|
var topPrice = config.BuyoutPrice * auctionItem.itemCount;
|
|
if (config.BuyoutPrice != 0 && requireMoney > topPrice)//竞价价格永远不能大于最高价
|
{
|
requireMoney = topPrice;
|
}
|
|
m_JadeNumber.text = UIHelper.ReplaceLargeNum(auctionItem.biddingPrice);
|
m_JadeNumber1.text = UIHelper.ReplaceLargeNum(topPrice);
|
m_PriceButton.SetActive(config.BuyoutPrice != 0);
|
|
m_PriceButton.SetListener(() => //一口价
|
{
|
model.SendBiddingItem(auctionItem, true);
|
});
|
|
m_JadeNumber2.text = UIHelper.ReplaceLargeNum(requireMoney);
|
|
m_BiddingButton.SetListener(() => //竞价
|
{
|
model.SendBiddingItem(auctionItem, false);
|
});
|
|
Display(auctionItem);
|
DisplayTime(auctionItem);
|
}
|
|
private void LateUpdate()
|
{
|
if (string.IsNullOrEmpty(auctionItemGuid))
|
{
|
return;
|
}
|
timer += Time.deltaTime;
|
if (timer >= 0.5f)
|
{
|
timer = 0f;
|
AuctionItem auctionItem;
|
if (model.TryGetServerAuctionItem(auctionItemGuid, out auctionItem))
|
{
|
DisplayTime(auctionItem);
|
isWarmUp = AuctionLogicUtil.IsAuctionItemWarmUp(auctionItem);
|
}
|
}
|
}
|
|
void Display(AuctionItem auctionItem)
|
{
|
var isWarmUp = AuctionLogicUtil.IsAuctionItemWarmUp(auctionItem);
|
m_PriceButton.SetInteractable(m_JadeNumber1, !isWarmUp);
|
|
var isTopPrice = AuctionLogicUtil.IsBiddingUpperLimit(auctionItem);
|
m_BiddingButton.SetInteractable(m_JadeNumber2, !isWarmUp && !isTopPrice);
|
|
m_BiddingText.text = AuctionLogicUtil.GetBiddingStateLabel(auctionItem);
|
if (model.IsMyTopPrice(auctionItemGuid))
|
{
|
m_BiddingText.text = string.Empty;
|
}
|
}
|
|
void DisplayTime(AuctionItem auctionItem)
|
{
|
m_TimeText.text = AuctionLogicUtil.GetBiddingTimeLabel(auctionItem);
|
var colortype = AuctionLogicUtil.IsAuctionItemExtraTime(auctionItem) ? TextColType.Red : TextColType.Green;
|
m_TimeText.color = UIHelper.GetUIColor(colortype, true);
|
}
|
}
|
|
}
|
|
|
|