local MonthlyCardUI = class("MonthlyCardUI", BaseUI) local IMG_BANNER = { [GConst.MonthlyCardConst.CARD_TYPE.CARD_1] = "monthlycard_banner_2", [GConst.MonthlyCardConst.CARD_TYPE.CARD_2] = "monthlycard_banner_1", } local IMG_TITLE = { [GConst.MonthlyCardConst.CARD_TYPE.CARD_1] = "monthlycard_tattle_2", [GConst.MonthlyCardConst.CARD_TYPE.CARD_2] = "monthlycard_tattle_1", } local TX_TITLE = { [GConst.MonthlyCardConst.CARD_TYPE.CARD_1] = "MONTHLY_CARD_2", [GConst.MonthlyCardConst.CARD_TYPE.CARD_2] = "MONTHLY_CARD_3", } local IMG_OFF = { [GConst.MonthlyCardConst.CARD_TYPE.CARD_1] = "monthlycard_bg_4", [GConst.MonthlyCardConst.CARD_TYPE.CARD_2] = "monthlycard_bg_3", } local IMG_SHOW = { [GConst.MonthlyCardConst.CARD_TYPE.CARD_1] = {"monthlycard_dec_2" , "monthlycard_dec_3"}, [GConst.MonthlyCardConst.CARD_TYPE.CARD_2] = {"monthlycard_dec_4"}, } local TX_SHOW = { [GConst.MonthlyCardConst.CARD_TYPE.CARD_1] = {"MONTHLY_CARD_20" , "MONTHLY_CARD_DESC_1_1"}, [GConst.MonthlyCardConst.CARD_TYPE.CARD_2] = {"MONTHLY_CARD_2"}, } function MonthlyCardUI:isFullScreen() return false end function MonthlyCardUI:showCommonBG() return false end function MonthlyCardUI:getPrefabPath() return "assets/prefabs/ui/privilege/monthly_card_ui.prefab" end function MonthlyCardUI:onPressBackspace() self:closeUI() end function MonthlyCardUI:onClose() if self.callback then self.callback() end end function MonthlyCardUI:ctor(param) self.cardType = param.cardType self.callback = param.callback self.showToday = param.showToday end function MonthlyCardUI:onLoadRootComplete() local uiMap = self.root:genAllChildren() self.banner = uiMap["monthly_card_ui.banner"] self.card1Node = uiMap["monthly_card_ui.banner.card_1"] self.txDesc1 = uiMap["monthly_card_ui.banner.card_1.tx_desc"] self.txTips1 = uiMap["monthly_card_ui.banner.card_1.tx_tips"] self.card2Node = uiMap["monthly_card_ui.banner.card_2"] self.txDesc2 = uiMap["monthly_card_ui.banner.card_2.tx_desc"] self.txTips2 = uiMap["monthly_card_ui.banner.card_2.tx_tips"] self.titleNode = uiMap["monthly_card_ui.content.title"] self.txTitle = uiMap["monthly_card_ui.content.title.tx_title"] self.discountNode = uiMap["monthly_card_ui.content.discount"] self.txDiscount = uiMap["monthly_card_ui.content.discount.tx_discount"] self.imgShows = {} self.txShows = {} for i = 1, 2 do table.insert(self.imgShows, uiMap['monthly_card_ui.content.show.img_show_' .. i]) table.insert(self.txShows, uiMap['monthly_card_ui.content.show.img_show_' .. i .. '.tx_show']) end self.listPrivilege = uiMap["monthly_card_ui.content.list_privilege"] self.content = uiMap["monthly_card_ui.content.list_privilege.content"] self.privilegeNodes = {} self.txPrivilegeDescs = {} for i = 1, 5 do table.insert(self.privilegeNodes, uiMap['monthly_card_ui.content.list_privilege.content.privilege_' .. i]) table.insert(self.txPrivilegeDescs, uiMap['monthly_card_ui.content.list_privilege.content.privilege_' .. i .. '.tx_desc']) end self.txImmediate = uiMap["monthly_card_ui.content.immediate.tx_immediate"] self.immediateRewardCell = uiMap["monthly_card_ui.content.immediate.reward_cell_immediate"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) self.txDaily = uiMap["monthly_card_ui.content.daily.tx_daily"] self.dailyRewardCells = {} for i = 1, 2 do table.insert(self.dailyRewardCells, uiMap['monthly_card_ui.content.daily.reward_cell_daily_' .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)) end self.btnBuy = uiMap["monthly_card_ui.content.btn_buy"] self.txBuy = uiMap["monthly_card_ui.content.btn_buy.tx_buy"] self.btnClose = uiMap["monthly_card_ui.btn_close"] -- 今日不再展示 self.todayNode = uiMap["monthly_card_ui.content.today"] self.todatCheck = uiMap["monthly_card_ui.content.today.check"] self.todaySelect = uiMap["monthly_card_ui.content.today.check.select"] self.txToday = uiMap["monthly_card_ui.content.today.text"] self.txDaily:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_7)) self.txImmediate:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_4)) self.txDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_20) .. "\n " .. I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_DESC_1_1)) self.txDesc2:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_21)) self.txTips1:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_22)) self.txTips2:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_22)) self.btnClose:addClickListener(function() self:closeUI() end) self.btnBuy:addClickListener(function() ModuleManager.MonthlyCardManager:buyMonthlyCard(self.cardType) self:closeUI() end) self.todatCheck:addClickListener(function() if ModuleManager.BattleManager.battleController and ModuleManager.BattleManager.battleController.battleData then ModuleManager.BattleManager.battleController.battleData:setNotPopMonthlyCard(not LocalData:getMonthlyTodayNotShow()) end LocalData:setMonthlyTodayNotShow(not LocalData:getMonthlyTodayNotShow()) self:onRefresh() end) end function MonthlyCardUI:onRefresh() self.banner:setSprite(GConst.ATLAS_PATH.UI_MONTHLY_CARD, IMG_BANNER[self.cardType]) self.card1Node:setActive(self.cardType == GConst.MonthlyCardConst.CARD_TYPE.CARD_1) self.card2Node:setActive(self.cardType == GConst.MonthlyCardConst.CARD_TYPE.CARD_2) self.titleNode:setSprite(GConst.ATLAS_PATH.UI_MONTHLY_CARD, IMG_TITLE[self.cardType]) self.discountNode:setSprite(GConst.ATLAS_PATH.UI_MONTHLY_CARD, IMG_OFF[self.cardType]) for i = 1, 2 do if IMG_SHOW[self.cardType][i] then self.imgShows[i]:setActive(true) self.imgShows[i]:setSprite(GConst.ATLAS_PATH.UI_MONTHLY_CARD, IMG_SHOW[self.cardType][i], function() self.imgShows[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE):SetNativeSize() end) self.txShows[i]:setText(I18N:getGlobalText(I18N.GlobalConst[TX_SHOW[self.cardType][i]])) else self.imgShows[i]:setActive(false) end end self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst[TX_TITLE[self.cardType]])) local actGiftCfg = DataManager.MonthlyCardData:getActGiftConfig(self.cardType) self.txBuy:setText(GFunc.getFormatPrice(actGiftCfg.recharge_id)) self.txDiscount:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_MAGIC_DESC_9, actGiftCfg.value)) if self.cardType == GConst.MonthlyCardConst.CARD_TYPE.CARD_1 then local totalHeight = 0 for i, node in ipairs(self.privilegeNodes) do local key = I18N.GlobalConst["MONTHLY_CARD_DESC_1_" .. i] if key then local str = I18N:getGlobalText(key) if str and str ~= "" then node:setActive(true) self.txPrivilegeDescs[i]:setText(str) local curHeight = self.txPrivilegeDescs[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).preferredHeight curHeight = curHeight + 10 totalHeight = totalHeight + curHeight self.txPrivilegeDescs[i]:setSizeDeltaY(curHeight) node:setSizeDeltaY(curHeight) else node:setActive(false) end else node:setActive(false) end end self.content:setSizeDeltaY(totalHeight) else local totalHeight = 0 for i, node in ipairs(self.privilegeNodes) do local key = I18N.GlobalConst["MONTHLY_CARD_DESC_2_" .. i] if key then local str = I18N:getGlobalText(key) if str and str ~= "" then node:setActive(true) self.txPrivilegeDescs[i]:setText(str) local curHeight = self.txPrivilegeDescs[i]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).preferredHeight curHeight = curHeight + 10 totalHeight = totalHeight + curHeight self.txPrivilegeDescs[i]:setSizeDeltaY(curHeight) node:setSizeDeltaY(curHeight) else node:setActive(false) end else node:setActive(false) end end self.content:setSizeDeltaY(totalHeight) end -- 每日奖励 local isActive = DataManager.MonthlyCardData:getIsCardActive(self.cardType) local canGetDailyReward = DataManager.MonthlyCardData:checkCanGetDailyReward(self.cardType) local dailyRewards = DataManager.MonthlyCardData:getCardDailyRewards(self.cardType) for i, cell in ipairs(self.dailyRewardCells) do if dailyRewards[i] then cell:getBaseObject():setActive(true) cell:refreshByConfig(dailyRewards[i], isActive and not canGetDailyReward, isActive and not canGetDailyReward) if canGetDailyReward then cell:showFrameAnimation() cell:addClickListener(function() ModuleManager.MonthlyCardManager:getDailyReward() end) else cell:hideFrameAnimation() cell:setClickShowTips() end else cell:getBaseObject():setActive(false) end end -- 购买立得 local immediateReward = DataManager.MonthlyCardData:getCardBuyReward()[1] self.immediateRewardCell:refreshByConfig(immediateReward) self.todayNode:setActive(self.showToday) self.todaySelect:setActive(LocalData:getMonthlyTodayNotShow()) self.txToday:setText(I18N:getGlobalText(I18N.GlobalConst.CONFIRM_IGNORE)) GFunc.centerImgAndTx(self.todatCheck, self.txToday, 5) end return MonthlyCardUI