少年修仙传客户端代码仓库
leonard Wu
2018-08-03 c2d2d5d3a840bf50968b3f95e304929bc62a7b70
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -121,28 +121,51 @@
                }
                else
                {
                    if(sendItemConfig.EquipPlace != (int)RoleEquipType.retWing)
                    {
                        CheckPutOnNeed();
                    }
                    else
                    {
                        CheckPutOnRealm();
                    }
                    CheckEquipUselimit(sendItemConfig);
                }
            }
            else
            {
                if (sendItemConfig.EquipPlace != (int)RoleEquipType.retWing)
                CheckEquipUselimit(sendItemConfig);
            }
        }
        public bool CheckEquipUselimit(ItemConfig config)
        {
            int[] uselimits = config.UseCondiType;
            if (uselimits == null || uselimits.Length < 1)
            {
                CheckPutOnPlace();
                return true;
            }
            bool isCanPut = true;
            for(int i = 0; i < uselimits.Length; i++)
            {
                switch(uselimits[i])
                {
                    CheckPutOnNeed();
                }
                else
                {
                    CheckPutOnRealm();
                    case 0:
                        int playerLv = PlayerDatas.Instance.baseData.LV;
                        if (playerLv < config.UseLV)
                        {
                            isCanPut = false;
                            int remainLv = config.UseLV - playerLv;
                            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("EquipWinLevelLimit", config.UseLV, remainLv));
                        }
                        break;
                    case 1:
                        isCanPut = CheckPutOnRealm(config);
                        break;
                    case 2:
                        isCanPut = CheckPutOnNeed();
                        break;
                }
            }
            if(isCanPut)
            {
                CheckPutOnPlace();
            }
            return isCanPut;
        }
        /// <summary>
