forked from endernon/PGRData
214 lines
No EOL
8 KiB
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 |