List <uint> GetPushList(BaseItem bi = null) { EquipManager em = DataManager.Manager <EquipManager>(); if (em == null) { return(null); } Dictionary <GameCmd.EquipType, List <BaseEquip> > dic = GetWillCompareDic(bi); //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); // //if(type == EquipType.EquipType_AdornlOne) // //{ // // int a = 10; // //} // List<BaseEquip> tempList = GetSortList(wareList); // dic.Add(type, tempList); //} List <uint> pushList = new List <uint>(); Array posenumArray = Enum.GetValues(typeof(GameCmd.EquipPos)); for (int i = 0; i < posenumArray.Length; i++) { GameCmd.EquipPos pos = (GameCmd.EquipPos)posenumArray.GetValue(i); if (pos != null) { EquipType type = em.GetEquipTypeByEquipPos(pos); if (type == EquipType.EquipType_AdornlOne || type == EquipType.EquipType_SoulOne || type == EquipType.EquipType_None) { continue; } if (!dic.ContainsKey(type)) { continue; } List <BaseEquip> allList = dic[type]; if (allList == null) { continue; } uint posEquipID = 0; for (int m = 0; m < allList.Count; m++) { BaseEquip tempEquip = allList[m]; if (em.IsWearEquip(tempEquip.QWThisID)) { continue; } if (em.IsEquipPos(pos, out posEquipID)) { ItemManager im = DataManager.Manager <ItemManager>(); BaseEquip wareEquip = im.GetBaseItemByQwThisId(posEquipID) as BaseEquip; if (wareEquip.Power < tempEquip.Power) { pushList.Add(tempEquip.QWThisID); allList.RemoveAt(m); break; } } else { pushList.Add(tempEquip.QWThisID); allList.RemoveAt(m); break; } } } } //处理戒指和圣魂 if (type == EquipType.EquipType_AdornlOne || type ==EquipType.EquipType_SoulOne) if (dic.ContainsKey(EquipType.EquipType_AdornlOne)) { List <BaseEquip> adornList = dic[EquipType.EquipType_AdornlOne]; if (adornList != null) { for (int i = 0; i < adornList.Count; i++) { if (i > 1) { break; } BaseEquip temp = adornList[i]; if (!em.IsWearEquip(temp.QWThisID)) { pushList.Add(temp.QWThisID); } } } } if (dic.ContainsKey(EquipType.EquipType_SoulOne)) { List <BaseEquip> soulList = dic[EquipType.EquipType_SoulOne]; if (soulList != null) { for (int i = 0; i < soulList.Count; i++) { if (i > 1) { break; } BaseEquip temp = soulList[i]; if (!em.IsWearEquip(temp.QWThisID)) { pushList.Add(temp.QWThisID); } } } } return(pushList); }