@@ -155,202 +178,188 @@
        private Dictionary<AttrEnum, int> sumNeedlist = new Dictionary<AttrEnum, int>();
        private float sumOffsetPoint = 0;
        private int sumNeedPoint = 0;
        private void CheckPutOnNeed()
        private bool CheckPutOnNeed()
        {
            int playerJob = PlayerDatas.Instance.baseData.Job;
            if (playerJob != Math.Floor((double)sendItemConfig.JobLimit / 100) && sendItemConfig.JobLimit != 0)
            {
                SysNotifyMgr.Instance.ShowTip("GeRen_lhs_31379");
                return;
                return false;
            }
            int jobRank = sendItemConfig.JobLimit % 10;
            int playerLv = PlayerDatas.Instance.baseData.LV;
            if (playerLv < sendItemConfig.UseLV)
            offsetConditionStr.Length = 0;
            sumOffsetlist.Clear();
            sumNeedlist.Clear();
            sumOffsetPoint = 0;
            sumNeedPoint = 0;
            needConditionStr.Length = 0;
            upgradConditionStr.Length = 0;
            float offset = 0;
            if (sendItemConfig.LimitSTR != 0)
            {
                int remainLv = sendItemConfig.UseLV - playerLv;
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("EquipWinLevelLimit", sendItemConfig.UseLV,remainLv));
            }
            else
            {
                offsetConditionStr.Length = 0;
                sumOffsetlist.Clear();
                sumNeedlist.Clear();
                sumOffsetPoint = 0;
                sumNeedPoint = 0;
                needConditionStr.Length = 0;
                upgradConditionStr.Length = 0;
                float offset = 0;
                if (sendItemConfig.LimitSTR != 0)
                offset = sendItemConfig.LimitSTR - UIHelper.GetPropertyMapPlayerData(AttrEnum.POWER);
                if (offset > 0)
                {
                    offset = sendItemConfig.LimitSTR - UIHelper.GetPropertyMapPlayerData(AttrEnum.POWER);
                    if (offset > 0)
                    if (offsetConditionStr.Length > 0)
                    {
                        if (offsetConditionStr.Length > 0)
                        {
                            offsetConditionStr.Append("\n" + Language.Get("KnapS136", offset));
                        }
                        else
                        {
                            offsetConditionStr.Append(Language.Get("KnapS136", offset));
                        }
                        if(upgradConditionStr.Length > 0)
                        {
                            upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS136", sendItemConfig.LimitSTR), offset));
                        }
                        else
                        {
                            upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS136", sendItemConfig.LimitSTR), offset));
                        }
                        sumOffsetPoint += offset;
                        sumNeedPoint += sendItemConfig.LimitSTR;
                        sumOffsetlist.Add(AttrEnum.POWER, offset);
                    }
                    sumNeedlist.Add(AttrEnum.POWER, sendItemConfig.LimitSTR);
                    if (needConditionStr.Length > 0)
                    {
                        needConditionStr.Append("\n" + Language.Get("KnapS136", sendItemConfig.LimitSTR));
                        offsetConditionStr.Append("\n" + Language.Get("KnapS136", offset));
                    }
                    else
                    {
                        needConditionStr.Append(Language.Get("KnapS136", sendItemConfig.LimitSTR));
                        offsetConditionStr.Append(Language.Get("KnapS136", offset));
                    }
                    if (upgradConditionStr.Length > 0)
                    {
                        upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS136", sendItemConfig.LimitSTR), offset));
                    }
                    else
                    {
                        upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS136", sendItemConfig.LimitSTR), offset));
                    }
                    sumOffsetPoint += offset;
                    sumNeedPoint += sendItemConfig.LimitSTR;
                    sumOffsetlist.Add(AttrEnum.POWER, offset);
                }
                if (sendItemConfig.LimitPHY != 0)
                sumNeedlist.Add(AttrEnum.POWER, sendItemConfig.LimitSTR);
                if (needConditionStr.Length > 0)
                {
                    offset = sendItemConfig.LimitPHY - UIHelper.GetPropertyMapPlayerData(AttrEnum.AGILITY);
                    if (offset > 0)
                    {
                        if (offsetConditionStr.Length > 0)
                        {
                            offsetConditionStr.Append("\n" + Language.Get("KnapS135", offset));
                        }
                        else
                        {
                            offsetConditionStr.Append(Language.Get("KnapS135", offset));
                        }
                        if (upgradConditionStr.Length > 0)
                        {
                            upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS135", sendItemConfig.LimitPHY), offset));
                        }
                        else
                        {
                            upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS135", sendItemConfig.LimitPHY), offset));
                        }
                        sumOffsetPoint += offset;
                        sumNeedPoint += sendItemConfig.LimitPHY;
                        sumOffsetlist.Add(AttrEnum.AGILITY, offset);
                    }
                    sumNeedlist.Add(AttrEnum.AGILITY, sendItemConfig.LimitPHY);
                    if (needConditionStr.Length > 0)
                    {
                        needConditionStr.Append("\n" + Language.Get("KnapS135", sendItemConfig.LimitPHY));
                    }
                    else
                    {
                        needConditionStr.Append(Language.Get("KnapS135", sendItemConfig.LimitPHY));
                    }
                }
                if (sendItemConfig.LimitPNE != 0)
                {
                    offset = sendItemConfig.LimitPNE - UIHelper.GetPropertyMapPlayerData(AttrEnum.MENTALITY);
                    if (offset > 0)
                    {
                        if (offsetConditionStr.Length > 0)
                        {
                            offsetConditionStr.Append("\n" + Language.Get("KnapS137", offset));
                        }
                        else
                        {
                            offsetConditionStr.Append(Language.Get("KnapS137", offset));
                        }
                        if (upgradConditionStr.Length > 0)
                        {
                            upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS137", sendItemConfig.LimitPNE), offset));
                        }
                        else
                        {
                            upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS137", sendItemConfig.LimitPNE), offset));
                        }
                        sumOffsetPoint += offset;
                        sumOffsetlist.Add(AttrEnum.MENTALITY, offset);
                        sumNeedPoint += sendItemConfig.LimitPNE;
                    }
                    sumNeedlist.Add(AttrEnum.MENTALITY, sendItemConfig.LimitPNE);
                    if (needConditionStr.Length > 0)
                    {
                        needConditionStr.Append("\n" + Language.Get("KnapS137", sendItemConfig.LimitPNE));
                    }
                    else
                    {
                        needConditionStr.Append(Language.Get("KnapS137", sendItemConfig.LimitPNE));
                    }
                }
                if (offsetConditionStr.Length > 0)
                {
                    if (sumOffsetPoint <= PlayerDatas.Instance.baseData.FreePoint)
                    {
                        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS132", offsetConditionStr.ToString()), (bool isOk) => {
                            if (isOk)
                            {
                                if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AddPoint))
                                {
                                    foreach (var key in sumOffsetlist.Keys)
                                    {
                                        PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshFreePoint;
                                        rolePointModel.SendAddPoint((int)key, (int)sumOffsetlist[key]);
                                    }
                                }
                                else
                                {
                                    FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.AddPoint);
                                }
                            }
                        });
                    }
                    else
                    {
                        FuncConfigConfig addPointFunc = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("LVUPAddPoint");
                        int[] rankValue = ConfigParse.GetMultipleStr<int>(addPointFunc.Numerical1);
                        if (addPointFunc != null)
                        {
                            double needUpgradLV = System.Math.Ceiling((sumOffsetPoint - PlayerDatas.Instance.baseData.FreePoint) / rankValue[jobRank - 1]);
                            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS134",upgradConditionStr.ToString(), needUpgradLV.ToString()));
                        }
                    }
                    needConditionStr.Append("\n" + Language.Get("KnapS136", sendItemConfig.LimitSTR));
                }
                else
                {
                    CheckPutOnPlace();
                    needConditionStr.Append(Language.Get("KnapS136", sendItemConfig.LimitSTR));
                }
            }
            if (sendItemConfig.LimitPHY != 0)
            {
                offset = sendItemConfig.LimitPHY - UIHelper.GetPropertyMapPlayerData(AttrEnum.AGILITY);
                if (offset > 0)
                {
                    if (offsetConditionStr.Length > 0)
                    {
                        offsetConditionStr.Append("\n" + Language.Get("KnapS135", offset));
                    }
                    else
                    {
                        offsetConditionStr.Append(Language.Get("KnapS135", offset));
                    }
                    if (upgradConditionStr.Length > 0)
                    {
                        upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS135", sendItemConfig.LimitPHY), offset));
                    }
                    else
                    {
                        upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS135", sendItemConfig.LimitPHY), offset));
                    }
                    sumOffsetPoint += offset;
                    sumNeedPoint += sendItemConfig.LimitPHY;
                    sumOffsetlist.Add(AttrEnum.AGILITY, offset);
                }
                sumNeedlist.Add(AttrEnum.AGILITY, sendItemConfig.LimitPHY);
                if (needConditionStr.Length > 0)
                {
                    needConditionStr.Append("\n" + Language.Get("KnapS135", sendItemConfig.LimitPHY));
                }
                else
                {
                    needConditionStr.Append(Language.Get("KnapS135", sendItemConfig.LimitPHY));
                }
            }
            if (sendItemConfig.LimitPNE != 0)
            {
                offset = sendItemConfig.LimitPNE - UIHelper.GetPropertyMapPlayerData(AttrEnum.MENTALITY);
                if (offset > 0)
                {
                    if (offsetConditionStr.Length > 0)
                    {
                        offsetConditionStr.Append("\n" + Language.Get("KnapS137", offset));
                    }
                    else
                    {
                        offsetConditionStr.Append(Language.Get("KnapS137", offset));
                    }
                    if (upgradConditionStr.Length > 0)
                    {
                        upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS137", sendItemConfig.LimitPNE), offset));
                    }
                    else
                    {
                        upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS137", sendItemConfig.LimitPNE), offset));
                    }
                    sumOffsetPoint += offset;
                    sumOffsetlist.Add(AttrEnum.MENTALITY, offset);
                    sumNeedPoint += sendItemConfig.LimitPNE;
                }
                sumNeedlist.Add(AttrEnum.MENTALITY, sendItemConfig.LimitPNE);
                if (needConditionStr.Length > 0)
                {
                    needConditionStr.Append("\n" + Language.Get("KnapS137", sendItemConfig.LimitPNE));
                }
                else
                {
                    needConditionStr.Append(Language.Get("KnapS137", sendItemConfig.LimitPNE));
                }
            }
            if (offsetConditionStr.Length > 0)
            {
                if (sumOffsetPoint <= PlayerDatas.Instance.baseData.FreePoint)
                {
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS132", offsetConditionStr.ToString()), (bool isOk) => {
                        if (isOk)
                        {
                            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AddPoint))
                            {
                                foreach (var key in sumOffsetlist.Keys)
                                {
                                    PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshFreePoint;
                                    rolePointModel.SendAddPoint((int)key, (int)sumOffsetlist[key]);
                                }
                            }
                            else
                            {
                                FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.AddPoint);
                            }
                        }
                    });
                }
                else
                {
                    FuncConfigConfig addPointFunc = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("LVUPAddPoint");
                    int[] rankValue = ConfigParse.GetMultipleStr<int>(addPointFunc.Numerical1);
                    if (addPointFunc != null)
                    {
                        double needUpgradLV = System.Math.Ceiling((sumOffsetPoint - PlayerDatas.Instance.baseData.FreePoint) / rankValue[jobRank - 1]);
                        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS134", upgradConditionStr.ToString(), needUpgradLV.ToString()));
                    }
                }
                return false;
            }
            return true;
        }
        private StringBuilder curRealmImgStr = new StringBuilder();
        private StringBuilder needRealmImgStr = new StringBuilder();
        private void CheckPutOnRealm()
        private bool CheckPutOnRealm(ItemConfig config)
        {
            curRealmImgStr.Length = 0;
            needRealmImgStr.Length = 0;
            var _realmLv = 1;
            GeneralConfig.Instance.wingEquipLimits.TryGetValue(sendItemConfig.ID, out _realmLv);
            var _realmLv = config.RealmLimit;
            var needRealmConfig = ConfigManager.Instance.GetTemplate<RealmConfig>(_realmLv);
            var curRealmConfig = ConfigManager.Instance.GetTemplate<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel);
