diff --git a/lua/app/common/bi_report.lua b/lua/app/common/bi_report.lua index 270d6685..98aa64f8 100644 --- a/lua/app/common/bi_report.lua +++ b/lua/app/common/bi_report.lua @@ -86,7 +86,6 @@ BIReport.ITEM_GET_TYPE = { MALL_TREASURE = "MallTreasure", -- 常驻钻石礼包 MALL_DAILY = "MallDaily", -- 每日特惠 MALL_DAILY_RESET = "MallDailyReset", - FIRST_RECHARGE = "FirstRecharge", COIN_GIFT = "CoinGift", BEGINNER_GIFT = "BeginnerGift", LEVEL_UP_GIFT = "LevelUpGift", @@ -96,8 +95,6 @@ BIReport.ITEM_GET_TYPE = { BATTLE_SKILL_REFRESH = "BattleSkillRefresh", GROWTH_FUND = "GrowthFund", GROW_UP_GIFT_NEW = "GrowUpGiftNew", -- 新成长礼包 - SEVEN_DAY_TASK = "SevenDayTask", - SEVEN_DAY_STEP_REWARD = "SevenDayStepReward", DAILY_CHALLENGE = "DailyChallenge", -- 每日挑战进入战斗扣体力 DAILY_CHALLENGE_END = "DailyChallengeEnd", -- 每日挑战结算 DAILY_CHALLENGE_RESET = "DailyChallengeReset", -- 每日挑战重置 @@ -218,6 +215,20 @@ BIReport.ITEM_GET_TYPE = { SIGN_BOUNTY_RESIGH = "sign_bounty_resigh", SIGN_BOUNTY_SIGH = "sign_bounty_sigh", SIGN_MONTH_ACCUM_CLAIM = "signin_30_accum_claim", + + -- 首充 + FIRST_RECHARGE = "first_recharge", + -- 特权卡 + PRIVILEGE_CARD = "privilege_card", + + -- 七日乐 + ACT_SEVEN_DAY_SIGN = "seven_day_sign", + SEVEN_DAY_RESIGN = "seven_day_resign", + SEVEN_DAY_TASK = "seven_day_task", + SEVEN_DAY_TASK_2 = "seven_day_task_2", + SEVEN_DAY_SCORE = "seven_day_score", + SEVEN_DAY_SCORE_2 = "seven_day_score_2", + SEVEN_DAY_GIFT = "seven_day_gift", } BIReport.ADS_CLICK_TYPE = { @@ -240,6 +251,8 @@ BIReport.ADS_CLICK_TYPE = { MALL_TREASURE = "MallTreasure", MAIL = "Mail", SUMMON_AD = "SummonAd", + + AD_ACT_SEVEN_DAY_GIFT = "AdActSevenDayGift", } BIReport.FIGHT_OPT_TYPE = { @@ -324,6 +337,10 @@ BIReport.GIFT_TYPE = { FUND_GROW = "fund_grow",-- 成长基金 SIGN_BOUNTY = "sign_bounty", + + PRIVILEGE_CARD = "privilege_card", + + SEVEN_DAY_GIFT = "seven_day_gift", } BIReport.COIN_TYPE = { @@ -424,6 +441,11 @@ BIReport.VIDEO_AD_OPT_TYPE = { GET_REWARD_SKIP_AD = "get_reward_skip_ad", } +BIReport.SEVEN_DAY_GIFT_OPT = { + CLICK = "Click", + REWARD = "Reward", +} + -- b6 local EVENT_NAME_EXIT = "client_exit" local EVENT_NAME_FIGHT = "client_fight" @@ -458,6 +480,10 @@ local EVENT_ACT_OPT = "client_act_opt" local EVENT_NAME_RUNES = "client_runes" local EVENT_NAME_PAY_ORDER_REPEAT = "client_pay_order_repeat" local EVENT_NAME_VIDEO_AD_OPT = "client_ad_opt" +local EVENT_NAME_SEVEN_DAY_OPT = "client_seven_day_opt" -- 七天乐任务 +local EVENT_NAME_SEVEN_DAY_GIFT_OPT = "client_seven_day_gift_opt" -- 七天乐礼包 +local EVENT_NAME_SEVEN_DAY_LOOP_OPT = "client_seven_day_loop_opt" -- 循环七天乐任务 +local EVENT_NAME_SEVEN_DAY_LOOP_GIFT_OPT = "client_seven_day_loop_gift_opt" -- 循环七天乐任务 BIReport.TASK_OPT = { TASK_REWARD = "TaskReward", @@ -2090,4 +2116,60 @@ function BIReport:postVideoAdOpt(optType, adName, result) self:report(EVENT_NAME_VIDEO_AD_OPT, args) end +function BIReport:postSevenDayTask(optType, ids, rewards, period) + local idsStr = "" + if ids then + for i, id in ipairs(ids) do + idsStr = idsStr .. id .. ";" + end + end + local args = { + opt_type = optType, + period = period, + ids = idsStr, + reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, + task_score = DataManager.ActSevenDayData:getScore(period), + } + self:report(EVENT_NAME_SEVEN_DAY_OPT, args) +end + +function BIReport:postSevenDayGift(optType, id, giftType, rewards, dayn) + local args = { + opt_type = optType, + id = id, + type = giftType, + reward_str = rewards, + dayn = dayn, + } + self:report(EVENT_NAME_SEVEN_DAY_GIFT_OPT, args) +end + +function BIReport:postSevenDayLoopTask(optType, ids, rewards, taskScore, actId) + local idsStr = "" + if ids then + for i, id in ipairs(ids) do + idsStr = idsStr .. id .. ";" + end + end + local args = { + act_id = actId, + opt_type = optType, + ids = idsStr, + reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, + task_score = taskScore, + } + self:report(EVENT_NAME_SEVEN_DAY_LOOP_OPT, args) +end + +function BIReport:postSevenDayLoopGift(optType, id, giftType, rewards, dayn) + local args = { + opt_type = optType, + id = id, + type = giftType, + reward_str = rewards, + dayn = dayn, + } + self:report(EVENT_NAME_SEVEN_DAY_LOOP_GIFT_OPT, args) +end + return BIReport \ No newline at end of file diff --git a/lua/app/common/data_manager.lua b/lua/app/common/data_manager.lua index f70e89a4..fd64251d 100644 --- a/lua/app/common/data_manager.lua +++ b/lua/app/common/data_manager.lua @@ -47,7 +47,8 @@ function DataManager:init() self:initManager("ActGiftData", "app/userdata/activity/act_gift_data") self:initManager("ActSprintData", "app/userdata/activity/act_sprint/act_sprint_data") self:initManager("ActSprintSummonDataAll", "app/userdata/activity/act_sprint/act_sprint_summon_data_all") - + -- 特权卡 + self:initManager("PrivilegeCardData", "app/userdata/privilege_card/privilege_card_data") end function DataManager:initManager(name, path) @@ -153,6 +154,7 @@ function DataManager:initWithServerData(data) self.IdleData:init(data.idle) self.ShopData:init() self.ShopData:refreshDailyShop(data.mall_daily_store) + self.PrivilegeCardData:init(data.card) -- self.ShopData:refreshGoldShop(data.mall_gold) -- self.ShopData:refreshEmblemShop(data.mall_mythic_store) -- self.ShopData:initVit(data.energy_limit) @@ -175,7 +177,7 @@ function DataManager:initWithServerData(data) self.ActivityData:initExchangeData(data.activity_exchange) self.ActTaskData:initTaskData(data.activity_score_task, data.activity_task) self.ActSprintData:init(data.activity_rush_exchange) - self.ActSevenDayData:initData(data.seven_days, true) + self.ActSevenDayData:initData(data.seven_day) -- self.ActSprintSummonDataAll:initTaskData(data.activity_score_task, data.activity_task) -- 商店礼包都初始化完了后检查一下每日红点 diff --git a/lua/app/common/event_manager.lua b/lua/app/common/event_manager.lua index 444333cb..f998481c 100644 --- a/lua/app/common/event_manager.lua +++ b/lua/app/common/event_manager.lua @@ -73,6 +73,7 @@ EventManager.CUSTOM_EVENT = { -- b13 FORCE_SUMMON_WISH_HERO_ID = "FORCE_SUMMON_WISH_HERO_ID",--心愿英雄设置 FORCE_SUMMON_WISH_CLAIM = "FORCE_SUMMON_WISH_CLAIM",--心愿奖励领取 + NO_AD_ACTIVE = "NO_AD_ACTIVE", -- 免广告卡激活 -- b10 FORCE_SUMMON = "FORCE_SUMMON", FORCE_SUMMON_NEXT = "FORCE_SUMMON_NEXT", diff --git a/lua/app/common/local_data.lua b/lua/app/common/local_data.lua index 80cc14d0..bf01f5d2 100644 --- a/lua/app/common/local_data.lua +++ b/lua/app/common/local_data.lua @@ -9,6 +9,7 @@ local LOCAL_DATA_KEY = { SELECTED_LANGUAGE = "SELECTED_LANGUAGE", GM_SHOW_FLOATING_ICON = "GM_SHOW_FLOATING_ICON", MESSAGE_BOX_SHOW_TODAY = "MESSAGE_BOX_SHOW_TODAY", + MESSAGE_BOX_SHOW_TODAY_VALUE = "MESSAGE_BOX_SHOW_TODAY_VALUE", GAME_QUALITY_LEVEL = "GAME_QUALITY_LEVEL", -- 游戏设置品质等级 LAST_LOGIN_URL = "LAST_LOGIN_URL", LAST_LOGIN_NAME = "LAST_LOGIN_NAME", @@ -157,6 +158,14 @@ function LocalData:setMessageBoxShowTodayTime(key, value) self:setInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY .. key, value) end +function LocalData:getMessageBoxShowTodayValue(key) + return self:getInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY_VALUE .. key, 0) +end + +function LocalData:setMessageBoxShowTodayValue(key, value) + self:setInt(LOCAL_DATA_KEY.MESSAGE_BOX_SHOW_TODAY_VALUE .. key, value) +end + function LocalData:getGameQualityLevel() return self:getInt(LOCAL_DATA_KEY.GAME_QUALITY_LEVEL, 0) end diff --git a/lua/app/common/module_manager.lua b/lua/app/common/module_manager.lua index 160d4545..d4c07533 100644 --- a/lua/app/common/module_manager.lua +++ b/lua/app/common/module_manager.lua @@ -84,6 +84,8 @@ local MODULE_PATHS = { SignManager = "app/module/sign/sign_manager", -- 活动七天乐 ActSevenDayManager = "app/module/activity/act_seven_day/act_seven_day_manager", + -- 特权卡 + PrivilegeCardManager = "app/module/privilege/privilege_card_manager", -- 冲刺活动 ActSprintManager = "app/module/activity/act_sprint/act_sprint_manager", } @@ -130,6 +132,8 @@ ModuleManager.MODULE_KEY = { -- 七天乐 ACT_SEVENDAY = "act_sevenday", ACT_SEVENDAY_2 = "act_sevenday_2", + -- 免广告卡 + CARD_AD = "card_ad", } local _moduleMgrs = {} diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index 10179241..c0b26f47 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -32,6 +32,8 @@ PayManager.PURCHARSE_ACT_TYPE = { -- RUNES_GIFT = 21, -- TOURN_WAVE_GIFT = 23, -- TOURN_ARENA_GIFT = 24, + FIRST_RECHARGE = 1, + PRIVILEGE_CARD = 2, BOUNTY = 3, FUND = 4, SIGN_BOUNTY = 5, @@ -58,11 +60,14 @@ PayManager.PURCHARSE_TYPE_CONFIG = { PayManager.BI_ITEM_GET_TYPE = { [PayManager.PURCHARSE_TYPE.ACT_GIFT] = { + [PayManager.PURCHARSE_ACT_TYPE.FIRST_RECHARGE] = BIReport.ITEM_GET_TYPE.FIRST_RECHARGE, + [PayManager.PURCHARSE_ACT_TYPE.PRIVILEGE_CARD] = BIReport.ITEM_GET_TYPE.PRIVILEGE_CARD, [PayManager.PURCHARSE_ACT_TYPE.BOUNTY] = BIReport.ITEM_GET_TYPE.BOUNTY, [PayManager.PURCHARSE_ACT_TYPE.FUND] = BIReport.ITEM_GET_TYPE.FUND_GROW, [PayManager.PURCHARSE_ACT_TYPE.SIGN_BOUNTY] = BIReport.ITEM_GET_TYPE.SIGN_BOUNTY, [PayManager.PURCHARSE_ACT_TYPE.GIFT_POP_CHAPTER] = BIReport.ITEM_GET_TYPE.GIFT_POP_CHAPTER, [PayManager.PURCHARSE_ACT_TYPE.ACT_COMMON] = {}, + [PayManager.PURCHARSE_ACT_TYPE.ACT_SEVEN_DAY] = BIReport.ITEM_GET_TYPE.SEVEN_DAY_GIFT, -- [PayManager.PURCHARSE_ACT_TYPE.FIRST_RECHARGE] = BIReport.ITEM_GET_TYPE.FIRST_RECHARGE, -- [PayManager.PURCHARSE_ACT_TYPE.COIN_GIFT] = BIReport.ITEM_GET_TYPE.COIN_GIFT, -- [PayManager.PURCHARSE_ACT_TYPE.INTRODUCTORY_GIFT] = BIReport.ITEM_GET_TYPE.INTRODUCTORY_GIFT, @@ -93,11 +98,14 @@ PayManager.BI_ITEM_GET_TYPE = { PayManager.BI_GIFT_TYPE = { [PayManager.PURCHARSE_TYPE.ACT_GIFT] = { + [PayManager.PURCHARSE_ACT_TYPE.FIRST_RECHARGE] = BIReport.GIFT_TYPE.FIRST_RECHARGE, + [PayManager.PURCHARSE_ACT_TYPE.PRIVILEGE_CARD] = BIReport.GIFT_TYPE.PRIVILEGE_CARD, [PayManager.PURCHARSE_ACT_TYPE.BOUNTY] = BIReport.GIFT_TYPE.BOUNTY_PRO_REWARD, [PayManager.PURCHARSE_ACT_TYPE.FUND] = BIReport.GIFT_TYPE.FUND_GROW, [PayManager.PURCHARSE_ACT_TYPE.SIGN_BOUNTY] = BIReport.GIFT_TYPE.SIGN_BOUNTY, [PayManager.PURCHARSE_ACT_TYPE.GIFT_POP_CHAPTER] = BIReport.GIFT_TYPE.GIFT_POP_CHAPTER, [PayManager.PURCHARSE_ACT_TYPE.ACT_COMMON] = {}, + [PayManager.PURCHARSE_ACT_TYPE.ACT_SEVEN_DAY] = BIReport.GIFT_TYPE.SEVEN_DAY_GIFT, -- [PayManager.PURCHARSE_ACT_TYPE.FIRST_RECHARGE] = BIReport.GIFT_TYPE.FIRST_RECHARGE, -- [PayManager.PURCHARSE_ACT_TYPE.COIN_GIFT] = BIReport.GIFT_TYPE.COIN_GIFT, -- [PayManager.PURCHARSE_ACT_TYPE.INTRODUCTORY_GIFT] = BIReport.GIFT_TYPE.INTRODUCTORY_GIFT, diff --git a/lua/app/config/const.lua b/lua/app/config/const.lua index b021f16e..b32a15fd 100644 --- a/lua/app/config/const.lua +++ b/lua/app/config/const.lua @@ -408,6 +408,12 @@ local const = { } } }, + ["card_forever_dispatch_task_num"]={ + ["value"]=2.0 + }, + ["card_forever_dispatch_task_reward_bonus"]={ + ["value"]=3000.0 + }, ["act_gogogo_round_limit_1"]={ ["value"]=5 } diff --git a/lua/app/config/localization/localization_global_const.lua b/lua/app/config/localization/localization_global_const.lua index 277b1f89..06f6acf7 100644 --- a/lua/app/config/localization/localization_global_const.lua +++ b/lua/app/config/localization/localization_global_const.lua @@ -860,6 +860,30 @@ local LocalizationGlobalConst = ACT_HERO_SUIT_DESC_5 = "ACT_HERO_SUIT_DESC_5", ACT_HERO_SUIT_DESC_6 = "ACT_HERO_SUIT_DESC_6", EQUIP_DESC_31 = "EQUIP_DESC_31", + ADS_DESC_13 = "ADS_DESC_13", + AD_FREE_DESC_9 = "AD_FREE_DESC_9", + MONTHLY_CARD_1 = "MONTHLY_CARD_1", + MONTHLY_CARD_2 = "MONTHLY_CARD_2", + MONTHLY_CARD_3 = "MONTHLY_CARD_3", + MONTHLY_CARD_4 = "MONTHLY_CARD_4", + MONTHLY_CARD_5 = "MONTHLY_CARD_5", + MONTHLY_CARD_6 = "MONTHLY_CARD_6", + MONTHLY_CARD_7 = "MONTHLY_CARD_7", + MONTHLY_CARD_8 = "MONTHLY_CARD_8", + MONTHLY_CARD_9 = "MONTHLY_CARD_9", + MONTHLY_CARD_10 = "MONTHLY_CARD_10", + MONTHLY_CARD_11 = "MONTHLY_CARD_11", + MONTHLY_CARD_12 = "MONTHLY_CARD_12", + MONTHLY_CARD_13 = "MONTHLY_CARD_13", + MONTHLY_CARD_14 = "MONTHLY_CARD_14", + MONTHLY_CARD_15 = "MONTHLY_CARD_15", + MONTHLY_CARD_16 = "MONTHLY_CARD_16", + MONTHLY_CARD_17 = "MONTHLY_CARD_17", + MONTHLY_CARD_DESC_1_1 = "MONTHLY_CARD_DESC_1_1", + MONTHLY_CARD_DESC_1_2 = "MONTHLY_CARD_DESC_1_2", + MONTHLY_CARD_DESC_1_3 = "MONTHLY_CARD_DESC_1_3", + MONTHLY_CARD_DESC_2_1 = "MONTHLY_CARD_DESC_2_1", + MONTHLY_CARD_DESC_2_2 = "MONTHLY_CARD_DESC_2_2", } return LocalizationGlobalConst \ No newline at end of file diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua index 1d6af971..b0fe792d 100644 --- a/lua/app/config/strings/cn/global.lua +++ b/lua/app/config/strings/cn/global.lua @@ -860,6 +860,32 @@ local localization_global = ["ACT_HERO_SUIT_DESC_5"] = "免费奖励", ["ACT_HERO_SUIT_DESC_6"] = "高级奖励", ["EQUIP_DESC_31"] = "等级", + ["ADS_DESC_13"] = "是否观看广告?", + ["ADS_DESC_15"] = "免广告卡", + ["ADS_DESC_16"] = "免广告永久有效", + ["AD_FREE_DESC_9"] = "看广告", + ["MONTHLY_CARD_1"] = "月卡", + ["MONTHLY_CARD_2"] = "超值月卡", + ["MONTHLY_CARD_3"] = "特权月卡", + ["MONTHLY_CARD_4"] = "购买立得", + ["MONTHLY_CARD_5"] = "特权福利", + ["MONTHLY_CARD_6"] = "续费", + ["MONTHLY_CARD_7"] = "每日获得", + ["MONTHLY_CARD_8"] = "好运成双", + ["MONTHLY_CARD_9"] = "同时激活两张月卡可领取", + ["MONTHLY_CARD_10"] = "开启战斗2倍加速", + ["MONTHLY_CARD_11"] = "免看广告得奖励", + ["MONTHLY_CARD_12"] = "已激活", + ["MONTHLY_CARD_13"] = "未激活", + ["MONTHLY_CARD_14"] = "剩余时间:{0}", + ["MONTHLY_CARD_15"] = "有效期{0}天", + ["MONTHLY_CARD_16"] = "1.购买月卡后,享30天每日奖励和特权。\n2.同时激活超值月卡和特权可领取好运成双奖励。", + ["MONTHLY_CARD_17"] = "已达到当前购买上限", + ["MONTHLY_CARD_DESC_1_1"] = "无限快速挂机", + ["MONTHLY_CARD_DESC_1_2"] = "体力恢复速度+10%", + ["MONTHLY_CARD_DESC_1_3"] = "精力上限+10", + ["MONTHLY_CARD_DESC_2_1"] = "体力上限+20", + ["MONTHLY_CARD_DESC_2_2"] = "每日体力购买次数+2", } return localization_global \ No newline at end of file diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index 25f38c80..9189541d 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -2,6 +2,7 @@ local GConst = {} GConst.DEFAULT_FACTOR = 10000 GConst.NOT_VISIBLE_POS = 10000000000 +GConst.SECONDS_PRE_DAY = 86400 local CONST_PATHS = { StageConst = "app/module/stage/stage_const", @@ -330,6 +331,7 @@ GConst.MESSAGE_BOX_SHOW_TODAY = { ACTIVITY_BUY_LEVEL = 3, RUNES_AUTO = 4, ACT_PVP_BUY_BOUNTY_LEVE = 5, + MONTHLY_CARD_AD = 6, } GConst.QUALITY_TYPE = diff --git a/lua/app/global/global_func.lua b/lua/app/global/global_func.lua index 2abd2d4d..abd75b97 100644 --- a/lua/app/global/global_func.lua +++ b/lua/app/global/global_func.lua @@ -336,6 +336,10 @@ function GFunc.showMessageBox(params) MessageBox:showMessageBox(params) end +function GFunc.showAdMesssageBox(params) + UIManager:showUI("app/ui/common/common_ad_ui", params) +end + function GFunc.showToast(params) ModuleManager.ToastManager:showToast(params) end diff --git a/lua/app/module/maincity/maincity_const.lua b/lua/app/module/maincity/maincity_const.lua index cf85df8b..9fab16da 100644 --- a/lua/app/module/maincity/maincity_const.lua +++ b/lua/app/module/maincity/maincity_const.lua @@ -18,7 +18,7 @@ MainCityConst.BOTTOM_CLOSE_ICON = { MainCityConst.LEFT_SIDE_BARS = { -- "app/ui/main_city/cell/side_bar_gift_routine_cell", -- 礼包 - -- "app/ui/main_city/cell/side_bar_privilege_cell", -- 特权 + "app/ui/main_city/cell/side_bar_privilege_cell", -- 特权 "app/ui/main_city/cell/side_bar_fund_cell", -- 基金 "app/ui/main_city/cell/side_bar_first_recharge_cell", -- 首充 } diff --git a/lua/app/module/privilege.meta b/lua/app/module/privilege.meta new file mode 100644 index 00000000..01f7fad6 --- /dev/null +++ b/lua/app/module/privilege.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0a3804d50f4a407e86cb65fe3aae51b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/module/privilege/privilege_card_manager.lua b/lua/app/module/privilege/privilege_card_manager.lua new file mode 100644 index 00000000..49b5c0ac --- /dev/null +++ b/lua/app/module/privilege/privilege_card_manager.lua @@ -0,0 +1,132 @@ +local PrivilegeCardManager = class("MonthlyCardManager", BaseModule) + +function PrivilegeCardManager:showPrivilegeUI(showPage) + local params = { + showPage = showPage, + } + UIManager:showUI("app/ui/privilege/privilege_main_ui", params) +end + +function PrivilegeCardManager:getFreeDailyRewards() + if DataManager.PrivilegeCardData:getIsClaimedFreeDailyReward() then + return + end + self:sendMessage(ProtoMsgType.FromMsgEnum.CardDailyRewardReq, {}, self.onGetFreeDailyRewards, BIReport.ITEM_GET_TYPE.PRIVILEGE_FREE_DAILY_REWARD) +end + +function PrivilegeCardManager:onGetFreeDailyRewards(result) + if result.err_code ~= GConst.ERROR_STR.SUCCESS then + return + end + DataManager.PrivilegeCardData:onClaimedFreeDailyReward() + if result.rewards then + GFunc.showRewardBox(result.rewards) + end + -- BI + BIReport:postPrivilegeCardGetDailyReward(result.rewards) +end + +function PrivilegeCardManager:buyMonthlyCard() + local canBuyCard = DataManager.PrivilegeCardData:checkCanBuyMonthlyCard() + if canBuyCard then + local giftId = GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD + PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT, true) + else + GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_17)) + end +end + +function PrivilegeCardManager:buyChallengeCard() + local canBuyCard = DataManager.PrivilegeCardData:checkCanBuyChallengeCard() + if canBuyCard then + local giftId = GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD + PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT, true) + else + GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_17)) + end +end + +function PrivilegeCardManager:buyAdCard() + local canBuyCard = DataManager.PrivilegeCardData:checkCanBuyAdCard() + if canBuyCard then + local giftId = GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD + PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT, true) + else + GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_17)) + end +end + +function PrivilegeCardManager:buyLifetimeCard() + local canBuyCard = DataManager.PrivilegeCardData:checkCanBuyLifetimeCard() + if canBuyCard then + local giftId = GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD + PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT, true) + else + GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_17)) + end +end + +function PrivilegeCardManager:getPurchaseCardDailyReward(id) + local itemGetType = BIReport.ITEM_GET_TYPE.PRIVILEGE_ALL_CARD_DAILY_REWARD + if id == GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD then + itemGetType = BIReport.ITEM_GET_TYPE.PRIVILEGE_MONTHLY_CARD_DAILY_REWARD + elseif id == GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD then + itemGetType = BIReport.ITEM_GET_TYPE.PRIVILEGE_LIFETIME_CARD_DAILY_REWARD + elseif id == 0 then + itemGetType = BIReport.ITEM_GET_TYPE.PRIVILEGE_ALL_CARD_DAILY_REWARD + else + return + end + self:sendMessage(ProtoMsgType.FromMsgEnum.CardRewardReq, {id = id}, self.onGetPurchaseCardDailyReward, itemGetType) +end + +function PrivilegeCardManager:onGetPurchaseCardDailyReward(result) + if result.err_code ~= GConst.ERROR_STR.SUCCESS then + return + end + DataManager.PrivilegeCardData:onClaimedPurchaseCardDailyReward(result.reqData.id) + if result.reqData.id == 0 then + DataManager.PrivilegeCardData:onClaimedFreeDailyReward() + end + if result.rewards then + GFunc.showRewardBox(result.rewards) + end + -- BI + BIReport:postPrivilegeCardGetPurchaseDailyReward(result.rewards, result.reqData.id) +end + +--region 上报 +-- 特权卡 +BIReport.ITEM_GET_TYPE.PRIVILEGE_CARD = "privilege_card" +BIReport.ITEM_GET_TYPE.PRIVILEGE_FREE_DAILY_REWARD = "privilege_free_daily_reward" +BIReport.ITEM_GET_TYPE.PRIVILEGE_CHALLENGE_CARD = "privilege_challenge_card" +BIReport.ITEM_GET_TYPE.PRIVILEGE_MONTHLY_CARD_DAILY_REWARD = "privilege_monthly_card_daily_reward" +BIReport.ITEM_GET_TYPE.PRIVILEGE_LIFETIME_CARD_DAILY_REWARD = "privilege_lifetime_card_daily_reward" +BIReport.ITEM_GET_TYPE.PRIVILEGE_ALL_CARD_DAILY_REWARD = "privilege_all_card_daily_reward" + +BIReport.PRIVILEGE_CARD_OPT_TYPE = { + FREE_DAILY_REWARD = "FreeDailyReward", + PURCHASE_DAILY_REWARD = "PurchaseDailyReward", +} + +local EVENT_NAME_PRIVILEGE_CARD = "event_privilege_card" -- 特权卡 + +function BIReport:postPrivilegeCardGetDailyReward(rewards) + local args = { + opt_type = BIReport.PRIVILEGE_CARD_OPT_TYPE.FREE_DAILY_REWARD, + reward_str = rewards and GFunc.getRewardsStr(rewards) or nil + } + self:report(EVENT_NAME_PRIVILEGE_CARD, args) +end + +function BIReport:postPrivilegeCardGetPurchaseDailyReward(rewards, cardType) + local args = { + opt_type = BIReport.PRIVILEGE_CARD_OPT_TYPE.PURCHASE_DAILY_REWARD, + reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, + cardType = cardType + } + self:report(EVENT_NAME_PRIVILEGE_CARD, args) +end +--endregion + +return PrivilegeCardManager \ No newline at end of file diff --git a/lua/app/module/privilege/privilege_card_manager.lua.meta b/lua/app/module/privilege/privilege_card_manager.lua.meta new file mode 100644 index 00000000..0c2b8f13 --- /dev/null +++ b/lua/app/module/privilege/privilege_card_manager.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f7502f35cc7c248a889d6b5299fd44a4 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/shop/shop_const.lua b/lua/app/module/shop/shop_const.lua index 29db719b..d568ac50 100644 --- a/lua/app/module/shop/shop_const.lua +++ b/lua/app/module/shop/shop_const.lua @@ -1,17 +1,17 @@ local ShopConst = {} ShopConst.PRIVILEGE_CARD_ID = { - AD_CARD = 20102, - MONTHLY_CARD = 20202, - LIFETIME_CARD = 20302, - CHALLEGE_CARD = 20402, + AD_CARD = 1053000001, + MONTHLY_CARD = 1053000101, + -- LIFETIME_CARD = 20302, + -- CHALLEGE_CARD = 20402, } ShopConst.PRIVILEGE_CARD_ID_MAP = { [ShopConst.PRIVILEGE_CARD_ID.AD_CARD] = 1, [ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD] = 1, - [ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] = 1, - [ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD] = 1, + -- [ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] = 1, + -- [ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD] = 1, } --首充档位 @@ -32,8 +32,8 @@ ShopConst.PRIVILEGE_SHOW_PAGE = { FREE_DAILY_REWARDS = 1, AD_CARD = 2, MONTHLY_CARD = 3, - LIFETIME_CARD = 4, - CHALLEGE_CARD = 5, + -- LIFETIME_CARD = 4, + -- CHALLEGE_CARD = 5, } -- 脚本路径 @@ -41,8 +41,8 @@ ShopConst.PRIVILEGE_COMP = { FREE_DAILY_REWARDS = "app/ui/privilege/comp/free_daily_rewards_comp", AD_CARD = "app/ui/privilege/comp/ad_card_comp", MONTHLY_CARD = "app/ui/privilege/comp/monthly_card_comp", - LIFETIME_CARD = "app/ui/privilege/comp/lifetime_card_comp", - CHALLEGE_CARD = "app/ui/privilege/comp/challege_card_comp", + -- LIFETIME_CARD = "app/ui/privilege/comp/lifetime_card_comp", + -- CHALLEGE_CARD = "app/ui/privilege/comp/challege_card_comp", } ShopConst.PRIVILEGE_PAGE_BTN_ICON_ATLAS = { diff --git a/lua/app/ui/common/common_ad_ui.lua b/lua/app/ui/common/common_ad_ui.lua new file mode 100644 index 00000000..534bb985 --- /dev/null +++ b/lua/app/ui/common/common_ad_ui.lua @@ -0,0 +1,133 @@ +local CommonAdUI = class("CommonAdUI", BaseUI) + +function CommonAdUI:ctor(params) + params = params or {} + + self.content = params.content or "" + self.okFunc = params.okFunc + self.showToday = params.showToday +end + +function CommonAdUI:isFullScreen() + return false +end + +function CommonAdUI:showCommonBG() + return false +end + +function CommonAdUI:getPrefabPath() + return "assets/prefabs/ui/common/common_ad_ui.prefab" +end + +function CommonAdUI:onPressBackspace() + self:closeUI() +end + +function CommonAdUI:onLoadRootComplete() + self:addEventListener(EventManager.CUSTOM_EVENT.NO_AD_ACTIVE, function(params) + if not self:isClosed() then + self:hideAdNode() + end + end) + + if self.showToday then -- 今天内不在提示 + local time = LocalData:getMessageBoxShowTodayTime(self.showToday) + local todayTime = Time:getBeginningOfServerToday() + if time > 0 and time == todayTime then + local value = LocalData:getMessageBoxShowTodayValue(self.showToday) + if value == 1 then + if self.okFunc then + self.okFunc() + end + self:closeUI() + return + else + -- 不作处理 + end + end + end + + local selected = false + local uiMap = self.root:genAllChildren() + + uiMap["message_box.title_bg_img.title_text"]:setText(I18N:getGlobalText(I18N.GlobalConst.MESSAGE_BOX_TITLE)) + uiMap["message_box.title_bg_img.bg.content_tx"]:setText(self.content) + uiMap["message_box.content.close_btn"]:addClickListener(function() + if self.showToday and selected then + local todayTime = Time:getBeginningOfServerToday() + LocalData:setMessageBoxShowTodayTime(self.showToday, todayTime) + LocalData:setMessageBoxShowTodayValue(self.showToday, 0) + end + self:closeUI() + end) + uiMap["message_box.content.ad_btn"]:addClickListener(function() + if self.showToday and selected then + local todayTime = Time:getBeginningOfServerToday() + LocalData:setMessageBoxShowTodayTime(self.showToday, todayTime) + LocalData:setMessageBoxShowTodayValue(self.showToday, 1) + end + if self.okFunc then + self.okFunc() + end + self:closeUI() + end) + uiMap["common_ad_ui.content.cancel_btn"]:addClickListener(function() + if self.showToday and selected then + local todayTime = Time:getBeginningOfServerToday() + LocalData:setMessageBoxShowTodayTime(self.showToday, todayTime) + LocalData:setMessageBoxShowTodayValue(self.showToday, 0) + end + self:closeUI() + end) + + if self.showToday then -- 今天内不在提示 + uiMap["message_box.title_bg_img.bg"]:setSizeDeltaY(216) + uiMap["message_box.title_bg_img.today"]:setVisible(true) + uiMap["message_box.title_bg_img.today.check.select"]:setVisible(false) + + local checkUI = uiMap["message_box.title_bg_img.today.check"] + checkUI:addClickListener(function() + selected = not selected + Logger.logHighlight("%s", selected) + uiMap["message_box.title_bg_img.today.check.select"]:setVisible(selected) + end) + + local textUI = uiMap["message_box.title_bg_img.today.text"] + textUI:setText(I18N:getGlobalText(I18N.GlobalConst.CONFIRM_IGNORE)) + + GFunc.centerImgAndTx(checkUI, textUI, 5) + else + uiMap["message_box.title_bg_img.bg"]:setSizeDeltaY(246) + uiMap["message_box.title_bg_img.today"]:setVisible(false) + end + + -- 广告提示 + uiMap["common_ad_ui.content.cancel_btn.tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_CANCEL)) + uiMap["message_box.content.ad_btn.tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.AD_FREE_DESC_9)) + + if DataManager.PlayerData:getNoAdFuncOpen() and not DataManager.PlayerData:getNoAdActive() then + uiMap["message_box.no_ad_node"]:setVisible(true) + GFunc.setAdsSprite(uiMap["message_box.content.ad_btn.icon"]) + uiMap["message_box.no_ad_node.tx_ad"]:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_15)) + uiMap["message_box.no_ad_node.tx_desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_16)) + uiMap["message_box.no_ad_node.btn_buy"]:addClickListener(function() + ModuleManager.PrivilegeCardManager:buyAdCard() + end) + uiMap["message_box.no_ad_node.btn_buy.tx_desc"]:setText(DataManager.PlayerData:getNoAdPrice()) + else + self:hideAdNode() + end +end + +function CommonAdUI:hideAdNode() + local uiMap = self.root:genAllChildren() + uiMap["message_box.no_ad_node"]:setVisible(false) +end + +function CommonAdUI:onClose() + self.okFunc = nil + self.showToday = nil +end + +return CommonAdUI \ No newline at end of file diff --git a/lua/app/ui/common/common_ad_ui.lua.meta b/lua/app/ui/common/common_ad_ui.lua.meta new file mode 100644 index 00000000..f7a1aa54 --- /dev/null +++ b/lua/app/ui/common/common_ad_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d755396ed761e4350a967956234cab42 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/gm/gm_tool_ui.lua b/lua/app/ui/gm/gm_tool_ui.lua index 3493ebb3..dbbbf6df 100644 --- a/lua/app/ui/gm/gm_tool_ui.lua +++ b/lua/app/ui/gm/gm_tool_ui.lua @@ -197,6 +197,7 @@ function GMToolUI:updateTime() timeStr = timeStr .. "\n\n本地时间:\n" .. clientDate.year .. "/" .. clientDate.month .. "/" .. clientDate.day .. " " .. clientDate.hour .. ":" .. clientDate.min .. ":" .. clientDate.sec uiMap["gm_tool_ui.time"]:setText(timeStr) -- uiMap["gm_tool_ui.create_day"]:setText("开服第 ".. DataManager.PlayerData:getServerOpenDay().." 天\n建号第 ".. DataManager.PlayerData:getCreateDay().." 天") + uiMap["gm_tool_ui.create_day"]:setText("建号第 ".. DataManager.PlayerData:getCreateDay().." 天") end function GMToolUI:dealAddBuffGm(args) diff --git a/lua/app/ui/idle/idle_drop_ui.lua b/lua/app/ui/idle/idle_drop_ui.lua index d0245104..0cd88a1b 100644 --- a/lua/app/ui/idle/idle_drop_ui.lua +++ b/lua/app/ui/idle/idle_drop_ui.lua @@ -83,6 +83,10 @@ function IdleDropUI:onLoadRootComplete() self.adBtn:addClickListener(function() ModuleManager.IdleManager:getIdleQuickRewrad(true) end) + self.privilegeBtn = uiMap["idle_drop_ui.bg.privilege_btn"] + self.privilegeBtn:addClickListener(function() + ModuleManager.PrivilegeCardManager:showPrivilegeUI() + end) uiMap["idle_drop_ui.bg.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.CLICK_CLOSE_DESC)) uiMap["idle_drop_ui.bg.bg1.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_DROP_DESC_3)) diff --git a/lua/app/ui/main_city/cell/side_bar_privilege_cell.lua b/lua/app/ui/main_city/cell/side_bar_privilege_cell.lua new file mode 100644 index 00000000..3de977f0 --- /dev/null +++ b/lua/app/ui/main_city/cell/side_bar_privilege_cell.lua @@ -0,0 +1,27 @@ +local SideBarPrivilegeCell = class("SideBarPrivilegeCell", SideBarBaseCell) + +function SideBarPrivilegeCell:getModuleKey() + -- return ModuleManager.MODULE_KEY.TASK +end + +function SideBarPrivilegeCell:getIsOpen() + return DataManager.PrivilegeCardData:getIsOpen() +end + +function SideBarPrivilegeCell:getSpineName() + return "ui_main_btn_shop" +end + +function SideBarPrivilegeCell:onClick() + ModuleManager.PrivilegeCardManager:showPrivilegeUI() +end + +function SideBarPrivilegeCell:getIsShowRedPoint() + return DataManager.PrivilegeCardData:getRedPoint() +end + +function SideBarPrivilegeCell:getCellName() + return I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_5) +end + +return SideBarPrivilegeCell \ No newline at end of file diff --git a/lua/app/ui/main_city/cell/side_bar_privilege_cell.lua.meta b/lua/app/ui/main_city/cell/side_bar_privilege_cell.lua.meta new file mode 100644 index 00000000..59f08173 --- /dev/null +++ b/lua/app/ui/main_city/cell/side_bar_privilege_cell.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 10de82eb58e58498b82654e1d7984c1e +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/privilege.meta b/lua/app/ui/privilege.meta new file mode 100644 index 00000000..ae0ebab7 --- /dev/null +++ b/lua/app/ui/privilege.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f09c74f8eb7344f44ac12f5ffc8806c1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/privilege/cell.meta b/lua/app/ui/privilege/cell.meta new file mode 100644 index 00000000..2bf5e9cc --- /dev/null +++ b/lua/app/ui/privilege/cell.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a8b98a00a3b1b4f489369e305e7941e9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/privilege/comp.meta b/lua/app/ui/privilege/comp.meta new file mode 100644 index 00000000..14efa06d --- /dev/null +++ b/lua/app/ui/privilege/comp.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37301de2032f04f4a9f931f0d13e73f9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/privilege/comp/ad_card_comp.lua b/lua/app/ui/privilege/comp/ad_card_comp.lua new file mode 100644 index 00000000..7f8712fc --- /dev/null +++ b/lua/app/ui/privilege/comp/ad_card_comp.lua @@ -0,0 +1,55 @@ +local AdCardComp = class("AdCardComp", LuaComponent) + +function AdCardComp:init() + local uiMap = self:getUIMap() + self.titleTx = uiMap["ad_card.title_tx"] + self.titleTx:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_NAME_2)) + self.descTx = uiMap["ad_card.desc_tx"] + self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_2)) + self.descTx2 = uiMap["ad_card.desc_tx_2"] + + self.rewardDescTx = uiMap["ad_card.reward_bg.text"] + self.rewardDescTx:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_3)) + self.rewadCell = uiMap["ad_card.reward_bg.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) + + self.offImg = uiMap["ad_card.off_img"] + self.offText1 = uiMap["ad_card.off_img.text"] + self.offText2 = uiMap["ad_card.off_img.text_2"] + self.offText2:setText(I18N:getGlobalText(I18N.GlobalConst.VALUE_DESC)) + + uiMap["ad_card.ui_spine_obj"]:playAnim("idle", true, true) + + self.payBtn = uiMap["ad_card.pay_btn"] + self.payBtn:addClickListener(function() + ModuleManager.PrivilegeCardManager:buyAdCard() + end) + self.payBtnTx = uiMap["ad_card.pay_btn.text"] +end + +function AdCardComp:refresh() + local cfg = DataManager.ShopData:getActGiftConfig(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) + if cfg == nil then + return + end + local isActive = DataManager.PrivilegeCardData:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) + if isActive then + self.descTx2:setText("" .. I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_12) .. "") + self.payBtn:setActive(false) + else + self.descTx2:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_13)) + self.payBtn:setActive(true) + self.payBtnTx:setText(GFunc.getFormatPrice(cfg.recharge_id)) + end + local rewards = cfg.reward + if rewards and rewards[1] then + self.rewadCell:refreshByConfig(rewards[1], isActive, isActive) + end + if cfg.value then + self.offImg:setVisible(true) + self.offText1:setText(cfg.value .. "%") + else + self.offImg:setVisible(false) + end +end + +return AdCardComp \ No newline at end of file diff --git a/lua/app/ui/privilege/comp/ad_card_comp.lua.meta b/lua/app/ui/privilege/comp/ad_card_comp.lua.meta new file mode 100644 index 00000000..b06e86d6 --- /dev/null +++ b/lua/app/ui/privilege/comp/ad_card_comp.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8fe1414b7b2974e85ba0cf751fa54fef +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/privilege/comp/free_daily_rewards_comp.lua b/lua/app/ui/privilege/comp/free_daily_rewards_comp.lua new file mode 100644 index 00000000..d422be65 --- /dev/null +++ b/lua/app/ui/privilege/comp/free_daily_rewards_comp.lua @@ -0,0 +1,47 @@ +local FreeDailyRewardsComp = class("FreeDailyRewardsComp", LuaComponent) + +function FreeDailyRewardsComp:init() + local uiMap = self:getUIMap() + self.titleTx = uiMap["free_daily_rewards.title_tx"] + self.titleTx:setText(I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_NAME_1)) + + self.rewadCell = uiMap["free_daily_rewards.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) + + self.getBtn = uiMap["free_daily_rewards.btn_get"] + self.getBtn:addClickListener(function() + ModuleManager.PrivilegeCardManager:getFreeDailyRewards() + end) + self.getBtnTx = uiMap["free_daily_rewards.btn_get.text"] + self.getBtnGrey = uiMap["free_daily_rewards.btn_grey"] + self.getBtnGreyTx = uiMap["free_daily_rewards.btn_grey.text"] +end + +function FreeDailyRewardsComp:refresh() + self.getBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_CLAIM)) + self.getBtnGreyTx:setText(I18N:getGlobalText(I18N.GlobalConst.ALREADY_GOT_DESC)) + + local isClaimed = DataManager.PrivilegeCardData:getIsClaimedFreeDailyReward() + local reward = GFunc.getConstCost("card_free_dailyreward") + if reward then + self.rewadCell:refreshByConfig(reward, isClaimed, isClaimed) + if isClaimed then + self.rewadCell:hideFrameAnimation() + self.rewadCell:setClickShowTips() + else + self.rewadCell:showFrameAnimation() + self.rewadCell:addClickListener(function() + ModuleManager.PrivilegeCardManager:getFreeDailyRewards() + end) + end + end + + self.getBtn:setActive(not isClaimed) + if not isClaimed then + self.getBtn:addRedPoint(86, 36, 1) + else + self.getBtn:removeRedPoint() + end + self.getBtnGrey:setActive(isClaimed) +end + +return FreeDailyRewardsComp \ No newline at end of file diff --git a/lua/app/ui/privilege/comp/free_daily_rewards_comp.lua.meta b/lua/app/ui/privilege/comp/free_daily_rewards_comp.lua.meta new file mode 100644 index 00000000..cb87454e --- /dev/null +++ b/lua/app/ui/privilege/comp/free_daily_rewards_comp.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3417849d0efd2462587643d2c8337d92 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/privilege/comp/monthly_card_comp.lua b/lua/app/ui/privilege/comp/monthly_card_comp.lua new file mode 100644 index 00000000..6a65e108 --- /dev/null +++ b/lua/app/ui/privilege/comp/monthly_card_comp.lua @@ -0,0 +1,180 @@ +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("" .. I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_12) .. "") + 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.ALREADY_GOT_DESC)) + 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_TEXT_CLAIM)) + local count = DataManager.PrivilegeCardData:getUnclaimedMonthlyCardDailyRewardCount() + if count > 1 then + self.descTx6:setText("" .. I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_1, count) .. "") + 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("" .. I18N:getGlobalText(I18N.GlobalConst.PRIVILEGE_CARD_DESC_1, count) .. "") + else + self.descTx6:setText(GConst.EMPTY_STRING) + end + self.payBtnGrey:setActive(false) + self.payBtn:setActive(true) + self.payBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_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 \ No newline at end of file diff --git a/lua/app/ui/privilege/comp/monthly_card_comp.lua.meta b/lua/app/ui/privilege/comp/monthly_card_comp.lua.meta new file mode 100644 index 00000000..cd6fbeb8 --- /dev/null +++ b/lua/app/ui/privilege/comp/monthly_card_comp.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d255b50b854e040968fd644488c3c723 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/privilege/monthly_card_comp.lua b/lua/app/ui/privilege/monthly_card_comp.lua new file mode 100644 index 00000000..1b39921c --- /dev/null +++ b/lua/app/ui/privilege/monthly_card_comp.lua @@ -0,0 +1,90 @@ +local MonthlyCardComp = class("MonthlyCardComp", LuaComponent) + +local CELL = "app/ui/privilege/cell/card_cell" + +function MonthlyCardComp:onClose() + if self.cardCell1 then + self.cardCell1:onClose() + end + if self.cardCell2 then + self.cardCell2:onClose() + end + + DataManager.MonthlyCardData:markAlertTime() -- mark +end + +function MonthlyCardComp:init() + local uiMap = self.baseObject:genAllChildren() + self.card1 = uiMap["monthly_card_comp.card_cell_1"] + self.card2 = uiMap["monthly_card_comp.card_cell_2"] + + -- 双月卡奖励 + self.doubleCardNode = uiMap["monthly_card_comp.double_card"] + self.txDoubleTitle = uiMap["monthly_card_comp.double_card.tx_title"] + self.txDoubleTips = uiMap["monthly_card_comp.double_card.tx_tips"] + self.doubleRewardCells = {} + for i = 1, 2 do + table.insert(self.doubleRewardCells, uiMap["monthly_card_comp.double_card.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)) + end + self.btnDoubleHelp = uiMap["monthly_card_comp.double_card.btn_help"] + + self.cardCell1 = self.card1:addLuaComponent(CELL) + self.cardCell2 = self.card2:addLuaComponent(CELL) + + self.btnDoubleHelp:addClickListener(function() + ModuleManager.TipsManager:showDescTips(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_16), self.btnDoubleHelp) + end) + self:bind(DataManager.MonthlyCardData, "isDirty", function() + self:refresh() + end) + self:bind(DataManager.PaymentData, "isDirty", function() + self:refresh() + end) +end + +function MonthlyCardComp:updateTime() + if self.cardCell1 and self.cardCell1.updateTime then + self.cardCell1:updateTime() + end + if self.cardCell2 and self.cardCell2.updateTime then + self.cardCell2:updateTime() + end +end + +function MonthlyCardComp:refresh() + DataManager.MonthlyCardData:setPoped() + DataManager.MonthlyCardData:markAlertTime()-- mark + + self.cardCell1:refresh(GConst.MonthlyCardConst.CARD_TYPE.CARD_1) + self.cardCell2:refresh(GConst.MonthlyCardConst.CARD_TYPE.CARD_2) + + self:refreshDoubleCard() +end + +function MonthlyCardComp:refreshDoubleCard() + self.txDoubleTitle:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_8)) + self.txDoubleTips:setText(I18N:getGlobalText(I18N.GlobalConst.MONTHLY_CARD_9)) + + local received = DataManager.MonthlyCardData:getIsDoubleCardRewardClaimed() + local canGet = DataManager.MonthlyCardData:checkCanGetDoubleCardReward() + local rewards = DataManager.MonthlyCardData:getDoubleCardRewards() + for i, cell in ipairs(self.doubleRewardCells) do + if rewards and rewards[i] then + cell:getBaseObject():setActive(true) + cell:refreshByConfig(rewards[i], received, received) + if canGet then + cell:showFrameAnimation() + cell:addClickListener(function() + ModuleManager.MonthlyCardManager:reqGetDoubleCardReward() + end) + else + cell:hideFrameAnimation() + cell:setClickShowTips() + end + else + cell:getBaseObject():setActive(false) + end + end +end + +return MonthlyCardComp \ No newline at end of file diff --git a/lua/app/ui/privilege/monthly_card_comp.lua.meta b/lua/app/ui/privilege/monthly_card_comp.lua.meta new file mode 100644 index 00000000..4487d533 --- /dev/null +++ b/lua/app/ui/privilege/monthly_card_comp.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f5f23024c723d4c989385492f61ad3fd +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/privilege/monthly_card_ui.lua b/lua/app/ui/privilege/monthly_card_ui.lua new file mode 100644 index 00000000..c1c6b42c --- /dev/null +++ b/lua/app/ui/privilege/monthly_card_ui.lua @@ -0,0 +1,227 @@ +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 \ No newline at end of file diff --git a/lua/app/ui/privilege/monthly_card_ui.lua.meta b/lua/app/ui/privilege/monthly_card_ui.lua.meta new file mode 100644 index 00000000..832f78ba --- /dev/null +++ b/lua/app/ui/privilege/monthly_card_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 70ede8196ca5246a4bddd7fe446aefc2 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/privilege/privilege_main_ui.lua b/lua/app/ui/privilege/privilege_main_ui.lua new file mode 100644 index 00000000..dbd6d3ab --- /dev/null +++ b/lua/app/ui/privilege/privilege_main_ui.lua @@ -0,0 +1,240 @@ +local PrivilegeMainUI = class("PrivilegeMainUI", BaseUI) + +function PrivilegeMainUI:showCommonBG() + return false +end + +function PrivilegeMainUI:onPressBackspace() + self:closeUI() +end + +function PrivilegeMainUI:currencyParams() + 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.BTN_TEXT_CLAIMALL)) + 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.ALREADY_GOT_DESC)) + + 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 - 204 + + 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.AD_CARD then + self.beginPosY = math.abs(offsetY) + end + + self.adCard:setAnchoredPositionY(offsetY) + offsetY = offsetY - 386 + + local cell = self.adCard:addLuaComponent(GConst.ShopConst.PRIVILEGE_COMP.AD_CARD) + 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 - 456 + + 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 \ No newline at end of file diff --git a/lua/app/ui/privilege/privilege_main_ui.lua.meta b/lua/app/ui/privilege/privilege_main_ui.lua.meta new file mode 100644 index 00000000..f087b696 --- /dev/null +++ b/lua/app/ui/privilege/privilege_main_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4f5ff83f80fe74f56a20bcb2f42cee19 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/task/task_main_ui.lua b/lua/app/ui/task/task_main_ui.lua index e7e2db29..381c0ae8 100644 --- a/lua/app/ui/task/task_main_ui.lua +++ b/lua/app/ui/task/task_main_ui.lua @@ -168,15 +168,15 @@ function TaskMainUI:refreshDaily() local stageId = stageIds[i] if stageId then item:setActive(true) - if DataManager.DailyTaskData:isStageReceived(stageId) then - self.boxBtnSpines[i]:playAnim("idle02", true, false) - elseif DataManager.DailyTaskData:canClaimStage(stageId) then + if DataManager.DailyTaskData:canClaimStage(stageId) then self.boxBtnSpines[i]:playAnim("ready", true, false) item:addClickListener(function() self.boxBtnSpines[i]:playAnimComplete("open", false, true, function() self:onClickBox() end) end) + elseif DataManager.DailyTaskData:isStageReceived(stageId) then + self.boxBtnSpines[i]:playAnim("idle02", true, false) else self.boxBtnSpines[i]:playAnim("idle01", true, false) item:addClickListener(function() diff --git a/lua/app/userdata/activity/act_seven_day/act_seven_day_data.lua b/lua/app/userdata/activity/act_seven_day/act_seven_day_data.lua index c5456d55..10f4d033 100755 --- a/lua/app/userdata/activity/act_seven_day/act_seven_day_data.lua +++ b/lua/app/userdata/activity/act_seven_day/act_seven_day_data.lua @@ -17,7 +17,7 @@ function ActSevenDayData:setDirty() self.data.isDirty = not self.data.isDirty end -function ActSevenDayData:initData(data, isInit) +function ActSevenDayData:initData(data) data = data or GConst.EMPTY_TABLE if EDITOR_MODE then Logger.logHighlight("七天乐数据") @@ -30,34 +30,33 @@ function ActSevenDayData:initData(data, isInit) self.scoreReceivedIds[id] = true end end - self.taskData = {} + self.taskData = data.tasks or {} local claimedIdMap = {} - if data.claimed_ids then - for index, id in ipairs(data.claimed_ids) do + if data.claimed then + for index, id in ipairs(data.claimed) do claimedIdMap[id] = true end end - local taskProgress = data.progress or {} - for id, info in pairs(self:getTaskCfg()) do - local maxCount = info.number or 1 - local progress = taskProgress[id] or 0 - if claimedIdMap[id] then - progress = maxCount - end - self.taskData[id] = {progress = progress, collect = claimedIdMap[id] == true} - end + -- local taskProgress = data.tasks or {} + -- for id, info in pairs(self:getTaskCfg()) do + -- local maxCount = info.number or 1 + -- local task = taskProgress[id] or {} + -- local progress = task.progress or 0 + -- if task.claimed then + -- progress = maxCount + -- end + -- self.taskData[id] = {progress = progress, collect = task.claimed or false} + -- end - if isInit then - DataManager:registerCrossDayFunc("ActSevenDayData", function() - self:setDirty() - end) - -- 注册任务监听 - for id, info in pairs(self:getTaskCfg()) do - ModuleManager.TaskManager:registerTask("ActSevenDayData", info.type, function(count) - self:addTaskProgress(info.type, count) - end) - end - end + DataManager:registerCrossDayFunc("ActSevenDayData", function() + self:setDirty() + end) + -- 注册任务监听 + for id, info in pairs(self:getTaskCfg()) do + ModuleManager.TaskManager:registerTask("ActSevenDayData", info.type, function(count) + self:addTaskProgress(info.type, count) + end) + end self:setDirty() end @@ -223,7 +222,7 @@ end -- 获取任务数据 function ActSevenDayData:getTaskData(taskId) if self.taskData[taskId] == nil then - self.taskData[taskId] = {progress = 0, collect = false} + self.taskData[taskId] = {progress = 0, claimed = 0} end return self.taskData[taskId] @@ -236,7 +235,7 @@ end -- 任务是否已领取 function ActSevenDayData:isTaskReceived(taskId) - return self:getTaskData(taskId).collect or false + return self:getTaskData(taskId).claimed == 1 end -- 任务是否可领取 @@ -267,10 +266,10 @@ end function ActSevenDayData:setTaskClaimed(taskId, ids) if taskId then - self:getTaskData(taskId).collect = true + self:getTaskData(taskId).claimed = 1 elseif ids then for i, taskId in ipairs(ids) do - self:getTaskData(taskId).collect = true + self:getTaskData(taskId).claimed = 1 end end self:setDirty() diff --git a/lua/app/userdata/payment/payment_data.lua b/lua/app/userdata/payment/payment_data.lua index 111fe625..c9f6a242 100755 --- a/lua/app/userdata/payment/payment_data.lua +++ b/lua/app/userdata/payment/payment_data.lua @@ -323,9 +323,9 @@ end -- 免广告或者终身卡买了都算 function PaymentData:getIsSkipAd() - -- if DataManager.PrivilegeCardData:getIsSkipAd() then - -- return true - -- end + if DataManager.PrivilegeCardData:getIsSkipAd() then + return true + end return false end diff --git a/lua/app/userdata/player/player_data.lua b/lua/app/userdata/player/player_data.lua index 24531618..1633dd61 100644 --- a/lua/app/userdata/player/player_data.lua +++ b/lua/app/userdata/player/player_data.lua @@ -60,9 +60,9 @@ function PlayerData:init(data) self:resetOnCrossDay() self:setDirty() end) - self.createTime = basicInfo.create_at or 0 -- 创角时间 + self.createTime = (basicInfo.create_at or 0) // 1000 -- 创角时间 - local time = data.now_ts or 0 + local time = (data.now_ts or 0) // 1000 if math.abs(self.createTime - time) <= 3000 then -- 认为是新号初次登录 local vit = self:getMaxVit() BIReport:postVitGet(vit, BIReport.ITEM_GET_TYPE.NEW_PLAYER_INITIAL, vit) @@ -241,6 +241,13 @@ function PlayerData:getCreateTime() return self.createTime end +-- 玩家创建角色以来的天数 +function PlayerData:getCreateDay() + local time = self:getCreateTime() + time = Time:getDayBeginTimeStamp(time) + return (Time:getServerTime() - time) // GConst.SECONDS_PRE_DAY + 1 +end + -- 获取玩家是否可以显示功能解锁 function PlayerData:getIfCanShowModuleUnlock() return self.showModuleUnlockChapter > 0 @@ -614,6 +621,23 @@ function PlayerData:getGameVersion() return self.game_version end +--region 特权卡 +-- 免广告卡相关 +function PlayerData:getNoAdFuncOpen() + return ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.CARD_AD, true) +end +function PlayerData:getNoAdActive() + return DataManager.PrivilegeCardData:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) +end +function PlayerData:getNoAdPrice() + local cfg = DataManager.ShopData:getActGiftConfig(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) + if cfg == nil then + return + end + return GFunc.getFormatPrice(cfg.recharge_id) +end +--endregion + --@region 玩家经验 function PlayerData:getPlayerExpCfg() return PlayerExpCfg diff --git a/lua/app/userdata/privilege_card.meta b/lua/app/userdata/privilege_card.meta new file mode 100644 index 00000000..88df9cf5 --- /dev/null +++ b/lua/app/userdata/privilege_card.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 134ede2f0c0204029836ba869505e0f0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/userdata/privilege_card/privilege_card_data.lua b/lua/app/userdata/privilege_card/privilege_card_data.lua new file mode 100644 index 00000000..8a4450dd --- /dev/null +++ b/lua/app/userdata/privilege_card/privilege_card_data.lua @@ -0,0 +1,352 @@ +local PrivilegeCardData = class("PrivilegeCardData", BaseData) + +function PrivilegeCardData:ctor() + self.data.isDirty = false +end + +function PrivilegeCardData:clear() + DataManager:unregisterCrossDayFunc("PrivilegeCardData") +end + +function PrivilegeCardData:setDirty() + self.data.isDirty = not self.data.isDirty +end + +function PrivilegeCardData:init(data) + if EDITOR_MODE then + Logger.logHighlight("初始化特权卡数据") + Logger.printTable(data) + end + data = data or GConst.EMPTY_TABLE + self.cardData = data.cards or {} + self.isClaimedFreeDailyReward = data.claimed + DataManager:registerCrossDayFunc("PrivilegeCardData", function() + self.isClaimedFreeDailyReward = false + if self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD) then + self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD].reward = (self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD].reward or 0) + 1 + end + if self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD) then + self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD].reward = (self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD].reward or 0) + 1 + end + self:setDirty() + end) +end + +function PrivilegeCardData:getIsClaimedFreeDailyReward() + return self.isClaimedFreeDailyReward +end + +function PrivilegeCardData:getIsOpen(cardId) + if GFunc.isShenhe() then + return false + end + if cardId then + if cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD then + if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.MONTHLY_CARD, true) then + return false + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD then + if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.AD_CARD, true) then + return false + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD then + if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.LIFETIME_CARD, true) then + return false + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD then + if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.CHALLEGE_CARD, true) then + return false + end + end + else + local isOpen = false + for k, v in pairs(GConst.ShopConst.PRIVILEGE_CARD_ID) do + if self:getIsOpen(v) then + isOpen = true + break + end + end + return isOpen + end + return true +end + +function PrivilegeCardData:onClaimedFreeDailyReward() + self.isClaimedFreeDailyReward = true + self:setDirty() +end + +function PrivilegeCardData:onClaimedPurchaseCardDailyReward(id) + if id == 0 then -- 一键全领 + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD] then + self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD].reward = 0 + end + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] then + self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD].reward = 0 + end + elseif id == GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD then + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD] then + self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD].reward = 0 + end + elseif id == GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD then + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] then + self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD].reward = 0 + end + end + self:setDirty() +end + +function PrivilegeCardData:getIsMonthlyCardOpen() + return self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD) +end + +function PrivilegeCardData:checkCanBuyMonthlyCard() + if self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD) then + local remainTime = self:getCardRemainTime(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD) + return remainTime <= 0 + end + return false +end + +function PrivilegeCardData:getIsChallengeCardOpen() + return self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD) +end + +function PrivilegeCardData:checkCanBuyChallengeCard() + if self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD) then + local remainTime = self:getCardRemainTime(GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD) + return remainTime <= 0 + end + return false +end + +function PrivilegeCardData:getIsAdCardOpen() + return self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) +end + +function PrivilegeCardData:checkCanBuyAdCard() + if self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) then + local data = self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD] + if data == nil then + return true + end + if data.expire_at == nil then + return true + end + if data.expire_at >= 0 then + local remainTime = Time:getDayBeginTimeStamp(data.expire_at) - Time:getServerTime() + if remainTime <= 0 then + return true + end + end + end + return false +end + +function PrivilegeCardData:getIsLifetimeCardOpen() + return self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD) +end + +function PrivilegeCardData:checkCanBuyLifetimeCard() + if self:getIsOpen(GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD) then + local data = self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] + if data == nil then + return true + end + if data.expire_at == nil then + return true + end + if data.expire_at >= 0 then + local remainTime = Time:getDayBeginTimeStamp(data.expire_at) - Time:getServerTime() + if remainTime <= 0 then + return true + end + end + end + return false +end + +function PrivilegeCardData:getIsLifetimeCardActive() + return self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD) +end + +function PrivilegeCardData:getIsSkipAd() + if self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD) then + return true + end + return false +end + +function PrivilegeCardData:getIsChallegeCardActive() + return self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD) +end + +function PrivilegeCardData:getIsMonthlyCardActive() + return self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD) +end + +function PrivilegeCardData:getIsCardActive(cardId) + if cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD then + local remainTime = self:getCardRemainTime(cardId) + return remainTime > 0 + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD then + local data = self.cardData[cardId] + if data and data.expire_at < 0 then + return true + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD then + local data = self.cardData[cardId] + if data and data.expire_at < 0 then + return true + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD then + local remainTime = self:getCardRemainTime(cardId) + return remainTime > 0 + end + return false +end + +function PrivilegeCardData:getCardRemainTime(cardId) + local data = self.cardData[cardId] + if data == nil or data.expire_at <= 0 then + return 0 + end + local remainTime = Time:getDayBeginTimeStamp(data.expire_at) - Time:getServerTime() + if remainTime > 0 then + return remainTime + else + return 0 + end +end + +-- 月卡购买一次增加的累计天数 +function PrivilegeCardData:getMonthlyCardOneTurnDays() + return GFunc.getConstIntValue("card_monthly_days") +end + +-- 购买成功 +function PrivilegeCardData:onGiftBuySuccess(cardId) + if cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD then + if self:getIsCardActive(cardId) then + self.cardData[cardId].expire_at = self.cardData[cardId].expire_at + self:getMonthlyCardOneTurnDays() * 86400 + else + self.cardData[cardId] = self.cardData[cardId] or {} + self.cardData[cardId].expire_at = Time:getServerTime() + self:getMonthlyCardOneTurnDays() * 86400 + local rewardCount = self.cardData[cardId].reward or 0 + if rewardCount <= 0 then + rewardCount = 1 + else + rewardCount = rewardCount + 1 + end + self.cardData[cardId].reward = rewardCount + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.AD_CARD then + if not self:getIsCardActive(cardId) then + self.cardData[cardId] = self.cardData[cardId] or {} + self.cardData[cardId].expire_at = -1 + end + -- 刷新广告图标 + UIManager:refreshAllAdImg() + -- 局内事件 + EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.NO_AD_ACTIVE) + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD then + if not self:getIsCardActive(cardId) then + self.cardData[cardId] = self.cardData[cardId] or {} + self.cardData[cardId].expire_at = -1 + local rewardCount = self.cardData[cardId].reward or 0 + if rewardCount <= 0 then + rewardCount = 1 + else + rewardCount = rewardCount + 1 + end + self.cardData[cardId].reward = rewardCount + end + elseif cardId == GConst.ShopConst.PRIVILEGE_CARD_ID.CHALLEGE_CARD then + if self:getIsCardActive(cardId) then + self.cardData[cardId].expire_at = self.cardData[cardId].expire_at + self:getMonthlyCardOneTurnDays() * 86400 + else + self.cardData[cardId] = self.cardData[cardId] or {} + self.cardData[cardId].expire_at = Time:getServerTime() + self:getMonthlyCardOneTurnDays() * 86400 + end + -- 购买成功添加体力 + local recoveryCfg = ConfigManager:getConfig("recovery")[GConst.ItemConst.ITEM_ID_VIT] + local addVit = recoveryCfg and recoveryCfg.monthly_card or 0 + DataManager.BagData.ItemData:addItemReward({type = GConst.REWARD_TYPE.ITEM, id = GConst.ItemConst.ITEM_ID_VIT, num = addVit}, BIReport.ITEM_GET_TYPE.PRIVILEGE_CHALLENGE_CARD) + end + + self:setDirty() +end + +function PrivilegeCardData:getRedPoint() + local haveUnclaimedRewards = false + if not self:getIsClaimedFreeDailyReward() then + haveUnclaimedRewards = true + end + if self:getIsMonthlyCardOpen() then + local remainTime = self:getCardRemainTime(GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD) + if remainTime > 0 then + local isClaimed = self:getIsClaimedMonthlyCardDailyReward() + if not isClaimed then + haveUnclaimedRewards = true + end + end + end + if self:getIsLifetimeCardOpen() then + local isActive = self:getIsCardActive(GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD) + if isActive then + local isClaimed = self:getIsClaimedLifetimeCardDailyReward() + if not isClaimed then + haveUnclaimedRewards = true + end + end + end + return haveUnclaimedRewards +end + +-- 月卡 +function PrivilegeCardData:getIsClaimedMonthlyCardDailyReward() + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD] then + local count = self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD].reward or 0 + return count <= 0 + end + return false +end + +function PrivilegeCardData:getUnclaimedMonthlyCardDailyRewardCount() + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD] then + return self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.MONTHLY_CARD].reward or 0 + end + return 0 +end + +function PrivilegeCardData:getMonthlyCardDailyRewards() + if self._monthlyCardDailyRewards == nil then + self._monthlyCardDailyRewards = GFunc.getConstCost("card_monthly_dailyreward", true) + end + return self._monthlyCardDailyRewards +end + +-- 终身卡 +function PrivilegeCardData:getIsClaimedLifetimeCardDailyReward() + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] then + local count = self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD].reward or 0 + return count <= 0 + end + return false +end + +function PrivilegeCardData:getUnclaimedLifetimeCardDailyRewardCount() + if self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD] then + return self.cardData[GConst.ShopConst.PRIVILEGE_CARD_ID.LIFETIME_CARD].reward or 0 + end + return 0 +end + +function PrivilegeCardData:getLifetimeCardDailyRewards() + if self._lifetimeCardDailyRewards == nil then + self._lifetimeCardDailyRewards = GFunc.getConstCost("card_forever_dailyreward", true) + end + return self._lifetimeCardDailyRewards +end + +return PrivilegeCardData \ No newline at end of file diff --git a/lua/app/userdata/privilege_card/privilege_card_data.lua.meta b/lua/app/userdata/privilege_card/privilege_card_data.lua.meta new file mode 100644 index 00000000..55826474 --- /dev/null +++ b/lua/app/userdata/privilege_card/privilege_card_data.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c9b04b5f8fa9641edb03c27484f3e92b +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}