//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, March 04, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace vnxbqy.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] Image m_JadeImage; [SerializeField] TextEx m_TimeText;//时间 [SerializeField] TextEx m_Income;//收益 [SerializeField] Button m_BackButton;//下架按钮 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_BackButton.SetActive(auctionItem.familyId == 0 && auctionItem.biddingPrice == 0); m_FamilyImage.SetActive(auctionItem.familyId != 0); m_BackButton.SetListener(() => { model.SendBackItem(auctionItem); }); 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 = UIHelper.ReplaceLargeNum(income); 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), }); }); m_ItemName.text = UIHelper.GetItemName(auctionItem.itemId, true); m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true); if (auctionItem.biddingPrice == 0) { m_JadeNumber.SetActive(false); m_JadeImage.SetActive(false); } else { m_JadeNumber.SetActive(true); m_JadeImage.SetActive(true); } m_JadeNumber.text = UIHelper.ReplaceLargeNum(auctionItem.biddingPrice); 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); } } }