PGRData/Script/matrix/xui/xuifubenpartnerteaching/XUiPartnerTeachingChapter.lua

119 lines
No EOL
4.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XUiPartnerTeachingChapter = XLuaUiManager.Register(XLuaUi, "UiPartnerTeachingChapter")
local XUiPartnerTeachingChapterContent = require("XUi/XUiFubenPartnerTeaching/XUiPartnerTeachingChapterContent")
local FIGHT_DETAIL = "UiPartnerTeachingFightDetail"
local STORY_DETAIL = "UiPartnerTeachingStoryDetail"
function XUiPartnerTeachingChapter:OnAwake()
self.BtnCloseDetail.gameObject:SetActiveEx(false)
self:AddListener()
XEventManager.AddEventListener(XEventId.EVENT_PARTNER_TEACHING_OPEN_STAGE_DETAIL, self.OpenStageDetail, self)
XEventManager.AddEventListener(XEventId.EVENT_PARTNER_TEACHING_CLOSE_STAGE_DETAIL, self.CloseStageDetail, self)
XEventManager.AddEventListener(XEventId.EVENT_PARTNER_TEACHING_STAGE_REFRESH, self.Refresh, self)
end
function XUiPartnerTeachingChapter:OnStart(chapterId)
self.ChapterId = chapterId
self:LoadChapter(chapterId)
end
function XUiPartnerTeachingChapter:OnEnable()
self:Refresh()
end
function XUiPartnerTeachingChapter:OnDestroy()
XEventManager.RemoveEventListener(XEventId.EVENT_PARTNER_TEACHING_OPEN_STAGE_DETAIL, self.OpenStageDetail, self)
XEventManager.RemoveEventListener(XEventId.EVENT_PARTNER_TEACHING_CLOSE_STAGE_DETAIL, self.CloseStageDetail, self)
XEventManager.RemoveEventListener(XEventId.EVENT_PARTNER_TEACHING_STAGE_REFRESH, self.Refresh, self)
end
----------------------------------------------------初始化---------------------------------------------------------------
---
--- 加载章节
function XUiPartnerTeachingChapter:LoadChapter(chapterId)
-- 背景
local bg = XPartnerTeachingConfigs.GetChapterBackground(chapterId)
if bg then
self.RImgFestivalBg:SetRawImage(bg)
end
-- 预制体
local prefabPath = XPartnerTeachingConfigs.GetChapterFubenPrefab(chapterId)
if prefabPath then
local go = self.PanelChapter:LoadPrefab(prefabPath)
self.ChapterContent = XUiPartnerTeachingChapterContent.New(go, self.ChapterId)
end
end
---------------------------------------------------刷新------------------------------------------------------------------
function XUiPartnerTeachingChapter:Refresh()
if self.ChapterContent then
self.ChapterContent:Refresh()
end
end
-----------------------------------------------按钮响应函数--------------------------------------------------------------
function XUiPartnerTeachingChapter:AddListener()
self.SceneBtnBack.CallBack = function()
self:OnBtnBackClick()
end
self.SceneBtnMainUi.CallBack = function()
self:OnBtnMainUiClick()
end
self.BtnCloseDetail.CallBack = function()
self:CloseStageDetail()
end
end
function XUiPartnerTeachingChapter:OnBtnBackClick()
if XLuaUiManager.IsUiShow(FIGHT_DETAIL) or XLuaUiManager.IsUiShow(STORY_DETAIL) then
self:CloseStageDetail()
else
self:Close()
end
end
function XUiPartnerTeachingChapter:OnBtnMainUiClick()
XLuaUiManager.RunMain()
end
-------------------------------------------------关卡详情-----------------------------------------------------------------
---
--- 打开关卡详情界面
function XUiPartnerTeachingChapter:OpenStageDetail(stageId)
-- 选择关卡
self.ChapterContent:SelectStage(stageId)
local detailType
local stageType = XFubenConfigs.GetStageType(stageId)
if stageType == XFubenConfigs.STAGETYPE_FIGHT or stageType == XFubenConfigs.STAGETYPE_FIGHTEGG
or stageType == XFubenConfigs.STAGETYPE_COMMON then
detailType = FIGHT_DETAIL
elseif stageType == XFubenConfigs.STAGETYPE_STORY or stageType == XFubenConfigs.STAGETYPE_STORYEGG then
detailType = STORY_DETAIL
else
XLog.Error(string.format("XUiPartnerTeachingChapter.OpenStageDetail函数错误没有对应StageType的处理逻辑关卡%sStageType%s",
stageId, stageType))
return
end
self:OpenOneChildUi(detailType, handler(self, self.Close))
self:FindChildUiObj(detailType):Refresh(stageId, self.ChapterId)
self.BtnCloseDetail.gameObject:SetActiveEx(true)
end
---
--- 关闭关卡详情界面
function XUiPartnerTeachingChapter:CloseStageDetail()
-- 取消关卡选择
self.ChapterContent:CancelSelectStage()
if XLuaUiManager.IsUiShow(FIGHT_DETAIL) then
self:FindChildUiObj(FIGHT_DETAIL):CloseDetailWithAnimation()
end
if XLuaUiManager.IsUiShow(STORY_DETAIL) then
self:FindChildUiObj(STORY_DETAIL):CloseDetailWithAnimation()
end
self.BtnCloseDetail.gameObject:SetActiveEx(false)
end