using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
|
namespace Snxxz.UI
|
{
|
[XLua.LuaCallCSharp]
|
public class AuctionNewGetShowModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
{
|
List<string> newAuctions = new List<string>();
|
|
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<PackModel>(); } }
|
|
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;
|
}
|
|
for (var i = newAuctions.Count - 1; i >= 0; i--)
|
{
|
var oldItem = packModel.GetItemByGuid(newAuctions[i]);
|
if (oldItem == null)
|
{
|
newAuctions.RemoveAt(i);
|
}
|
}
|
|
var item = packModel.GetItemByIndex(type, index);
|
if (item == null)
|
{
|
return;
|
}
|
|
if (!item.isAuction)
|
{
|
if (newAuctions.Contains(item.guid))
|
{
|
newAuctions.Remove(item.guid);
|
}
|
}
|
else
|
{
|
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;
|
}
|
}
|
|
}
|