using System;
|
using System.Collections.Generic;
|
using System.Text.RegularExpressions;
|
using LitJson;
|
using UnityEngine;
|
using Snxxz.UI;
|
/**集市信息 */
|
public class PlayerMarketData
|
{
|
public static event Action OnRefreshPutaway;
|
|
#region 玩家个人上架物品
|
public int putawayCnt = 0;
|
|
public List<MarketItemData> putawayList = new List<MarketItemData>();
|
|
public void OnRefreshMarket(H1B01_tagPlayerBourseItemResult vNetData)
|
{
|
for (int i = 0; i < vNetData.ItemCount; i++)
|
{
|
if (i < putawayList.Count)
|
{
|
SetMarketItemData(putawayList[i], vNetData.ItemList[i]);
|
}
|
else
|
{
|
MarketItemData data = new MarketItemData();
|
SetMarketItemData(data, vNetData.ItemList[i]);
|
putawayList.Add(data);
|
}
|
}
|
for (int i = putawayList.Count - 1; i >= vNetData.ItemCount; i--)
|
{
|
MarketItemData data = putawayList[i];
|
putawayList.RemoveAt(i);
|
data = null;
|
}
|
putawayCnt = vNetData.ItemCount;
|
if (OnRefreshPutaway != null) OnRefreshPutaway();
|
}
|
|
public void SetMarketItemData(MarketItemData data, H1B01_tagPlayerBourseItemResult.tagBourseItem source)
|
{
|
data.ItemGUID = source.ItemGUID;
|
data.PlayerID = source.PlayerID;
|
data.ItemTypeID = source.ItemTypeID;
|
data.PriceType = source.PriceType;
|
data.PriceCount = source.PriceCount;
|
data.Count = source.Count;
|
data.UserDataLen = source.UserDataLen;
|
data.UserData = source.UserData;
|
data.NeadPwd = source.NeadPwd;
|
data.EquipGS = source.EquipGS;
|
}
|
#endregion
|
|
#region 集市交易记录
|
public List<MarketDealRecordData> dealRecordList = new List<MarketDealRecordData>();
|
|
public static event Action OnRefreshDealRecord;
|
|
public void OnRefreshMarket(HA9AB_tagGCBourseRecordInfo vNetData)
|
{
|
for (int i = 0; i < vNetData.Count; i++)
|
{
|
MarketDealRecordData data = null;
|
if (dealRecordList.Count >= ModelCenter.Instance.GetModel<MarketModel>().dealRecordCnt)
|
{
|
dealRecordList.Sort(Compare);
|
var _index = dealRecordList.Count - 1;
|
data = dealRecordList[_index];
|
dealRecordList.RemoveAt(_index);
|
}
|
else
|
{
|
data = new MarketDealRecordData();
|
}
|
SetDealRecordData(data, vNetData.RecordList[i]);
|
dealRecordList.Add(data);
|
}
|
if (OnRefreshDealRecord != null)
|
{
|
OnRefreshDealRecord();
|
}
|
}
|
|
int Compare(MarketDealRecordData x, MarketDealRecordData y)
|
{
|
return -x.Timestamp.CompareTo(y.Timestamp);
|
}
|
|
public void SetDealRecordData(MarketDealRecordData data, HA9AB_tagGCBourseRecordInfo.tagGCBourseRecord source)
|
{
|
data.ItemData = source.ItemData;
|
data.Timestamp = source.Timestamp;
|
data.TradeMoney = source.TradeMoney;
|
data.TradeTax = source.TradeTax;
|
data.Type = source.Type;
|
data.AnalysisItemData();
|
}
|
#endregion
|
|
public void ClearMarketData()
|
{
|
dealRecordList.Clear();
|
putawayList.Clear();
|
}
|
}
|
public class MarketItemData
|
{
|
public string ItemGUID;
|
|
public uint PlayerID; //挂单玩家ID
|
|
public uint ItemTypeID; //物品ID
|
|
public byte PriceType; //出售价格类型
|
|
public uint PriceCount; //出售价格
|
|
public ushort Count; //单组数量
|
|
public uint UserDataLen;
|
|
public string UserData; //自定义数据
|
|
public byte NeadPwd; //是否有交易密码
|
|
public uint EquipGS; //装备评分
|
}
|
public class MarketDealRecordData
|
{
|
|
public byte Type; //类型 0-购买 1-卖出
|
|
public uint Timestamp; //时间戳
|
|
public uint TradeTax; //交易税
|
|
public uint TradeMoney; //收支
|
|
public ushort ItemDataLen;
|
|
public string ItemData; //自定义数据
|
|
public ItemJosnData itemdata;
|
[Serializable]
|
public class ItemJosnData
|
{
|
public int itemID;
|
|
public string userData;
|
|
public uint equipGS;
|
|
public uint count;
|
}
|
|
public void AnalysisItemData()
|
{
|
itemdata = JsonUtility.FromJson<ItemJosnData>(ItemData);
|
}
|
}
|