161 lines
No EOL
6.1 KiB
Lua
161 lines
No EOL
6.1 KiB
Lua
local XUiFubenBossSingle = XLuaUiManager.Register(XLuaUi, "UiFubenBossSingle")
|
|
local XUiPanelBossStgae = require("XUi/XUiFubenBossSingle/XUiPanelBossStgae")
|
|
local XUiPanelBossRankInfo = require("XUi/XUiFubenBossSingle/XUiPanelBossRankInfo")
|
|
local XUiPanelBossDetail = require("XUi/XUiFubenBossSingle/XUiPanelBossDetail")
|
|
local XUiPanelBossEnter = require("XUi/XUiFubenBossSingle/XUiPanelBossEnter")
|
|
local XUiPanelRoleModel = require("XUi/XUiCharacter/XUiPanelRoleModel")
|
|
local XUiModelUtility = require("XUi/XUiCharacter/XUiModelUtility")
|
|
|
|
function XUiFubenBossSingle:OnAwake()
|
|
self:AutoAddListener()
|
|
local root = self.UiModelGo.transform
|
|
self.ImgEffectHuanren = root:FindTransform("ImgEffectHuanren")
|
|
self.ImgEffectHuanrenHideBoss = root:FindTransform("ImgEffectHuanren1")
|
|
self.ImgEffectHuanren.gameObject:SetActiveEx(false)
|
|
self.ImgEffectHuanrenHideBoss.gameObject:SetActiveEx(false)
|
|
---@type XUiPanelRoleModel
|
|
self.RoleModelPanel = XUiPanelRoleModel.New(root:FindTransform("PanelRoleModel"), self.Name, nil, true)
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnStart(bossSingleData, bossList)
|
|
XDataCenter.FubenBossSingleManager.SetBossSingleTrial(false)
|
|
self:Init(bossSingleData, bossList)
|
|
XEventManager.AddEventListener(XEventId.EVENT_FUBEN_REFRESH_STAGE_DATA, self.OnSyncBossData, self)
|
|
XEventManager.AddEventListener(XEventId.EVENT_BOSS_SINGLE_GET_REWARD, self.OnRewardGet, self)
|
|
XEventManager.AddEventListener(XEventId.EVENT_FUBEN_SINGLE_BOSS_RESET, self.OnActivityEnd, self)
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnDestroy()
|
|
if self.BossRankInfo then
|
|
self.BossRankInfo:RemoveTimer()
|
|
end
|
|
|
|
if self.BossEnter then
|
|
self.BossEnter:OnDestroy()
|
|
end
|
|
|
|
XEventManager.RemoveEventListener(XEventId.EVENT_FUBEN_REFRESH_STAGE_DATA, self.OnSyncBossData, self)
|
|
XEventManager.RemoveEventListener(XEventId.EVENT_BOSS_SINGLE_GET_REWARD, self.OnRewardGet, self)
|
|
XEventManager.RemoveEventListener(XEventId.EVENT_FUBEN_SINGLE_BOSS_RESET, self.OnActivityEnd, self)
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnEnable()
|
|
if XDataCenter.FubenBossSingleManager.IsNeedReset() then
|
|
self:OnActivityEnd()
|
|
return
|
|
end
|
|
|
|
self:PlayAnimation("AnimEnable1")
|
|
|
|
if self.BossDetail and self.BossDetail.GameObject.activeInHierarchy then
|
|
self.BossDetail:ShowPanel()
|
|
end
|
|
end
|
|
|
|
function XUiFubenBossSingle:AutoAddListener()
|
|
self:RegisterClickEvent(self.BtnBack, self.OnBtnBackClick)
|
|
self:RegisterClickEvent(self.BtnMainUi, self.OnBtnMainUiClick)
|
|
self:BindHelpBtn(self.BtnHelp, "BossSingle")
|
|
end
|
|
|
|
function XUiFubenBossSingle:Init(bossSingleData, bossList)
|
|
self.BossSingleData = bossSingleData
|
|
self.BossList = XUiPanelBossStgae.New(self, self.PanelBossStgae, bossList)
|
|
self.BossList:PanelBossContentActive(true)
|
|
self.BossEnter = XUiPanelBossEnter.New(self, self.PanelBossEnter, bossSingleData)
|
|
self.BossRankInfo = XUiPanelBossRankInfo.New(self, self.PanelBossRankInfo)
|
|
self.BossRankInfo:HidePanel()
|
|
self.BossDetail = XUiPanelBossDetail.New(self, self.PanelBossDetail)
|
|
self.BossDetail:HidePanel()
|
|
self.RoleModelPanel:HideRoleModel()
|
|
self.AssetPanel = XUiPanelAsset.New(self, self.PanelAsset, XDataCenter.ItemManager.ItemId.FreeGem, XDataCenter.ItemManager.ItemId.ActionPoint, XDataCenter.ItemManager.ItemId.Coin)
|
|
self:OnSyncBossData()
|
|
|
|
local scoreReardCfg = XDataCenter.FubenBossSingleManager.GetCurScoreRewardCfg()
|
|
self.CurScoreRewardId = scoreReardCfg and scoreReardCfg.Id or -1
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnSyncBossData()
|
|
local bossSingleData = XDataCenter.FubenBossSingleManager.GetBoosSingleData()
|
|
self.BossSingleData = bossSingleData
|
|
local isAutoFight = self.BossDetail:CheckAutoFightOpen()
|
|
|
|
if isAutoFight then
|
|
self.BossEnter:ShowPanel(true, bossSingleData, isAutoFight)
|
|
self.BossDetail:Refresh(bossSingleData)
|
|
self.BossDetail:SetAutoFightClose()
|
|
self.BossRankInfo:HidePanel()
|
|
self.BossList:PanelBossContentActive(false)
|
|
return
|
|
end
|
|
|
|
self.BossEnter:ShowPanel(true, bossSingleData, false, true)
|
|
self.BossDetail:HidePanel()
|
|
self.BossDetail:Refresh(bossSingleData)
|
|
self.RoleModelPanel:HideRoleModel()
|
|
self.BossList:PanelBossContentActive(true)
|
|
self.BossList:RefreshBossDifficult()
|
|
self.BossRankInfo:HidePanel()
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnRewardGet()
|
|
self.BossEnter:CheckRedPoint()
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnActivityEnd()
|
|
XDataCenter.FubenBossSingleManager.OnActivityEnd()
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnBtnBackClick()
|
|
if self.BossEnter.GameObject.activeSelf then
|
|
self:Close()
|
|
elseif self.BossRankInfo.GameObject.activeSelf then
|
|
self:Back2Enter()
|
|
elseif self.BossDetail.GameObject.activeSelf then
|
|
self:Back2Enter()
|
|
end
|
|
end
|
|
|
|
function XUiFubenBossSingle:Back2Enter()
|
|
self.BossEnter:ShowPanel()
|
|
self.BossDetail:HidePanel()
|
|
self.RoleModelPanel:HideRoleModel()
|
|
self.BossList:PanelBossContentActive(true)
|
|
self.BossRankInfo:HidePanel()
|
|
end
|
|
|
|
function XUiFubenBossSingle:OnBtnMainUiClick()
|
|
XLuaUiManager.RunMain()
|
|
end
|
|
|
|
function XUiFubenBossSingle:ShowBossDetail(bossId)
|
|
self.BossEnter:HidePanel()
|
|
self.BossRankInfo:HidePanel()
|
|
self.BossList:PanelBossContentActive(false)
|
|
self.BossDetail:ShowPanel(self.BossSingleData, bossId)
|
|
self.RoleModelPanel:ShowRoleModel()
|
|
end
|
|
|
|
function XUiFubenBossSingle:ShowBossRank(levelType, rankPlatform)
|
|
self.BossEnter:HidePanel()
|
|
self.BossDetail:HidePanel()
|
|
self.RoleModelPanel:HideRoleModel()
|
|
self.BossList:PanelBossContentActive(false)
|
|
self.BossRankInfo:ShowPanel(levelType, rankPlatform)
|
|
end
|
|
|
|
function XUiFubenBossSingle:RefreshModel(modelId, isHideBoss)
|
|
XUiModelUtility.UpdateModelByArchive(self, self.RoleModelPanel, modelId, XModelManager.MODEL_UINAME.XUiBossSingle)
|
|
|
|
if isHideBoss then
|
|
self.ImgEffectHuanrenHideBoss.gameObject:SetActiveEx(false)
|
|
self.ImgEffectHuanrenHideBoss.gameObject:SetActiveEx(true)
|
|
else
|
|
self.ImgEffectHuanren.gameObject:SetActiveEx(false)
|
|
self.ImgEffectHuanren.gameObject:SetActiveEx(true)
|
|
end
|
|
end
|
|
|
|
function XUiFubenBossSingle:ShowBossGroupInfo(groupId)
|
|
self.BossEnter:ShowBossGroupInfo(groupId)
|
|
end |