PGRData/Script/matrix/xui/xuisummerepisode/XUiGridEliminate.lua

118 lines
No EOL
3.3 KiB
Lua

local XUiGridEliminate = XClass(nil, "XUiGridEliminate")
function XUiGridEliminate:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.RootUi = rootUi
XTool.InitUiObject(self)
self.BtnMatch.CallBack = function()
self:OnBtnMatchClick()
end
self.PanelSelect.gameObject:SetActiveEx(false)
self.PanelNeighSelected.gameObject:SetActiveEx(false)
self.FlipEffect.gameObject:SetActiveEx(false)
self.IsSelected = false
self.NeighborSelected = false
self.SelectEnable = false
end
function XUiGridEliminate:SetData(data, gameId)
self.GameId = gameId
self.GridData = data
end
--覆盖
function XUiGridEliminate:SetupFlip()
self.PanelForbidden.gameObject:SetActiveEx(false)
self.PanelMask.gameObject:SetActiveEx(true)
self.PanelNeighSelected.gameObject:SetActiveEx(false)
self.SelectEnable = false
self.MaskEffect.gameObject:SetActiveEx(self:CheckCanFlipGrid())
end
function XUiGridEliminate:CheckCanFlipGrid()
local gameData = XDataCenter.EliminateGameManager.GetEliminateGameData(self.GameId)
if not gameData then
return
end
local flipCostItem = gameData.Config.FlipItemId
local count = XDataCenter.ItemManager.GetCount(flipCostItem)
local name = XDataCenter.ItemManager.GetItemName(flipCostItem)
if count <= 0 or count < gameData.Config.FlipItemCount then
--XUiManager.TipMsg(string.format(CS.XTextManager.GetText("EliminateFlipItemLack"), gameData.Config.FlipItemCount, name))
return false
end
return true
end
--障碍
function XUiGridEliminate:SetupForbidden()
self.PanelForbidden.gameObject:SetActiveEx(true)
self.PanelMask.gameObject:SetActiveEx(false)
self.PanelNeighSelected.gameObject:SetActiveEx(false)
self.SelectEnable = false
end
--一般
function XUiGridEliminate:SetupNormal()
self.PanelForbidden.gameObject:SetActiveEx(false)
self.PanelMask.gameObject:SetActiveEx(false)
self.PanelNeighSelected.gameObject:SetActiveEx(false)
end
--消除了
function XUiGridEliminate:SetupReward()
self.PanelForbidden.gameObject:SetActiveEx(false)
self.PanelMask.gameObject:SetActiveEx(false)
self.PanelNeighSelected.gameObject:SetActiveEx(false)
end
--空的
function XUiGridEliminate:SetupEmpty()
self.PanelForbidden.gameObject:SetActiveEx(false)
self.PanelMask.gameObject:SetActiveEx(false)
self.PanelNeighSelected.gameObject:SetActiveEx(false)
end
function XUiGridEliminate:SetSelectedEnable(enable)
self.SelectEnable = enable
end
function XUiGridEliminate:SetSelected(selected)
self.PanelSelect.gameObject:SetActiveEx(selected)
self.IsSelected = selected
end
function XUiGridEliminate:SetNeighBorSelected(selected)
self.PanelNeighSelected.gameObject:SetActiveEx(selected)
self.NeighborSelected = selected
end
function XUiGridEliminate:OnBtnMatchClick()
self.RootUi:OnClickGrid(self.GridData)
end
function XUiGridEliminate:IsObstacle()
local id = self.GridData.Id
local gridCfg = XEliminateGameConfig.GetEliminateGameGrid(id)
return gridCfg.Type == 0
end
function XUiGridEliminate:PlayFlipTimeline(cb)
self.Timeline:PlayTimelineAnimation(function()
self.FlipEffect.gameObject:SetActiveEx(true)
if cb then
cb()
end
end)
end
return XUiGridEliminate