diff --git a/src/adv/AdvBattle.lua b/src/adv/AdvBattle.lua index a03f699..d18d28a 100644 --- a/src/adv/AdvBattle.lua +++ b/src/adv/AdvBattle.lua @@ -97,8 +97,8 @@ end function Battle:playerAtk(roomId, blockId) local enemy = self:getEnemy(roomId, blockId) if enemy then - self.player:battleBgein() - enemy:battleBgein() + self.player:battleBegin() + enemy:battleBegin() while not enemy.isDead and not self.player.isDead do -- 玩家先出手 self.adv:backAtk(nil, enemy.id) diff --git a/src/adv/AdvBuff.lua b/src/adv/AdvBuff.lua index 9563192..406ab8d 100644 --- a/src/adv/AdvBuff.lua +++ b/src/adv/AdvBuff.lua @@ -201,7 +201,7 @@ function Buff:ctor(owner, id) self.id = id self.buffData = csvdb["adv_buffCsv"][self.id] self.isDel = false - self.duration = 0 --剩余的回合 + self.round = 0 --剩余的回合 self.count = -1 -- 可生效的次数 -1 无次数限制 if BuffFactory[self.buffData.type] then @@ -217,7 +217,7 @@ function Buff:initByDB(data) self.release = self.owner.battle:getEnemyById(data.rele) end end - self.duration = data.dur + self.round = data.round if data.count then self.count = data.count end @@ -229,7 +229,7 @@ end function Buff:initNew(release, data) self.release = release - self.duration = self.buffData.duration + self.round = self.buffData.round if self._init then self:_init(data) end @@ -241,9 +241,9 @@ function Buff:afterRound() self:_afterRount() end - if self.buffData.duration ~= 0 then - self.duration = self.duration - 1 - if self.duration <= 0 then + if self.buffData.round ~= 0 then + self.round = self.round - 1 + if self.round <= 0 then self.isDel = true end end @@ -286,8 +286,8 @@ 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.duration ~= 0 then - db.dur = self.duration + if self.buffData.round ~= 0 then + db.round = self.round end if self.count ~= -1 then db.count = self.count diff --git a/src/adv/AdvPassive.lua b/src/adv/AdvPassive.lua index ff765c5..839cc36 100644 --- a/src/adv/AdvPassive.lua +++ b/src/adv/AdvPassive.lua @@ -206,6 +206,10 @@ function Passive:ctor(owner, data) self.effects = self.passiveData.effect:toTableArray(true) self.filters = {} + + if self.passiveData.count < 0 then -- count < 0 无限次触发 + self.count = 999 + end if PassiveCondFactory[self.passiveData.condition] then PassiveCondFactory[self.passiveData.condition](self) @@ -244,12 +248,8 @@ function Passive:effect(trigger) self["effect" .. effType](self, effValue, trigger) end end - --次数为 -1 一局只能触发一次,触发过后删掉就可以 - if self.count == -1 then - self.isDel = true - end if self.count > 0 then - self.count = self.count - 1 + self.count = self.count < 999 and self.count - 1 or self.count self.round = self.passiveData.round end end diff --git a/src/adv/AdvPlayer.lua b/src/adv/AdvPlayer.lua index bfd8317..b5c5e4e 100644 --- a/src/adv/AdvPlayer.lua +++ b/src/adv/AdvPlayer.lua @@ -78,9 +78,9 @@ function BaseObject:clear() self.passives = {} end -function BaseObject:battleBgein() +function BaseObject:battleBegin() for _, passive in ipairs(self.passives) do - passive:battleBgein() + passive:battleBegin() end -- for _, buff in ipairs(self.buffs) do -- buff:afterRound(self) -- libgit2 0.21.2