提交一波

This commit is contained in:
CloudJ 2023-05-23 16:37:01 +08:00
parent f5cfef0bbc
commit 38a9faffb6
19 changed files with 523 additions and 24 deletions

View File

@ -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,6 +132,7 @@ 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()

View File

@ -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",
-- 玩家

View File

@ -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
---- 移除全局推送监听

View File

@ -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",
}

View File

@ -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,

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 44626d9bc5b32a94e87ffeab47989daf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
local SummonConst = class("SummonConst", BaseModule)
SummonConst.SUMMON_TYPE = {
LV_1 = 1,
LV_2 = 2,
LV_3 = 3
}
return SummonConst

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 1bdf31e4a49d46f4f902610831ef0d33
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,5 @@
local SummonManager = class("SummonManager", BaseModule)
return SummonManager

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: e09e19a26ec08554dabc7fab51d38853
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -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
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
self.buyBtn:addClickListener(function()
self:onClickSummon()
end)
self:refresh()
end
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

View File

@ -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

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 63f0b0bc9452a954ebac303e7b7f5afb
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -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()

View File

@ -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()

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 719c796d7c1f6474db79ece240371a11
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 83f36c9a58ad594408b9a3f7fe74810b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}