local XUiBabelTowerDetails = XLuaUiManager.Register(XLuaUi, "UiBabelTowerDetails") local XUiGridInfoEnvironmentItem = require("XUi/XUiFubenBabelTower/XUiGridInfoEnvironmentItem") local XUiGridInfoChallengeItem = require("XUi/XUiFubenBabelTower/XUiGridInfoChallengeItem") local XUiEnvironmentDetailPanel = require("XUi/XUiFubenBabelTower/XUiEnvironmentDetailPanel") function XUiBabelTowerDetails:OnAwake() self.BtnTanchuangClose.CallBack = function() self:OnBtnTanchuangClose() end self.DynamicTableTipsBaseBuff = XDynamicTableNormal.New(self.PanelAmbientText.gameObject) self.DynamicTableTipsBaseBuff:SetProxy(XUiGridInfoEnvironmentItem) self.DynamicTableTipsBaseBuff:SetDelegate(self) self.DynamicTableTipsBaseBuff:SetDynamicEventDelegate(function(event, index, grid) self:OnEnvironmentDynamicTableEvent(event, index, grid) end) self.GridChallengeList = {} self.GridSupportList = {} -- XUiEnvironmentDetailPanel self.UiEnvironmentPanel = nil end function XUiBabelTowerDetails:OnBtnTanchuangClose() self:Close() end function XUiBabelTowerDetails:OnStart(tipsType, stageId) self.StageId = stageId self.TipsType = tipsType self.BabelStageTemplate = XFubenBabelTowerConfigs.GetBabelTowerStageTemplate(self.StageId) self.IsEnvironmentTips = XFubenBabelTowerConfigs.TIPSTYPE_ENVIRONMENT == self.TipsType self.IsChallengeTips = XFubenBabelTowerConfigs.TIPSTYPE_CHALLENGE == self.TipsType self.IsSupportTips = XFubenBabelTowerConfigs.TIPSTYPE_SUPPORT == self.TipsType -- 环境 -- self.PanelAmbient.gameObject:SetActiveEx(self.IsEnvironmentTips) self.PanelAmbient.gameObject:SetActiveEx(false) self.PanelAmbientNew.gameObject:SetActiveEx(self.IsEnvironmentTips) -- 挑战 self.PanelChallenge.gameObject:SetActiveEx(self.IsChallengeTips) -- 支持 self.PanelSupport.gameObject:SetActiveEx(self.IsSupportTips) if self.IsEnvironmentTips then -- self:SetEnvironmentTipsInfo() -- 新的挑战详情 self.UiEnvironmentPanel = XUiEnvironmentDetailPanel.New(self.PanelAmbientNew) self.UiEnvironmentPanel:SetData(self.BabelStageTemplate.BaseBuffId) end if self.IsChallengeTips then self:SetChallengeTipsInfo() end if self.IsSupportTips then self:SetSupportTipsInfo() end end -- 环境情报 function XUiBabelTowerDetails:SetEnvironmentTipsInfo() self.BaseBuffs = self.BabelStageTemplate.BaseBuffId self.DynamicTableTipsBaseBuff:SetDataSource(self.BaseBuffs) self.DynamicTableTipsBaseBuff:ReloadDataASync() end function XUiBabelTowerDetails:OnEnvironmentDynamicTableEvent(event, index, grid) if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then grid:Init(self) elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then if self.BaseBuffs[index] then grid:SetItemInfo(self.BaseBuffs[index], index) end end end -- 挑战详情 function XUiBabelTowerDetails:SetChallengeTipsInfo() for i = 1, #self.BabelStageTemplate.ChallengeBuffGroup do if not self.GridChallengeList[i] then local go = CS.UnityEngine.Object.Instantiate(self.GridChallengeDetails) go.transform:SetParent(self.PanelChallengeContainer, false) go.gameObject:SetActiveEx(true) local challengeItem = XUiGridInfoChallengeItem.New(go, self.BabelStageTemplate.ChallengeBuffGroup[i], XFubenBabelTowerConfigs.TYPE_CHALLENGE) table.insert(self.GridChallengeList, challengeItem) else self.GridChallengeList[i]:Refresh(self.BabelStageTemplate.ChallengeBuffGroup[i], XFubenBabelTowerConfigs.TYPE_CHALLENGE) end end for i = #self.BabelStageTemplate.ChallengeBuffGroup + 1, #self.GridChallengeList do self.GridChallengeList[i].GameObject:SetActiveEx(false) end end -- 支援详情 function XUiBabelTowerDetails:SetSupportTipsInfo() for i = 1, #self.BabelStageTemplate.SupportBuffGroup do if not self.GridSupportList[i] then local go = CS.UnityEngine.Object.Instantiate(self.GridSupportDetails) go.transform:SetParent(self.PanelSupportContainer, false) go.gameObject:SetActiveEx(true) local challengeItem = XUiGridInfoChallengeItem.New(go, self.BabelStageTemplate.SupportBuffGroup[i], XFubenBabelTowerConfigs.TYPE_SUPPORT) table.insert(self.GridSupportList, challengeItem) else self.GridSupportList[i]:Refresh(self.BabelStageTemplate.SupportBuffGroup[i], XFubenBabelTowerConfigs.TYPE_SUPPORT) end end for i = #self.BabelStageTemplate.SupportBuffGroup + 1, #self.GridSupportList do self.GridSupportList[i].GameObject:SetActiveEx(false) end end