using System.Collections; using System.Collections.Generic; using UnityEngine; using System; namespace Snxxz.UI { public class AuctionNewGetShowModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { List newAuctions = new List(); string m_ShowingAuction = string.Empty; public string showingAuction { get { return m_ShowingAuction; } private set { if (m_ShowingAuction != value) { m_ShowingAuction = value; if (newAcutionRefreshEvent != null) { newAcutionRefreshEvent(); } } } } bool serverInited = false; public event Action newAcutionRefreshEvent; PackModel packModel { get { return ModelCenter.Instance.GetModel(); } } public override void Init() { packModel.refreshItemCountEvent += OnGetItem; } public override void UnInit() { packModel.refreshItemCountEvent -= OnGetItem; } public void ReportConfirmAuction(string guid) { if (!string.IsNullOrEmpty(guid)) { if (newAuctions.Contains(guid)) { newAuctions.Remove(guid); } RefreshShowingAuction(); } } private void OnGetItem(PackType type, int index, int itemId) { if (!serverInited) { return; } if (type != PackType.Item) { return; } var item = packModel.GetItemByIndex(type, index); if (item == null) { return; } if (!item.isAuction) { return; } if (!newAuctions.Contains(item.guid)) { newAuctions.Add(item.guid); } RefreshShowingAuction(); } private void RefreshShowingAuction() { if (!newAuctions.IsNullOrEmpty()) { showingAuction = newAuctions[0]; } else { showingAuction = string.Empty; } } public void OnBeforePlayerDataInitialize() { serverInited = false; } public void OnPlayerLoginOk() { serverInited = true; } } }