//-------------------------------------------------------- // [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 NeedForWhiteDic = new Dictionary(); public Dictionary BuySate = new Dictionary();//领奖信息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(_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> m_AwardDict = new Dictionary>(); public List GetAwardItem(int _job) { List _items = null; m_AwardDict.TryGetValue(_job, out _items); return _items; } public void Add(int _job, Item _item) { List _list = null; if (!m_AwardDict.TryGetValue(_job, out _list)) { _list = new List(); 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); } }