//-------------------------------------------------------- // [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(); } } AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel(); } } ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel(); } } 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(); } } }); }); 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(); } } }); }); } 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)); } } } } }