diff --git a/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangManager.lua b/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangManager.lua index 7d6e440ffb..68ab613e2b 100644 --- a/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangManager.lua @@ -38,9 +38,10 @@ function this.InitSingleTreasureData(_singleData,notAdd) single.maxRefineLv = currJewel.StarMax single.upHeroDid = "" -- single.race = currJewel.Race - -- single.frame = GetQuantityImageByquality(quantity) + -- single.name = GetLanguageStrById(itemConfig[staticId].Name) single.itemConfig = itemConfig[staticId] + single.frame = GetQuantityImageByquality(itemConfig[staticId].Quantity) single.levelPool = currJewel.LevelUpPool single.refinePool = currJewel.Star single.equipType = currJewel.Type @@ -51,7 +52,7 @@ function this.InitSingleTreasureData(_singleData,notAdd) -- else -- single.type = Language[10553] -- end - -- single.icon = GetResourcePath(itemConfig[staticId].ResourceID) + single.icon = GetResourcePath(itemConfig[staticId].ResourceID) single.strongConfig = this.GetCurrTreasureLvConfig(currJewel.LevelUpPool, _singleData.exp) -- single.refineConfig = this.GetCurrTreasureLvConfig(2, currJewel.Star, _singleData.rebuildLevel) -- if notAdd then @@ -74,6 +75,16 @@ function this.GetAllHeroEquipedTreasureData() return equips end +function this.GetFaXiangItemById(_id) + local equips={} + for i, v in pairs(allTreasures) do + if (v.upHeroDid == 0 or v.upHeroDid == "0") and v.id==_id then + table.insert(equips, v) + end + end + return equips,#equips +end + --设置装备穿戴的英雄 function this.SetEquipTreasureUpHeroDid(_equipTreasureDid, _heroDid) @@ -118,9 +129,16 @@ function this.ChangeTreasureLv(_idDyn, _type) end --获取当前等级的基础属性/精炼属性 -function this.GetCurrLvAndNextLvPropertyValue(_id, _lv) +function this.GetCurrLvAndNextLvPropertyValue(_id, _lv,_data) local lvConfig = nil local nexLvConfig = nil + local Para=0 + local starConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.FaxiangStarConfig,"PoolId",_data.refinePool,"Level",_data.refineLv) + if starConfig then + LogError("starConfig.id=="..starConfig.Id) + Para=starConfig.StarPara/10000 + end + --获取当前等级属性加成 for _, configInfo in ConfigPairs(faxiangLevelConfig) do if configInfo.PoolId == _id and configInfo.Level == _lv then @@ -137,16 +155,20 @@ function this.GetCurrLvAndNextLvPropertyValue(_id, _lv) end end local proList = {} + -- for key, value in pairs(addAllProVal) do + -- addEndAllProVal[key] = math.floor(value * (1 + Para)) + -- end if lvConfig then for i = 1, table.getn(lvConfig.LevelPara) do local info = lvConfig.LevelPara[i] if info then local index = info[1] local skillValue = {} - skillValue.currValue = info[2] + skillValue.currValue = math.floor(info[2] * (1 + Para)) proList[index] = skillValue end end + end --没有下一等级数据为已升到最高级 if nexLvConfig then @@ -155,10 +177,10 @@ function this.GetCurrLvAndNextLvPropertyValue(_id, _lv) local info = nexLvConfig.LevelPara[i] if info then if proList[info[1]] then - proList[info[1]].nextValue = info[2] + proList[info[1]].nextValue = math.floor(info[2] * (1 + Para)) else local skillValue = {} - skillValue.currValue = info[2] + skillValue.currValue = math.floor(info[2] * (1 + Para)) proList[info[1]] = skillValue end end @@ -171,9 +193,60 @@ function this.GetCurrLvAndNextLvPropertyValue(_id, _lv) return proList end +--获取当前星级的基础属性/精炼属性 +function this.GetCurrStarAndNextStarPropertyValue(_id, _lv,_data) + local lvConfig = nil + local nexLvConfig = nil + local Para=0 + local nextPara=0 + + local starConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.FaxiangStarConfig,"PoolId",_data.refinePool,"Level",_data.refineLv) + if starConfig then + LogError("starConfig.id=="..starConfig.Id) + Para=starConfig.StarPara/10000 + end + + if _data.refineLv==_data.maxRefineLv then + nextPara=Para + else + local nextStarConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.FaxiangStarConfig,"PoolId",_data.refinePool,"Level",_data.refineLv+1) + nextPara=nextStarConfig.StarPara/10000 + end + --获取当前等级属性加成 + for _, configInfo in ConfigPairs(faxiangLevelConfig) do + if configInfo.PoolId == _id and configInfo.Level == _lv then + lvConfig = configInfo + break + end + end + + local proList = {} + if lvConfig then + for i = 1, table.getn(lvConfig.LevelPara) do + local info = lvConfig.LevelPara[i] + if info then + local index = info[1] + local skillValue = {} + skillValue.currValue = info[2] + proList[index] = skillValue + end + end + end + for key, value in pairs(proList) do + value.currValue=math.floor(value.currValue * (1 + Para)) + value.nextValue=math.floor(value.currValue * (1 + nextPara)) + end + + return proList +end + + + + + --获取法相升级消耗 -function this.GetFaXiangLevelCost(pool,lv) - local levelConfig=ConfigManager.GetConfigDataByDoubleKey(ConfigName.FaxiangLevelConfig,"PoolId",pool,"Level",lv) +function this.GetFaXiangLevelCost(_pool,_lv) + local levelConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.FaxiangStarConfig,"PoolId",_pool,"Level",_lv) if levelConfig then local items={} for i = 1,#levelConfig.PropList do @@ -202,8 +275,58 @@ function this.GetFaXiangLevelCost(pool,lv) end --获取法相升级消耗 -function this.GetFaXiangStarCost() - +function this.GetFaXiangStarCost(_poolId,_star,_data) + local config=ConfigManager.GetConfigDataByDoubleKey(ConfigName.FaxiangLevelConfig,"PoolId",_poolId,"Level",_star) + local items={} + if config and config.PropList then + for i = 1, #config.PropList do + local id=config.PropList[i] + local item={} + --同类型宝物 + local type=id[1] + if type==1 then + item.id=_data.id + item.icon=_data.icon + item.frame=_data.frame + local equips,num=FaXiangManager.GetFaXiangItemById(_data.id) + if equips then + item.haveNum= num + else + item.haveNum=0 + end + item.needNum=id[2] + if item.haveNum>=item.needNum then + item.isEnough=true + else + item.isEnough=false + end + items[#items+1]=item + else + item.id=type + local config=itemConfig[type] + if config then + item.icon=GetResourcePath(config.ResourceID) + item.frame=GetQuantityImageByquality(config.Quantity) + item.haveNum=BagManager.GetItemById(type) + item.needNum=id[2] + if item.haveNum>=item.needNum then + item.isEnough=true + else + item.isEnough=false + end + items[#items+1]=item + end + end + end + end + local isEnough = true + for k,v in pairs(items) do + if not v.isEnough then + isEnough = false + break + end + end + return items,isEnough end function this.CalculateWarForceBase(sId, lv, rlv, curTreasure) @@ -378,6 +501,7 @@ end function this.CalculateWarForceBase(sId, lv, rlv, tlv,curTreasure) -- LogGreen("sId:"..sId.." lv:"..lv.." rlv:"..rlv.." tlv:"..tlv) local curEuipTreaSureConfig = ConfigManager.GetConfigData(ConfigName.FaxiangConfig, sId) + local addEndAllProVal={} if curEuipTreaSureConfig then local addAllProVal = {} --主属性 @@ -393,22 +517,19 @@ function this.CalculateWarForceBase(sId, lv, rlv, tlv,curTreasure) end end end - --精炼的属性 - if - configInfo.PoolID == curEuipTreaSureConfig.RankupPool and - configInfo.Level == rlv - then - for j = 1, #configInfo.Property do - if addAllProVal[configInfo.Property[j][1]] then - addAllProVal[configInfo.Property[j][1]] = - addAllProVal[configInfo.Property[j][1]] + configInfo.Property[j][2] - else - addAllProVal[configInfo.Property[j][1]] = configInfo.Property[j][2] - end - end + + local starConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.FaxiangStarConfig,"PoolId",curEuipTreaSureConfig.Star,"Level",rlv) + + if starConfig then + LogError("starConfig.id=="..starConfig.Id) + local Para=starConfig.StarPara/10000 + for key, value in pairs(addAllProVal) do + addEndAllProVal[key] = math.floor(value * (1 + Para)) + end end + end - local powerEndVal = HeroPowerManager.CalPower(addAllProVal) + local powerEndVal = HeroPowerManager.CalPower(addEndAllProVal) return powerEndVal end end diff --git a/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangStrongPopup.lua b/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangStrongPopup.lua index a6e8bb8f0e..c1dc001c76 100644 --- a/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangStrongPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/RoleInfo/FaXiangStrongPopup.lua @@ -74,7 +74,7 @@ function FaXiangStrongPopup:BindEvent() return end this:SetWindShow(1,0) - this:RefreshRedPoint(0,false) + -- this:RefreshRedPoint(0,false) end) --精炼页签 Util.AddClick(this.btn_refinePage, function() @@ -82,16 +82,12 @@ function FaXiangStrongPopup:BindEvent() return end this:SetWindShow(2,0) - this:RefreshRedPoint(0,false) + --this:RefreshRedPoint(0,false) end) --神应页签 Util.AddClick(this.btn_shenyingPage, function() - if type == 3 then - return - end - this:SetWindShow(3,0) - this:RefreshRedPoint(0,false) + end) --强化按钮 @@ -114,7 +110,7 @@ function FaXiangStrongPopup:BindEvent() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,matId) return end - NetManager.StrongthenFaxiangEquipRequest(curEquipData.idDyn,curEquipData.lv+1,1,function (msg) + NetManager.StrongthenFaxiangEquipRequest(curEquipData.idDyn,curEquipData.lv+1,1,curEquipData,function (msg) FaXiangManager.ChangeTreasureLv(curEquipData.idDyn,1) this.treasureDatas[curIndex]:OnOpen(false, {curEquipData.id,0}, 1, false, false, false, 0,curEquipData.idDyn) this:SetWindShow(type,0) @@ -363,7 +359,7 @@ function FaXiangStrongPopup:SetWindShow(_index) this.btnStrongText.text = Language[11777] this.properList[0].rightTxt.text = string.format( "%d/%d",curEquipData.lv+1,curEquipData.maxLv) end - propertyShow = FaXiangManager.GetCurrLvAndNextLvPropertyValue(curEquipData.levelPool,curEquipData.lv) + propertyShow = FaXiangManager.GetCurrLvAndNextLvPropertyValue(curEquipData.levelPool,curEquipData.lv,curEquipData) --显示消耗 LogError("curEquipData.strongConfig.id=="..curEquipData.strongConfig.Id) --items = FaXiangManager.GetCostItems(curEquipData.idDyn,curEquipData.strongConfig) @@ -375,13 +371,13 @@ function FaXiangStrongPopup:SetWindShow(_index) end elseif _index == 2 then - this.titleTxt.text=Language[11779] + this.titleTxt.text="法相升星" this.btnRefine:SetActive(true) this.btnStrong:SetActive(false) this.btnShenying:SetActive(false) this.SetBtnSelect(this.btn_refinePage) isMax=curEquipData.refineLv==curEquipData.maxRefineLv - this.properList[0].leftTxt.text = "精炼等级" + this.properList[0].leftTxt.text = "法相星级" if isMax then this.properList[0].rightTxt.text = Language[11062] this.btnRefine.gameObject:SetActive(false) @@ -389,8 +385,8 @@ function FaXiangStrongPopup:SetWindShow(_index) this.btnRefineText.text=Language[11781] this.properList[0].rightTxt.text = string.format( "%d/%s",curEquipData.refineLv+1,curEquipData.maxRefineLv) end - propertyShow = EquipTreasureManager.GetCurrLvAndNextLvPropertyValue(2,curEquipData.refinePool,curEquipData.refineLv) - items = HeroManager.GetCostItems(curEquipData.idDyn,curEquipData.refineConfig) + propertyShow = FaXiangManager.GetCurrStarAndNextStarPropertyValue(2,curEquipData.refineLv,curEquipData) + items = FaXiangManager.GetFaXiangStarCost(curEquipData.refinePool,curEquipData.refineLv,curEquipData) if curEquipData.quantity == 6 then this.hintTxt.text = "精炼等级已达上限" else