PGRData/Script/matrix/xui/xuifubeninfestorexplore/XUiInfestorExploreChapterDetail.lua

108 lines
No EOL
4.9 KiB
Lua

local XUiGridFubenInfestorExploreMember = require("XUi/XUiFubenInfestorExplore/XUiGridFubenInfestorExploreMember")
local CSUnityEngineObjectInstantiate = CS.UnityEngine.Object.Instantiate
local CSXTextManagerGetText = CS.XTextManager.GetText
local TipTitle = CSXTextManagerGetText("InfestorExploreTeamChangeConfirmTitle")
local TipContent = CSXTextManagerGetText("InfestorExploreTeamChangeConfirmContent")
local MAX_MEMBER_NUM = 3
local XUiInfestorExploreChapterDetail = XLuaUiManager.Register(XLuaUi, "UiInfestorExploreChapterDetail")
function XUiInfestorExploreChapterDetail:OnAwake()
self:AutoAddListener()
self.GridMember.gameObject:SetActiveEx(false)
end
function XUiInfestorExploreChapterDetail:OnStart()
self.MemberGrids = {}
end
function XUiInfestorExploreChapterDetail:RefreshView(chapterId)
self.ChapterId = chapterId
self.TxtChapter.text = XFubenInfestorExploreConfigs.GetChapterName(chapterId)
self.TxtActionPoint.text = XDataCenter.FubenInfestorExploreManager.GetActionPoint()
local chapterId = self.ChapterId
self.TxtDes.text = XFubenInfestorExploreConfigs.GetChapterDescription(chapterId)
local characterLimitType = XFubenInfestorExploreConfigs.GetChapterCharacterLimitType(chapterId)
local limitBuffId = XFubenInfestorExploreConfigs.GetChapterLimitBuffId(chapterId)
if not XFubenConfigs.IsStageCharacterLimitConfigExist(characterLimitType) then
self.TxtConditions.gameObject:SetActiveEx(false)
else
self.TxtConditions.text = XFubenConfigs.GetChapterCharacterLimitText(characterLimitType, limitBuffId)
self.TxtConditions.gameObject:SetActiveEx(true)
end
self.TxtEffectPosion.text = XDataCenter.FubenInfestorExploreManager.GetBuffDes()
local characterIds = XDataCenter.FubenInfestorExploreManager.GetChapterTeamCharacterIds(chapterId)
local captainPos = XDataCenter.FubenInfestorExploreManager.GetChapterTeamCaptainPos(chapterId)
local firstFightPos = XDataCenter.FubenInfestorExploreManager.GetChapterTeamFirstFightPos(chapterId)
for pos = 1, MAX_MEMBER_NUM do
local characterId = characterIds[pos]
local isCaptain = pos == captainPos
local isFirstFight = pos == firstFightPos
local grid = self.MemberGrids[pos]
if characterId > 0 then
if not grid then
local go = CSUnityEngineObjectInstantiate(self.GridMember, self["PanelGrid" .. pos])
grid = XUiGridFubenInfestorExploreMember.New(go)
self.MemberGrids[pos] = grid
end
grid:Refresh(characterId, isCaptain, isFirstFight)
grid.GameObject:SetActiveEx(true)
else
if grid then
grid.GameObject:SetActiveEx(false)
end
end
end
end
function XUiInfestorExploreChapterDetail:AutoAddListener()
self.BtnBg.CallBack = function() self:Close() end
self.BtnTanchuangClose.CallBack = function() self:Close() end
self.BtnEnter.CallBack = function() self:OnClickBtnEnter() end
for index = 1, MAX_MEMBER_NUM do
self["BtnJoin" .. index].CallBack = function() self:OnClickBtnJoin() end
end
end
function XUiInfestorExploreChapterDetail:OnClickBtnEnter()
local chapterId = self.ChapterId
if XDataCenter.FubenInfestorExploreManager.IsChapterTeamEmpty(chapterId) then
XUiManager.TipText("InfestorExploreTeamEmptyTip")
return
end
if XDataCenter.FubenInfestorExploreManager.IsChapterTeamNoCaptain(chapterId) then
XUiManager.TipText("TeamManagerCheckCaptainNil")
return
end
local sureCallback = function()
local callBack = function()
self:Close()
XUiManager.TipText("InfestorExploreTeamSaveSuc")
XLuaUiManager.Open("UiInfestorExploreStage", chapterId)
end
XDataCenter.FubenInfestorExploreManager.RequestUpdateTeam(chapterId, callBack)
end
XUiManager.DialogTip(TipTitle, TipContent, XUiManager.DialogType.Normal, nil, sureCallback)
end
function XUiInfestorExploreChapterDetail:OnClickBtnJoin()
local chapterId = self.ChapterId
local characterIds = XDataCenter.FubenInfestorExploreManager.GetChapterTeamCharacterIds(chapterId)
local captainPos = XDataCenter.FubenInfestorExploreManager.GetChapterTeamCaptainPos(chapterId)
local firstFightPos = XDataCenter.FubenInfestorExploreManager.GetChapterTeamFirstFightPos(chapterId)
local saveCallBack = function(cacheCharacterIds, cacheCaptainPos, cacheFirstFightPos)
XDataCenter.FubenInfestorExploreManager.SaveChapterTeam(chapterId, cacheCharacterIds, cacheCaptainPos, cacheFirstFightPos)
self:RefreshView(self.ChapterId)
end
local characterLimitType = XFubenInfestorExploreConfigs.GetChapterCharacterLimitType(chapterId)
local limitBuffId = XFubenInfestorExploreConfigs.GetChapterLimitBuffId(chapterId)
XLuaUiManager.Open("UiInfestorExploreTeamEdit", characterLimitType, limitBuffId, characterIds, captainPos, saveCallBack, nil, nil, firstFightPos)
end