/// <summary> /// 获取要比较的装备dic /// </summary> /// <param name="isSingle">是否只比较掉落的这一个</param> /// <returns></returns> Dictionary <GameCmd.EquipType, List <BaseEquip> > GetWillCompareDic(BaseItem bi = null) { EquipManager em = DataManager.Manager <EquipManager>(); if (em == null) { return(null); } Dictionary <GameCmd.EquipType, List <BaseEquip> > dic = new Dictionary <EquipType, List <BaseEquip> >(); if (bi != null) { if (bi.BaseType == ItemBaseType.ItemBaseType_Equip) { if (bi is BaseEquip) { BaseEquip be = bi as BaseEquip; if (be != null) { Array enumArray = Enum.GetValues(typeof(GameCmd.EquipType)); for (int i = 0; i < enumArray.Length; i++) { GameCmd.EquipType type = (GameCmd.EquipType)enumArray.GetValue(i); if (be.EType == type) { List <BaseEquip> wareList = em.GetEquipsByPackageType(PACKAGETYPE.PACKAGETYPE_EQUIP, type); wareList.Add(be); List <BaseEquip> tempList = GetSortList(wareList); dic.Add(type, tempList); } else { if (dic.ContainsKey(type)) { Log.Error("has contain key is " + type); } else { dic.Add(type, null); } } } } } } } else { Array enumArray = Enum.GetValues(typeof(GameCmd.EquipType)); for (int i = 0; i < enumArray.Length; i++) { GameCmd.EquipType type = (GameCmd.EquipType)enumArray.GetValue(i); List <BaseEquip> wareList = em.GetEquipsByPackageType(PACKAGETYPE.PACKAGETYPE_EQUIP, type); List <BaseEquip> packageList = em.GetEquipsByPackageType(PACKAGETYPE.PACKAGETYPE_MAIN, type); wareList.AddRange(packageList); List <BaseEquip> tempList = GetSortList(wareList); dic.Add(type, tempList); } } return(dic); }