少年修仙传客户端代码仓库
client_Hale
2018-08-20 21a1542f9d99466b2aedd0992a1032b37b4154a3
System/KnapSack/Logic/PackModelInterface.cs
@@ -7,7 +7,7 @@
namespace Snxxz.UI
{
    public class PackModelInterface : Model, IBeforePlayerDataInitialize
    public class PackModelInterface : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        private ItemConfig tagChinModel;
        private FuncConfigConfig _equipGSFormula;
@@ -88,6 +88,12 @@
            itemEffectCDDict.Clear();
            itemEffectTimelist.Clear();
        }
        public void OnPlayerLoginOk()
        {
        }
        public override void UnInit()
        {
@@ -582,7 +588,7 @@
            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
            if (singlePack == null) return false;
            int startLockIndex = singlePack.openGridCount - GetInitGridCount(PackType.rptItem);
            int startLockIndex = singlePack.openGridCount - playerPack.InitBagGridCnt;
            FuncConfigConfig _tagFuncModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("OpenBagItem");
            int haveCount = playerPack.GetItemCountByID(PackType.rptItem,itemId);
            Equation.Instance.Clear();
@@ -736,26 +742,57 @@
                RefreshPickItemEvent(type,guid);
            }
        }
        Dictionary<int, ItemModel> RealmBetterDict = new Dictionary<int, ItemModel>();
        public Dictionary<int, ItemModel> CheckBetterEquipByRealm()
        {
            RealmBetterDict.Clear();
            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
            if (singlePack == null) return RealmBetterDict;
            int realmLv = PlayerDatas.Instance.baseData.realmLevel;
            Dictionary<int,ItemModel> pairs = singlePack.GetPackModelIndexDict();
            foreach(var model in pairs.Values)
            {
                if(model.chinItemModel.EquipPlace > 0
                    && model.chinItemModel.EquipPlace != (int)RoleEquipType.retSpiritAnimal
                    && model.chinItemModel.RealmLimit <= realmLv
                    && !IsOverdue(model.itemInfo.ItemGUID,model.itemId,model.useDataDict)
                    && IsFightUp(model.itemId,model.equipScore) == 1)
                {
                    if(!RealmBetterDict.ContainsKey(model.EquipPlace))
                    {
                        RealmBetterDict.Add(model.EquipPlace,model);
                    }
                    else
                    {
                        if(model.equipScore > RealmBetterDict[model.EquipPlace].equipScore)
                        {
                            RealmBetterDict[model.EquipPlace] = model;
                        }
                    }
                }
            }
            return RealmBetterDict;
        }
        #endregion
        #region 解锁格子
        public int GetInitGridCount(PackType type)
        {
            FuncConfigConfig initGridCount = null;
            if (type == PackType.rptItem)
                initGridCount = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitBagCellCount");
            else if (type == PackType.rptWarehouse)
                initGridCount = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitDepotCellCount");
            return int.Parse(initGridCount.Numerical1);
        }
        public void OpenGrid(int chooseGridCount, PackType type)
        {
            SinglePackModel singlePack = playerPack.GetSinglePackModel(type);
            int openCount = chooseGridCount - singlePack.openGridCount;
            int index = chooseGridCount - GetInitGridCount(type);
            int index = 0;
            switch(type)
            {
                case PackType.rptItem:
                    index = chooseGridCount - playerPack.InitBagGridCnt;
                    break;
                case PackType.rptWarehouse:
                    index = chooseGridCount - playerPack.InitDepotGridCnt;
                    break;
            }
            itemTipsModel.SetExtendGirdModel(openCount,index, type);
            WindowCenter.Instance.Open<ExtendWin>();
        }