diff --git a/src/adv/AdvBattle.lua b/src/adv/AdvBattle.lua index 3cbd799..44636fa 100644 --- a/src/adv/AdvBattle.lua +++ b/src/adv/AdvBattle.lua @@ -316,8 +316,19 @@ function Battle:afterRound() build:afterRound("buffAfter") end + self.player:triggerPassive(Passive.AFTER_ROUND) + + self:checkAura() + self:clearRound() + + if self.player.isDead then + self.adv:over(false, nil, -2) + end +end +function Battle:clearRound() + local mapIdx = self.adv:getCurMapIdx() self.player:clearRound() for _, enemy in ipairs(self.enemys[mapIdx]) do enemy:clearRound() @@ -347,14 +358,6 @@ function Battle:afterRound() build:clear() end end - - self.player:triggerPassive(Passive.AFTER_ROUND) - - self:checkAura() - - if self.player.isDead then - self.adv:over(false, nil, -2) - end end @@ -450,12 +453,14 @@ function Battle:iLayerChange(oldMapIdx) enemy:checkAuraBuff(enemyBuffs) end self:setMapAuras(auras) + self:clearRound() end -- 新的 关卡 关闭旧的战斗模块 清理 玩家身上的光环效果 function Battle:overBattle() local buffs = self:checkDiffAuraBuff(self:getAurasByMap(), {}) self.player:checkAuraBuff(buffs) + self:clearRound() self.adv.owner:getProperty("advTeam").player = self.player:getDB() -- 临时缓存住 battle 的player end @@ -463,6 +468,10 @@ end function Battle:newBattle() local auras = self:getActiveAuras() local buffs = self:checkDiffAuraBuff({}, auras) + self.player:checkAuraBuff(buffs) + for _, enemy in pairs(self.player:getTeam(2)) do + enemy:checkAuraBuff(buffs) + end self:setMapAuras(auras) end @@ -490,7 +499,7 @@ function Battle:checkDiffAuraBuff(oldAuras, newAuras) for aurasId , count in pairs(newAuras) do auras[aurasId] = (auras[aurasId] or 0) + count end - + local buffs = {} for aurasId , count in pairs(auras) do local auraData = csvdb["adv_map_haloCsv"][aurasId] -- libgit2 0.21.2