Files
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

89 lines
2.4 KiB
Lua

local DiscGridMatCtrl = class("DiscGridMatCtrl", BaseCtrl)
DiscGridMatCtrl._mapNodeConfig = {
btnAdd = {
sComponentName = "UIButton",
callback = "OnBtnClick_Add"
},
btnReduce = {
sComponentName = "UIButton",
callback = "OnBtnClick_Reduce"
},
ctrlMat = {
sNodeName = "tc_mat_grid_01",
sCtrlName = "Game.UI.TemplateEx.TemplateMatGridCtrl"
}
}
DiscGridMatCtrl._mapEventConfig = {}
function DiscGridMatCtrl:Refresh(mapData)
self.mapData = mapData
self._mapNode.ctrlMat:RerfeshGrid(mapData)
end
function DiscGridMatCtrl:SetCount(nCount)
self._mapNode.ctrlMat:SetGridCount(nCount)
end
function DiscGridMatCtrl:SetSelect(bSelect)
self._mapNode.ctrlMat:SetSelect(bSelect)
end
function DiscGridMatCtrl:SetLock(bLock)
self._mapNode.ctrlMat:SetLock(bLock)
end
function DiscGridMatCtrl:AddMat(btn)
if btn.Operate_Type == 0 then
local mapDisc = PlayerData.Disc:GetDiscById(self._panel.nId)
local nMaxStar = mapDisc.nMaxStar - mapDisc.nStar
local nHasStar = 0
for _, _ in pairs(self._panel.tbMat) do
nHasStar = nHasStar + 1
end
if nMaxStar <= nHasStar then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("OUTFIT_15"))
return
end
local nAddIndex = PlayerData.Disc:GetIndexOfNewBreakLimitMat(self._panel.tbMat)
if nAddIndex == 0 then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("OUTFIT_16"))
return
end
self.mapData.nAddIndex = nAddIndex
self.mapData.nCost = 1
self._panel:ChangeMatList(self.mapData)
EventManager.Hit("DiscChangeSelectedMat", true)
self:SetCount(self.mapData.nCost)
elseif btn.Operate_Type == 3 then
return
end
end
function DiscGridMatCtrl:ReduceMat(btn)
if btn.Operate_Type == 0 then
self.mapData.nCost = 0
self._panel:ChangeMatList(self.mapData, true)
EventManager.Hit("DiscChangeSelectedMat", true)
self:SetCount(self.mapData.nCost)
elseif btn.Operate_Type == 3 then
return
end
end
function DiscGridMatCtrl:Awake()
end
function DiscGridMatCtrl:OnEnable()
end
function DiscGridMatCtrl:OnDisable()
end
function DiscGridMatCtrl:OnDestroy()
end
function DiscGridMatCtrl:OnBtnClick_Add(btn)
if not self._panel.tbMat[self.mapData.nIndex] then
self:AddMat(btn)
else
self:ReduceMat(btn)
end
EventManager.Hit("DiscGridClick", tonumber(self.gameObject.name) + 1)
self:SetSelect(true)
end
function DiscGridMatCtrl:OnBtnClick_Reduce(btn)
self:ReduceMat(btn)
EventManager.Hit("DiscGridClick", tonumber(self.gameObject.name) + 1)
self:SetSelect(true)
end
return DiscGridMatCtrl