c1_lua/lua/app/ui/privilege/privilege_main_ui.lua
2025-10-28 10:28:46 +08:00

240 lines
7.2 KiB
Lua

local PrivilegeMainUI = class("PrivilegeMainUI", BaseUI)
function PrivilegeMainUI:showCommonBG()
return false
end
function PrivilegeMainUI:onPressBackspace()
self:closeUI()
end
function PrivilegeMainUI:getCurrencyParams()
local params = {}
params.showType = GConst.CURRENCY_TYPE.HORIZONTAL
params.itemIds = {
GConst.ItemConst.ITEM_ID_GOLD,
GConst.ItemConst.ITEM_ID_GEM,
GConst.ItemConst.ITEM_ID_VIT,
}
return params, true
end
function PrivilegeMainUI:getPrefabPath()
return "assets/prefabs/ui/privilege/privilege_main_ui.prefab"
end
function PrivilegeMainUI:onClose()
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.MAIN_UI_CHECK_POP)
end
function PrivilegeMainUI:ctor(param)
if param and param.showPage then
self.showPage = param.showPage
end
end
function PrivilegeMainUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.btnClose = uiMap["privilege_main_ui.bottom.btn_close"]
self.scrollrectNode = uiMap["privilege_main_ui.scrollrect"]
self.content = uiMap["privilege_main_ui.scrollrect.viewport.content"]
self.freeDailyRewards = uiMap["privilege_main_ui.scrollrect.viewport.content.bg.free_daily_rewards"]
self.adCard = uiMap["privilege_main_ui.scrollrect.viewport.content.bg.ad_card"]
self.monthlyCard = uiMap["privilege_main_ui.scrollrect.viewport.content.bg.monthly_card"]
-- self.lifetimeCard = uiMap["privilege_main_ui.scrollrect.viewport.content.bg.lifetime_card"]
-- self.challegeCard = uiMap["privilege_main_ui.scrollrect.viewport.content.bg.challege_card"]
self.btnAll = uiMap["privilege_main_ui.bottom.btn_all"]
self.btnAll:addClickListener(function()
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(0)
end)
self.btnAllTx = uiMap["privilege_main_ui.bottom.btn_all.text"]
self.btnAllTx:setText(I18N:getGlobalText(I18N.GlobalConst.ONE_KEY_GET_DESC))
self.btnAllGrey = uiMap["privilege_main_ui.bottom.btn_all_grey"]
self.btnAllGreyTx = uiMap["privilege_main_ui.bottom.btn_all_grey.text"]
self.btnAllGreyTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_DONE))
self:scheduleGlobal(function()
self:updateTime()
end, 1)
self.btnClose:addClickListener(function()
self:closeUI()
end)
self:bind(DataManager.PrivilegeCardData, "isDirty", function()
self:onRefresh()
self:updateCurrencyBar()
end)
self:bind(DataManager.PaymentData, "isDirty", function()
self:onRefresh()
end)
if self.page then
BIReportV2:postOperation(BIReportV2.OPERATION_UI_NAME["PRIVILEGE_CARD_" .. self.page])
else
BIReportV2:postOperation(BIReportV2.OPERATION_UI_NAME.PRIVILEGE_CARD)
end
end
function PrivilegeMainUI:updateTime()
if self.monthlyCardComp then
self.monthlyCardComp:updateTime()
end
if self.challegeCardComp then
self.challegeCardComp:updateTime()
end
end
function PrivilegeMainUI:onRefresh()
local height = -20
height = self:updateFreeDailyRewards(height)
height = self:updateAdCard(height)
height = self:updateMonthlyCard(height)
-- height = self:updateLifetimeCard(height)
-- height = self:updateChallegeCard(height)
height = height - 50
self.content:setSizeDeltaY(math.abs(height))
local scrollHeight = self.scrollrectNode:getRectHeight()
local maxPosY = math.abs(height) - scrollHeight
if self.beginPosY then
self.content:setAnchoredPositionY(math.min(maxPosY, self.beginPosY))
end
self.beginPosY = nil
self.showPage = nil
local haveUnclaimedRewards = false
if not DataManager.PrivilegeCardData:getIsClaimedFreeDailyReward() then
haveUnclaimedRewards = true
end
if DataManager.PrivilegeCardData:getIsMonthlyCardOpen() then
if DataManager.PrivilegeCardData:getIsMonthlyCardActive() then
local remainTime = DataManager.PrivilegeCardData:getCardRemainTime(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
if remainTime > 0 then
local isClaimed = DataManager.PrivilegeCardData:getIsClaimedMonthlyCardDailyReward()
if not isClaimed then
haveUnclaimedRewards = true
end
end
end
end
-- if DataManager.PrivilegeCardData:getIsLifetimeCardOpen() then
-- local isActive = DataManager.PrivilegeCardData:getIsLifetimeCardActive()
-- if isActive then
-- local isClaimed = DataManager.PrivilegeCardData:getIsClaimedLifetimeCardDailyReward()
-- if not isClaimed then
-- haveUnclaimedRewards = true
-- end
-- end
-- end
self.btnAll:setActive(haveUnclaimedRewards)
if haveUnclaimedRewards then
self.btnAll:addRedPoint(96, 36, 1)
else
self.btnAll:removeRedPoint()
end
self.btnAllGrey:setActive(not haveUnclaimedRewards)
end
function PrivilegeMainUI:updateFreeDailyRewards(offsetY)
if self.showPage == GConst.ShopConst.PRIVILEGE_SHOW_PAGE.FREE_DAILY_REWARDS then
self.beginPosY = math.abs(offsetY)
end
self.freeDailyRewards:setAnchoredPositionY(offsetY)
offsetY = offsetY - 250
local cell = self.freeDailyRewards:addLuaComponent(GConst.ShopConst.PRIVILEGE_COMP.FREE_DAILY_REWARDS)
cell:refresh()
return offsetY
end
function PrivilegeMainUI:updateAdCard(offsetY)
self.adCard:setActive(false)
if not DataManager.PrivilegeCardData:getIsAdCardOpen() then
return offsetY
end
self.adCard:setActive(true)
if self.showPage == GConst.ShopConst.PRIVILEGE_SHOW_PAGE.CARD_AD then
self.beginPosY = math.abs(offsetY)
end
self.adCard:setAnchoredPositionY(offsetY)
offsetY = offsetY - 440
local cell = self.adCard:addLuaComponent(GConst.ShopConst.PRIVILEGE_COMP.CARD_AD)
cell:refresh()
return offsetY
end
function PrivilegeMainUI:updateMonthlyCard(offsetY)
self.monthlyCard:setActive(false)
if not DataManager.PrivilegeCardData:getIsMonthlyCardOpen() then
return offsetY
end
self.monthlyCard:setActive(true)
if self.showPage == GConst.ShopConst.PRIVILEGE_SHOW_PAGE.MONTHLY_CARD then
self.beginPosY = math.abs(offsetY)
end
self.monthlyCard:setAnchoredPositionY(offsetY)
offsetY = offsetY - 450
self.monthlyCardComp = self.monthlyCard:addLuaComponent(GConst.ShopConst.PRIVILEGE_COMP.MONTHLY_CARD)
self.monthlyCardComp:refresh()
return offsetY
end
-- function PrivilegeMainUI:updateLifetimeCard(offsetY)
-- self.lifetimeCard:setActive(false)
-- if not DataManager.PrivilegeCardData:getIsLifetimeCardOpen() then
-- return offsetY
-- end
-- self.lifetimeCard:setActive(true)
-- if self.showPage == GConst.ShopConst.PRIVILEGE_SHOW_PAGE.LIFETIME_CARD then
-- self.beginPosY = math.abs(offsetY)
-- end
-- self.lifetimeCard:setAnchoredPositionY(offsetY)
-- offsetY = offsetY - 472
-- local cell = self.lifetimeCard:addLuaComponent(GConst.ShopConst.PRIVILEGE_COMP.LIFETIME_CARD)
-- cell:refresh()
-- return offsetY
-- end
-- function PrivilegeMainUI:updateChallegeCard(offsetY)
-- self.challegeCard:setActive(false)
-- if not DataManager.PrivilegeCardData:getIsChallengeCardOpen() then
-- return offsetY
-- end
-- self.challegeCard:setActive(true)
-- if self.showPage == GConst.ShopConst.PRIVILEGE_SHOW_PAGE.CHALLEGE_CARD then
-- self.beginPosY = math.abs(offsetY)
-- end
-- self.challegeCard:setAnchoredPositionY(offsetY)
-- offsetY = offsetY - 420
-- self.challegeCardComp = self.challegeCard:addLuaComponent(GConst.ShopConst.PRIVILEGE_COMP.CHALLEGE_CARD)
-- self.challegeCardComp:refresh()
-- return offsetY
-- end
function PrivilegeMainUI:refreshRedPoint()
end
function PrivilegeMainUI:isOpen(type)
end
function PrivilegeMainUI:hasRedPoint(type)
end
return PrivilegeMainUI