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
}