//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, July 10, 2018
|
//--------------------------------------------------------
|
using System;
|
using System.Collections.Generic;
|
|
using Snxxz.UI;
|
using System.Linq;
|
//极品白拿
|
public class NeedForWhiteClass
|
{
|
public int ID;//ID
|
public int NeedMoney;//需要仙玉
|
public int ReturnTime;//返还时间(S)
|
public string Name;//礼包名
|
public int Day;//返还天数
|
public float AddPower;//提升的战力
|
public NeedForWhiteModel.NeedForWhiteItem AwardItem;//奖励信息
|
|
}
|
public class BuySateClass
|
{
|
public int receive;//领奖信息0-未购买,1-已领取,其他time值-购买时间
|
public DateTime dateTime;
|
}
|
|
[XLua.LuaCallCSharp]
|
public class NeedForWhiteModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
{
|
public Dictionary<int, NeedForWhiteClass> NeedForWhiteDic = new Dictionary<int, NeedForWhiteClass>();
|
public Dictionary<int, BuySateClass> BuySate = new Dictionary<int, BuySateClass>();//领奖信息0-未购买,1-已领取,其他time值-购买时间
|
public int FreeGoodsOpenTimeS = 0;//总时间
|
public int OpenTimeS = 0;//活动开始的时间
|
public DateTime DateTime_S;
|
public event Action UpdateNeedForWhiteEvent;
|
public override void Init()
|
{
|
return;
|
var FreeGoodsOpenTime = FuncConfigConfig.Get("FreeGoodsOpenTime");
|
FreeGoodsOpenTimeS = int.Parse(FreeGoodsOpenTime.Numerical1);
|
|
Assignment();
|
}
|
public override void UnInit()
|
{
|
|
}
|
public void OnBeforePlayerDataInitialize()
|
{
|
|
}
|
|
public void OnPlayerLoginOk()
|
{
|
return;
|
DateTime_S = DateTime.Now;
|
}
|
|
public void Assignment()
|
{
|
var FreeGood = FreeGoodsConfig.GetValues();
|
if (NeedForWhiteDic.Count > 0)
|
{
|
return;
|
}
|
foreach (var Value in FreeGood)
|
{
|
var NeedForWhite = new NeedForWhiteClass();
|
NeedForWhite.ID = Value.ID;
|
NeedForWhite.NeedMoney = Value.NeedMoney;
|
NeedForWhite.ReturnTime = Value.ReturnTime;
|
NeedForWhite.Name = Value.Name;
|
NeedForWhite.Day = Value.Day;
|
NeedForWhite.AddPower = Value.AddPower;
|
var awardItem = new NeedForWhiteItem();
|
var _jsonData = LitJson.JsonMapper.ToObject(Value.AwardItem);
|
foreach (string key in _jsonData.Keys)
|
{
|
var _job = int.Parse(key);
|
var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
|
for (int j = 0; j < _itemArray.Length; j++)
|
{
|
awardItem.Add(_job, new Item(_itemArray[j][0], _itemArray[j][1]));
|
}
|
}
|
NeedForWhite.AwardItem = awardItem;
|
NeedForWhiteDic.Add(Value.ID, NeedForWhite);
|
}
|
}
|
|
public class NeedForWhiteItem
|
{
|
private Dictionary<int, List<Item>> m_AwardDict = new Dictionary<int, List<Item>>();
|
|
public List<Item> GetAwardItem(int _job)
|
{
|
List<Item> _items = null;
|
m_AwardDict.TryGetValue(_job, out _items);
|
return _items;
|
}
|
public void Add(int _job, Item _item)
|
{
|
List<Item> _list = null;
|
if (!m_AwardDict.TryGetValue(_job, out _list))
|
{
|
_list = new List<Item>();
|
m_AwardDict.Add(_job, _list);
|
}
|
_list.Add(_item);
|
}
|
}
|
|
public void FreeGoodsInfo(HA318_tagMCFreeGoodsInfo Info)
|
{
|
return;
|
TimeSpan ts = DateTime.Now - TimeUtility.GetTime(Info.OpenTime);
|
OpenTimeS = (int)ts.TotalSeconds;
|
if (Info.Count > 0)
|
{
|
for (int i = 0; i < Info.Count; i++)
|
{
|
var Id = (Info.FreeGoodsList[i].ID);
|
var buyState = (Info.FreeGoodsList[i].BuyState);
|
if (BuySate.ContainsKey(Id))
|
{
|
if (buyState != 0 && buyState != 1)
|
{
|
TimeSpan ts1 = DateTime.Now - TimeUtility.GetTime(buyState);
|
int _second = ts1.Seconds;
|
BuySate[Id].receive = _second;
|
}
|
else
|
{
|
BuySate[Id].receive = (int)buyState;
|
}
|
BuySate[Id].dateTime = DateTime.Now;
|
}
|
else
|
{
|
if (buyState != 0 && buyState != 1)
|
{
|
TimeSpan ts1 = DateTime.Now - TimeUtility.GetTime(buyState);
|
int _second = ts1.Seconds;
|
var buySateClass = new BuySateClass();
|
buySateClass.receive = _second;
|
buySateClass.dateTime = DateTime.Now;
|
BuySate.Add(Id, buySateClass);
|
}
|
else
|
{
|
var buySateClass = new BuySateClass();
|
buySateClass.receive = (int)buyState;
|
buySateClass.dateTime = DateTime.Now;
|
BuySate.Add(Id, buySateClass);
|
}
|
}
|
}
|
}
|
if (UpdateNeedForWhiteEvent != null)
|
{
|
UpdateNeedForWhiteEvent();
|
}
|
}
|
|
public void BuyReceive(int ID)
|
{
|
var SendInfo = new CA504_tagCMPlayerGetReward();
|
SendInfo.RewardType = 10;
|
SendInfo.DataEx = (uint)ID;
|
GameNetSystem.Instance.SendInfo(SendInfo);
|
}
|
}
|
|
|
|
|