5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
88 lines
3.0 KiB
Lua
88 lines
3.0 KiB
Lua
local DiscBreakLimitAllSucCtrl = class("DiscBreakLimitAllSucCtrl", BaseCtrl)
|
|
DiscBreakLimitAllSucCtrl._mapNodeConfig = {
|
|
txtTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Disc_BreakLimitAll_ConsumedMaterials"
|
|
},
|
|
btnGrid = {},
|
|
goItemList1 = {sComponentName = "Transform"},
|
|
goItemList2 = {},
|
|
sv = {
|
|
sComponentName = "LoopScrollView"
|
|
},
|
|
rtTitle = {sComponentName = "Transform"},
|
|
rtItem = {sComponentName = "Transform"}
|
|
}
|
|
DiscBreakLimitAllSucCtrl._mapEventConfig = {}
|
|
function DiscBreakLimitAllSucCtrl:Open(nType)
|
|
self:RefreshContent()
|
|
local SuccessBar = self:BindCtrlByNode(self.gameObject, "Game.UI.SuccessBarEx.SuccessBarCtrl")
|
|
SuccessBar:PlayAni(nType, self.tbAni)
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:RefreshContent()
|
|
local ani1 = self._mapNode.rtTitle:GetComponent("Animator")
|
|
local ani2 = self._mapNode.rtItem:GetComponent("Animator")
|
|
self.tbAni = {}
|
|
table.insert(self.tbAni, ani1)
|
|
table.insert(self.tbAni, ani2)
|
|
self.tbMat = self._panel.mapData.tbMat
|
|
self.nAllCount = #self.tbMat
|
|
if self.nAllCount <= 8 then
|
|
self._mapNode.goItemList1.gameObject:SetActive(true)
|
|
self._mapNode.goItemList2:SetActive(false)
|
|
self:RefreshNormal()
|
|
else
|
|
self._mapNode.goItemList1.gameObject:SetActive(false)
|
|
self._mapNode.goItemList2:SetActive(true)
|
|
self:RefreshSV()
|
|
end
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:RefreshNormal()
|
|
for _, v in ipairs(self.tbMat) do
|
|
local nItemId = v.nTid
|
|
local goItem = instantiate(self._mapNode.btnGrid, self._mapNode.goItemList1)
|
|
local ctrlObj = self:BindCtrlByNode(goItem, "Game.UI.TemplateEx.TemplateItemCtrl")
|
|
ctrlObj:SetItem(nItemId, nil, v.nCount)
|
|
local btnGrid = goItem:GetComponent("UIButton")
|
|
btnGrid.onClick:RemoveAllListeners()
|
|
local cbSelect = function()
|
|
self:OnSelectItem(nItemId, btnGrid)
|
|
end
|
|
btnGrid.onClick:AddListener(cbSelect)
|
|
end
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:RefreshSV()
|
|
self._mapNode.sv:Init(self.nAllCount, self, self.OnGridRefresh, self.OnGridBtnClick)
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:OnGridRefresh(goGrid, gridIndex)
|
|
local nIndex = gridIndex + 1
|
|
local mapItem = self.tbMat[nIndex]
|
|
local nInstanceId = goGrid:GetInstanceID()
|
|
if not self.tbGridCtrl[nInstanceId] then
|
|
self.tbGridCtrl[nInstanceId] = self:BindCtrlByNode(goGrid.transform:Find("btnGrid").gameObject, "Game.UI.TemplateEx.TemplateItemCtrl")
|
|
end
|
|
self.tbGridCtrl[nInstanceId]:SetItem(mapItem.nTid, nil, mapItem.nCount)
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:OnGridBtnClick(goGrid, gridIndex)
|
|
local nIndex = gridIndex + 1
|
|
self:OnSelectItem(self.tbMat[nIndex].nTid, goGrid.transform:Find("btnGrid"))
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:OnSelectItem(itemId, btn)
|
|
UTILS.ClickItemGridWithTips(itemId, btn.transform, true, true, false)
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:Awake()
|
|
self.tbGridCtrl = {}
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:OnEnable()
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:OnDisable()
|
|
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
|
self:UnbindCtrlByNode(objCtrl)
|
|
self.tbGridCtrl[nInstanceId] = nil
|
|
end
|
|
self.tbGridCtrl = {}
|
|
end
|
|
function DiscBreakLimitAllSucCtrl:OnDestroy()
|
|
end
|
|
return DiscBreakLimitAllSucCtrl
|