//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, March 04, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace Snxxz.UI { public class MyAuctionCell : MonoBehaviour { [SerializeField] GameObject m_MyAuction;//我的拍品 [SerializeField] GameObject m_FamilyImage;//仙盟拍品 [SerializeField] ItemCell m_ItemCell;//物品 [SerializeField] TextEx m_ItemName;//物品名 [SerializeField] Text m_BiddingText;//竞价状态 [SerializeField] TextEx m_JadeNumber;//当前价格 [SerializeField] TextEx m_TimeText;//时间 [SerializeField] TextEx m_Income;//收益 AuctionModel model { get { return ModelCenter.Instance.GetModel(); } } AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel(); } } string auctionItemGuid; bool m_IsWarmUp = false; bool isWarmUp { get { return m_IsWarmUp; } set { if (value != m_IsWarmUp) { m_IsWarmUp = value; AuctionItem auctionItem; if (model.TryGetMyAuctionItem(auctionItemGuid, out auctionItem)) { Display(auctionItem); } } } } float timer = 0f; public void GetMyAuctionGUID(string guid) { AuctionItem auctionItem; if (!model.TryGetMyAuctionItem(guid, out auctionItem)) { return; } this.auctionItemGuid = guid; m_MyAuction.SetActive(auctionItem.familyId == 0); m_FamilyImage.SetActive(auctionItem.familyId != 0); var config = AuctionItemConfig.Get(auctionItem.itemId); var itemConfig = ItemConfig.Get(auctionItem.itemId); int income = 0; var jobBool = itemConfig.JobLimit == PlayerDatas.Instance.baseData.Job; if (auctionItem.biddingPrice != 0) { if (auctionItem.familyId == 0) { int auctionTaxrate = Mathf.FloorToInt((float)(auctionHelpModel. AuctionTaxrate1 * auctionItem.biddingPrice) / 100);//个人税收 income = auctionItem.biddingPrice - auctionTaxrate; } else { int auctionTaxrate = Mathf.FloorToInt((float)(auctionHelpModel. AuctionTaxrate2 * auctionItem.biddingPrice) / 100);//仙盟税收 int number = auctionItem.biddingPrice - auctionTaxrate; int incomeMax = Mathf.CeilToInt((float)(number * auctionHelpModel.AuctionTaxrate3) / 100); int incomeNumber = Mathf.CeilToInt((float)number / auctionItem.familyPlayers.Count); income = Mathf.Min(incomeMax, incomeNumber); } } m_Income.text = income.ToString(); ItemCellModel cellModel = new ItemCellModel(auctionItem.itemId, true, (ulong)auctionItem.itemCount); m_ItemCell.Init(cellModel); m_ItemCell.button.SetListener(() => { ItemTipUtility.Show(auctionItem.itemId); }); m_ItemName.text = UIHelper.GetItemName(auctionItem.itemId, true); m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true); m_JadeNumber.text = auctionItem.biddingPrice.ToString(); Display(auctionItem); DisplayTime(auctionItem); } private void LateUpdate() { timer += Time.deltaTime; if (timer >= 0.5f) { timer = 0f; AuctionItem auctionItem; if (model.TryGetMyAuctionItem(auctionItemGuid, out auctionItem)) { DisplayTime(auctionItem); isWarmUp = AuctionLogicUtil.IsAuctionItemWarmUp(auctionItem); } } } void Display(AuctionItem auctionItem) { m_BiddingText.text = AuctionLogicUtil.GetBiddingStateLabel(auctionItem); } 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); } } }