diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 00e8f3eaea..40fdab73ad 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -4399,7 +4399,19 @@ local passivityList = { -- [225] = function() + --王振兴添加 + local f1 = args[1] + local pro1 = args[2] + local ct1 = args[3] + local maxNum = args[4] + -- 紫+橙 + local num = OutDataManager.GetOutData(role.camp, OutDataName.MisteryLiquidUsedTimes) + num = min(maxNum, num) + BattleUtil.AddProp(role, pro1, f1 * num, ct1) + + + end, -- 斩杀生命低于[a]的敌人 @@ -4656,6 +4668,7 @@ local passivityList = { -- 紫+橙 local num = OutDataManager.GetOutData(role.camp, OutDataName.MisteryLiquidUsedTimes) + num = min(maxNum, num) BattleUtil.AddProp(role, pro1, f1 * num, ct1) end, diff --git a/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua b/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua index e845772cf3..73ecc2f0f0 100644 --- a/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua @@ -23,6 +23,7 @@ this.heroLvEnd = {} --3星=60,4=200,5=250 星级对应等级上限 --this.heroLvBreakNum={}--3星=9000,4=60000,5=60000 星级对应突破系数 this.heroPropertyScore = {} + --每个属性评分 this.heroPosCount = 5 this.heroQuantityCount = 6 @@ -74,6 +75,8 @@ end function this.UpdateHeroDatas(_msgHeroData, isFindHandBook) local heroData = {} heroData.soulPrintList = {} + --乘减属性集合 + heroData.MLSproList={} heroData.heroBackData = _msgHeroData heroData.dynamicId = _msgHeroData.id local _id = _msgHeroData.heroId @@ -887,7 +890,7 @@ local function CalculateHeroUpTalismanProAddVal(_heroId, _breakId, _upStarId,tea if skillIds and #skillIds > 0 then --talismanConFig.OpenSkillRules and #talismanConFig.OpenSkillRules > 0 then --单体加成 --单体等级限制加成 --团体加成 --减乘 singleHeroProVal, lvProVal, allHeroProVal, specialProVal = - this.CalculatePassiveSkillsValList(WarPowerType.Talisman, skillIds,teamCurPropertyName) + this.CalculatePassiveSkillsValList(WarPowerType.Talisman, skillIds,teamCurPropertyName,curHeroData) end end end @@ -1095,7 +1098,7 @@ local function CalculateHeroPassiveSkillProAddVal(_type, _heroId, _breakId, _upS end --单体加成 --单体等级限制加成 --团体加成 --减乘 singleHeroProVal, lvProVal, allHeroProVal, specialProVal = - this.CalculatePassiveSkillsValList(WarPowerType.Hero, allOpenPassiveSkillIds,teamCurPropertyName) + this.CalculatePassiveSkillsValList(WarPowerType.Hero, allOpenPassiveSkillIds,teamCurPropertyName,curHeroData) end return singleHeroProVal, lvProVal, allHeroProVal, specialProVal end @@ -1251,7 +1254,7 @@ end --- --- -function this.CalculatePassiveSkillsValList(index, skillids,teamCurPropertyName) +function this.CalculatePassiveSkillsValList(index, skillids,teamCurPropertyName,curHeroData) for k, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.PropertyConfig)) do this.allProVal[index].singleHeroProVal[k] = 0 this.allProVal[index].lvProVal[k] = 0 @@ -1270,7 +1273,8 @@ function this.CalculatePassiveSkillsValList(index, skillids,teamCurPropertyName) this.allProVal[index].specialProVal, curSkillData.Value[1], curSkillData.Value[2], - curSkillData.Value[3] + curSkillData.Value[3], + curHeroData ) elseif curSkillData.Type == 94 then this.GetProAndValByFormula( @@ -1392,6 +1396,11 @@ function this.GetProAndValByFormula(proTable, specialProVal, curProId, curProVal elseif curProlGs == 4 then --公式 (百分比减a*(1-b)) --目前没有 --specialProVal + local curProConfig = ConfigManager.GetConfigDataByKey(ConfigName.PropertyConfig, "PropertyIdInBattle", curProId) + local singleProInfo = {proId =curProConfig.PropertyId ,value = curProVal} + if heroPro.MLSproList then + table.insert(heroPro.MLSproList,singleProInfo) + end else --171 无公式 local curProConfig = ConfigManager.GetConfigDataByKey(ConfigName.PropertyConfig, "PropertyIdInBattle", curProId) if propertyConfig[curProConfig.PropertyId].Style == 1 then @@ -1702,7 +1711,18 @@ function this.CalculateHeroAllProValList(_type, _heroDid, isWar, _breakId, _upSt --allAddProVal[k]=math.floor(allAddProVal[k]*0.1/(curHeroData.lv+10)/100) end end - +--目前没有 王振兴加 最后计算个属性的乘减算 +if LengthOfTable(curHeroData.MLSproList)>0 then + for k, v in pairs(curHeroData.MLSproList) do + local mlsPro=curHeroData.MLSproList[k] + if allAddProVal[mlsPro.proId] then + local aaa=1-mlsPro.value + local value=math.floor(allAddProVal[mlsPro.proId] * (1-mlsPro.value)) + allAddProVal[mlsPro.proId]=value + end + end +end +curHeroData.MLSproList={} --Log("allEquipScore "..allEquipScore) --最后计算英雄战斗力 if _type == 1 then