少年修仙传客户端代码仓库
client_linchunjie
2018-12-22 e0e0eba7a960daf5febd3c76728e0c1f04d1f939
5367 【前端】【1.4】聚魂功能开发(公式修改)
1个文件已修改
35 ■■■■ 已修改文件
System/GatheringSoul/GatheringSoulModel.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatheringSoulModel.cs
@@ -151,10 +151,27 @@
            }
            funcConfig = Config.Instance.Get<FuncConfigConfig>("GatherSoulLevelUp");
            qualityCostModulus = new Dictionary<int, Dictionary<int, float>>();
            if (funcConfig != null)
            {
                levelUpCostFormula = funcConfig.Numerical1;
                qualityCostModulus = ConfigParse.GetDic<int, float>(funcConfig.Numerical2);
                var json = LitJson.JsonMapper.ToObject(funcConfig.Numerical2);
                foreach (var typeKey in json.Keys)
                {
                    var itemType = int.Parse(typeKey);
                    Dictionary<int, float> dict;
                    if (!qualityCostModulus.TryGetValue(itemType, out dict))
                    {
                        dict = new Dictionary<int, float>();
                        qualityCostModulus.Add(itemType, dict);
                    }
                    foreach (var key in json[typeKey].Keys)
                    {
                        var quality = int.Parse(key);
                        var modulus = float.Parse(json[typeKey][key].ToJson());
                        dict.Add(quality, modulus);
                    }
                }
                multiPropertyModulus = ConfigParse.GetDic<int, float>(funcConfig.Numerical3);
                qualityResolveCostDict = ConfigParse.GetDic<int, float>(funcConfig.Numerical4);
                soulStageModulusDict = ConfigParse.GetDic<int, float>(funcConfig.Numerical5);
@@ -1124,7 +1141,7 @@
        #region 消耗计算
        string levelUpCostFormula = string.Empty;
        Dictionary<int, float> levelUpFormulaCostDict = new Dictionary<int, float>();
        Dictionary<int, float> qualityCostModulus;
        Dictionary<int, Dictionary<int, float>> qualityCostModulus;
        Dictionary<int, float> multiPropertyModulus;
        Dictionary<int, float> soulStageModulusDict;
        public int RequireLevelUpCost(GatherSoulItem item)
@@ -1157,14 +1174,22 @@
            }
            var soulStageModulus = soulStageModulusDict != null && soulStageModulusDict.ContainsKey(stage) ?
                soulStageModulusDict[stage] : 1;
            var qualityModulus = 1f;
            if (qualityCostModulus.ContainsKey(itemConfig.Type))
            {
                if (qualityCostModulus[itemConfig.Type].ContainsKey(itemConfig.ItemColor))
                {
                    qualityModulus = qualityCostModulus[itemConfig.Type][itemConfig.ItemColor];
                }
            }
            if (multiPropertyModulus.ContainsKey(propertyCount))
            {
                result = formulaResult * qualityCostModulus[itemConfig.ItemColor]
                    * soulStageModulus * multiPropertyModulus[propertyCount];
                result = formulaResult * qualityModulus * soulStageModulus
                    * multiPropertyModulus[propertyCount];
            }
            else
            {
                result = formulaResult * qualityCostModulus[itemConfig.ItemColor] * soulStageModulus;
                result = formulaResult * qualityModulus * soulStageModulus;
            }
            return Mathf.RoundToInt(result);
        }