diff --git a/lua/app/common/data_manager.lua b/lua/app/common/data_manager.lua index 09a184d3..3e1001ad 100644 --- a/lua/app/common/data_manager.lua +++ b/lua/app/common/data_manager.lua @@ -21,6 +21,7 @@ function DataManager:init() self:initManager("IdleData", "app/userdata/idle/idle_data") -- self:initManager("SevenDayData", "app/userdata/activity/seven_day/seven_day_data") self:initManager("ShopData", "app/userdata/shop/shop_data") + self:initManager("SummonData", "app/userdata/summon/summon_data") end function DataManager:initManager(name, path) @@ -91,6 +92,7 @@ function DataManager:clear() self.IdleData:clear() -- self.SevenDayData:clear() self.ShopData:clear() + self.SummonData:clear() ModuleManager.TaskManager:clear() end @@ -130,7 +132,8 @@ function DataManager:initWithServerData(data) self.ShopData:initCommonDailyGoldGift(data.mall_idle and data.mall_idle.ad_count) -- 常驻金币礼包 self.ShopData:initGrowUpGift(data.act_grow_up_gift) -- 成长礼包 self.ShopData:initLevelUpGift(data.act_level_up_gift) -- 助力礼包 - + self.SummonData:init(data.summon) + self:scheduleGlobal() self:checkDataBind() end diff --git a/lua/app/common/module_manager.lua b/lua/app/common/module_manager.lua index 417cc5b9..aaa440ca 100644 --- a/lua/app/common/module_manager.lua +++ b/lua/app/common/module_manager.lua @@ -39,6 +39,8 @@ local MODULE_PATHS = { ItemManager = "app/module/item/item_manager", -- 商店 ShopManager = "app/module/shop/shop_manager", + -- 召唤 + SummonManager = "app/module/summon/summon_manager", -- 邮件 MailManager = "app/module/mail/mail_manager", -- 玩家 diff --git a/lua/app/common/server_push_manager.lua b/lua/app/common/server_push_manager.lua index 5cd3c277..a896b00f 100644 --- a/lua/app/common/server_push_manager.lua +++ b/lua/app/common/server_push_manager.lua @@ -15,6 +15,7 @@ function ServerPushManager:initWhenLogin() self:addServerPushListener(ProtoMsgType.FromMsgEnum.KickOutNtf, UIManager, UIManager.showKickOut) self:addServerPushListener(ProtoMsgType.FromMsgEnum.BountyBoughtNtf, ModuleManager.BountyManager, ModuleManager.BountyManager.onBoughtBountyFinish) self:addServerPushListener(ProtoMsgType.FromMsgEnum.NewMailNtf, ModuleManager.MailManager, ModuleManager.MailManager.needUpdateMail) + self:addServerPushListener(ProtoMsgType.FromMsgEnum.MallDailyResetNtf, ModuleManager.ShopManager, ModuleManager.MailManager.onMallDailyReset) end ---- 移除全局推送监听 diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index a5d536a1..65e3625b 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -13,6 +13,7 @@ local CONST_PATHS = { HeroConst = "app/module/hero/hero_const", FormationConst = "app/module/formation/formation_const", ShopConst = "app/module/shop/shop_const", + SummonConst = "app/module/summon/summon_const", MailConst = "app/module/mail/mail_const", } diff --git a/lua/app/module/shop/shop_const.lua b/lua/app/module/shop/shop_const.lua index 1cb2aa31..f356b48b 100644 --- a/lua/app/module/shop/shop_const.lua +++ b/lua/app/module/shop/shop_const.lua @@ -1,12 +1,5 @@ local ShopConst = class("ShopConst", BaseModule) --- ShopConst.ACT_GIFT_TYPE = { --- FIRST_RECHARGE_GIFT = 1, -- 首冲 --- COIN_GIFT = 2, -- 金币不足礼包 --- BEGINNER_GIFT = 4, --- LEVEL_GIFT = 5, -- 助力礼包 --- } - -- 服务器pb对应的类型 ShopConst.GIFT_TYPE = { ACT_GIFT = 1, diff --git a/lua/app/module/shop/shop_manager.lua b/lua/app/module/shop/shop_manager.lua index 862f2bc7..0f16c1fc 100644 --- a/lua/app/module/shop/shop_manager.lua +++ b/lua/app/module/shop/shop_manager.lua @@ -1,7 +1,11 @@ local ShopManager = class("ShopManager", BaseModule) -function ShopManager:showBoxHeroUI() - UIManager:showUI("app/ui/shop/box_hero_ui") +function ShopManager:showBoxHeroUI(type) + UIManager:showUI("app/ui/shop/box_hero_ui", {type = type}) +end + +function ShopManager:showBoxLevelUI() + UIManager:showUI("app/ui/shop/box_level_ui") end -- 购买每日特惠商品 @@ -78,7 +82,14 @@ function ShopManager:mallDailyGiftOverDay() end function ShopManager:mallDailyGiftOverDayFinish(result) - if result.err_code == GConst.ERROR_STR.SUCCESS then + -- if result.err_code == GConst.ERROR_STR.SUCCESS then + -- DataManager.ShopData:initMallDaily(result.mall_daily_info) + -- end + -- 消息无用 仅为了触发推送 +end + +function ShopManager:onMallDailyReset(result) + if result.status == 0 then DataManager.ShopData:initMallDaily(result.mall_daily_info) end end diff --git a/lua/app/module/summon.meta b/lua/app/module/summon.meta new file mode 100644 index 00000000..303830d2 --- /dev/null +++ b/lua/app/module/summon.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44626d9bc5b32a94e87ffeab47989daf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/module/summon/summon_const.lua b/lua/app/module/summon/summon_const.lua new file mode 100644 index 00000000..9e11e300 --- /dev/null +++ b/lua/app/module/summon/summon_const.lua @@ -0,0 +1,9 @@ +local SummonConst = class("SummonConst", BaseModule) + +SummonConst.SUMMON_TYPE = { + LV_1 = 1, + LV_2 = 2, + LV_3 = 3 +} + +return SummonConst \ No newline at end of file diff --git a/lua/app/module/summon/summon_const.lua.meta b/lua/app/module/summon/summon_const.lua.meta new file mode 100644 index 00000000..0795c793 --- /dev/null +++ b/lua/app/module/summon/summon_const.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1bdf31e4a49d46f4f902610831ef0d33 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/summon/summon_manager.lua b/lua/app/module/summon/summon_manager.lua new file mode 100644 index 00000000..3b34b990 --- /dev/null +++ b/lua/app/module/summon/summon_manager.lua @@ -0,0 +1,5 @@ +local SummonManager = class("SummonManager", BaseModule) + + + +return SummonManager \ No newline at end of file diff --git a/lua/app/module/summon/summon_manager.lua.meta b/lua/app/module/summon/summon_manager.lua.meta new file mode 100644 index 00000000..071c72f1 --- /dev/null +++ b/lua/app/module/summon/summon_manager.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e09e19a26ec08554dabc7fab51d38853 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/shop/box_hero_ui.lua b/lua/app/ui/shop/box_hero_ui.lua index 00e0674b..10371ef9 100644 --- a/lua/app/ui/shop/box_hero_ui.lua +++ b/lua/app/ui/shop/box_hero_ui.lua @@ -1,5 +1,23 @@ local BoxHeroUI = class("BoxHeroUI", BaseUI) +local TITLE_TEXT = { + [GConst.SummonConst.SUMMON_TYPE.LV_1] = "普通宝箱TD", -- TODOJ + [GConst.SummonConst.SUMMON_TYPE.LV_2] = "精致宝箱TD", + [GConst.SummonConst.SUMMON_TYPE.LV_3] = "珍贵宝箱TD" +} +local ICON_NAME = { + [GConst.SummonConst.SUMMON_TYPE.LV_1] = "shop_chest_1", -- TODOJ + [GConst.SummonConst.SUMMON_TYPE.LV_2] = "shop_chest_2", + [GConst.SummonConst.SUMMON_TYPE.LV_3] = "shop_chest_3" +} +local MAX_ITEM_NUM = 4 + +function BoxHeroUI:ctor(params) + params = params or {} + + self.summonType = params.type or GConst.SummonConst.SUMMON_TYPE.LV_1 +end + function BoxHeroUI:isFullScreen() return false end @@ -20,20 +38,64 @@ function BoxHeroUI:onLoadRootComplete() self.buyBtn = self.uiMap["box_hero_ui.bg.buy_btn"] self.buyBtnTx = self.uiMap["box_hero_ui.bg.buy_btn.text"] self.buyBtnIcon = self.uiMap["box_hero_ui.bg.buy_btn.icon"] - self:initItems() + + self.itemNodeLayout = self.uiMap["box_hero_ui.bg.item_node"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT) + self.itemNodeList = {} + self.itemCellList = {} + self.itemTextList = {} + self.itemHelpList = {} + for i = 1, MAX_ITEM_NUM do + table.insert(self.itemNodeList, self.uiMap["box_hero_ui.bg.item_" .. i]) + table.insert(self.itemCellList, CellManager:addCellComp(self.uiMap["box_hero_ui.bg.item_".. i .. ".item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL)) + table.insert(self.itemTextList, self.uiMap["box_hero_ui.bg.item_".. i .. ".num"]) + table.insert(self.itemHelpList, self.uiMap["box_hero_ui.bg.item_" .. i .. ".help"]) + end + + self.buyBtn:addClickListener(function() + self:onClickSummon() + end) + + self:refresh() end -function BoxHeroUI:initItems() - self.items = {} - for i = 1, 4 do - local obj = { - root = self.uiMap["box_hero_ui.bg.item_" .. i], - cell = self.uiMap["box_hero_ui.bg.item_" .. i .. ".item_cell"], - num = self.uiMap["box_hero_ui.bg.item_" .. i .. ".num"], - help = self.uiMap["box_hero_ui.bg.item_" .. i .. ".help"], - } - self.items[i] = obj +function BoxHeroUI:refresh() + self.titleTx:setText(TITLE_TEXT[self.summonType]) + self.boxImg:setSprite(GConst.ATLAS_PATH.SHOP, ICON_NAME[self.summonType]) + + local rewards = DataManager.SummonData:getSummonTotalRewardByLv(self.summonType) -- 本次实际奖励 + for i = 1, MAX_ITEM_NUM do + if i <= #rewards then + self.itemNodeList[i]:setVisible(true) + self.itemCellList[i]:refreshByCfg(rewards[i].id, 0) + self.itemCellList[i]:setNum("") + self.itemTextList[i]:setText(rewards[i].num) + + if ConfigManager:getConfig("item")[rewards[i].id].type == 3 then + self.itemHelpList[i]:setVisible(true) + self.itemHelpList[i]:addClickListener(function() + -- TODOJ + end) + else + self.itemHelpList[i]:setVisible(false) + end + else + self.itemNodeList[i]:setVisible(false) + end end + self.itemNodeLayout:RefreshLayout() + + local costItem, cost = DataManager.SummonData:getSummonCost(self.summonType) + if GFunc.checkCost(costItem.id, costItem.num, false) then + self.buyBtnIcon:setSprite(GFunc.getIconRes(costItem.id)) + self.buyBtnTx:setText(costItem.num) + else + self.buyBtnIcon:setSprite(GFunc.getIconRes(cost.id)) + self.buyBtnTx:setText(cost.num) + end + GFunc.centerImgAndTx(self.buyBtnIcon, self.buyBtnTx, 20) +end + +function BoxHeroUI:onClickSummon() end return BoxHeroUI \ No newline at end of file diff --git a/lua/app/ui/shop/box_level_ui.lua b/lua/app/ui/shop/box_level_ui.lua new file mode 100644 index 00000000..8a974162 --- /dev/null +++ b/lua/app/ui/shop/box_level_ui.lua @@ -0,0 +1,191 @@ +local BoxLevelUI = class("BoxLevelUI", BaseUI) + +local BASE_CELL_HEIGHT = 200 +local BG_WITHOUT_3_BOX_HEIGHT = 638 + +function BoxLevelUI:ctor(params) + params = params or {} + self.level = params.level or DataManager.SummonData:getSummonLevel() +end + +function BoxLevelUI:isFullScreen() + return false +end + +function BoxLevelUI:getPrefabPath() + return "assets/prefabs/ui/shop/box_level_ui.prefab" +end + +function BoxLevelUI:onLoadRootComplete() + self.uiMap = self.root:genAllChildren() + self.uiMap["box_level_ui.close_btn"]:addClickListener(function() + self:closeUI() + end) + + self.bg = self.uiMap["box_level_ui.bg"] + self.titleTx = self.uiMap["box_level_ui.bg.title_img.title"] + self.lvTx = self.uiMap["box_level_ui.bg.lv_node.lv_bg.text"] + self.leftArrow = self.uiMap["box_level_ui.bg.lv_node.left_arrow"] + self.rightArrow = self.uiMap["box_level_ui.bg.lv_node.right_arrow"] + + self.box1Node = self.uiMap["box_level_ui.bg.box_1"] + self.box1Add1Node = self.uiMap["box_level_ui.bg.box_1.add_node_1"] + self.box1Add1ItemCell = CellManager:addCellComp(self.uiMap["box_level_ui.bg.box_1.add_node_1.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL) + self.box1Add1Text = self.uiMap["box_level_ui.bg.box_1.add_node_1.text"] + self.box1Add2Node = self.uiMap["box_level_ui.bg.box_1.add_node_2"] + self.box1Add2ItemCell = CellManager:addCellComp(self.uiMap["box_level_ui.bg.box_1.add_node_2.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL) + self.box1Add2Text = self.uiMap["box_level_ui.bg.box_1.add_node_2.text"] + self.box1Desc = self.uiMap["box_level_ui.bg.box_1.none_text"] + self.box1Desc:setText("无额外奖励加成TD") -- TODOJ + + self.box2Node = self.uiMap["box_level_ui.bg.box_2"] + self.box2Add1Node = self.uiMap["box_level_ui.bg.box_2.add_node_1"] + self.box2Add1ItemCell = CellManager:addCellComp(self.uiMap["box_level_ui.bg.box_2.add_node_1.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL) + self.box2Add1Text = self.uiMap["box_level_ui.bg.box_2.add_node_1.text"] + self.box2Add2Node = self.uiMap["box_level_ui.bg.box_2.add_node_2"] + self.box2Add2ItemCell = CellManager:addCellComp(self.uiMap["box_level_ui.bg.box_2.add_node_2.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL) + self.box2Add2Text = self.uiMap["box_level_ui.bg.box_2.add_node_2.text"] + self.box2Desc = self.uiMap["box_level_ui.bg.box_2.none_text"] + self.box2Desc:setText("无额外奖励加成TD") -- TODOJ + + self.box3Node = self.uiMap["box_level_ui.bg.box_3"] + self.box3Add1Node = self.uiMap["box_level_ui.bg.box_3.add_node_1"] + self.box3Add1ItemCell = CellManager:addCellComp(self.uiMap["box_level_ui.bg.box_3.add_node_1.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL) + self.box3Add1Text = self.uiMap["box_level_ui.bg.box_3.add_node_1.text"] + self.box3Add2Node = self.uiMap["box_level_ui.bg.box_3.add_node_2"] + self.box3Add2ItemCell = CellManager:addCellComp(self.uiMap["box_level_ui.bg.box_3.add_node_2.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL) + self.box3Add2Text = self.uiMap["box_level_ui.bg.box_3.add_node_2.text"] + self.box3Desc = self.uiMap["box_level_ui.bg.box_3.none_text"] + self.box3Desc:setText("无额外奖励加成TD") -- TODOJ + + self.bottomDesc = self.uiMap["box_level_ui.bg.title"] + self.bottomDesc:setText("开宝箱提升等级,增加宝箱奖励TD") -- TODOJ + + self.leftArrow:addClickListener(function() + self.level = self.level - 1 + if self.level <= 1 then + self.level = 1 + end + self:refresh() + end) + self.rightArrow:addClickListener(function() + self.level = self.level + 1 + if self.level >= DataManager.SummonData:getSummonMaxLv() then + self.level = DataManager.SummonData:getSummonMaxLv() + end + self:refresh() + end) + + self:refresh() +end + +function BoxLevelUI:refresh() + self.lvTx:setText("Lv." .. tostring(self.level)) + + local maxLevel = DataManager.SummonData:getSummonMaxLv() + if self.level == 1 then + self.leftArrow:setSprite(GConst.ATLAS_PATH.COMMON, "common_arrow_3") + self.rightArrow:setSprite(GConst.ATLAS_PATH.COMMON, "common_arrow_2") + elseif self.level == maxLevel then + self.leftArrow:setSprite(GConst.ATLAS_PATH.COMMON, "common_arrow_2") + self.rightArrow:setSprite(GConst.ATLAS_PATH.COMMON, "common_arrow_3") + else + self.leftArrow:setSprite(GConst.ATLAS_PATH.COMMON, "common_arrow_2") + self.rightArrow:setSprite(GConst.ATLAS_PATH.COMMON, "common_arrow_2") + end + + -- 目前文档没有写要屏蔽3级宝箱 所以暂不处理 + if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.STORE_BOX_3_OPEN, true) then + self.box3Node:setVisible(false) + self.bg:setSizeDeltaY(BG_WITHOUT_3_BOX_HEIGHT) + else + self.box3Node:setVisible(true) + self.bg:setSizeDeltaY(BG_WITHOUT_3_BOX_HEIGHT + BASE_CELL_HEIGHT) + end + + if self.level == 1 then + self.box1Add1Node:setVisible(false) + self.box1Add2Node:setVisible(false) + self.box1Desc:setVisible(true) + + self.box2Add1Node:setVisible(false) + self.box2Add2Node:setVisible(false) + self.box2Desc:setVisible(true) + + self.box3Add1Node:setVisible(false) + self.box3Add2Node:setVisible(false) + self.box3Desc:setVisible(true) + else + self.box1Add1Node:setVisible(false) + self.box1Add2Node:setVisible(false) + self.box1Desc:setVisible(false) + + self.box2Add1Node:setVisible(false) + self.box2Add2Node:setVisible(false) + self.box2Desc:setVisible(false) + + self.box3Add1Node:setVisible(false) + self.box3Add2Node:setVisible(false) + self.box3Desc:setVisible(false) + + local reward1 = DataManager.SummonData:getSummonRewardByLv(GConst.SummonConst.SUMMON_TYPE.LV_1, self.level) + local reward2 = DataManager.SummonData:getSummonRewardByLv(GConst.SummonConst.SUMMON_TYPE.LV_2, self.level) + local reward3 = DataManager.SummonData:getSummonRewardByLv(GConst.SummonConst.SUMMON_TYPE.LV_3, self.level) + + local count = #reward1 + if count == 1 then + self.box1Add1Node:setVisible(true) + self.box1Add1ItemCell:refreshByCfg(reward1[1].id, 0) + self.box1Add1ItemCell:setNum("") + self.box1Add1Text:setText("+" .. tostring(reward1[1].num)) + else + self.box1Add1Node:setVisible(true) + self.box1Add1ItemCell:refreshByCfg(reward1[1].id, 0) + self.box1Add1ItemCell:setNum("") + self.box1Add1Text:setText("+" .. tostring(reward1[1].num)) + + self.box1Add2Node:setVisible(true) + self.box1Add2ItemCell:refreshByCfg(reward1[2].id, 0) + self.box1Add2ItemCell:setNum("") + self.box1Add2Text:setText("+" .. tostring(reward1[2].num)) + end + + local count = #reward2 + if count == 1 then + self.box2Add1Node:setVisible(true) + self.box2Add1ItemCell:refreshByCfg(reward2[1].id, 0) + self.box2Add1ItemCell:setNum("") + self.box2Add1Text:setText("+" .. tostring(reward2[1].num)) + else + self.box2Add1Node:setVisible(true) + self.box2Add1ItemCell:refreshByCfg(reward2[1].id, 0) + self.box2Add1ItemCell:setNum("") + self.box2Add1Text:setText("+" .. tostring(reward2[1].num)) + + self.box2Add2Node:setVisible(true) + self.box2Add2ItemCell:refreshByCfg(reward2[2].id, 0) + self.box2Add2ItemCell:setNum("") + self.box2Add2Text:setText("+" .. tostring(reward2[2].num)) + end + + local count = #reward3 + if count == 1 then + self.box3Add1Node:setVisible(true) + self.box3Add1ItemCell:refreshByCfg(reward3[1].id, 0) + self.box3Add1ItemCell:setNum("") + self.box3Add1Text:setText("+" .. tostring(reward3[1].num)) + else + self.box3Add1Node:setVisible(true) + self.box3Add1ItemCell:refreshByCfg(reward3[1].id, 0) + self.box3Add1ItemCell:setNum("") + self.box3Add1Text:setText("+" .. tostring(reward3[1].num)) + + self.box3Add2Node:setVisible(true) + self.box3Add2ItemCell:refreshByCfg(reward3[2].id, 0) + self.box3Add2ItemCell:setNum("") + self.box3Add2Text:setText("+" .. tostring(reward3[2].num)) + end + end +end + +return BoxLevelUI \ No newline at end of file diff --git a/lua/app/ui/shop/box_level_ui.lua.meta b/lua/app/ui/shop/box_level_ui.lua.meta new file mode 100644 index 00000000..8b46bf28 --- /dev/null +++ b/lua/app/ui/shop/box_level_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 63f0b0bc9452a954ebac303e7b7f5afb +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/shop/cell/box_sell_cell.lua b/lua/app/ui/shop/cell/box_sell_cell.lua index 3595a7d4..ba40fa32 100644 --- a/lua/app/ui/shop/cell/box_sell_cell.lua +++ b/lua/app/ui/shop/cell/box_sell_cell.lua @@ -35,6 +35,19 @@ function BoxSellCell:init() local titleTx = uiMap["box_sell_cell.title_bg.text"] titleTx:setText("临时文本:宝箱") + self.boxBuyBtn1:addClickListener(function() + self:onClickBox(GConst.SummonConst.SUMMON_TYPE.LV_1) + end) + self.boxBuyBtn2:addClickListener(function() + self:onClickBox(GConst.SummonConst.SUMMON_TYPE.LV_2) + end) + self.boxBuyBtn3:addClickListener(function() + self:onClickBox(GConst.SummonConst.SUMMON_TYPE.LV_3) + end) + self.helpBtn:addClickListener(function() + self:showHelpTips() + end) + self.cellHeight = BASE_CELL_HEIGHT end @@ -50,9 +63,61 @@ function BoxSellCell:refresh() self.bg:setSizeDeltaY(FULL_CELL_HEIGHT - HEIGHT_ADD) self.box3:setVisible(true) end + self:refreshLv() + self:refreshCost() end -function BoxSellCell:onOpenBox(index) +function BoxSellCell:refreshLv() + local lv = DataManager.SummonData:getSummonLevel() + local exp = DataManager.SummonData:getSummonExp() + local maxExp = DataManager.SummonData:getSummonMaxExp() + self.progressLv:setText("Lv." .. tostring(lv)) -- TODOJ + if maxExp and maxExp > 0 then + self.progressTx:setText(tostring(exp) .. "/" .. tostring(maxExp)) -- TODOJ + else + self.progressTx:setText("MAX") -- TODOJ + end +end + +function BoxSellCell:refreshCost() + local costItem1, cost1 = DataManager.SummonData:getSummonCost(GConst.SummonConst.SUMMON_TYPE.LV_1) + local costItem2, cost2 = DataManager.SummonData:getSummonCost(GConst.SummonConst.SUMMON_TYPE.LV_2) + local costItem3, cost3 = DataManager.SummonData:getSummonCost(GConst.SummonConst.SUMMON_TYPE.LV_3) + + if GFunc.checkCost(costItem1.id, costItem1.num, false) then + self.boxBuyBtnCoin1:setSprite(GFunc.getIconRes(costItem1.id)) + self.boxBuyBtnTx1:setText(costItem1.num) + else + self.boxBuyBtnCoin1:setSprite(GFunc.getIconRes(cost1.id)) + self.boxBuyBtnTx1:setText(cost1.num) + end + GFunc.centerImgAndTx(self.boxBuyBtnCoin1, self.boxBuyBtnTx1, 20) + + if GFunc.checkCost(costItem2.id, costItem2.num, false) then + self.boxBuyBtnCoin2:setSprite(GFunc.getIconRes(costItem2.id)) + self.boxBuyBtnTx2:setText(costItem2.num) + else + self.boxBuyBtnCoin2:setSprite(GFunc.getIconRes(cost2.id)) + self.boxBuyBtnTx2:setText(cost2.num) + end + GFunc.centerImgAndTx(self.boxBuyBtnCoin2, self.boxBuyBtnTx2, 20) + + if GFunc.checkCost(costItem3.id, costItem3.num, false) then + self.boxBuyBtnCoin3:setSprite(GFunc.getIconRes(costItem3.id)) + self.boxBuyBtnTx3:setText(costItem3.num) + else + self.boxBuyBtnCoin3:setSprite(GFunc.getIconRes(cost3.id)) + self.boxBuyBtnTx3:setText(cost3.num) + end + GFunc.centerImgAndTx(self.boxBuyBtnCoin3, self.boxBuyBtnTx3, 20) +end + +function BoxSellCell:onClickBox(summonType) + ModuleManager.ShopManager:showBoxHeroUI(summonType) +end + +function BoxSellCell:showHelpTips() + ModuleManager.ShopManager:showBoxLevelUI() end function BoxSellCell:getCellHeight() diff --git a/lua/app/ui/shop/cell/gem_sell_cell.lua b/lua/app/ui/shop/cell/gem_sell_cell.lua index 65db6277..659b3b99 100644 --- a/lua/app/ui/shop/cell/gem_sell_cell.lua +++ b/lua/app/ui/shop/cell/gem_sell_cell.lua @@ -9,7 +9,7 @@ function GemSellCell:init() self.cellHeight = 0 local cellHeight = nil local cfg = ConfigManager:getConfig("mall_treasure") - for i = 1, 19 do -- 正常9个 提审19个 + for i = 1, 19 do -- 正常9个 提审19个 -- TODOJ local cell = uiMap["gem_sell_cell.cell_" .. i] if cellHeight == nil then local w, h = cell:fastGetSizeDelta() diff --git a/lua/app/userdata/summon.meta b/lua/app/userdata/summon.meta new file mode 100644 index 00000000..353411f4 --- /dev/null +++ b/lua/app/userdata/summon.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 719c796d7c1f6474db79ece240371a11 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/userdata/summon/summon_data.lua b/lua/app/userdata/summon/summon_data.lua new file mode 100644 index 00000000..4dc2e613 --- /dev/null +++ b/lua/app/userdata/summon/summon_data.lua @@ -0,0 +1,100 @@ +local SummonData = class("SummonData", BaseData) + +function SummonData:ctor() + self.data.isDirty = false +end + +function SummonData:clear() + DataManager:unregisterCrossDayFunc("SummonData") +end + +function SummonData:setDirty() + self.data.isDirty = not self.data.isDirty +end + +function SummonData:initCrossDay() + DataManager:registerCrossDayFunc("SummonData", function() + self:setDirty() + end) +end + +function SummonData:init(summon) + summon = summon or {} + + self.level = summon.level or 1 + self.exp = summon.exp or 0 +end + +function SummonData:getSummonLevel() + return self.level +end + +function SummonData:getSummonExp() + return self.exp +end + +function SummonData:getSummonConfig() + return ConfigManager:getConfig("summon") +end + +function SummonData:getSummonExpConfig() + return ConfigManager:getConfig("summon_exp") +end + +-- 读表获取宝箱消耗 +function SummonData:getSummonCost(summonType) + local cfgInfo = self:getSummonConfig()[summonType] + return cfgInfo.item_cost, cfgInfo.cost +end + +-- 读表获取宝箱经验 +function SummonData:getSummonAddExp(summonType) + local cfgInfo = self:getSummonConfig()[summonType] + return cfgInfo.summon_exp +end + +-- 读表获取召唤奖励 +function SummonData:getSummonRewardByLv(summonType, level) + level = level or self:getSummonLevel() + local cfgInfo = self:getSummonConfig()[summonType] + + Logger.logHighlight("getSummonRewardByLv -- summonType:%s level:%s ",summonType,level) + Logger.printTable(cfgInfo) + + if level == 1 then + return cfgInfo.box_lv_base + else + return cfgInfo["box_lv_" .. tostring(level)] + end +end + +function SummonData:getSummonTotalRewardByLv(summonType, level) + level = level or self:getSummonLevel() + local rewards = {} + for i = 1, level do + local lvRewards = self:getSummonRewardByLv(summonType) + for _, reward in ipairs(lvRewards) do + table.insert(rewards, reward) + end + end + rewards = GFunc.mergeRewards(rewards) + return rewards +end + +function SummonData:getSummonMaxLv() + return #self:getSummonExpConfig() +end + +-- 读表获取特定等级的最大经验值 +function SummonData:getSummonMaxExp(level) + level = level or self:getSummonLevel() + local cfg = self:getSummonExpConfig() + for lv, data in ipairs(cfg) do + if lv == level then + return data.exp or 0 + end + end + return cfg[#cfg].exp or 0 +end + +return SummonData \ No newline at end of file diff --git a/lua/app/userdata/summon/summon_data.lua.meta b/lua/app/userdata/summon/summon_data.lua.meta new file mode 100644 index 00000000..45914c86 --- /dev/null +++ b/lua/app/userdata/summon/summon_data.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 83f36c9a58ad594408b9a3f7fe74810b +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}