| System/Auction/AuctionHouseWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/AuctionInquiryModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/MyFocusCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/MyFocusCell.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/MyFocusWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Auction/MyFocusWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Auction/AuctionHouseWin.cs
@@ -22,7 +22,8 @@ [SerializeField] FunctionButton m_FullServiceAuctionWin;//全服拍卖 [SerializeField] FunctionButton m_FamilyAuctionWin;//仙盟拍卖 [SerializeField] FunctionButton m_MyAuction;//我的拍卖 [SerializeField] Button m_AttentionButton;//我的关注 [SerializeField] FunctionButton m_MyFocus;//我的关注 [SerializeField] Button m_AttentionButton;//我的关注商品 [SerializeField] Button m_TransactionRecordButton;//成交记录 protected override void BindController() { @@ -35,8 +36,9 @@ m_LeftBtn.AddListener(OnClickLeftBtn); m_RightBtn.AddListener(OnClickRight); m_FullServiceAuctionWin.AddListener(OnClickFullServiceAuction); m_FamilyAuctionWin.AddListener(OnClickFamilyAuction); m_FamilyAuctionWin.AddListener(OnClickFamilyAuction); m_MyAuction.AddListener(OnClickMyFocus); m_MyAuction.AddListener(OnClickMyAuction); m_AttentionButton.AddListener(OnClickAttentionButton); m_TransactionRecordButton.AddListener(OnClickTransactionRecordButton); @@ -103,6 +105,12 @@ WindowCenter.Instance.Open<MyAuctionWin>(true); functionOrder = 2; } private void OnClickMyFocus() { CloseChild(); WindowCenter.Instance.Open<MyFocusWin>(true); functionOrder = 3; } private void OnClickAttentionButton() { @@ -128,6 +136,10 @@ { WindowCenter.Instance.Close<MyAuctionWin>(); } if (WindowCenter.Instance.IsOpen<MyFocusWin>()) { WindowCenter.Instance.Close<MyFocusWin>(); } } } System/Auction/AuctionInquiryModel.cs
@@ -57,6 +57,8 @@ public Dictionary<string, AuctionItemClass> BiddingItemInfoDic = new Dictionary<string, AuctionItemClass>();//拍卖行玩家竞价中的物品信息 public Dictionary<string, AuctionItemClass> AttentionAuctionItemDic = new Dictionary<string, AuctionItemClass>();//拍卖行关注中的拍品详情 public Dictionary<int, int> AttentionAuctionItemIDdic = new Dictionary<int, int>();//关注的物品ID AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } } @@ -253,6 +255,37 @@ } return list; } public event Action AttentionAuctionItemUdate;//拍卖行关注中的拍品信息变更 public void AttentionAuctionItemInfo(HB506_tagGCAttentionAuctionItemInfo info)//拍卖行关注中的拍品信息 { for (int i = 0; i < info.AuctionItemCount; i++) { var AttentionAuctionItem = info.AuctionItemList[i]; AuctionItemClass playerAuctionItemClass = new AuctionItemClass(); playerAuctionItemClass.ItemGUID = AttentionAuctionItem.ItemGUID; playerAuctionItemClass.FamilyID = (int)AttentionAuctionItem.FamilyID; playerAuctionItemClass.ItemID = (int)AttentionAuctionItem.ItemID; playerAuctionItemClass.ItemCount = (int)AttentionAuctionItem.ItemCount; playerAuctionItemClass.TimeStr = AttentionAuctionItem.AddTime; playerAuctionItemClass.Time = DateTime.Parse(AttentionAuctionItem.AddTime); playerAuctionItemClass.BidderPrice = AttentionAuctionItem.BidderPrice; playerAuctionItemClass.UserData = AttentionAuctionItem.UserData; if (AttentionAuctionItemDic.ContainsKey(playerAuctionItemClass.ItemGUID)) { AttentionAuctionItemDic[playerAuctionItemClass.ItemGUID] = playerAuctionItemClass; } else { AttentionAuctionItemDic.Add(playerAuctionItemClass.ItemGUID, playerAuctionItemClass); } } if (AttentionAuctionItemUdate != null) { AttentionAuctionItemUdate(); } } public event Action AttentionAuctionItemUpdate;//关注物品ID刷新 public void AttentionAuctionItemID(HB507_tagGCAttentionAuctionItemID info)//关注的物品ID(需要主动查询) { System/Auction/MyFocusCell.cs
New file @@ -0,0 +1,190 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, March 05, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace Snxxz.UI { public class MyFocusCell: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 MyFocusItem; public void GetMyFocusGUID(string GUIID) { if (!model.AttentionAuctionItemDic.ContainsKey(GUIID) && !model.FamilyAuctionItemDic.ContainsKey(GUIID)) { DebugEx.LogError("未找到相应的拍品数据"); return; } m_NeedImage.SetActive(false); m_ParticipateImage.SetActive(false); m_BiddingTextObj.SetActive(false); m_HighestPriceImage.SetActive(false); m_EquipmentScoreObj.SetActive(false); AuctionItemClass myAuction = new AuctionItemClass(); int type = 0; if (model.AttentionAuctionItemDic.ContainsKey(GUIID)) { type = 0; myAuction = model.PlayerAuctionItemInfoDic[GUIID]; } if (model.FamilyAuctionItemDic.ContainsKey(GUIID)) { type = 1; myAuction = model.FamilyAuctionItemDic[GUIID]; } MyFocusItem = myAuction; var playerId = PlayerDatas.Instance.baseData.PlayerID; var auctionItem = AuctionItemConfig.Get(myAuction.ItemID); var itemConfig = ItemConfig.Get(myAuction.ItemID); if (itemConfig == null) { DebugEx.LogError("物品表没有找到该物品,物品ID为" + myAuction.ItemID); return; } if (auctionItem == null) { DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为" + myAuction.ItemID); return; } AuctionItem = auctionItem; if (model.AttentionAuctionItemIDdic.ContainsKey(myAuction.ItemID))//是否关注 { m_NeedImage.SetActive(true); } 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(myAuction.ItemID, true, (ulong)myAuction.ItemCount, itemConfig.BindType); m_ItemCell.Init(cellModel); m_ItemName.text = itemConfig.ItemName; if (itemConfig.EquipPlace != 0) { m_EquipmentScoreObj.SetActive(true); // m_Score.text } int needJade = 0; if (myAuction.BidderPrice == 0) { needJade = auctionItem.BasePrice; } else { needJade = myAuction.BidderPrice + auctionItem.BiddingAdd; } m_JadeNumber.text = (needJade).ToString(); m_JadeNumber1.text = auctionItem.BuyoutPrice.ToString(); m_PriceButton.SetListener(() => //一口价 { int jade = (int)PlayerDatas.Instance.baseData.diamond; string str = "是否花费" + auctionItem.BuyoutPrice + "立即拍下商品?"; ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), str, (bool isOk) => { if (jade >= auctionItem.BuyoutPrice) { AuctionInquiry.Instance.SendSellAuctionItem(GUIID, auctionItem.BuyoutPrice); } else { WindowCenter.Instance.Open<RechargeTipWin>(); } }); }); m_JadeNumber2.text = (needJade).ToString(); m_BiddingButton.SetListener(() => //竞价 { int jade = (int)PlayerDatas.Instance.baseData.diamond; string str = "是否花费" + needJade + "参与竞价?"; ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), str, (bool isOk) => { if (jade >= needJade) { AuctionInquiry.Instance.SendSellAuctionItem(GUIID, needJade); } else { WindowCenter.Instance.Open<RechargeTipWin>(); } }); }); } private void LateUpdate() { if (AuctionItem != null && MyFocusItem != null) { var timeNow = TimeUtility.ServerNow; TimeSpan timeSpan = timeNow - MyFocusItem.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/MyFocusCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: a55422d4cf1e9dd4cbe928a895f933f4 timeCreated: 1551779106 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Auction/MyFocusWin.cs
New file @@ -0,0 +1,190 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, March 05, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { //我的关注物品详情 public class MyFocusWin : Window { [SerializeField] ScrollerController m_ScrollerController; AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } } AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } } List<AuctionItemClass> MyFocusList = new List<AuctionItemClass>(); #region Built-in protected override void BindController() { m_ScrollerController.OnRefreshCell += OnRefreshGridCell; m_ScrollerController.lockType = EnhanceLockType.KeepVertical; } protected override void AddListeners() { } protected override void OnPreOpen() { GetMyFocusList(); ListSotr(); OnCreateGridLineCell(m_ScrollerController); } protected override void OnAfterOpen() { model.AttentionAuctionItemUdate += Reset; model.ClearAuctionUpdate += Reset; model.RefreshAuctionItemUpdate -=Update;//刷新 model.FamilyAuctionItemUpdate += Reset; } protected override void OnPreClose() { model.AttentionAuctionItemUdate -= Reset; model.ClearAuctionUpdate -= Reset; model.RefreshAuctionItemUpdate -=Update;//刷新 model.FamilyAuctionItemUpdate -= Reset; } protected override void OnAfterClose() { } #endregion private void Reset() { GetMyFocusList(); ListSotr(); OnCreateGridLineCell(m_ScrollerController); } private void Update() { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } private void OnCreateGridLineCell(ScrollerController gridCtrl) { gridCtrl.Refresh(); for (int i = 0; i < MyFocusList.Count; i++) { gridCtrl.AddCell(ScrollerDataType.Header, i); } gridCtrl.Restart(); } private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { int index = cell.index; var ItemGUID = MyFocusList[index].ItemGUID; MyFocusCell myAuctionCell = cell.GetComponent<MyFocusCell>(); myAuctionCell.GetMyFocusGUID(ItemGUID); } private void GetMyFocusList() { MyFocusList.Clear(); foreach (var value in model.AttentionAuctionItemDic.Values) { MyFocusList.Add(value); } int playerID = (int)PlayerDatas.Instance.baseData.PlayerID; foreach (var value in model.FamilyAuctionItemDic.Values) { if (model.AttentionAuctionItemIDdic.ContainsKey(value.ItemID)) { MyFocusList.Add(value); } } } private void ListSotr() { MyFocusList.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); } int havex3 = TimeSort(x); int havey3 = TimeSort(y); if (havex3.CompareTo(havey3) != 0)//时间排序 { return -havex3.CompareTo(havey3); } 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; } private int TimeSort(AuctionItemClass auctionItemClass) { int scends = 0; var auctionItem = AuctionItemConfig.Get(auctionItemClass.ItemID); if (auctionItem == null) { return 0; } var timeNow = TimeUtility.ServerNow; TimeSpan timeSpan = timeNow - auctionItemClass.Time; scends = (int)timeSpan.TotalSeconds; return scends; } } } System/Auction/MyFocusWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 41c604d9f27d5954eadc6a3ad9bd02a6 timeCreated: 1551777906 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: