diff --git a/lua/app/userdata/summon/summon_data.lua b/lua/app/userdata/summon/summon_data.lua index ec8a02ef..8fbb5091 100644 --- a/lua/app/userdata/summon/summon_data.lua +++ b/lua/app/userdata/summon/summon_data.lua @@ -74,7 +74,34 @@ function SummonData:getSummonRewardByLv(summonType, level) if level == 1 then return cfgInfo.box_lv_base else - return cfgInfo["box_lv_" .. tostring(level)] + if not self.cacheSummonRewardByLv then + self.cacheSummonRewardByLv = {} + end + self.cacheSummonRewardByLv[level] = {} + local rewards = cfgInfo["box_lv_" .. tostring(level)] + for _, reward in ipairs(rewards) do + local find = false + for index, rewardBase in ipairs(cfgInfo.box_lv_base) do + if reward.type == rewardBase.type and reward.id == rewardBase.id and reward.num > rewardBase.num then + local num = reward.num - rewardBase.num + table.insert(self.cacheSummonRewardByLv[level], { + id = reward.id, + type = reward.type, + num = num + }) + find = true + break + end + end + if not find then + table.insert(self.cacheSummonRewardByLv[level], { + id = reward.id, + type = reward.type, + num = reward.num + }) + end + end + return self.cacheSummonRewardByLv[level] end end