From 596ac19f01714e5889b3385bac0f464e9a18f15f Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Tue, 7 Jan 2020 14:43:21 +0800 Subject: [PATCH] buff --- src/adv/Adv.lua | 8 ++++---- src/adv/AdvBuff.lua | 9 ++++++++- src/adv/AdvPlayer.lua | 8 ++++++++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 794692a..2c3ebc9 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -63,15 +63,15 @@ function Adv:initByChapter(chapterId, level, isToNext, notNotify) self.maps = {} self.maps[1] = AdvMap.new(self, 1, mapId) - if isToNext then - self:scoreChange(AdvScoreType.Level) --增加层级加分 - end - self:initBattle() self:initLayerTask() self:checkTask(Adv.TaskType.Arrive) + if isToNext then + self.battle.player:afterLayer() -- 玩家的buff 清理一下 + self:scoreChange(AdvScoreType.Level) --增加层级加分 + end if not notNotify then self:saveDB(notNotify) end diff --git a/src/adv/AdvBuff.lua b/src/adv/AdvBuff.lua index fc282a2..a2dee7a 100644 --- a/src/adv/AdvBuff.lua +++ b/src/adv/AdvBuff.lua @@ -369,6 +369,13 @@ function Buff:decRound() end end +function Buff:afterLayer() + -- 持续一层 + if self.buffData.round == 0 then + self.isDel = true + end +end + function Buff:canEffect(...) if not self._canEffect then return true @@ -414,7 +421,7 @@ function Buff:getDB() if self.release and not self.release.isDead then db.rele = self.release.id or 0 --释放者的id (0 为玩家) (不存在 则释放者不存在或者已经死亡) end - if self.buffData.round ~= 0 then + if self.buffData.round > 0 then db.round = self.round end db.roundSp = self.roundSpace diff --git a/src/adv/AdvPlayer.lua b/src/adv/AdvPlayer.lua index fe5d409..63edd3d 100644 --- a/src/adv/AdvPlayer.lua +++ b/src/adv/AdvPlayer.lua @@ -525,6 +525,14 @@ function Player:effectBattleBuff() end end +function Player:afterLayer() + for _, buff in ipairs(self.buffs) do + if not buff.isDel then + buff:afterLayer() + end + end +end + function Player:getDB() local db = Player.super.getDB(self) for _ , field in pairs({"level", "exp", "growth", "sp"}) do -- libgit2 0.21.2