PGRData/Script/matrix/xui/xuifubencoinskill/XUiFubenCoinSkill.lua

214 lines
No EOL
8 KiB
Lua

local XUiFubenCoinSkill = XLuaUiManager.Register(XLuaUi, "UiFubenCoinSkill")
local LOCAL_COUNTDOWN_NAME = "UiFubenCoinSkillCountDown"
function XUiFubenCoinSkill:OnAwake()
self:InitAutoScript()
end
function XUiFubenCoinSkill:OnStart()
self.DetailParams = {}
self.FubenPanelTabList = {}
self.CsUiList = {}
self.BtnsGameObject = self.PanelBtns.gameObject
self.Animation = self.Transform:GetComponent("Animation")
self.AssetPanel = XUiPanelAsset.New(self, self.PanelAsset, XDataCenter.ItemManager.ItemId.FreeGem, XDataCenter.ItemManager.ItemId.ActionPoint, XDataCenter.ItemManager.ItemId.Coin)
self:InitTextByCfg()
self:StartCountDown()
self:InitXUiPanelFubenTab()
self:CheckPlayerLevelUp()
end
function XUiFubenCoinSkill:OnEnable()
self:CheckPlayerLevelUp()
self:UpdateData()
end
function XUiFubenCoinSkill:OnDestroy()
XDataCenter.FubenResourceManager.UpdateRewardFromTemp()
for _, v in pairs(self.CsUiList) do
v:Close()
end
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiFubenCoinSkill:InitAutoScript()
self:AutoInitUi()
self.SpecialSoundMap = {}
self:AutoAddListener()
end
function XUiFubenCoinSkill:AutoInitUi()
self.BtnBack = self.Transform:Find("SafeAreaContentPane/Top/BtnBack"):GetComponent("Button")
self.BtnMainUi = self.Transform:Find("SafeAreaContentPane/Top/BtnMainUi"):GetComponent("Button")
self.PanelAsset = self.Transform:Find("SafeAreaContentPane/PanelAsset")
self.PanelLevelUpTip = self.Transform:Find("SafeAreaContentPane/PanelLevelUpTip")
self.BtnClosePanelLevelUpTip = self.Transform:Find("SafeAreaContentPane/PanelLevelUpTip/BtnClosePanelLevelUpTip"):GetComponent("Button")
self.TxtChallengeLevel = self.Transform:Find("SafeAreaContentPane/PanelLevelUpTip/TxtChallengeLevel"):GetComponent("Text")
self.Panel = self.Transform:Find("SafeAreaContentPane/Panel")
self.PanelResetTime = self.Transform:Find("SafeAreaContentPane/Panel/PanelResetTime")
self.TxtResetTime = self.Transform:Find("SafeAreaContentPane/Panel/PanelResetTime/TxtResetTime"):GetComponent("Text")
self.PanelTitle = self.Transform:Find("SafeAreaContentPane/Panel/PanelTitle")
self.TxtName = self.Transform:Find("SafeAreaContentPane/Panel/PanelTitle/TxtName"):GetComponent("Text")
self.TxtDetail = self.Transform:Find("SafeAreaContentPane/Panel/PanelTitle/TxtDetail"):GetComponent("Text")
self.PanelBtns = self.Transform:Find("SafeAreaContentPane/Panel/PanelBtns")
self.PanelTab1 = self.Transform:Find("SafeAreaContentPane/Panel/PanelBtns/PanelTab1")
self.PanelTab2 = self.Transform:Find("SafeAreaContentPane/Panel/PanelBtns/PanelTab2")
self.PanelFubenTab = self.Transform:Find("SafeAreaContentPane/Panel/TargetFlag/PanelFubenTab")
self.PanelChallengeLevel = self.Transform:Find("SafeAreaContentPane/Panel/PanelChallengeLevel")
self.TxtTitle = self.Transform:Find("SafeAreaContentPane/Panel/PanelChallengeLevel/TxtTitle"):GetComponent("Text")
self.TxtLevelNow = self.Transform:Find("SafeAreaContentPane/Panel/PanelChallengeLevel/TxtLevelNow"):GetComponent("Text")
self.TxtLevelBefore = self.Transform:Find("SafeAreaContentPane/Panel/PanelChallengeLevel/TxtLevelBefore"):GetComponent("Text")
self.BtnActDesc = self.Transform:Find("SafeAreaContentPane/Panel/BtnActDesc"):GetComponent("Button")
end
function XUiFubenCoinSkill:GetAutoKey(uiNode,eventName)
if not uiNode then return end
return eventName .. uiNode:GetHashCode()
end
function XUiFubenCoinSkill:RegisterListener(uiNode, eventName, func)
local key = self:GetAutoKey(uiNode, eventName)
if not key then return end
local listener = self.AutoCreateListeners[key]
if listener ~= nil then
uiNode[eventName]:RemoveListener(listener)
end
if func ~= nil then
if type(func) ~= "function" then
XLog.Error("XUiFubenCoinSkill:RegisterListener函数错误, 参数func需要是function类型, func的类型是" .. type(func))
end
listener = function(...)
XSoundManager.PlayBtnMusic(self.SpecialSoundMap[key], eventName)
func(self, ...)
end
uiNode[eventName]:AddListener(listener)
self.AutoCreateListeners[key] = listener
end
end
function XUiFubenCoinSkill:AutoAddListener()
self.AutoCreateListeners = {}
self:RegisterClickEvent(self.BtnBack, self.OnBtnBackClick)
self:RegisterClickEvent(self.BtnMainUi, self.OnBtnMainUiClick)
self:RegisterClickEvent(self.BtnActDesc, self.OnBtnActDescClick)
end
-- auto
--初始化ui文本
function XUiFubenCoinSkill:InitTextByCfg()
local chapterTemplate = XDataCenter.FubenResourceManager.GetResourceChapters()
for _, v in pairs(chapterTemplate) do
self.TxtName.text = v.Name
self.TxtDetail.text = v.SimpleDesc
end
end
function XUiFubenCoinSkill:StartCountDown()
local remainingTime = XDataCenter.FubenResourceManager.GetRemainingTime()
XCountDown.CreateTimer(LOCAL_COUNTDOWN_NAME, remainingTime)
XCountDown.BindTimer(self, LOCAL_COUNTDOWN_NAME, function(v)
if self.IsHide then
return
end
if v > 0 then
self.PanelResetTime.gameObject:SetActive(true)
self.TxtResetTime.text = XUiHelper.GetTime(v, XUiHelper.TimeFormatType.CHALLENGE)
else
self.TxtResetTime.text = ""
self.PanelResetTime.gameObject:SetActive(false)
end
end)
end
--初始化副本按钮
function XUiFubenCoinSkill:InitXUiPanelFubenTab()
local sectionDatas = XDataCenter.FubenResourceManager.GetSectionDatas()
local i = 1
for typeId, data in pairs(sectionDatas) do
local btn = self.Transform:Find("SafeAreaContentPane/Panel/PanelBtns/PanelTab" .. i)
if btn then
local ui = XUiPanelFubenTab.New(self, btn)
ui:SetData(data)
self.FubenPanelTabList[typeId] = ui
end
i = i + 1
end
self.FocusPanelTab = XUiPanelFubenTab.New(self, self.PanelFubenTab)
end
--更新副本按钮表现
function XUiFubenCoinSkill:UpdateData()
local sectionDatas = XDataCenter.FubenResourceManager.GetSectionDatas()
for typeId, data in pairs(sectionDatas) do
self.FubenPanelTabList[typeId]:UpdateData(data)
end
end
--挑战等级提升提示
function XUiFubenCoinSkill:CheckPlayerLevelUp()
local nowLevel, lastLevel = XDataCenter.FubenResourceManager.GetPlayerLevelInfo()
self.TxtLevelNow.text = nowLevel
if not lastLevel then
return
end
-- XUiHelper.PlayAnimation(self, "CoinSkillLevelUp", function()
-- self.TxtChallengeLevel.text = nowLevel
-- self.PanelLevelUpTip.gameObject:SetActive(true)
-- end, nil)
end
function XUiFubenCoinSkill:OnBtnBackClick()
self:Close()
end
function XUiFubenCoinSkill:OnBtnMainUiClick()
XLuaUiManager.RunMain()
end
function XUiFubenCoinSkill:OnBtnActDescClick()
local resourceChapterCfg = XDataCenter.FubenResourceManager.GetResourceChapters()
for _, v in pairs(resourceChapterCfg) do
XUiManager.UiFubenDialogTip("", v.DetailDesc or "")
return
end
end
--副本按钮入口
function XUiFubenCoinSkill:OnFubenSelected(typeId)
if not self.BeginAnim then
return
end
self:SetActive(false)
local fightCb = function(stage)
XDataCenter.FubenManager.OpenRoomSingle(stage)
XDataCenter.FubenResourceManager.UpdateRewardFromTemp()
self:SetActive(true)
end
local closeCb = function()
self:SetActive(true)
end
self.DetailParams.typeId = typeId
self.DetailParams.fightCb = fightCb
self.DetailParams.closeCb = closeCb
self:OpenOneChildUi("UiFubenResourceDetail", self.DetailParams)
end
function XUiFubenCoinSkill:SetActive(flag)
self.PanelResetTime.gameObject:SetActive(flag)
self.PanelTitle.gameObject:SetActive(flag)
self.PanelBtns.gameObject:SetActive(flag)
self.PanelAsset.gameObject:SetActive(flag)
self.BtnActDesc.gameObject:SetActive(flag)
self.IsHide = not flag
end
return XUiFubenCoinSkill