//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, January 12, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; using System.Collections.Generic; namespace vnxbqy.UI { public class ResourcesBackClass { public int ID;//ID public int RecoverCnt;// 可找回次数 public int ExtraCnt;// VIP额外次数 public string NameOfActivity;//活动名称 public int RelatedID;//关联日常任务表ID public int CanBackTimes;//能否找回次数 public int NormalCostJade;//绑玉找回普通次数价格 public int VipCostJade;//绑玉找回VIP次数找回价格 public RewardRecovery JadeReward;//绑玉找回奖励 public int CostCopper; //铜钱找回铜钱消耗 public RewardRecovery CopperReward;//铜钱找回奖励 public int ExtraData;//额外参数 public int ExtraData2;//额外参数2 public string[] RewardList;//奖励列表 public ulong TjgExp;//经验(脱机挂) public int Times;//可找回时间 public string DeadTime;//死亡时间 public List ReplaceItemID;//替换的物品ID public byte HaveRecover; // 已找回 1-全部已找回 2-非VIP已找回 } public class RewardRecovery { public string exp; public string money; public ItemModelResourcesBack[] item; } public class ItemModelResourcesBack { public int ItemID; public string ItemCount; } public struct FairyJadeFindOneKey//一键找回(仙玉) { public int Index { get; set; } public int Number { get; set; } public int FairyJade { get; set; } public int IsOn { get; set; } } public struct CopperCashFindOneKey//一键找回(铜钱) { public int Index { get; set; } public int Number { get; set; } public int CopperCash { get; set; } public int IsOn { get; set; } } public enum ResourcesBackEnum { exp, money, item, sp, } public class ResourcesBackModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary ResourcesBackDic = new Dictionary(); public static Action ResourcesBackUpdateEvent; public int ResourcesBackId = 0;//用来标记所选的找回资源ID const int RESOURCESBACK = 78003; const int RESOURCESBACK_1 = 780031; public Redpoint redPointStre1 = new Redpoint(78000, RESOURCESBACK);//资源找回红点 public Redpoint redPointStre2 = new Redpoint(RESOURCESBACK, RESOURCESBACK_1);//资源找回红点 public bool IsPointStre = true;//是否显示红点 public bool IsMainGo = false;//是否显示主界面入口 public override void Init() { ResourcesBackWin.IsAccordingRedPoint += IsAccordingRedPoint; } public override void UnInit() { ResourcesBackWin.IsAccordingRedPoint -= IsAccordingRedPoint; } private void IsAccordingRedPoint() { IsPointStre = false; IsMainGo = false; ResourcesBackRedPoint(); } public void OnBeforePlayerDataInitialize() { // IsPointStre = true; IsMainGo = false; ResourcesBackDic.Clear(); } public void OnPlayerLoginOk() { ResourcesBackRedPoint(); if (ResourcesBackUpdateEvent != null) { ResourcesBackUpdateEvent(); } } private void ResourcesBackRedPoint()//资源找回红点 { redPointStre2.state = RedPointState.None; IsMainGo = false; if (IsPointStre && ResourcesBackDic.Count > 0) { foreach (var key in ResourcesBackDic.Keys) { if (ResourcesBackDic[key].RecoverCnt > 0) { redPointStre2.state = RedPointState.Simple; IsMainGo = true; return; } } } } List ResourcesIdList = new List(); public void ResourcesBackAcceptance(HA349_tagMCRecoverNum vNetData) { ResourcesIdList.Clear(); foreach (var key in ResourcesBackDic.Keys) { if (key != 1) { ResourcesIdList.Add(key); } } for (int i = 0; i < ResourcesIdList.Count; i++) { if (ResourcesBackDic.ContainsKey(ResourcesIdList[i])) { ResourcesBackDic.Remove(ResourcesIdList[i]); } } // ResourcesBackDic.Clear(); for (int i = 0; i < vNetData.NumInfo.Length; i++) { int id = vNetData.NumInfo[i].Index; if (id == 1) { continue; } if (ResourcesBackDic.ContainsKey(id)) { var resourcesBackDic = ResourcesBackDic[id]; resourcesBackDic.RecoverCnt = vNetData.NumInfo[i].RecoverCnt; resourcesBackDic.ExtraCnt = vNetData.NumInfo[i].ExtraCnt; resourcesBackDic.ExtraData = vNetData.NumInfo[i].ExtraData; resourcesBackDic.ExtraData2 = vNetData.NumInfo[i].ExtraData2; resourcesBackDic.HaveRecover = vNetData.NumInfo[i].HaveRecover; } else { var configRB = ResourcesBackConfig.Get(id);//资源找回表 ResourcesBackClass resourcesBackClass = new ResourcesBackClass(); resourcesBackClass.ID = id; resourcesBackClass.RecoverCnt = vNetData.NumInfo[i].RecoverCnt; resourcesBackClass.ExtraCnt = vNetData.NumInfo[i].ExtraCnt; resourcesBackClass.ExtraData = vNetData.NumInfo[i].ExtraData; resourcesBackClass.ExtraData2 = vNetData.NumInfo[i].ExtraData2; resourcesBackClass.RelatedID = configRB.RelatedID; var configDQC = DailyQuestConfig.Get(configRB.RelatedID);//日常任务表 resourcesBackClass.NameOfActivity = configDQC.Title; resourcesBackClass.CanBackTimes = configRB.CanBackTimes; resourcesBackClass.NormalCostJade = configRB.NormalCostJade; resourcesBackClass.VipCostJade = configRB.VipCostJade; resourcesBackClass.JadeReward = LitJson.JsonMapper.ToObject(configRB.JadeReward); resourcesBackClass.CostCopper = configRB.CostCopper; resourcesBackClass.CopperReward = LitJson.JsonMapper.ToObject(configRB.CopperReward); resourcesBackClass.RewardList = ConfigParse.GetMultipleStr(configRB.RewardList); resourcesBackClass.ReplaceItemID = ReplaceItemID(configRB.JobItem); resourcesBackClass.HaveRecover = vNetData.NumInfo[i].HaveRecover; ResourcesBackDic.Add(id, resourcesBackClass); } } ResourcesBackRedPoint(); if (ResourcesBackUpdateEvent != null) { ResourcesBackUpdateEvent(); } } private List ReplaceItemID(string str) { List list = new List(); if (str == string.Empty) { return list; } var _jsonData = LitJson.JsonMapper.ToObject(str); for (int i = 0; i < _jsonData.Count; i++) { list.Add(int.Parse(_jsonData[i][0].ToString())); list.Add(int.Parse(_jsonData[i][1].ToString())); } return list; } } }