using System.Collections.Generic; using System.Linq; using UnityEngine; /// /// 背包主界面UIVo /// public class BagMainUIVo { public List GetWeaponList() { return UserProxy.Instance.player.collectItem.GetWeaponList(); ; } /// /// 武器列表********type:0代表品质;1代表等级;order:0代表从大到小;1代表从小到大 /// /// public List GetWeaponList(int type = 0,int order = 0) { var li = new List(); List arr = UserProxy.Instance.player.collectItem.GetWeaponList(); if (type == 0)//品质 { Dictionary> dic = new Dictionary>(); foreach (UserEquipmentVo vo in arr) { if (dic.ContainsKey(vo.nMo.quality)) { dic[vo.nMo.quality].Add(vo); } else { List list = new List(); list.Add(vo); dic.Add(vo.nMo.quality, list); } } Dictionary> tempDic = new Dictionary>(); foreach (KeyValuePair>kv in dic) { List eList = kv.Value; for (int i = 0; i < eList.Count; i++) { //内循环 for (int j = 0; j < eList.Count - 1; j++) { if (order == 0) { //从大到小排序 (改成< 就是从小到大) if (eList[i].level > eList[j].level) { UserEquipmentVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } else { //从大到小排序 (改成< 就是从小到大) if (eList[i].level < eList[j].level) { UserEquipmentVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } } } tempDic[kv.Key] = eList; } Dictionary> retDic; if (order == 0) { retDic = tempDic.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } else { retDic = tempDic.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } foreach (KeyValuePair>kv in retDic) { li.AddRange(kv.Value); } } else//等级 { Dictionary> dic = new Dictionary>(); foreach (UserEquipmentVo vo in arr) { if (dic.ContainsKey(vo.level)) { dic[vo.level].Add(vo); } else { List list = new List(); list.Add(vo); dic.Add(vo.level, list); } } Dictionary> tempDic = new Dictionary>(); foreach (KeyValuePair> kv in dic) { List eList = kv.Value; for (int i = 0; i < eList.Count; i++) { //内循环 for (int j = 0; j < eList.Count - 1; j++) { if (order == 0) { //从大到小排序 (改成< 就是从小到大) if (eList[i].nMo.quality > eList[j].nMo.quality) { UserEquipmentVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } else { //从大到小排序 (改成< 就是从小到大) if (eList[i].nMo.quality < eList[j].nMo.quality) { UserEquipmentVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } } } tempDic[kv.Key] = eList; } Dictionary> retDic; if (order == 0) { retDic = tempDic.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } else { retDic = tempDic.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } foreach (KeyValuePair> kv in retDic) { //foreach (UserEquipmentVo v in kv.Value) //{ // Debug.Log(v.uid + "---------typeid=" + v.typeId + "---------q" + v.nMo.quality + "---------lv" + v.starLevel); //} li.AddRange(kv.Value); } } return li; } /// /// 碎片列表 (角色解锁、升阶用碎片)***************** /// /// public List GetSegmentList() { return UserProxy.Instance.player.collectItem.GetStoreData(EItemSubType.Segment); //return UserProxy.Instance.player.collectItem.GetItemList(EItemSubType.Segment); } /// /// 言灵召唤书碎片 /// /// public List GetYanlingbookSegmentList() { return UserProxy.Instance.player.collectItem.GetItemList(EItemSubType.YanlingBookSegement); } /// /// 任务卡***** /// /// public List GetTaskCardList() { return UserProxy.Instance.player.collectItem.GetItemList(EItemSubType.TaskCard); } /// /// 任务道具 /// /// public List GetTaskCardItemList() { var li = new List(); return li; } #region 材料子标签 /// /// 消耗品分类*******这三个消耗品废弃了 /// /// public List GetConsumablesList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetItemList(EItemSubType.BuffCard)); li.AddRange(bag.GetItemList(EItemSubType.Package)); li.AddRange(bag.GetItemList(EItemSubType.Pill)); return li; } /// /// 基础材料分类******** /// /// public List GetBaseMaterialList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.Gene)); li.AddRange(bag.GetStoreData(EItemSubType.StrengthStone)); li.AddRange(bag.GetStoreData(EItemSubType.StrengthStone_Wuqi)); li.AddRange(bag.GetStoreData(EItemSubType.Gemstone)); li.AddRange(bag.GetStoreData(EItemSubType.GemTuZhi)); li.AddRange(bag.GetStoreData(EItemSubType.GemMaterial)); //li.AddRange(bag.GetItemList(EItemSubType.Gene)); //li.AddRange(bag.GetItemList(EItemSubType.StrengthStone)); //li.AddRange(bag.GetItemList(EItemSubType.StrengthStone_Wuqi)); //li.AddRange(bag.GetItemList(EItemSubType.Gemstone)); //li.AddRange(bag.GetItemList(EItemSubType.GemTuZhi)); //li.AddRange(bag.GetItemList(EItemSubType.GemMaterial)); return li; } /// /// 进阶材料分类********* /// /// public List GetUpGradeMaterialList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.AdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.AdvancedFineStone)); li.AddRange(bag.GetStoreData(EItemSubType.ForgingMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.Hunqi)); li.AddRange(bag.GetStoreData(EItemSubType.ElementTuPoMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.professionTuPoMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.YanLingAdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.YanLingAdvancedMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.WuqiAdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.WuqiAdvancedMaterial)); //li.AddRange(bag.GetItemList(EItemSubType.AdvancedStone)); //li.AddRange(bag.GetItemList(EItemSubType.AdvancedFineStone)); //li.AddRange(bag.GetItemList(EItemSubType.ForgingMaterial)); //li.AddRange(bag.GetItemList(EItemSubType.Hunqi)); //li.AddRange(bag.GetItemList(EItemSubType.ElementTuPoMaterial)); //li.AddRange(bag.GetItemList(EItemSubType.professionTuPoMaterial)); //li.AddRange(bag.GetItemList(EItemSubType.YanLingAdvancedStone)); //li.AddRange(bag.GetItemList(EItemSubType.YanLingAdvancedMaterial)); //li.AddRange(bag.GetItemList(EItemSubType.WuqiAdvancedStone)); //li.AddRange(bag.GetItemList(EItemSubType.WuqiAdvancedMaterial)); return li; } /// /// 活动道具分类******* /// /// public List GetActiveCardsList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetItemList(EItemSubType.Box)); li.AddRange(bag.GetStoreData(EItemSubType.commonWishCoupons)); li.AddRange(bag.GetStoreData(EItemSubType.ActiveWishCoupons)); return li; } /// /// 言灵召唤书 /// /// public List GetYanlingBookList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetItemList(EItemSubType.YanlingBook)); return li; } #endregion #region 药瓶和回城卷标签 /// /// 药瓶 /// /// public List GetHPMPTPList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; Dictionary dic = UserProxy.Instance.player.StoreNewFeild.battleItem; List list = new List(); list.AddRange(bag.GetItemList(EItemSubType.BattleItem_HP)); list.AddRange(bag.GetItemList(EItemSubType.BattleItem_MP)); foreach (ItemVo vo in list) { foreach (KeyValuePairkv in dic) { if (kv.Value.id == int.Parse(vo.typeId)) { vo.uid = kv.Key.ToString(); break; } } li.Add(vo); } li.AddRange(bag.GetItemList(EItemSubType.TownPortalScroll)); return li; } /// /// 药瓶 /// /// public List GetHPMPList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; Dictionary dic = UserProxy.Instance.player.StoreNewFeild.battleItem; List list = new List(); list.AddRange(bag.GetItemList(EItemSubType.BattleItem_HP)); list.AddRange(bag.GetItemList(EItemSubType.BattleItem_MP)); foreach (ItemVo vo in list) { foreach (KeyValuePair kv in dic) { if (kv.Value.id == int.Parse(vo.typeId)) { vo.uid = kv.Key.ToString(); break; } } li.Add(vo); } return li; } #endregion /// /// 言灵列表 (下期)********* /// /// public List GetYanLingList() { return UserProxy.Instance.player.collectYanling.items.Values.ToList().ConvertAll(i=>i as ItemVo); //return UserProxy.Instance.player.collectItem.GetItemList(EItemSubType.YanLing); } public List GetYanLingList(int type,int order) { var li = new List(); List arr = UserProxy.Instance.player.collectYanling.items.Values.ToList(); if (type == 0)//品质 { Dictionary> dic = new Dictionary>(); foreach (UserYanlingVo vo in arr) { if (dic.ContainsKey(vo.nMo.quality)) { dic[vo.nMo.quality].Add(vo); } else { List list = new List(); list.Add(vo); dic.Add(vo.nMo.quality, list); } } Dictionary> tempDic = new Dictionary>(); foreach (KeyValuePair> kv in dic) { List eList = kv.Value; for (int i = 0; i < eList.Count; i++) { //内循环 for (int j = 0; j < eList.Count - 1; j++) { if (order == 0) { //从大到小排序 (改成< 就是从小到大) if (eList[i].level > eList[j].level) { UserYanlingVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } else { //从大到小排序 (改成< 就是从小到大) if (eList[i].level < eList[j].level) { UserYanlingVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } } } tempDic[kv.Key] = eList; } Dictionary> retDic; if (order == 0) { retDic = tempDic.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } else { retDic = tempDic.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } foreach (KeyValuePair> kv in retDic) { li.AddRange(kv.Value); } } else//等级 { Dictionary> dic = new Dictionary>(); foreach (UserYanlingVo vo in arr) { if (dic.ContainsKey(vo.level)) { dic[vo.level].Add(vo); } else { List list = new List(); list.Add(vo); dic.Add(vo.level, list); } } Dictionary> tempDic = new Dictionary>(); foreach (KeyValuePair> kv in dic) { List eList = kv.Value; for (int i = 0; i < eList.Count; i++) { //内循环 for (int j = 0; j < eList.Count - 1; j++) { if (order == 0) { //从大到小排序 (改成< 就是从小到大) if (eList[i].nMo.quality > eList[j].nMo.quality) { UserYanlingVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } else { //从大到小排序 (改成< 就是从小到大) if (eList[i].nMo.quality < eList[j].nMo.quality) { UserYanlingVo temp; temp = eList[i]; eList[i] = eList[j]; eList[j] = temp; } } } } tempDic[kv.Key] = eList; } Dictionary> retDic; if (order == 0) { retDic = tempDic.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } else { retDic = tempDic.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value); } foreach (KeyValuePair> kv in retDic) { li.AddRange(kv.Value); } } return li; //return UserProxy.Instance.player.collectYanling.items.Values.ToList().ConvertAll(i => i as ItemVo); //return UserProxy.Instance.player.collectItem.GetItemList(EItemSubType.YanLing); } #region------------>分类调整 /// /// 养成道具 /// /// public List GetYangChengItemList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.Gene)); li.AddRange(bag.GetStoreData(EItemSubType.StrengthStone)); li.AddRange(bag.GetStoreData(EItemSubType.StrengthStone_Wuqi)); li.AddRange(bag.GetStoreData(EItemSubType.ElementTuPoMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.professionTuPoMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.YanLingAdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.YanLingAdvancedMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.WuqiAdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.WuqiAdvancedMaterial)); li.AddRange(UserProxy.Instance.player.collectItem.GetStoreData(EItemSubType.Segment)); li.AddRange(bag.GetStoreData(EItemSubType.Gemstone)); li.AddRange(bag.GetStoreData(EItemSubType.GemTuZhi)); li.AddRange(bag.GetStoreData(EItemSubType.GemMaterial)); return li; } /// /// 养成道具----强化道具字标签 /// /// public List GetYangchengStrengthenList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.Gene)); li.AddRange(bag.GetStoreData(EItemSubType.StrengthStone)); li.AddRange(bag.GetStoreData(EItemSubType.StrengthStone_Wuqi)); return li; } /// /// 养成道具----突破道具子标签 /// /// public List GetYangchengTuPoList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.ElementTuPoMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.professionTuPoMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.YanLingAdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.YanLingAdvancedMaterial)); li.AddRange(bag.GetStoreData(EItemSubType.WuqiAdvancedStone)); li.AddRange(bag.GetStoreData(EItemSubType.WuqiAdvancedMaterial)); li.AddRange(UserProxy.Instance.player.collectItem.GetStoreData(EItemSubType.Segment)); return li; } /// /// 养成道具----宝石子标签 /// /// public List GetYangchengGemList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.Gemstone)); li.AddRange(bag.GetStoreData(EItemSubType.GemTuZhi)); li.AddRange(bag.GetStoreData(EItemSubType.GemMaterial)); return li; } /// /// 材料 /// /// public List GetMaterialItemList() { var li = new List(); var bag = UserProxy.Instance.player.collectItem; li.AddRange(bag.GetStoreData(EItemSubType.Hunqi)); li.AddRange(bag.GetStoreData(EItemSubType.AdvancedStone)); List list = bag.GetItemList(EItemSubType.YanlingBook); List tempList = new List(); foreach (ItemVo vo in list) { if (vo.count>1) { for(int i = 0; i < vo.count; i++) { ItemVo nVo = new ItemVo(); nVo.typeId = vo.typeId; nVo.count = 1; tempList.Add(nVo); } } else { tempList.Add(vo); } } li.AddRange(tempList); return li; } public List GetMaterialList() { List li = this.GetMaterialItemList(); List list = new List(); if (li.Count != 0) { foreach (ItemVo vo in li) { if (vo.nMo.subType == (int)EItemSubType.Hunqi || vo.nMo.subType == (int)EItemSubType.AdvancedStone) { list.Add(vo); } } } return li; } public List GetMaterialBookList() { List li = this.GetMaterialItemList(); List list = new List(); if (li.Count != 0) { foreach (ItemVo vo in li) { if (vo.nMo.subType == (int)EItemSubType.YanlingBook) { list.Add(vo); } } } return li; } #endregion #region 子界面 /// /// 获取武器详情信息(下期) /// /// /// public WeaponDetailUI GetWeaponDetails(EquipeMentVo _wp) { return new WeaponDetailUI(_wp); } /// /// 武器详情界面 /// public class WeaponDetailUI { public EquipeMentVo weapon { get; } public WeaponDetailUI(EquipeMentVo _wp) { this.weapon = _wp; } /// /// 名称 /// public string Title { get { return this.weapon.nMo.name; } } /// /// 锁定状态 /// public bool IsLocked { get { return this.weapon.isLocked != 0; } } public string Img { get { return this.weapon.nMo.img; } } /// /// 用着这个武器的英雄 /// public GameHeroVo UsingHero { get { // 根据id提取英雄. var hero = UserProxy.Instance.player.collectHero.GetHeroGameInfoByHeroUId(this.weapon.WhoIsUsing.ToString()); if (hero != null) { return hero; } return null; } } /// /// 品质 /// public int quality { get { return this.weapon.nMo.quality; } } /// /// 描述 /// public string desc { get { return this.weapon.nMo.itemDesc; } } /// /// 当前等级 /// public int level { get { return this.weapon.level; } } /// /// 最大等级 /// public int maxLevel { get { return this.maxLevel; } } /// /// 当前经验 /// public int exp { get { return this.weapon.exp; } } /// /// 升级所需经验 /// public int maxExp { get { return sm_itemlevel.GetMoById(this.weapon.level).needExp; } } /// /// 攻击 /// public int attack { get { return this.weapon.nMo.GetWeaponExt().atk; } } /// /// 会心一击,待议 /// public int 会心 { get { return 1; } } /// /// 武器技能 /// public List Skills { get { var li = new List(); //this.weapon.nMo.skills; return li; } } } #endregion #region----->背包解锁新加字段 /// /// 当前容量 /// public int curCapacity { get { int initNum = int.Parse(GameConfigData.Ins.globalsettings.Item_Packet_InitNum_New.ToString()); if (UserProxy.Instance.player.PrivateState.expandNum == 0) { return initNum; } int explandNum = UserProxy.Instance.player.PrivateState.expandNum; Dictionary expandStoreNum = GameConfigData.Ins.expandStoreNum; for (int i = 1;i<=explandNum;i++) { if (expandStoreNum.ContainsKey(i)) { initNum += expandStoreNum[i].expandNum; } } return initNum; } } /// /// 最大容量 /// public int maxCapacity { get { return int.Parse(GameConfigData.Ins.globalsettings.Item_Packet_MaxNum_New.ToString()); } } /// /// 扩容消耗金币数量 /// public int explandCostNum { get { int expandNum = UserProxy.Instance.player.PrivateState.expandNum; int count = GameConfigData.Ins.expandStoreNum.Count; if (expandNum >= count) { return 0; } return int.Parse(GameConfigData.Ins.GetexpandStoreNumMo(expandNum+1).cost); } } #endregion }