diff --git a/lua/app/userdata/runes/runes_data.lua b/lua/app/userdata/runes/runes_data.lua index 26aab50d..6a72dadc 100644 --- a/lua/app/userdata/runes/runes_data.lua +++ b/lua/app/userdata/runes/runes_data.lua @@ -16,8 +16,7 @@ function RunesData:init(data) Logger.printTable(data) end - self.level = data.level or 1 - self.exp = data.exp or 0 + self:updateLevelAndExp(data.level or 1, data.exp or 0) if data.heroes_grids then for heroId, grids in pairs(data.heroes_grids) do self:addRunes(heroId, grids.grids) @@ -346,8 +345,7 @@ end -- 淬炼成功 function RunesData:onQuenchingSuccess(level, exp, heroId, grids) - self.level = level - self.exp = exp + self:updateLevelAndExp(level, exp) self.runes[heroId]:updateGrids(grids) self:setDirty() @@ -366,14 +364,24 @@ end -- 自动淬炼成功 function RunesData:onAutoQuenchingSuccess(level, exp, grids) - self.level = level - self.exp = exp + self:updateLevelAndExp(level, exp) self.runes[self:getAutoHeroId()]:updateGrids(grids) self.executedAutoCount = 0 self:setDirty() end +-- 更新等级和经验 +function RunesData:updateLevelAndExp(level, exp) + if self.level and self.level ~= level then + -- 等级变了,重置假数据 + self.fakeGrids = nil + end + + self.level = level + self.exp = exp +end + -- 自动淬炼失败 function RunesData:onAutoQuenchingFailed() self:setDirty()