PGRData/Script/matrix/xui/xuiescape/layer/XUiEscapeLayerGrid.lua

87 lines
No EOL
3.2 KiB
Lua

local XUiEscapeLayerGrid = XClass(nil, "XUiEscapeLayerGrid")
function XUiEscapeLayerGrid:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.EscapeData = XDataCenter.EscapeManager.GetEscapeData()
self:InitUi()
self:InitClickEvent()
end
function XUiEscapeLayerGrid:InitUi()
self.Clear = XUiHelper.TryGetComponent(self.Transform, "Clear")
self.Restart = XUiHelper.TryGetComponent(self.Transform, "Restart")
self.Btn = self.Transform:GetComponent("XUiButton")
self.CanvasGroup = self.Transform:GetComponent("CanvasGroup")
self.Lock = XUiHelper.TryGetComponent(self.Transform, "Lock")
self.GameObject:AddComponent(typeof(CS.UnityEngine.UI.XEmpty4Raycast))
end
function XUiEscapeLayerGrid:InitClickEvent()
XUiHelper.RegisterClickEvent(self, self.Btn, self.OnBtnFightClick)
XUiHelper.RegisterClickEvent(self, self.Restart, self.OnBtnResetClick)
end
function XUiEscapeLayerGrid:Refresh(chapterId, layerId, stageId)
if not chapterId or not layerId or not stageId then
self:SetCanvasGroupAlpha(0)
return
end
self.ChapterId = chapterId
self.LayerId = layerId
self.StageId = stageId
--关卡名
local stageName = XDataCenter.FubenManager.GetStageName(stageId)
self.Btn:SetNameByGroup(0, stageName)
--奖励时间
local awardTime = XEscapeConfigs.GetStageAwardTime(stageId)
self.Btn:SetNameByGroup(1, awardTime)
--关卡描述
local stageDesc = XEscapeConfigs.GetStageGridDesc(stageId)
self.Btn:SetNameByGroup(2, stageDesc)
local layerState = XDataCenter.EscapeManager.GetLayerChallengeState(chapterId, layerId)
local isStageClear = self.EscapeData:IsCurChapterStageClear(stageId)
self.Lock.gameObject:SetActiveEx(layerState == XEscapeConfigs.LayerState.Lock)
self.Btn:SetDisable(not isStageClear and layerState == XEscapeConfigs.LayerState.Pass)
self.Restart.gameObject:SetActiveEx(isStageClear and layerState == XEscapeConfigs.LayerState.Now)
self.Clear.gameObject:SetActiveEx(isStageClear)
self:SetCanvasGroupAlpha(1)
end
function XUiEscapeLayerGrid:SetCanvasGroupAlpha(alpha)
if not XTool.UObjIsNil(self.CanvasGroup) then
self.CanvasGroup.alpha = alpha
end
end
function XUiEscapeLayerGrid:OnBtnFightClick()
local chapterId = self.ChapterId
local layerId = self.LayerId
local stageId = self.StageId
if not chapterId or not layerId or not stageId then
return
end
local layerState = XDataCenter.EscapeManager.GetLayerChallengeState(chapterId, layerId)
local isStageClear = self.EscapeData:IsCurChapterStageClear(stageId)
if layerState == XEscapeConfigs.LayerState.Pass and not isStageClear then
XUiManager.TipErrorWithKey("EscapeCurLayerClear")
return
end
XLuaUiManager.Open("UiEscapeTeamTips", chapterId, layerId, stageId)
end
function XUiEscapeLayerGrid:OnBtnResetClick()
local title = XUiHelper.GetText("EscapeResetStageTipsTitle")
local content = XUiHelper.GetText("EscapeResetStageTipsDesc")
XLuaUiManager.Open("UiDialog", title, content, XUiManager.DialogType.Normal, nil, function()
XDataCenter.EscapeManager.RequestEscapeResetStage(self.StageId)
end)
end
return XUiEscapeLayerGrid