diff --git a/Assets/ManagedResources/~Lua/Data/UIData.lua b/Assets/ManagedResources/~Lua/Data/UIData.lua
index eb78c83bbe..b5a34b97ec 100644
--- a/Assets/ManagedResources/~Lua/Data/UIData.lua
+++ b/Assets/ManagedResources/~Lua/Data/UIData.lua
@@ -327,6 +327,7 @@ UIName = {
DynamicActivityPanel = 326,--轮转活动通用窗口
CompoundHeroPanel = 327,--神将置换、合成界面
CompoundHeroUpStarListPanel = 328,--角色合成操作弹窗
+ CompoundHeroFirstUpStarListPanel = 329,--角色合成首位操作弹窗
}
diff --git a/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroFirstUpStarListPanel.lua b/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroFirstUpStarListPanel.lua
new file mode 100644
index 0000000000..81cfc33e7c
--- /dev/null
+++ b/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroFirstUpStarListPanel.lua
@@ -0,0 +1,213 @@
+require("Base/BasePanel")
+CompoundHeroFirstUpStarListPanel = Inherit(BasePanel)
+local this = CompoundHeroFirstUpStarListPanel
+local curSelectHeroList={}
+local heroDataList={}
+local curNeedRoleNum
+local openThisPanel
+local curHeroData = {}
+--初始化组件(用于子类重写)
+function CompoundHeroFirstUpStarListPanel:InitComponent()
+
+ this.BtnBack = Util.GetGameObject(self.transform, "btnBack")
+ this.BtnSure = Util.GetGameObject(self.transform, "btnSure")
+ this.btnAutoSelect = Util.GetGameObject(self.transform, "btnAutoSelect")
+ this.cardPre = Util.GetGameObject(self.gameObject, "item")
+ --this.grid = Util.GetGameObject(self.gameObject, "scroll/grid")
+ this.desText = Util.GetGameObject(self.gameObject, "desText"):GetComponent("Text")
+ this.numText = Util.GetGameObject(self.gameObject, "numText"):GetComponent("Text")
+
+ this.Scrollbar= Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar")
+ this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,Util.GetGameObject(self.gameObject, "scroll").transform,
+ this.cardPre, this.Scrollbar, Vector2.New(927.5, 1010), 1, 5, Vector2.New(19.32,15))
+ this.ScrollView.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(6.78, 27)
+ this.ScrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5)
+ this.ScrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5)
+ this.ScrollView.moveTween.MomentumAmount = 1
+ this.ScrollView.moveTween.Strength = 1
+end
+
+--绑定事件(用于子类重写)
+function CompoundHeroFirstUpStarListPanel:BindEvent()
+
+ Util.AddClick(this.BtnBack, function()
+ -- PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
+ self:ClosePanel()
+ end)
+ Util.AddClick(this.BtnSure, function()
+ if LengthOfTable(curSelectHeroList) < 1 then
+ return
+ end
+ self:ClosePanel()
+ Log("curSelectHeroList "..LengthOfTable(curSelectHeroList))
+ openThisPanel.UpdateUpStarPosHeroData2(curSelectHeroList)
+ end)
+ Util.AddClick(this.btnAutoSelect, function()
+ self:AutoSelectHero()
+ end)
+end
+
+--添加事件监听(用于子类重写)
+function CompoundHeroFirstUpStarListPanel:AddListener()
+
+end
+
+--移除事件监听(用于子类重写)
+function CompoundHeroFirstUpStarListPanel:RemoveListener()
+
+end
+
+--界面打开时调用(用于子类重写)
+--1 是否是第一位置本体 2 所有可选英雄 3 4 升当前星的规则 5 打开RoleUpStarListPanel的界面 6 当前以选择的英雄 7 需要升级的英雄
+function CompoundHeroFirstUpStarListPanel:OnOpen(heroData,_openThisPanel,_curHeroData)
+
+ openThisPanel= _openThisPanel
+ curHeroData = _curHeroData
+ heroDataList = heroData
+ curSelectHeroList[_curHeroData.dynamicId] = _curHeroData
+ this.HeroSortData(heroDataList)
+ for i, v in pairs(heroDataList) do
+ for n,w in pairs(FormationManager.formationList) do
+ if HeroManager.heroResolveLicence[n] then
+ for m = 1, #w.teamHeroInfos do
+ if v.dynamicId==w.teamHeroInfos[m].heroId then
+ local isFormationStr = HeroManager.GetHeroFormationStr(n)
+ v.isFormation = isFormationStr
+ end
+ end
+ end
+ end
+ end
+ this.ScrollView:SetData(heroDataList, function (index, go)
+ this.OnShowSingleCardData(go, heroDataList[index])
+ end)
+
+ curNeedRoleNum=1
+ local str = _curHeroData.heroConfig.ReadingName
+ this.desText.text=string.format(Language[11872],curNeedRoleNum,str)--HeroRankupGroupData.Name)
+ this.numText.text=string.format("%s/%s",LengthOfTable(curSelectHeroList) ,curNeedRoleNum)
+end
+function this.OnClickEnterHero(go,heroData,type)
+
+ if type==1 then
+ if LengthOfTable(curSelectHeroList)>=curNeedRoleNum then
+ PopupTipPanel.ShowTip(Language[10660])
+ return
+ else
+ curSelectHeroList[heroData.dynamicId] = heroData.dynamicId
+ end
+ elseif type==2 then
+ if curSelectHeroList[heroData.dynamicId] then
+ curSelectHeroList[heroData.dynamicId] = nil
+ end
+ -- for i = 1, #curSelectHeroList do
+ -- if heroData.dynamicId==curSelectHeroList[i].dynamicId then
+ -- table.remove(curSelectHeroList,i)
+ -- break
+ -- end
+ -- end
+ end
+ this.OnShowSingleCardData(go,heroData,type)
+ this.numText.text=string.format("%s/%s",LengthOfTable(curSelectHeroList),curNeedRoleNum)
+end
+
+function this.OnShowSingleCardData(go,heroData)--isSelect 1选择 2 没选择
+ local choosed = Util.GetGameObject(go.transform, "choosed")
+ choosed:SetActive(false)
+ if curSelectHeroList[heroData.dynamicId] then
+ curSelectHeroList[heroData.dynamicId]=heroData
+ choosed:SetActive(true)
+ end
+ Util.GetGameObject(go.transform, "frame"):GetComponent("Image").sprite = Util.LoadSprite(GetHeroQuantityImageByquality(heroData.heroConfig.Quality,heroData.star))
+ Util.GetGameObject(go.transform, "lv/Text"):GetComponent("Text").text = heroData.lv
+ Util.GetGameObject(go.transform, "icon"):GetComponent("Image").sprite = Util.LoadSprite(GetResourcePath(heroData.heroConfig.Icon))
+ Util.GetGameObject(go.transform, "posIcon"):SetActive(false)--:GetComponent("Image").sprite = Util.LoadSprite(heroData.professionIcon)
+ Util.GetGameObject(go.transform, "proIcon"):GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(heroData.heroConfig.PropertyName))
+ local formationMask = Util.GetGameObject(go.transform, "formationMask")
+ -- formationMask:SetActive(false)
+ formationMask:SetActive((heroData.isFormation ~= "" and heroData.isFormation ~= Language[11108]) or heroData.lockState == 1)
+ Util.GetGameObject(formationMask.transform, "formationImage"):SetActive(heroData.isFormation ~= "" )
+ Util.GetGameObject(formationMask.transform, "lockImage"):SetActive( heroData.lockState == 1)
+ Util.GetGameObject(go.transform, "noumenon"):SetActive( heroData.id == curHeroData.id )
+ local starGrid = Util.GetGameObject(go.transform, "star")
+ SetHeroStars(starGrid, heroData.star,1,nil,nil,Vector2.New(0,1))
+ local cardBtn = Util.GetGameObject(go.transform, "icon")
+ Util.AddOnceClick(cardBtn, function()
+ if curSelectHeroList[heroData.dynamicId] then
+ choosed:SetActive(false)
+ curSelectHeroList[heroData.dynamicId]=nil
+ this.numText.text=string.format("%s/%s",LengthOfTable(curSelectHeroList),curNeedRoleNum)
+ return
+ end
+ if LengthOfTable(curSelectHeroList)>=curNeedRoleNum then
+ PopupTipPanel.ShowTip(Language[10660])
+ return
+ end
+ curSelectHeroList[heroData.dynamicId]=heroData
+ choosed:SetActive(true)
+ this.numText.text=string.format("%s/%s",LengthOfTable(curSelectHeroList),curNeedRoleNum)
+ end)
+
+ Util.AddOnceClick(formationMask, function()
+ if heroData.isFormation ~= "" then
+ PopupTipPanel.ShowTip( heroData.isFormation)
+ return
+ end
+ if heroData.lockState == 1 then
+ PopupTipPanel.ShowTip(Language[11776])
+ return
+ end
+ end)
+end
+function this.HeroSortData(heroData)
+ Log("#heroData "..#heroData)
+ --Language[11108]
+ table.sort(heroData, function(a, b)
+ if (a.isFormation == "" or (a.isFormation ~= "" and a.isFormation == Language[11108])) and (b.isFormation == "" or (b.isFormation ~= "" and b.isFormation == Language[11108]))
+ or (a.isFormation ~= "" and a.isFormation ~= Language[11108]) and (b.isFormation ~= "" and b.isFormation ~= Language[11108]) then
+ if a.lockState == b.lockState then
+ if a.heroConfig.Star == b.heroConfig.Star then
+ if a.lv == b.lv then
+ if a.id ~= curHeroData.id and b.id ~= curHeroData.id or a.id == curHeroData.id and b.id == curHeroData.id then
+ return a.id > b.id
+ else
+ return not a.id ~= curHeroData.id and b.id == curHeroData.id
+ end
+ else
+ return a.lv < b.lv
+ end
+ else
+ return a.heroConfig.Star < b.heroConfig.Star
+ end
+ else
+ return a.lockState < b.lockState
+ end
+ else
+ return (a.isFormation == "" or (a.isFormation ~= "" and a.isFormation == Language[11108])) and (not b.dynamicId ~= "" and b.isFormation ~= Language[11108])
+ end
+ end)
+end
+function CompoundHeroFirstUpStarListPanel:AutoSelectHero()
+ curSelectHeroList = {}
+ for i = 1, #heroDataList do
+ if LengthOfTable(curSelectHeroList) < curNeedRoleNum and heroDataList[i].isFormation == "" and heroDataList[i].lockState == 0 then--
+ curSelectHeroList[heroDataList[i].dynamicId]=heroDataList[i]
+ end
+ end
+ this.numText.text=string.format("%s/%s",LengthOfTable(curSelectHeroList),curNeedRoleNum)
+ this.ScrollView:SetData(heroDataList, function (index, go)
+ this.OnShowSingleCardData(go, heroDataList[index])
+ end)
+end
+--界面关闭时调用(用于子类重写)
+function CompoundHeroFirstUpStarListPanel:OnClose()
+
+end
+
+--界面销毁时调用(用于子类重写)
+function CompoundHeroFirstUpStarListPanel:OnDestroy()
+
+ this.ScrollView = nil
+end
+
+return CompoundHeroFirstUpStarListPanel
\ No newline at end of file
diff --git a/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroFirstUpStarListPanel.lua.meta b/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroFirstUpStarListPanel.lua.meta
new file mode 100644
index 0000000000..4ca608d9eb
--- /dev/null
+++ b/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroFirstUpStarListPanel.lua.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7c91c0583532f804b91ffb8ba520897c
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroUpStarListPanel.lua b/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroUpStarListPanel.lua
index 3015a86ef5..c994e1690f 100644
--- a/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroUpStarListPanel.lua
+++ b/Assets/ManagedResources/~Lua/Modules/CompoundHero/CompoundHeroUpStarListPanel.lua
@@ -31,7 +31,7 @@ end
function CompoundHeroUpStarListPanel:BindEvent()
Util.AddClick(this.BtnBack, function()
- PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
+ -- PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
Util.AddClick(this.BtnSure, function()
@@ -55,6 +55,7 @@ function CompoundHeroUpStarListPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
+--1 是否是第一位置本体 2 所有可选英雄 3 4 升当前星的规则 5 打开RoleUpStarListPanel的界面 6 当前以选择的英雄 7 需要升级的英雄
function CompoundHeroUpStarListPanel:OnOpen(heroData,HeroRankupGroupData,RankupConsumeMaterialData,_openThisPanel,_curSelectHeroList,_curHeroData)
openThisPanel= _openThisPanel
diff --git a/Assets/ManagedResources/~Lua/Modules/CompoundHero/view/CompoundHero_Compound.lua b/Assets/ManagedResources/~Lua/Modules/CompoundHero/view/CompoundHero_Compound.lua
index 0e80cb9999..d81693e754 100644
--- a/Assets/ManagedResources/~Lua/Modules/CompoundHero/view/CompoundHero_Compound.lua
+++ b/Assets/ManagedResources/~Lua/Modules/CompoundHero/view/CompoundHero_Compound.lua
@@ -92,9 +92,15 @@ function this.ShowCurrPosHeroCompound()
this.ScrollView:SetData(heroDatas, function (index, go)
this.SingleHeroDataShow(go, heroDatas[index])
end)
-
end
-
+--显示当前阵营的英雄
+function this.ShowCurrPosHeroCompound2()
+ local heroDatas = this.GetAllHeroCompoundData(curIndex)
+ this.ScrollView:SetData(heroDatas, function (index, go)
+ this.SingleHeroDataShow(go, heroDatas[index])
+ end)
+ this.SelectHeroShow(curSelectHeroConfig)
+end
--设置按钮选中
function this.SetBtnSelect(_parObj)
this.selectBtn.transform:SetParent(_parObj.transform)
@@ -200,20 +206,9 @@ function this.UpdateHeroUpStarData(_curUpStarData)
-- addBtnImage:SetActive(false)
-- end
num:GetComponent("Text").text=string.format("%s/%s",0,curUpStarData[4])
- -- if #_curUpStarData.haveHeroList[i + 1] >= curUpStarData[4] then
- -- num:GetComponent("Text").text=string.format("%s/%s",#_curUpStarData.haveHeroList[i + 1],curUpStarData[4])
- -- else
- -- num:GetComponent("Text").text=string.format("%s/%s",#_curUpStarData.haveHeroList[i + 1],curUpStarData[4])
- -- end
SetHeroStars(starGrid, upStarMaterialsData.StarLimit,1,nil,-15.3)
- -- LogGreen("_curUpStarData.haveHeroList3[i] "..#_curUpStarData.haveHeroList3[i + 1])
Util.AddOnceClick(addBtn, function()
- -- curSelectUpStarData=curUpStarData[i]
- -- curSelectUpStarGo=go
- -- local curShowHeroListData=self:SetShowHeroListData(upStarConsumeMaterial,upStarHeroListData.heroList)
- -- --参数1 显示的herolist 2 3 升当前星的规则 4 打开RoleUpStarListPanel的界面
- -- UIManager.OpenPanel(UIName.RoleUpStarListPanel,curShowHeroListData,upStarMaterialsData,curUpStarData,this,upStarConsumeMaterial[i],curSelectHero)
-
+ if not curSelectHero then PopupTipPanel.ShowTip("没有本体") return end
curSelectUpStarData=curUpStarData
curSelectUpStarGo=go
local curShowHeroListData=this.SetShowHeroListData(upStarConsumeMaterial,_curUpStarData.haveHeroList3[i + 1])
@@ -232,29 +227,34 @@ function this.UpdateHeroUpStarData(_curUpStarData)
end
end
--分析设置升星界面显示的英雄list数据 如果当前升星材料的坑位的英雄数据与 以其他坑位有重合并且选择上的英雄不显示 如果是当前坑位显示的英雄显示对勾
-function this.SetShowHeroListData(upStarConsumeMaterial,curHeroList)--1 消耗的总消耗组 2 当前坑位可选择的所有英雄
+function this.SetShowHeroListData(upStarConsumeMaterial,curHeroList,isFirstPos)--1 消耗的总消耗组 2 当前坑位可选择的所有英雄
local curEndShowHeroListData={}
for i = 1, #curHeroList do
if curHeroList[i].dynamicId ~= curSelectHero.dynamicId then
curHeroList[i].isSelect=2
- -- LogGreen("curHeroList[i] "..curHeroList[i].dynamicId)
+ table.insert(curEndShowHeroListData,curHeroList[i])
+ elseif isFirstPos then
+ curHeroList[i].isSelect=1
table.insert(curEndShowHeroListData,curHeroList[i])
end
end
- -- LogGreen("#curEndShowHeroListData "..#curEndShowHeroListData)
- for j = 1, #upStarConsumeMaterial do
- if upStarConsumeMaterial[j] and #upStarConsumeMaterial[j]>0 then
- for k = 1, #upStarConsumeMaterial[j] do
- if j==curSelectUpStarData[2] then--curSelectUpStarData 当前坑位选择的英雄信息
- for _, v in pairs(curEndShowHeroListData) do
- if v.dynamicId==upStarConsumeMaterial[j][k] then
- v.isSelect=1
+ if isFirstPos then
+ return curEndShowHeroListData
+ else
+ for j = 1, #upStarConsumeMaterial do
+ if upStarConsumeMaterial[j] and #upStarConsumeMaterial[j]>0 then
+ for k = 1, #upStarConsumeMaterial[j] do
+ if j==curSelectUpStarData[2] then--curSelectUpStarData 当前坑位选择的英雄信息
+ for _, v in pairs(curEndShowHeroListData) do
+ if v.dynamicId==upStarConsumeMaterial[j][k] then
+ v.isSelect=1
+ end
end
- end
- else
- for i, v in pairs(curEndShowHeroListData) do
- if v.dynamicId==upStarConsumeMaterial[j][k] then
- curEndShowHeroListData[i] = nil
+ else
+ for i, v in pairs(curEndShowHeroListData) do
+ if v.dynamicId==upStarConsumeMaterial[j][k] then
+ curEndShowHeroListData[i] = nil
+ end
end
end
end
@@ -263,7 +263,6 @@ function this.SetShowHeroListData(upStarConsumeMaterial,curHeroList)--1 消耗
end
local curList={}
for _, v in pairs(curEndShowHeroListData) do
- -- LogGreen("#curList "..v.id.." "..v.isSelect)
table.insert(curList,v)
end
return curList
@@ -284,7 +283,6 @@ function this.AutoSelectUpStarHeroList(_curUpStarData)
and curSelectHero.heroConfig.Qualiy ~= 3) then
if LengthOfTable(upStarHeroListData) >= _curUpStarData.upStarData[i][4] then
for j = 1, LengthOfTable(upStarHeroListData) do
- LogGreen(_curUpStarData.upStarData[i][4])
if #curSelectHeroList < _curUpStarData.upStarData[i][4] then
if upStarHeroListData[j].lockState == 0 and upStarHeroListData[j].dynamicId ~= curSelectHero.dynamicId then--upStarHeroListData[i].isFormation == ""
table.insert(curSelectHeroList,upStarHeroListData[j])
@@ -328,6 +326,29 @@ function this.UpdateUpStarPosHeroData(curSelectHeroList,_upStarData)
end
end
end
+--刷新当前升星坑位英雄的信息
+function this.UpdateUpStarPosHeroData2(curSelectHeroList)
+ -- LogGreen("LengthOfTable(curSelectHeroList) "..LengthOfTable(curSelectHeroList))
+
+ if LengthOfTable(curSelectHeroList) < 1 then
+ Util.GetGameObject(curSelectUpStarGo.transform,"add/add"):SetActive(true)
+ curSelectHero = nil
+ -- local upStarHeroListData=HeroManager.GetUpStarHeroListData(curSelectUpStarData.upStarMaterialsData.Id,curHeroData)
+ -- if upStarHeroListData.state<=0 then
+ -- Util.GetGameObject(curSelectUpStarGo.transform,"add/add"):SetActive(false)
+ -- end
+ Util.GetGameObject(curSelectUpStarGo.transform,"num"):GetComponent("Text").text=string.format("%s/%s", LengthOfTable(curSelectHeroList),1)
+ else
+ for key, value in pairs(curSelectHeroList) do
+ curSelectHero = value
+ end
+ this.GetAllHeroCompoundData2(curSelectHeroConfig.config,curSelectHeroConfig,true)
+ if curSelectHero then this.compoundHerolv.text=curSelectHero.lv end
+ Util.GetGameObject(curSelectUpStarGo.transform,"add/add"):SetActive(false)
+ Util.GetGameObject(curSelectUpStarGo.transform,"num"):GetComponent("Text").text=string.format("%s/%s", LengthOfTable(curSelectHeroList),1)
+ end
+
+end
--更新英雄进阶数据
function this.UpdateFirstHeroUpStarData(curHeroCompoundData)
local go = needHeros[1]
@@ -355,6 +376,14 @@ function this.UpdateFirstHeroUpStarData(curHeroCompoundData)
else
num:GetComponent("Text").text=string.format("%s/%s",0,1)
end
+ Util.AddOnceClick(addBtn, function()
+ if not curSelectHero then PopupTipPanel.ShowTip("没有本体") return end
+ curSelectUpStarData=nil
+ curSelectUpStarGo=go
+ local curShowHeroListData=this.SetShowHeroListData(upStarConsumeMaterial,curHeroCompoundData.haveHeroList3[1],true)
+ --参数1 显示的herolist 2 3 升当前星的规则 4 打开RoleUpStarListPanel的界面
+ UIManager.OpenPanel(UIName.CompoundHeroFirstUpStarListPanel,curShowHeroListData,this,curSelectHero)
+ end)
else
needHeros[1]:SetActive(false)
end
@@ -452,10 +481,14 @@ function this.DeleteUpStarMaterials()
HeroManager.UpdateSingleHeroSkillData(curSelectHero.dynamicId)
--本地数据删除材料英雄
for i = 1, #upStarConsumeMaterial do
+ LogGreen("DeleteHeroDatas "..#upStarConsumeMaterial[i])
+ for j = 1, #upStarConsumeMaterial[i] do
+ LogGreen("DeleteHeroDatas "..upStarConsumeMaterial[i][j])
+ end
HeroManager.DeleteHeroDatas(upStarConsumeMaterial[i])
end
--刷新界面
- this.ShowCurrPosHeroCompound()
+ this.ShowCurrPosHeroCompound2()
end
-- tab节点显示自定义
function this.TabAdapter(tab, index, status)
@@ -526,6 +559,9 @@ function this.GetAllHeroCompoundData(index)
end
end
this.GetAllHeroCompoundData2(configInfo,curHeroCompoundData)
+ if curSelectHeroConfig and curSelectHeroConfig.config and curSelectHeroConfig.config.Id == curHeroCompoundData.config.Id then
+ curSelectHeroConfig = curHeroCompoundData
+ end
table.insert(allCompoundHeroConFigData,curHeroCompoundData)
end
end
diff --git a/data_execl/base_data/UIConfig.xlsx b/data_execl/base_data/UIConfig.xlsx
index a97fbbb72a..d77e615fe2 100644
Binary files a/data_execl/base_data/UIConfig.xlsx and b/data_execl/base_data/UIConfig.xlsx differ