【装备套装】 套装属性向下兼容

dev_chengFeng
zhangqiang 2020-12-11 17:31:11 +08:00
parent 72e1cd322b
commit 03e0e73665
4 changed files with 89 additions and 53 deletions

View File

@ -1654,4 +1654,9 @@ function SetHeroIcon(heroData,icon,heroConfig)
local heroSkinconfig = ConfigManager.GetConfigDataByKey(ConfigName.HeroSkin,"Type",heroData.skinId)
icon.sprite = Util.LoadSprite(GetResourcePath(heroSkinconfig.Icon))
end
end
function GetEquipSuitStr(Star,num)
return string.format("%s件%s%s星激活",num,QualityNameDef[ ConfigManager.GetConfigDataByKey(ConfigName.EquipConfig,"Star",Star).Quality],ConfigManager.GetConfigData(ConfigName.EquipStarsConfig,Star).Stars)
end

View File

@ -887,7 +887,7 @@ local function CalculateHeroUpEquipsProAddVal(_heroId)
local curHeroData = HeroManager.GetSingleHeroData(_heroId)
if curHeroData then
--Log("#curHeroData.equipIdList "..#curHeroData.equipIdList)
local equipSuit = {}
local equipSuit = this.GetCurHeroEquipSuitPros(curHeroData.equipIdList)
--[id] = 件数
for i = 1, #curHeroData.equipIdList do
local curEquip = EquipManager.GetSingleHeroSingleEquipData(curHeroData.equipIdList[i], _heroId)
@ -901,33 +901,19 @@ local function CalculateHeroUpEquipsProAddVal(_heroId)
addAllProVal[id] = value
end
end
--套装加成
if equipSuit[curEquip.equipConfig.SuiteID] then
equipSuit[curEquip.equipConfig.SuiteID] = equipSuit[curEquip.equipConfig.SuiteID] + 1
else
equipSuit[curEquip.equipConfig.SuiteID] = 1
end
end
end
if equipSuit and LengthOfTable(equipSuit) > 0 then
for i, v in pairs(equipSuit) do
if equipSuit and #equipSuit > 0 then
for i, v in ipairs(equipSuit) do
local curSuitConfig = equipsuite[i]
if v > 1 then
if curSuitConfig and curSuitConfig.SuiteValue then
for j = 1, #curSuitConfig.SuiteValue do
if v >= curSuitConfig.SuiteValue[j][1] then
local curProId = curSuitConfig.SuiteValue[j][2]
local curProVal = curSuitConfig.SuiteValue[j][3]
--LogError("套装激活 "..i .." "..v.." curProId "..curProId .." "..curProVal)
if addAllProVal[curProId] then
addAllProVal[curProId] = addAllProVal[curProId] + curProVal
else
addAllProVal[curProId] = curProVal
end
end
end
end
local curProId = equipSuit[i][2][2]
local curProVal = equipSuit[i][2][3]
-- LogError("套装激活 curProId "..curProId .." "..curProVal)
if addAllProVal[curProId] then
addAllProVal[curProId] = addAllProVal[curProId] + curProVal
else
addAllProVal[curProId] = curProVal
end
end
end
@ -3374,4 +3360,43 @@ function this.ChangeDownSkinId(heroSId,skinId)
end
Game.GlobalEvent:DispatchEvent(GameEvent.Role.UpdateSkin)
end
--套装新属性计算
--{{Star,{4#61#100}}{}{}
local equipSuiteConfig = ConfigManager.GetConfig(ConfigName.EquipSuiteConfig)
function this.GetCurHeroEquipSuitPros(equipIdList)
local equipSuit = {}
local curEquipLists = {}
for i = 1, #equipIdList do
--套装加成
local curEquip = EquipManager.GetSingleEquipData(equipIdList[i])
if equipSuiteConfig[curEquip.equipConfig.Star] then--有套装
table.insert(curEquipLists,curEquip)
if #curEquipLists > 1 then
end
end
end
table.sort(curEquipLists, function(a, b)
return a.equipConfig.Star < b.equipConfig.Star
end)
local num = #curEquipLists
-- LogPink("num "..num)
for i = 1, #curEquipLists do
for _, configInfo in ConfigPairs(ConfigManager.GetConfig(ConfigName.EquipSuiteConfig)) do
if configInfo.Id == curEquipLists[i].equipConfig.Star then
if num > 1 then
-- LogPink("curEquipLists[i].equipConfig.Star "..curEquipLists[i].equipConfig.Star.." "..num)
local curequipSuit = {curEquipLists[i].equipConfig.Star,configInfo.SuiteValue[num - 1]}
table.insert(equipSuit,curequipSuit)
end
num = num - 1
end
end
end
-- for i = 1, #equipSuit do
-- LogPink(equipSuit[i][1].. " " ..equipSuit[i][2][1])
-- end
return equipSuit
end
return this

View File

@ -194,9 +194,10 @@ function RewardEquipSingleShowPopup:OnShow()
end
--套装属性
if equipConfigData.SuiteID and equipConfigData.SuiteID > 0 then
local suitConFig = ConfigManager.GetConfig(ConfigName.EquipSuiteConfig)
if suitConFig[equipConfigData.Star] then
Util.GetGameObject(self.transform, "Content/proRect"):SetActive(true)
local curSuitConFig = ConfigManager.GetConfigData(ConfigName.EquipSuiteConfig,equipConfigData.SuiteID)
local curSuitConFig = suitConFig[equipConfigData.Star]
if curSuitConFig then
for i = 1, math.max(#curSuitConFig.SuiteValue, #curSuitProGo) do
local go = curSuitProGo[i]
@ -213,7 +214,7 @@ function RewardEquipSingleShowPopup:OnShow()
local go = curSuitProGo[i]
go.gameObject:SetActive(true)
Util.GetGameObject(go.transform, "proName"):GetComponent("Text").text = "<color=#B9AC97>" .. propertyConfig[curSuitConFig.SuiteValue[i][2]].Info .."+ "..GetPropertyFormatStr(propertyConfig[curSuitConFig.SuiteValue[i][2]].Style,curSuitConFig.SuiteValue[i][3]) .. "</color>"
Util.GetGameObject(go.transform, "proVale"):GetComponent("Text").text = "<color=#B9AC97>(" .. curSuitConFig.SuiteValue[i][1] .. Language[11095]
Util.GetGameObject(go.transform, "proVale"):GetComponent("Text").text = "<color=#B9AC97>(" .. GetEquipSuitStr(equipConfigData.Star,curSuitConFig.SuiteValue[i][1]) .. ")</color>"
end
end
else

View File

@ -147,16 +147,7 @@ end
function RoleEquipChangePopup:OnShow()
if curHeroData then
equipSuit = {}
for i = 1, #curHeroData.equipIdList do
--套装加成
local curEquip = EquipManager.GetSingleEquipData(curHeroData.equipIdList[i])
if equipSuit[curEquip.equipConfig.SuiteID] then
equipSuit[curEquip.equipConfig.SuiteID] = equipSuit[curEquip.equipConfig.SuiteID] + 1
else
equipSuit[curEquip.equipConfig.SuiteID] = 1
end
end
equipSuit = HeroManager.GetCurHeroEquipSuitPros(curHeroData.equipIdList)
end
if type==1 then
this.curEquipText:SetActive(false)
@ -275,11 +266,24 @@ function this.ShowCurEquipData(index)
end
end
--套装属性
if equipConfigData.SuiteID and equipConfigData.SuiteID > 0 then
local endProList = {}
if type == 1 then
if equipSuiteConfig[equipConfigData.Star] then
for i = 1, #equipSuiteConfig[equipConfigData.Star].SuiteValue do
table.insert(endProList,{equipConfigData.Star,equipSuiteConfig[equipConfigData.Star].SuiteValue[i]})
end
end
else
endProList = equipSuit
-- if equipSuit and #equipSuit > 0 then
-- for i = 1, #equipSuit do
-- table.insert(endProList,equipSuit[i])
-- end
-- end
end
if endProList and #endProList > 0 then
this.curotherProscroll:SetActive(true)
local curSuitConFig = equipSuiteConfig[equipConfigData.SuiteID]
if curSuitConFig then
for i = 1, math.max(#curSuitConFig.SuiteValue, #curSuitProGo) do
for i = 1, math.max(#endProList, #curSuitProGo) do
local go = curSuitProGo[i]
if not go then
go = newObject(this.otherProPre)
@ -290,20 +294,21 @@ function this.ShowCurEquipData(index)
end
go.gameObject:SetActive(false)
end
for i = 1, #curSuitConFig.SuiteValue do
for i = 1, #endProList do
local go = curSuitProGo[i]
go.gameObject:SetActive(true)
--type=data[2]--1 穿戴 2 卸下 3 替换
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = "<color=#B9AC97>" .. propertyConfig[curSuitConFig.SuiteValue[i][2]].Info .."+ "..GetPropertyFormatStr(propertyConfig[curSuitConFig.SuiteValue[i][2]].Style,curSuitConFig.SuiteValue[i][3]) .. "</color>"
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "<color=#B9AC97>(" .. curSuitConFig.SuiteValue[i][1] .. Language[11095]
if type == 2 then
if equipSuit[curSuitConFig.Id] >= curSuitConFig.SuiteValue[i][1] then--激活的要变颜色
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = "<color=#66FF00>" .. propertyConfig[curSuitConFig.SuiteValue[i][2]].Info.."+ "..GetPropertyFormatStr(propertyConfig[curSuitConFig.SuiteValue[i][2]].Style,curSuitConFig.SuiteValue[i][3]) .. "</color>"
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "<color=#66FF00>(" .. curSuitConFig.SuiteValue[i][1] .. Language[11095]
end
local proId = endProList[i][2][2]
local proVa = endProList[i][2][3]
local suitNum = endProList[i][2][1]
local Star = endProList[i][1]
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = "<color=#B9AC97>" .. propertyConfig[proId].Info .."+ "..GetPropertyFormatStr(propertyConfig[proId].Style,proVa) .. "</color>"
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "<color=#B9AC97>(" .. GetEquipSuitStr(Star,suitNum) .. ")</color>"
if type == 2 then--激活的要变颜色
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = "<color=#66FF00>" .. propertyConfig[proId].Info .."+ "..GetPropertyFormatStr(propertyConfig[proId].Style,proVa) .. "</color>"
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "<color=#66FF00>(" .. GetEquipSuitStr(Star,suitNum) .. ")</color>"
end
end
end
else
this.curotherProscroll:SetActive(false)
end
@ -416,9 +421,9 @@ function this.NextCurEquipData()
end
end
--套装属性
if equipConfigData.SuiteID and equipConfigData.SuiteID > 0 then
if equipSuiteConfig[equipConfigData.Star] then
this.nexttherProscroll:SetActive(true)
local curSuitConFig = equipSuiteConfig[equipConfigData.SuiteID]
local curSuitConFig = equipSuiteConfig[equipConfigData.Star]
if curSuitConFig then
for i = 1, math.max(#curSuitConFig.SuiteValue, #nextSuitProGo) do
local go = nextSuitProGo[i]
@ -436,7 +441,7 @@ function this.NextCurEquipData()
go.gameObject:SetActive(true)
--type=data[2]--1 穿戴 2 卸下 3 替换
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = "<color=#B9AC97>" .. propertyConfig[curSuitConFig.SuiteValue[i][2]].Info .."+ "..curSuitConFig.SuiteValue[i][3].. "</color>"
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "<color=#B9AC97>(+" .. curSuitConFig.SuiteValue[i][1] .. Language[11095]
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "<color=#B9AC97>(+" .. GetEquipSuitStr(equipConfigData.Star,curSuitConFig.SuiteValue[i][1]) .. ")</color>"
end
end
else