diff --git a/src/adv/AdvBattle.lua b/src/adv/AdvBattle.lua index 1f69726..b89b472 100644 --- a/src/adv/AdvBattle.lua +++ b/src/adv/AdvBattle.lua @@ -160,6 +160,7 @@ function Battle:battleBegin(roomId, blockId, params) -- 玩家没死就是怪死了 if player.hp > 0 then enemy:hurt(enemy.hp, self.player, {hurtType = 5}) + self.player:effectBattleBuff() end self.player:hurt(math.max(0, math.ceil(self.player.hp - player.hp)), enemy, {hurtType = 5}) --战斗血量只会变少 self.player:changeSp(math.min(0, math.floor(player.sp - self.player.sp)) , 0) --战斗魔力只会变少 diff --git a/src/adv/AdvBuff.lua b/src/adv/AdvBuff.lua index 9bc4f25..1b78a10 100644 --- a/src/adv/AdvBuff.lua +++ b/src/adv/AdvBuff.lua @@ -17,6 +17,7 @@ Buff.CANT_SKILL = 13 -- 禁止技能 Buff.OPEN_BLOCK = 14 -- 翻开格子(每回合) Buff.SP_CHANGE = 15 -- sp变化(每回合) Buff.HP_CHANGE_NOW = 16 -- 生命变化(每回合生效,立刻生效) +Buff.BATTLE_BUFF = 17 -- 切换为战斗中的buff --角色一些属性的变化 local function commonAttr(_Buff, attrName) @@ -224,9 +225,7 @@ function Buff:ctor(owner, id) self.buffData = csvdb["adv_map_buffCsv"][self.id] self.isDel = false self.roundSpace = 0 --生效间隔 - self.turnSpace = 0 --生效间隔 self.round = 0 --剩余的回合 - self.turn = 0 --剩余战斗内回合 self.count = -1 -- 可生效的次数 -1 无次数限制 if BuffFactory[self.buffData.type] then @@ -249,7 +248,6 @@ end function Buff:initNew(release, data) self.release = release or self.owner self.round = self.buffData.round - self.turn = self.buffData.turn if self.buffData.effectTime > 0 then self.count = self.buffData.effectTime end @@ -277,11 +275,6 @@ function Buff:initByDB(data) end end -function Buff:battleEnd() - if self.buffData.turn ~= 0 then - self.isDel = true -- turn类型buff战斗结束后移除 - end -end function Buff:afterRound() if self.isDel or self.owner.isDead or self.buffData.round == 0 then return end diff --git a/src/adv/AdvPlayer.lua b/src/adv/AdvPlayer.lua index d7845ad..5fd4eb6 100644 --- a/src/adv/AdvPlayer.lua +++ b/src/adv/AdvPlayer.lua @@ -444,6 +444,14 @@ function Player:changeSp(value, cType) self.battle.adv:pushBackEvent(AdvBackEventType.SpChange) end +--战斗结束了扣战斗buff次数 +function Player:effectBattleBuff() + for _, buff in ipairs(self.buffs) do + if not buff.isDel and buff:getType() == Buff.BATTLE_BUFF then + buff:effect() + end + end +end function Player:getDB() local db = Player.super.getDB(self) -- libgit2 0.21.2