예제 #1
0
    /// <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);
    }