@@ -365,12 +374,10 @@
                {
                    curRealmImgStr.Append(Language.Get("Market_Text_33"));
                }
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS142",needRealmImgStr.ToString(),curRealmImgStr.ToString()));
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS142",needRealmImgStr.ToString(),curRealmImgStr.ToString()));
                return false;
            }
            else
            {
                CheckPutOnPlace();
            }
            return true;
        }
        private void RefreshFreePoint(PlayerDataRefresh refreshType)
@@ -677,12 +684,7 @@
            if(playerPack.CheckIsDrugById(useItemModel.itemInfo.ItemID))
            {
                if (PlayerDatas.Instance.baseData.LV < useItemModel.chinItemModel.UseLV)
                {
                    MessageWin.Inst.ShowFixedTip(Language.Get("MakeUseItem101", useItemModel.chinItemModel.UseLV));
                }
                else
                if(CheckItemUselimit(useItemModel.chinItemModel))
                {
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.MakeDrug);
                }
@@ -731,14 +733,38 @@
            }
        }
        public void CheckUseCondition(ItemModel itemModel)
        public bool CheckItemUselimit(ItemConfig config)
        {
            if (PlayerDatas.Instance.baseData.LV < itemModel.chinItemModel.UseLV)
            int[] uselimits = config.UseCondiType;
            if (uselimits == null) return true;
            for (int i = 0; i < uselimits.Length; i++)
            {
                MessageWin.Inst.ShowFixedTip(Language.Get("MakeUseItem101", itemModel.chinItemModel.UseLV));
                return;
                switch (uselimits[i])
                {
                    case 0:
                        int playerLv = PlayerDatas.Instance.baseData.LV;
                        if (playerLv < config.UseLV)
                        {
                            MessageWin.Inst.ShowFixedTip(Language.Get("MakeUseItem101", useItemModel.chinItemModel.UseLV));
                            return false;
                        }
                        break;
                    case 1:
                         return CheckPutOnRealm(config);
                }
            }
            return true;
        }
        public void CheckUseCondition(ItemModel itemModel)
        {
            if(!CheckItemUselimit(itemModel.chinItemModel))
            {
                return;
            }
            if(itemModel.chinItemModel.Type == 59)
            {
                playerPack.SetWashAttrPointModel(itemModel.itemInfo.ItemGUID);