166 lines
6.8 KiB
Lua
166 lines
6.8 KiB
Lua
|
--工会boss普通关卡详细信息页面
|
||
|
local XUiGuildBossLog = require("XUi/XUiGuildBoss/Component/XUiGuildBossLog")
|
||
|
local XUiGuildBossSkillGrid = require("XUi/XUiGuildBoss/Component/XUiGuildBossSkillGrid")
|
||
|
local XUiGuildBossRankPanel = require("XUi/XUiGuildBoss/Component/XUiGuildBossRankPanel")
|
||
|
local XUiGuildBossCurSubLevelInfo = XLuaUiManager.Register(XLuaUi, "UiGuildBossCurSubLevelInfo")
|
||
|
local GUILD_BOSS_NEED_BUFF = 100
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:OnAwake()
|
||
|
self.Instantiate = CS.UnityEngine.GameObject.Instantiate
|
||
|
self.VectorOne = CS.UnityEngine.Vector3.one
|
||
|
self.VectorZero = CS.UnityEngine.Vector3.zero
|
||
|
self.BtnStart.CallBack = function() self:OnBtnStartClick() end
|
||
|
self.MaxCount = CS.XGame.Config:GetInt("GuildBossStageUploadCount")
|
||
|
self.Skill = XUiGuildBossSkillGrid.New(self.SkillGrid)
|
||
|
self.RankPanel = XUiGuildBossRankPanel.New(self.PanelRankObj)
|
||
|
self.EnterWarningTitleStr = CS.XTextManager.GetText("GuildBossEnterWarningTitleStr")
|
||
|
self.EnterLowWarningStr = CS.XTextManager.GetText("GuildBossEnterLowWarningStr")
|
||
|
self.EnterHighWarningStr = CS.XTextManager.GetText("GuildBossEnterHighWarningStr")
|
||
|
|
||
|
--Log相关
|
||
|
self.BtnCloseFullRecord.CallBack = function() self:OnBtnCloseFullRecordClick() end
|
||
|
self.BtnOpenRecord.CallBack = function() self:OnBtnOpenRecordClick() end
|
||
|
self.LogDynamicTable = XDynamicTableIrregular.New(self.PanelRecordView)
|
||
|
self.LogDynamicTable:SetProxy("XUiGuildBossLog", XUiGuildBossLog, self.RecordItem.gameObject)
|
||
|
self.LogDynamicTable:SetDelegate(self)
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:GetProxyType()
|
||
|
return "XUiGuildBossLog"
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:OnStart(ui)
|
||
|
self.ParentUi = ui
|
||
|
end
|
||
|
|
||
|
--参数data XXDataCenter.GuildBossManager.GuildBossActivityRequest->GuildBossLevelData
|
||
|
function XUiGuildBossCurSubLevelInfo:OnEnable()
|
||
|
self:UpdateAllInfo()
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:UpdateAllInfo()
|
||
|
self.Data = self.ParentUi.CurSelectLevelData
|
||
|
self.DetailData = XDataCenter.GuildBossManager.GetDetailLevelData(self.Data.StageId)
|
||
|
|
||
|
self.ConfigData = XGuildBossConfig.GetBossStageInfo(self.Data.StageId)
|
||
|
self.TxtCode.text = self.ConfigData.Code .. self.Data.NameOrder
|
||
|
self.TxtName.text = self.ConfigData.Name
|
||
|
self.TxtLimit.text = self.ConfigData.Limit
|
||
|
self.ImgIcon:SetSprite(self.ConfigData.DetailIcon)
|
||
|
self.OrderMark.gameObject:SetActiveEx(false)
|
||
|
self.TxtIsDone.gameObject:SetActiveEx(self.Data.Score > 0)
|
||
|
self.GroupScore.gameObject:SetActiveEx(self.Data.Score > 0)
|
||
|
self.GroupOne.gameObject:SetActiveEx(self.Data.Score == 0)
|
||
|
self.TxtScore.text = XUiHelper.GetLargeIntNumText(self.Data.Score)
|
||
|
self.TxtCount.text = CS.XTextManager.GetText("GuildBossCount", self.Data.UploadCount, self.MaxCount)
|
||
|
--buff
|
||
|
self.Skill:Init(self.ConfigData, self.Data.BuffNeed)
|
||
|
--Rank
|
||
|
self.RankPanel:Init(self.Data.StageId)
|
||
|
--log
|
||
|
self:RefreshLogList(true)
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:RefreshLogList(reloadData)
|
||
|
if reloadData then
|
||
|
self.LogData = {}
|
||
|
local allLogData = XDataCenter.GuildBossManager.GetLogs()
|
||
|
if allLogData then
|
||
|
for i = 1, #allLogData do
|
||
|
if allLogData[i].StageId == self.Data.StageId then
|
||
|
table.insert(self.LogData, allLogData[i])
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
self.LogDynamicTable:SetDataSource(self.LogData)
|
||
|
end
|
||
|
self.LogDynamicTable:ReloadDataASync(#self.LogData)
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:OnBtnCloseClick()
|
||
|
self:Close()
|
||
|
end
|
||
|
|
||
|
--Log动态列表事件
|
||
|
function XUiGuildBossCurSubLevelInfo:OnDynamicTableEvent(event, index, grid)
|
||
|
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
||
|
grid:Init(self.LogData[index])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
--展开详细记录
|
||
|
function XUiGuildBossCurSubLevelInfo:OnBtnOpenRecordClick()
|
||
|
self.BtnOpenRecord.gameObject:SetActiveEx(false)
|
||
|
self.BtnCloseFullRecord.gameObject:SetActiveEx(true)
|
||
|
self.ImgUnfoldBack.gameObject:SetActiveEx(true)
|
||
|
self.PanelRecordViewRect.sizeDelta = CS.UnityEngine.Vector2(410, 900)
|
||
|
self.PanelRecordViewRect.anchoredPosition = CS.UnityEngine.Vector2(30, 950)
|
||
|
self:RefreshLogList()
|
||
|
end
|
||
|
|
||
|
--关闭详细记录
|
||
|
function XUiGuildBossCurSubLevelInfo:OnBtnCloseFullRecordClick()
|
||
|
self.BtnOpenRecord.gameObject:SetActiveEx(true)
|
||
|
self.BtnCloseFullRecord.gameObject:SetActiveEx(false)
|
||
|
self.ImgUnfoldBack.gameObject:SetActiveEx(false)
|
||
|
self.PanelRecordViewRect.sizeDelta = CS.UnityEngine.Vector2(410, 163)
|
||
|
self.PanelRecordViewRect.anchoredPosition = CS.UnityEngine.Vector2(30, 250)
|
||
|
self:RefreshLogList()
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:OnBtnStartClick()
|
||
|
if self.Data.Type == GuildBossLevelType.High and not XConditionManager.CheckCondition(7201) then -- 重灾区检查等级检查52 临时写死 fix
|
||
|
XUiManager.TipError(CS.XTextManager.GetText("GuildBossHighAreaLvLimit"))
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if self.Data.UploadCount == self.MaxCount then
|
||
|
XUiManager.TipError(CS.XTextManager.GetText("GuildBossCountFull"))
|
||
|
return
|
||
|
end
|
||
|
|
||
|
XDataCenter.GuildBossManager.GuildBossStageRequest(self.Data.StageId, function()
|
||
|
local tmpDetailLevelData = XDataCenter.GuildBossManager.GetDetailLevelData(self.Data.StageId)
|
||
|
if self.DetailData.BuffLeft ~= tmpDetailLevelData.BuffLeft then
|
||
|
self.DetailData = tmpDetailLevelData
|
||
|
|
||
|
XDataCenter.GuildBossManager.GuildBossActivityRequest(function()
|
||
|
if self.ParentUi then
|
||
|
self.ParentUi:UpdatePage(0)
|
||
|
self.ParentUi:UpdateCurSelectLevelData()
|
||
|
self:UpdateAllInfo()
|
||
|
else
|
||
|
self:Close()
|
||
|
end
|
||
|
end)
|
||
|
end
|
||
|
self:RealOnBtnStartClick()
|
||
|
end)
|
||
|
end
|
||
|
|
||
|
function XUiGuildBossCurSubLevelInfo:RealOnBtnStartClick()
|
||
|
local func = function()
|
||
|
if XTool.USENEWBATTLEROOM then
|
||
|
XLuaUiManager.Open("UiBattleRoleRoom", self.Data.StageId
|
||
|
, XDataCenter.GuildBossManager.GetXTeamByStageId(self.Data.StageId)
|
||
|
, require("XUi/XUiGuildBoss/XUiGuildBossBattleRoleRoom"))
|
||
|
else
|
||
|
XLuaUiManager.Open("UiNewRoomSingle", self.Data.StageId)
|
||
|
end
|
||
|
end
|
||
|
if self.DetailData.BuffLeft >= GUILD_BOSS_NEED_BUFF then
|
||
|
XLuaUiManager.Open("UiDialog", self.EnterWarningTitleStr, CS.XTextManager.GetText("GuildBossBuffActive"), XUiManager.DialogType.Normal, nil, func)
|
||
|
elseif self.Data.UploadCount == 0 then
|
||
|
local context = nil
|
||
|
if self.Data.Type == GuildBossLevelType.Low then
|
||
|
context = self.EnterLowWarningStr
|
||
|
else
|
||
|
context = self.EnterHighWarningStr
|
||
|
end
|
||
|
XLuaUiManager.Open("UiDialog", self.EnterWarningTitleStr, context, XUiManager.DialogType.Normal, nil, func)
|
||
|
else
|
||
|
func()
|
||
|
end
|
||
|
|
||
|
end
|