| System/Auction/AuctionInquiryModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/FamilyAuctionWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/FamilyAuctioncell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/FamilyAuctioncell.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/FullServiceAuctioncell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Auction/AuctionInquiryModel.cs
@@ -46,10 +46,10 @@ public event Action FullServiceAuctionUpdate;//全服拍品刷新 public Dictionary<string, AuctionItemClass> FamilyAuctionItemDic = new Dictionary<string, AuctionItemClass>();// 拍卖行仙盟拍卖中的物品信息 public Dictionary<string, AuctionItemClass> PlayerAuctionRecordDic = new Dictionary<string, AuctionItemClass>();//拍卖行玩家拍卖记录 public Dictionary<string, AddAuctionItemInfoClass> AddAuctionItemInfoDic = new Dictionary<string, AddAuctionItemInfoClass>();//关注的拍品的上架提醒(弹框显示) public event Action AddAuctionItemInfoUpdate; @@ -96,7 +96,7 @@ playerAuctionItemClass.Time = DateTime.Parse(PlayerAuctionItem.AddTime); playerAuctionItemClass.BidderPrice = PlayerAuctionItem.BidderPrice; playerAuctionItemClass.UserData = PlayerAuctionItem.UserData; var index = FullServiceAuctionList.FindIndex((x)=> { return x.ItemGUID == PlayerAuctionItem.ItemGUID; }); var index = FullServiceAuctionList.FindIndex((x) => { return x.ItemGUID == PlayerAuctionItem.ItemGUID; }); if (index == -1) { fullServiceAuctionList.Add(playerAuctionItemClass); @@ -240,7 +240,6 @@ } } public event Action AttentionAuctionItemUpdate;//关注物品ID刷新 public void AttentionAuctionItemID(HB507_tagGCAttentionAuctionItemID info)//关注的物品ID(需要主动查询) { @@ -250,7 +249,7 @@ var attentionItemID = (int)info.AttentionItemIDList[i]; if (!AttentionAuctionItemIDdic.ContainsKey(attentionItemID)) { AttentionAuctionItemIDdic.Add(attentionItemID,0); AttentionAuctionItemIDdic.Add(attentionItemID, 0); } } if (AttentionAuctionItemUpdate != null) @@ -285,14 +284,14 @@ { ClearFamilyAuctionUpdate(); } } } } var index = FullServiceAuctionList.FindIndex((x) => { return x.ItemGUID == RefreshAuctionItem.ItemGUID; }); if (index != -1)//全服拍品 { FullServiceAuctionList[index].TimeStr= RefreshAuctionItem.AddTime; FullServiceAuctionList[index].Time= DateTime.Parse(RefreshAuctionItem.AddTime); FullServiceAuctionList[index].BidderID= (int)RefreshAuctionItem.BidderID; FullServiceAuctionList[index].TimeStr = RefreshAuctionItem.AddTime; FullServiceAuctionList[index].Time = DateTime.Parse(RefreshAuctionItem.AddTime); FullServiceAuctionList[index].BidderID = (int)RefreshAuctionItem.BidderID; FullServiceAuctionList[index].BidderPrice = (int)RefreshAuctionItem.BidderPrice; } if (RefreshAuctionItemUpdate != null) System/Auction/FamilyAuctionWin.cs
@@ -18,6 +18,7 @@ [SerializeField] ScrollerController m_ScrollerControllerItem; AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } } AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } } List<AuctionItemClass> FamilyAuctionList = new List<AuctionItemClass>(); #region Built-in protected override void BindController() { @@ -31,23 +32,46 @@ protected override void OnPreOpen() { OnCreateGridLineCell(m_ScrollerController); OnCreateGridLineCellItem(m_ScrollerControllerItem); GetFamilyAuctionItemList(); ListSotr(); OnCreateGridCell(m_ScrollerController); OnCreateGridCellItem(m_ScrollerControllerItem); } protected override void OnAfterOpen() { model.FamilyAuctionItemUpdate += FamilyAuctionReset; model.ClearFamilyAuctionUpdate += FamilyAuctionReset; model.RefreshAuctionItemUpdate += RefreshAuctionItemUpdate; model.BiddingItemInfoUpdate += RefreshAuctionItemUpdate; } protected override void OnPreClose() { } { model.FamilyAuctionItemUpdate -= FamilyAuctionReset; model.ClearFamilyAuctionUpdate -= FamilyAuctionReset; model.BiddingItemInfoUpdate -= RefreshAuctionItemUpdate; model.RefreshAuctionItemUpdate -= RefreshAuctionItemUpdate; } protected override void OnAfterClose() { } #endregion private void OnCreateGridLineCell(ScrollerController gridCtrl) private void FamilyAuctionReset() { GetFamilyAuctionItemList(); ListSotr(); OnCreateGridCellItem(m_ScrollerControllerItem); } private void RefreshAuctionItemUpdate() { m_ScrollerControllerItem.m_Scorller.RefreshActiveCellViews();//刷新可见 } private void OnCreateGridCell(ScrollerController gridCtrl) { gridCtrl.Refresh(); for (int i = 0; i < auctionHelpModel.FamilyAuctionList.Count; i++) @@ -74,13 +98,14 @@ } button.SetListener(() => { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 // m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 }); } private void OnCreateGridLineCellItem(ScrollerController gridCtrl) private void OnCreateGridCellItem(ScrollerController gridCtrl) { gridCtrl.Refresh(); for (int i = 0; i < 10; i++) for (int i = 0; i < FamilyAuctionList.Count; i++) { gridCtrl.AddCell(ScrollerDataType.Header, i); } @@ -88,7 +113,78 @@ } private void OnRefreshGridCellItem(ScrollerDataType type, CellView cell) { int index = cell.cellIndex; var ItemGUID = FamilyAuctionList[index].ItemGUID; FamilyAuctioncell familyAuctionCell = cell.GetComponent<FamilyAuctioncell>(); familyAuctionCell.GetFamilyAuctionGUID(ItemGUID); } private void GetFamilyAuctionItemList() { FamilyAuctionList.Clear(); foreach (var value in model.FamilyAuctionItemDic.Values) { FamilyAuctionList.Add(value); } } private void ListSotr() { FamilyAuctionList.Sort(Compare); } int Compare(AuctionItemClass x, AuctionItemClass y)//数组排列 { bool havex = IsHighestPrice(x.ItemGUID); bool havey = IsHighestPrice(y.ItemGUID); if (havex.CompareTo(havey) != 0)//是否最高价 { return -havex.CompareTo(havey); } bool havex1 = IsParticipate(x.ItemGUID); bool havey1 = IsParticipate(y.ItemGUID); if (havex1.CompareTo(havey1) != 0)//是否参与 { return -havex1.CompareTo(havey1); } bool havex2 = IsAttention(x.ItemID); bool havey2 = IsAttention(y.ItemID); if (havex2.CompareTo(havey2) != 0)//是否关注 { return -havex2.CompareTo(havey2); } return 1; } private bool IsHighestPrice(string GUID) { bool isBool = false; int playerId = (int)PlayerDatas.Instance.baseData.PlayerID; if (model.BiddingItemInfoDic.ContainsKey(GUID)) { var biddingItemInfo = model.BiddingItemInfoDic[GUID]; isBool=biddingItemInfo.BidderID == playerId; } return isBool; } private bool IsParticipate(string GUID) { bool isBool = false; if (model.BiddingItemInfoDic.ContainsKey(GUID)) { isBool = true; } return isBool; } private bool IsAttention(int itemId) { bool isBool = false; if (model.AttentionAuctionItemIDdic.ContainsKey(itemId)) { isBool = true; } return isBool; } } System/Auction/FamilyAuctioncell.cs
New file @@ -0,0 +1,142 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, March 04, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace Snxxz.UI { public class FamilyAuctioncell: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_BiddingTextObj;//竞价中 [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>(); } } private AuctionItemConfig AuctionItem; private AuctionItemClass FamilyAuctionItem; public void GetFamilyAuctionGUID(string GUIID) { m_NeedImage.SetActive(false); m_ParticipateImage.SetActive(false); m_BiddingTextObj.SetActive(false); m_HighestPriceImage.SetActive(false); m_EquipmentScoreObj.SetActive(false); if (!model.FamilyAuctionItemDic.ContainsKey(GUIID)) { DebugEx.LogError("未找到相应的仙盟拍品数据"); return; } var familyAuctionItem = model.FamilyAuctionItemDic[GUIID]; FamilyAuctionItem = familyAuctionItem; var playerId = PlayerDatas.Instance.baseData.PlayerID; var auctionItem = AuctionItemConfig.Get(familyAuctionItem.ItemID); var itemConfig = ItemConfig.Get(familyAuctionItem.ItemID); if (itemConfig == null) { DebugEx.LogError("物品表没有找到该物品,物品ID为" + familyAuctionItem.ItemID); return; } if (auctionItem == null) { DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为" + familyAuctionItem.ItemID); return; } AuctionItem = auctionItem; if (model.BiddingItemInfoDic.ContainsKey(GUIID))//参与了竞价的物品 { var biddingItemInfo = model.BiddingItemInfoDic[GUIID]; m_ParticipateImage.SetActive(true); if (biddingItemInfo.BidderID == playerId)//判断是否最高竞价 { m_HighestPriceImage.SetActive(true); } else { m_BiddingTextObj.SetActive(true); } } ItemCellModel cellModel = new ItemCellModel(familyAuctionItem.ItemID, true, (ulong)familyAuctionItem.ItemCount, itemConfig.BindType); m_ItemCell.Init(cellModel); m_ItemName.text = itemConfig.ItemName; if (itemConfig.EquipPlace != 0) { m_EquipmentScoreObj.SetActive(true); // m_Score.text } m_JadeNumber.text = (auctionItem.BasePrice + familyAuctionItem.BidderPrice).ToString(); m_JadeNumber1.text = auctionItem.BuyoutPrice.ToString(); m_PriceButton.SetListener(() => //一口价 { DebugEx.Log(auctionItem.BuyoutPrice + "一口价"); }); m_JadeNumber2.text = (auctionItem.BasePrice+ familyAuctionItem.BidderPrice).ToString(); m_BiddingButton.SetListener(() => //竞价 { }); } private void LateUpdate() { if (AuctionItem != null && FamilyAuctionItem != null) { var timeNow = TimeUtility.ServerNow; TimeSpan timeSpan = timeNow - FamilyAuctionItem.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 = TimeUtility.SecondsToHMS(seconds)+"后开始"; } else if (minute >= AuctionItem.NoticeSaleMinutes && minute <= AuctionItem.FamilySaleMinutes)//拍卖中 { if (!m_PriceButton.interactable || m_PriceImage.gray) { m_PriceButton.interactable = true; m_PriceImage.gray = false; } if (!m_BiddingButton.interactable || m_BiddingImage.gray) { m_BiddingButton.interactable = true; m_BiddingImage.gray = false; } int seconds = AuctionItem.FamilySaleMinutes * 60 - ((int)timeSpan.TotalSeconds- AuctionItem.NoticeSaleMinutes * 60); m_TimeText.text = "剩余"+TimeUtility.SecondsToHMS(seconds) ; } } } } } System/Auction/FamilyAuctioncell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 0bb71d522f2496447b4a4f1af10e45cf timeCreated: 1551686468 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Auction/FullServiceAuctioncell.cs
@@ -79,7 +79,8 @@ m_BiddingTextObj.SetActive(true); } } ItemCellModel cellModel = new ItemCellModel(fullServiceAuction.ItemID, true, (ulong)fullServiceAuction.ItemCount, itemConfig.BindType); ItemCellModel cellModel = new ItemCellModel(fullServiceAuction.ItemID, true, (ulong)fullServiceAuction.ItemCount, itemConfig.BindType); m_ItemCell.Init(cellModel); m_ItemName.text = itemConfig.ItemName; if (itemConfig.EquipPlace != 0)