PGRData/Script/matrix/xui/xuimultidim/XUiMultiDimSingleCopyTips.lua

188 lines
No EOL
6.9 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 XUiMultiDimSingleCopyTips = XLuaUiManager.Register(XLuaUi, "UiMultiDimSingleCopyTips")
-- 此类和大部分关卡detail类似命名是ui定的
function XUiMultiDimSingleCopyTips:OnAwake()
self.StarGridList = {}
self.GridList = {}
local itemId = XDataCenter.MultiDimManager.GetActivityItemId()
self.AssetPanel = XUiHelper.NewPanelActivityAsset({ itemId }, self.PanelSpecialTool)
self:InitStarPanels()
self.BtnEnter.CallBack = function() self:OnBtnEnterClick() end
self.BtnRewardTip.CallBack = function() self:OnBtnRewardTipClick() end
self.BtnDetailInfo.CallBack = function() self:OnBtnDetailInfoClick() end
end
function XUiMultiDimSingleCopyTips:InitStarPanels()
for i = 1, 3 do
self.StarGridList[i] = XUiGridStageStar.New(self[string.format("GridStageStar%d", i)])
end
end
function XUiMultiDimSingleCopyTips:OnStart(rootUi)
self.RootUi = rootUi
end
--mStage:表MultiDimSingleFuben
function XUiMultiDimSingleCopyTips:SetStageDetail(stageId, festivalId)
local mStage = XMultiDimConfig.GetMultiSingleStageDataById(stageId)
if not mStage then return end
self.MStage = mStage
self.StageCfg = XDataCenter.FubenManager.GetStageCfg(stageId)
self.StageInfo = XDataCenter.FubenManager.GetStageInfo(stageId)
-- 屏蔽挑战次数
-- local maxChallengeNum = XDataCenter.FubenManager.GetStageMaxChallengeNums(stageId)
-- local isLimitCount = maxChallengeNum > 0
-- self.PanelNums.gameObject:SetActiveEx(isLimitCount)
-- self.PanelNoLimitCount.gameObject:SetActiveEx(not isLimitCount)
self.PanelNums.gameObject:SetActiveEx(false)
self.PanelNoLimitCount.gameObject:SetActiveEx(false)
-- -- 有次数限制
-- if isLimitCount then
-- self.TxtAllNums.text = string.format("/%d", maxChallengeNum)
-- local stageData = XDataCenter.FubenManager.GetStageData(self.StageCfg.StageId)
-- local passedCounts = stageData and stageData.PassTimesToday or 0
-- self.TxtLeftNums.text = maxChallengeNum - passedCounts
-- end
self.TxtTitle.text = self.StageCfg.Name
for i = 1, 3 do
self.StarGridList[i]:Refresh(self.StageCfg.StarDesc[i], self.StageInfo.StarsMap[i])
end
-- 若没到开启时间则提示
self.IsLock = not XFunctionManager.CheckInTimeByTimeId(self.MStage.OpenTimeId)
if self.IsLock then
self.BtnEnter:SetDisable(true)
self.TextTime.gameObject:SetActive(true)
local startTime = XFunctionManager.GetStartTimeByTimeId(self.MStage.OpenTimeId)
local dayFormat = CS.XTextManager.GetText("TimeFormatMinute")
local startTimeStr = XTime.TimestampToGameDateTimeString(startTime, dayFormat)
startTimeStr = XUiHelper.GetText("MultiDimSingleStageOpenText", startTimeStr)
self.TextTime.text = startTimeStr
else
self.BtnEnter:SetDisable(false)
self.BtnEnter.gameObject:SetActive(true)
self.TextTime.gameObject:SetActive(false)
end
--进入消耗道具
-- self.ImgCostIcon:SetRawImage(XDataCenter.ItemManager.GetItemIcon(XDataCenter.ItemManager.ItemId.ActionPoint))
-- self.TxtATNums.text = mStage:GetRequireActionPoint()
self:UpdateRewards()
end
function XUiMultiDimSingleCopyTips:UpdateRewardTitle(isFirstDrop)
self.TxtDrop.gameObject:SetActive(not isFirstDrop)
self.TxtFirstDrop.gameObject:SetActive(isFirstDrop)
end
function XUiMultiDimSingleCopyTips:UpdateRewards()
if not self.MStage then return end
local rewardId = self.StageCfg.FinishRewardShow
local IsFirst = false
-- 首通有没有填
local controlCfg = XDataCenter.FubenManager.GetStageLevelControl(self.StageCfg.StageId)
-- 有首通
if not self.StageInfo.Passed then
if controlCfg and controlCfg.FirstRewardShow > 0 then
rewardId = controlCfg.FirstRewardShow
IsFirst = true
elseif self.StageCfg.FirstRewardShow > 0 then
rewardId = self.StageCfg.FirstRewardShow
IsFirst = true
end
end
-- 没首通
if not IsFirst then
if controlCfg and controlCfg.FinishRewardShow > 0 then
rewardId = controlCfg.FinishRewardShow
else
rewardId = self.StageCfg.FinishRewardShow
end
end
self:UpdateRewardTitle(IsFirst)
local rewards = {}
if rewardId > 0 then
rewards = IsFirst and XRewardManager.GetRewardList(rewardId) or XRewardManager.GetRewardListNotCount(rewardId)
end
if rewards then
for i, item in ipairs(rewards) do
local grid
if self.GridList[i] then
grid = self.GridList[i]
else
local ui = CS.UnityEngine.Object.Instantiate(self.GridCommon)
grid = XUiGridCommon.New(self, ui)
grid.Transform:SetParent(self.PanelDropContent, false)
self.GridList[i] = grid
end
grid:Refresh(item)
grid.GameObject:SetActive(true)
end
end
self.GridCommon.gameObject:SetActive(false)
local rewardsCount = 0
if rewards then
rewardsCount = #rewards
end
for j = 1, #self.GridList do
if j > rewardsCount then
self.GridList[j].GameObject:SetActive(false)
end
end
end
function XUiMultiDimSingleCopyTips:OnBtnEnterClick()
if not self.MStage then
XLog.Error("XUiMultiDimSingleCopyTips:OnBtnEnterClick 函数错误: 关卡信息为空 ")
return
end
-- local isInTime, tips = self.MStage:GetChapter():GetIsInTimeAndTips()
-- if not isInTime then
-- XUiManager.TipMsg(tips)
-- return
-- end
-- 屏蔽挑战次数
-- local stageData = XDataCenter.FubenManager.GetStageData(self.StageCfg.StageId)
-- local passedCounts = stageData and stageData.PassTimesToday or 0
-- local maxChallengeNum = XDataCenter.FubenManager.GetStageMaxChallengeNums(self.StageCfg.StageId)
-- if maxChallengeNum > 0 and passedCounts >= maxChallengeNum then
-- XUiManager.TipMsg(CS.XTextManager.GetText("FubenChallengeCountNotEnough"))
-- return
-- end
if XDataCenter.FubenManager.CheckPreFight(self.StageCfg) then
if self.RootUi then
self.RootUi:ClearNodesSelect()
end
XLuaUiManager.Open("UiBattleRoleRoom",
self.StageCfg.StageId,
XDataCenter.TeamManager.GetXTeamByTypeId(CS.XGame.Config:GetInt("TypeIdMultiDimSingle")),
require("XUi/XUiMultiDim/XUiMultiDimSingleCopyRoleRoom"))
self.RootUi:CloseStageDetails()
self:Close()
end
end
function XUiMultiDimSingleCopyTips:OnBtnRewardTipClick()
XLuaUiManager.Open("UiMultiDimRewardTips", self.MStage)
end
-- 挑战详情
function XUiMultiDimSingleCopyTips:OnBtnDetailInfoClick()
XLuaUiManager.Open("UiMultiDimDetails", self.MStage.StageId, true)
end
function XUiMultiDimSingleCopyTips:CloseDetailWithAnimation()
-- self:PlayAnimation("AnimDisableEnd", function()
self:Close()
-- end)
end