c1_lua/lua/app/ui/privilege/comp/monthly_card_comp.lua
2025-10-08 18:17:02 +08:00

180 lines
7.9 KiB
Lua

local MonthlyCardComp = class("MonthlyCardComp", LuaComponent)
function MonthlyCardComp:init()
local uiMap = self:getUIMap()
self.titleTx = uiMap["monthly_card.title_tx"]
self.titleTx:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_NAME_3))
self.descTx1 = uiMap["monthly_card.desc_bg_1.text"]
self.descTx1:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_4))
self.descTx2 = uiMap["monthly_card.desc_bg_2.text"]
self.descTx2:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_5))
self.descTx3 = uiMap["monthly_card.desc_bg_3.text"]
self.descTx3:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_6))
self.descTx4 = uiMap["monthly_card.desc_bg_4.text"]
self.descTx4:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_7))
self.descTx5 = uiMap["monthly_card.desc_tx_1"]
self.descTx6 = uiMap["monthly_card.desc_tx_2"]
self.descTx7 = uiMap["monthly_card.desc_tx_3"]
self.rewadCell1 = uiMap["monthly_card.reward_bg_1.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.rewadCell12 = uiMap["monthly_card.reward_bg_1.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.rewardDesc1 = uiMap["monthly_card.reward_bg_1.text"]
self.rewardDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_7))
self.rewadCell2 = uiMap["monthly_card.reward_bg_2.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.rewardDesc2 = uiMap["monthly_card.reward_bg_2.text"]
self.rewardDesc2:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_3))
self.payBtn = uiMap["monthly_card.btn_pay"]
self.payBtn:addClickListener(function()
local count = DataManager.PrivilegeCardData:getUnclaimedMonthlyCardDailyRewardCount()
if count > 0 then -- 还有奖励没领取完
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
else
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
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
end
else
ModuleManager.PrivilegeCardManager:buyMonthlyCard()
end
end
end)
self.payBtnTx = uiMap["monthly_card.btn_pay.text"]
self.payBtnGrey = uiMap["monthly_card.btn_pay_grey"]
self.payBtnGreyTx = uiMap["monthly_card.btn_pay_grey.text"]
self.offImg = uiMap["monthly_card.off_img"]
self.offText1 = uiMap["monthly_card.off_img.text"]
self.offText2 = uiMap["monthly_card.off_img.text_2"]
self.offText2:setText(I18N:getGlobalText(I18N.GlobalConst.VALUE_DESC))
uiMap["monthly_card.ui_spine_obj"]:playAnim("idle", true, true)
end
function MonthlyCardComp:refresh()
local cfg = DataManager.ShopData:getActGiftConfig(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
if cfg == nil then
return
end
local remainTime = DataManager.PrivilegeCardData:getCardRemainTime(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
local isActive = remainTime > 0
local rewards = DataManager.PrivilegeCardData:getMonthlyCardDailyRewards()
if isActive then
self.descTx5:setText("<color=#4BFF53>" .. I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_12) .. "</color>")
self.descTx7:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_14, Time:formatNumTimeStr(remainTime)))
local isClaimed = DataManager.PrivilegeCardData:getIsClaimedMonthlyCardDailyReward()
if rewards and rewards[1] then
self.rewadCell1:refreshByConfig(rewards[1], isClaimed, isClaimed)
end
if rewards and rewards[2] then
self.rewadCell12:refreshByConfig(rewards[2], isClaimed, isClaimed)
end
if isClaimed then
self.payBtnGrey:setActive(true)
self.payBtnGreyTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_DONE))
self.payBtn:setActive(false)
self.rewadCell1:hideFrameAnimation()
self.rewadCell1:clearClickListener()
self.rewadCell12:hideFrameAnimation()
self.rewadCell12:clearClickListener()
self.descTx6:setText(GConst.EMPTY_STRING)
self.payBtn:removeRedPoint()
else
self.payBtnGrey:setActive(false)
self.payBtn:setActive(true)
self.payBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
local count = DataManager.PrivilegeCardData:getUnclaimedMonthlyCardDailyRewardCount()
if count > 1 then
self.descTx6:setText("<color=#4BFF53>" .. I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_1, count) .. "</color>")
else
self.descTx6:setText(GConst.EMPTY_STRING)
end
if rewards and rewards[1] then
local num = count*rewards[1].num
self.rewadCell1:showRewardNum(GFunc.num2Str(num))
end
if rewards and rewards[2] then
local num = count*rewards[2].num
self.rewadCell12:showRewardNum(GFunc.num2Str(num))
end
self.rewadCell1:showFrameAnimation()
self.rewadCell1:addClickListener(function()
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
end)
self.rewadCell12:showFrameAnimation()
self.rewadCell12:addClickListener(function()
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
end)
self.payBtn:addRedPoint(86, 36, 1)
end
else
self.descTx5:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_13))
self.descTx7:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_15, 30))
local count = DataManager.PrivilegeCardData:getUnclaimedMonthlyCardDailyRewardCount()
if count > 0 then -- 还有奖励没领
if count > 1 then
self.descTx6:setText("<color=#4BFF53>" .. I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_1, count) .. "</color>")
else
self.descTx6:setText(GConst.EMPTY_STRING)
end
self.payBtnGrey:setActive(false)
self.payBtn:setActive(true)
self.payBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
if rewards and rewards[1] then
local num = count*rewards[1].num
self.rewadCell1:refreshByConfig(rewards[1], false, false)
self.rewadCell1:showRewardNum(GFunc.num2Str(num))
end
if rewards and rewards[2] then
local num = count*rewards[2].num
self.rewadCell12:refreshByConfig(rewards[2], false, false)
self.rewadCell12:showRewardNum(GFunc.num2Str(num))
end
self.rewadCell1:showFrameAnimation()
self.rewadCell1:addClickListener(function()
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
end)
self.rewadCell12:showFrameAnimation()
self.rewadCell12:addClickListener(function()
ModuleManager.PrivilegeCardManager:getPurchaseCardDailyReward(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
end)
else
self.descTx6:setText(GConst.EMPTY_STRING)
self.payBtnGrey:setActive(false)
self.payBtn:setActive(true)
self.payBtnTx:setText(GFunc.getFormatPrice(cfg.recharge_id))
if rewards and rewards[1] then
self.rewadCell1:refreshByConfig(rewards[1], false, false)
end
self.rewadCell1:hideFrameAnimation()
self.rewadCell1:clearClickListener()
if rewards and rewards[2] then
self.rewadCell12:refreshByConfig(rewards[2], false, false)
end
self.rewadCell12:hideFrameAnimation()
self.rewadCell12:clearClickListener()
self.payBtn:removeRedPoint()
end
end
if cfg.reward and cfg.reward[1] then
self.rewadCell2:refreshByConfig(cfg.reward[1], isActive, isActive)
end
if cfg.value then
self.offImg:setVisible(true)
self.offText1:setText(cfg.value .. "%")
else
self.offImg:setVisible(false)
end
end
function MonthlyCardComp:updateTime()
if DataManager.PrivilegeCardData:getIsMonthlyCardActive() then
local remainTime = DataManager.PrivilegeCardData:getCardRemainTime(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD)
self.descTx7:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_14, Time:formatNumTimeStr(remainTime)))
end
end
return MonthlyCardComp