Commit 596ac19f01714e5889b3385bac0f464e9a18f15f

Authored by zhouhaihai
1 parent 25a376de

buff

src/adv/Adv.lua
... ... @@ -63,15 +63,15 @@ function Adv:initByChapter(chapterId, level, isToNext, notNotify)
63 63 self.maps = {}
64 64 self.maps[1] = AdvMap.new(self, 1, mapId)
65 65  
66   - if isToNext then
67   - self:scoreChange(AdvScoreType.Level) --增加层级加分
68   - end
69   -
70 66 self:initBattle()
71 67  
72 68 self:initLayerTask()
73 69  
74 70 self:checkTask(Adv.TaskType.Arrive)
  71 + if isToNext then
  72 + self.battle.player:afterLayer() -- 玩家的buff 清理一下
  73 + self:scoreChange(AdvScoreType.Level) --增加层级加分
  74 + end
75 75 if not notNotify then
76 76 self:saveDB(notNotify)
77 77 end
... ...
src/adv/AdvBuff.lua
... ... @@ -369,6 +369,13 @@ function Buff:decRound()
369 369 end
370 370 end
371 371  
  372 +function Buff:afterLayer()
  373 + -- 持续一层
  374 + if self.buffData.round == 0 then
  375 + self.isDel = true
  376 + end
  377 +end
  378 +
372 379 function Buff:canEffect(...)
373 380 if not self._canEffect then
374 381 return true
... ... @@ -414,7 +421,7 @@ function Buff:getDB()
414 421 if self.release and not self.release.isDead then
415 422 db.rele = self.release.id or 0 --释放者的id (0 为玩家) (不存在 则释放者不存在或者已经死亡)
416 423 end
417   - if self.buffData.round ~= 0 then
  424 + if self.buffData.round > 0 then
418 425 db.round = self.round
419 426 end
420 427 db.roundSp = self.roundSpace
... ...
src/adv/AdvPlayer.lua
... ... @@ -525,6 +525,14 @@ function Player:effectBattleBuff()
525 525 end
526 526 end
527 527  
  528 +function Player:afterLayer()
  529 + for _, buff in ipairs(self.buffs) do
  530 + if not buff.isDel then
  531 + buff:afterLayer()
  532 + end
  533 + end
  534 +end
  535 +
528 536 function Player:getDB()
529 537 local db = Player.super.getDB(self)
530 538 for _ , field in pairs({"level", "exp", "growth", "sp"}) do
... ...