少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-26 82931aabaaa3e479bc04e11630a77cd9c9dd5fe3
System/KnapSack/Logic/PackModelInterface.cs
@@ -1364,6 +1364,36 @@
            return modellist;
        }
        /// <summary>
        /// 获取装备评分最高可提升战力的装备
        /// </summary>
        /// <param name="_places"></param>
        /// <returns></returns>
        public string GetHighestScoreEquipByPlace(int equipPlace)
        {
            var itemPackage = playerPack.GetSinglePackModel(PackType.rptItem);
            var allItems = itemPackage.GetPackModelIndexDict();
            ItemModel putModel = playerPack.GetItemModelByIndex(PackType.rptEquip,equipPlace);
            equipPlace = (equipPlace == 9 || equipPlace == 10) ?  9 : equipPlace;
            var guid = string.Empty;
            var equips = new List<string>();
            var score = putModel == null ? 0 : putModel.equipScore;
            var job = PlayerDatas.Instance.baseData.Job;
            foreach (var item in allItems.Values)
            {
                if(item.chinItemModel.EquipPlace == equipPlace)
                {
                    if (!IsOverdue(item.itemInfo.ItemGUID, item.itemId)
                       && (item.chinItemModel.JobLimit == 0 || (item.chinItemModel.JobLimit / 100) == job) && item.equipScore > score)
                    {
                        guid = item.itemInfo.ItemGUID;
                        score = item.equipScore;
                    }
                }
            }
            return guid;
        }
        #endregion
        #region 背包整理后好的同类型最好的装备
@@ -1375,44 +1405,20 @@
            if (!IsCanPutOn(itemModel)) return;
            int equipPlace = itemModel.chinItemModel.EquipPlace;
            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptEquip);
            ItemModel putOnModel = null;
            if (singlePack != null)
            {
                putOnModel = singlePack.GetItemModelByIndex(equipPlace);
            }
            if (!itemModelDict.ContainsKey(equipPlace))
            {
                Dictionary<int, ItemModel> dict = new Dictionary<int, ItemModel>();
                if (putOnModel == null)
                if (IsFightUp(itemModel.itemId,itemModel.equipScore) == 1)
                {
                    dict.Add(itemModel.itemInfo.ItemPlace, itemModel);
                    itemModelDict.Add(equipPlace, dict);
                }
                else
                {
                    if (itemModel.equipScore > putOnModel.equipScore)
                    {
                        dict.Add(itemModel.itemInfo.ItemPlace, itemModel);
                        itemModelDict.Add(equipPlace, dict);
                    }
                }
            }
            else
            {
                if(putOnModel == null)
                if (IsFightUp(itemModel.itemId, itemModel.equipScore) == 1)
                {
                    if (!itemModelDict[equipPlace].ContainsKey(itemModel.itemInfo.ItemPlace))
                    {
                        itemModelDict[equipPlace].Add(itemModel.itemInfo.ItemPlace, itemModel);
                    }
                }
                else
                {
                    if (itemModel.equipScore > putOnModel.equipScore)
                    {
                        itemModelDict[equipPlace].Add(itemModel.itemInfo.ItemPlace, itemModel);
                    }
                    itemModelDict[equipPlace].Add(itemModel.itemInfo.ItemPlace, itemModel);
                }
            }
@@ -1445,65 +1451,17 @@
                }
            }
            return CheckPutOnLimit(itemModel.itemId);
            return CheckPutOnRealm(itemModel.chinItemModel);
        }
        private bool CheckPutOnLimit(int itemId)
        private bool CheckPutOnRealm(ItemConfig config)
        {
            int playerLv = PlayerDatas.Instance.baseData.LV;
            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemId);
            if (itemConfig == null) return false;
            if (itemConfig.EquipPlace != (int)RoleEquipType.retWing)
            var _realmLv = config.RealmLimit;
            if (PlayerDatas.Instance.baseData.realmLevel < _realmLv)
            {
                if (itemConfig.UseLV > playerLv) return false;
                float sumOffsetPoint = 0;
                float offset = 0;
                if (itemConfig.LimitSTR != 0)
                {
                    offset = itemConfig.LimitSTR - UIHelper.GetPropertyMapPlayerData(AttrEnum.POWER);
                    sumOffsetPoint += offset;
                }
                if (itemConfig.LimitPHY != 0)
                {
                    offset = itemConfig.LimitPHY - UIHelper.GetPropertyMapPlayerData(AttrEnum.AGILITY);
                    sumOffsetPoint += offset;
                }
                if (itemConfig.LimitPNE != 0)
                {
                    offset = itemConfig.LimitPNE - UIHelper.GetPropertyMapPlayerData(AttrEnum.MENTALITY);
                    sumOffsetPoint += offset;
                }
                if (sumOffsetPoint <= PlayerDatas.Instance.baseData.FreePoint)
                {
                    if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AddPoint))
                    {
                        return true;
                    }
                }
                return false;
            }
            else
            {
                var _realmLv = 1;
                GeneralDefine.wingEquipLimits.TryGetValue(itemId, out _realmLv);
                var needRealmConfig = Config.Instance.Get<RealmConfig>(_realmLv);
                var curRealmConfig = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel);
                if (PlayerDatas.Instance.baseData.realmLevel < _realmLv)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            return true;
        }
        #endregion
@@ -1576,7 +1534,7 @@
            ItemConfig chinItemModel = Config.Instance.Get<ItemConfig>(_itemID);
            if (chinItemModel != null)
            {
                if (chinItemModel.Type < 101 || chinItemModel.Type >= 110) return 0;
                if (chinItemModel.EquipPlace < 1 || chinItemModel.EquipPlace > 12) return 0;
                ItemModel model = playerPack.GetItemModelByIndex(PackType.rptEquip,chinItemModel.EquipPlace);
                if (chinItemModel.EquipPlace == (int)RoleEquipType.retFairyCan)
                {