Commit 0d405dc35916da85e18bd0cfa8c674caf0cdf820
1 parent
1a1a6375
Buff生命周期调整,被动加buff传入releaser
Showing
4 changed files
with
22 additions
and
34 deletions
Show diff stats
src/adv/AdvBattle.lua
| @@ -109,6 +109,11 @@ function Battle:playerAtk(roomId, blockId) | @@ -109,6 +109,11 @@ function Battle:playerAtk(roomId, blockId) | ||
| 109 | self:doBattleTurn(enemy, self.player) | 109 | self:doBattleTurn(enemy, self.player) |
| 110 | end | 110 | end |
| 111 | end | 111 | end |
| 112 | + if not self.player.isDead then | ||
| 113 | + self.player:battleEnd() | ||
| 114 | + elseif not enemy.isDead then | ||
| 115 | + enemy:battleEnd() | ||
| 116 | + end | ||
| 112 | end | 117 | end |
| 113 | end | 118 | end |
| 114 | --战斗内回合逻辑 | 119 | --战斗内回合逻辑 |
src/adv/AdvBuff.lua
| @@ -3,7 +3,7 @@ local Buff = class("Buff") | @@ -3,7 +3,7 @@ local Buff = class("Buff") | ||
| 3 | 3 | ||
| 4 | Buff.HP_CHANGE = 1 --生命变化(每回合生效) | 4 | Buff.HP_CHANGE = 1 --生命变化(每回合生效) |
| 5 | Buff.HP_MAX_CHANGE = 2 --生命上限变化(状态) | 5 | Buff.HP_MAX_CHANGE = 2 --生命上限变化(状态) |
| 6 | -Buff.ATK_CHANGE = 3 --攻击变化(状态) | 6 | +Buff.ATTR_CHANGE = 3 --属性变化(状态) |
| 7 | Buff.IMMNUE_ATK = 4 -- 免疫普通攻击 | 7 | Buff.IMMNUE_ATK = 4 -- 免疫普通攻击 |
| 8 | Buff.BACK_HURT = 5 -- 伤害反弹 | 8 | Buff.BACK_HURT = 5 -- 伤害反弹 |
| 9 | Buff.HURT_CHANGE = 6 -- 伤害变化 | 9 | Buff.HURT_CHANGE = 6 -- 伤害变化 |
| @@ -16,9 +16,6 @@ Buff.CLEAR_BUFF = 12 -- 清除buff | @@ -16,9 +16,6 @@ Buff.CLEAR_BUFF = 12 -- 清除buff | ||
| 16 | Buff.CANT_SKILL = 13 -- 禁止技能 | 16 | Buff.CANT_SKILL = 13 -- 禁止技能 |
| 17 | Buff.OPEN_BLOCK = 14 -- 翻开格子(每回合) | 17 | Buff.OPEN_BLOCK = 14 -- 翻开格子(每回合) |
| 18 | Buff.POWER_CHANGE = 15 -- 体力变化(每回合) | 18 | Buff.POWER_CHANGE = 15 -- 体力变化(每回合) |
| 19 | -Buff.HIT_CHANGE = 16 -- 命中变化(状态) | ||
| 20 | -Buff.MISS_CHANGE = 17 -- 闪避变化(状态) | ||
| 21 | -Buff.DEF_CHANGE = 18 -- 防御变化(状态) | ||
| 22 | 19 | ||
| 23 | --角色一些属性的变化 | 20 | --角色一些属性的变化 |
| 24 | local function commonAttr(_Buff, attrName) | 21 | local function commonAttr(_Buff, attrName) |
| @@ -108,22 +105,10 @@ local BuffFactory = { | @@ -108,22 +105,10 @@ local BuffFactory = { | ||
| 108 | return {cv = self._changeV} | 105 | return {cv = self._changeV} |
| 109 | end | 106 | end |
| 110 | end, | 107 | end, |
| 111 | - [Buff.ATK_CHANGE] = function(_Buff) | ||
| 112 | - commonAttr(_Buff, "atk") | 108 | + [Buff.ATTR_CHANGE] = function(_Buff) |
| 109 | + local attrName = AttsEnumEx[self.buffData.effectValue3] | ||
| 110 | + commonAttr(_Buff, attrName) | ||
| 113 | end, | 111 | end, |
| 114 | - | ||
| 115 | - [Buff.HIT_CHANGE] = function(_Buff) | ||
| 116 | - commonAttr(_Buff, "hit") | ||
| 117 | - end, | ||
| 118 | - | ||
| 119 | - [Buff.MISS_CHANGE] = function(_Buff) | ||
| 120 | - commonAttr(_Buff, "miss") | ||
| 121 | - end, | ||
| 122 | - | ||
| 123 | - [Buff.DEF_CHANGE] = function(_Buff) | ||
| 124 | - commonAttr(_Buff, "miss") | ||
| 125 | - end, | ||
| 126 | - | ||
| 127 | [Buff.BACK_HURT] = function(_Buff) | 112 | [Buff.BACK_HURT] = function(_Buff) |
| 128 | _Buff._effectValue = function(self) | 113 | _Buff._effectValue = function(self) |
| 129 | return self.buffData.effectValue1, self.buffData.effectValue2, self.buffData.effectValue3 | 114 | return self.buffData.effectValue1, self.buffData.effectValue2, self.buffData.effectValue3 |
| @@ -219,7 +204,6 @@ function Buff:ctor(owner, id) | @@ -219,7 +204,6 @@ function Buff:ctor(owner, id) | ||
| 219 | self.id = id | 204 | self.id = id |
| 220 | self.buffData = csvdb["adv_buffCsv"][self.id] | 205 | self.buffData = csvdb["adv_buffCsv"][self.id] |
| 221 | self.isDel = false | 206 | self.isDel = false |
| 222 | - self.ifRoundEnd = false | ||
| 223 | self.roundSpace = 0 --生效间隔 | 207 | self.roundSpace = 0 --生效间隔 |
| 224 | self.turnSpace = 0 --生效间隔 | 208 | self.turnSpace = 0 --生效间隔 |
| 225 | self.round = 0 --剩余的回合 | 209 | self.round = 0 --剩余的回合 |
| @@ -274,10 +258,10 @@ function Buff:initByDB(data) | @@ -274,10 +258,10 @@ function Buff:initByDB(data) | ||
| 274 | end | 258 | end |
| 275 | end | 259 | end |
| 276 | 260 | ||
| 277 | -function Buff:battleBegin() | ||
| 278 | - if self.isDel or self.owner.isDead or self.buffData.turn == 0 then return end | ||
| 279 | - self.turn = self.buffData.turn | ||
| 280 | - self.ifRoundEnd = true -- turn类型buff战斗结束后移除 | 261 | +function Buff:battleEnd() |
| 262 | + if self.buffData.turn ~= 0 then | ||
| 263 | + self.isDel = true -- turn类型buff战斗结束后移除 | ||
| 264 | + end | ||
| 281 | end | 265 | end |
| 282 | 266 | ||
| 283 | function Buff:beforeTurn() | 267 | function Buff:beforeTurn() |
| @@ -326,10 +310,6 @@ function Buff:afterRound() | @@ -326,10 +310,6 @@ function Buff:afterRound() | ||
| 326 | if self._afterRound then | 310 | if self._afterRound then |
| 327 | self:_afterRound() | 311 | self:_afterRound() |
| 328 | end | 312 | end |
| 329 | - if self.ifRoundEnd then -- turn类型buff战斗结束后移除 | ||
| 330 | - self.isDel = true | ||
| 331 | - return | ||
| 332 | - end | ||
| 333 | if self.buffData.roundTime > 0 then | 313 | if self.buffData.roundTime > 0 then |
| 334 | self.turnSpace = self.buffData.roundTime | 314 | self.turnSpace = self.buffData.roundTime |
| 335 | end | 315 | end |
src/adv/AdvPassive.lua
| @@ -202,7 +202,7 @@ function Passive:ctor(owner, data) | @@ -202,7 +202,7 @@ function Passive:ctor(owner, data) | ||
| 202 | self.count = data.count or self.passiveData.count --触发剩余次数 | 202 | self.count = data.count or self.passiveData.count --触发剩余次数 |
| 203 | self.delay = data.delay or self.passiveData.delayRound --触发延迟回合数 | 203 | self.delay = data.delay or self.passiveData.delayRound --触发延迟回合数 |
| 204 | self.turn = 0 --战斗内回合数 | 204 | self.turn = 0 --战斗内回合数 |
| 205 | - self.delayturn = 0 --战斗内延迟回合数 | 205 | + self.delayturn = self.passiveData.delayTurn --战斗内延迟回合数 |
| 206 | 206 | ||
| 207 | self.effects = self.passiveData.effect:toTableArray(true) | 207 | self.effects = self.passiveData.effect:toTableArray(true) |
| 208 | self.filters = {} | 208 | self.filters = {} |
| @@ -342,12 +342,12 @@ function Passive:effect0(value) | @@ -342,12 +342,12 @@ function Passive:effect0(value) | ||
| 342 | end | 342 | end |
| 343 | --1=自身获得buff | 343 | --1=自身获得buff |
| 344 | function Passive:effect1(value) | 344 | function Passive:effect1(value) |
| 345 | - self.owner:addBuff(value) | 345 | + self.owner:addBuff(value, self.owner) |
| 346 | end | 346 | end |
| 347 | --2=触发目标获得buff | 347 | --2=触发目标获得buff |
| 348 | function Passive:effect2(value, trigger) | 348 | function Passive:effect2(value, trigger) |
| 349 | if trigger then | 349 | if trigger then |
| 350 | - trigger:addBuff(value) | 350 | + trigger:addBuff(value, self.owner) |
| 351 | end | 351 | end |
| 352 | end | 352 | end |
| 353 | --3=翻开自己所在格子 | 353 | --3=翻开自己所在格子 |
| @@ -363,7 +363,7 @@ end | @@ -363,7 +363,7 @@ end | ||
| 363 | function Passive:effect5(value) | 363 | function Passive:effect5(value) |
| 364 | local monsters = self.owner.battle.player:getTeam(2) | 364 | local monsters = self.owner.battle.player:getTeam(2) |
| 365 | local randomId = math.random( 1, #monsters ) | 365 | local randomId = math.random( 1, #monsters ) |
| 366 | - monsters[randomId]:addBuff(value) | 366 | + monsters[randomId]:addBuff(value, self.owner) |
| 367 | end | 367 | end |
| 368 | --6=给自己加一個被動技能 | 368 | --6=给自己加一個被動技能 |
| 369 | function Passive:effect6(value) | 369 | function Passive:effect6(value) |
src/adv/AdvPlayer.lua
| @@ -60,7 +60,7 @@ function BaseObject:afterRound() | @@ -60,7 +60,7 @@ function BaseObject:afterRound() | ||
| 60 | passive:afterRound(self) | 60 | passive:afterRound(self) |
| 61 | end | 61 | end |
| 62 | for _, buff in ipairs(self.buffs) do | 62 | for _, buff in ipairs(self.buffs) do |
| 63 | - buff:afterRound(self) | 63 | + buff:afterRound() |
| 64 | end | 64 | end |
| 65 | end | 65 | end |
| 66 | 66 | ||
| @@ -98,8 +98,11 @@ function BaseObject:battleBegin() | @@ -98,8 +98,11 @@ function BaseObject:battleBegin() | ||
| 98 | for _, passive in ipairs(self.passives) do | 98 | for _, passive in ipairs(self.passives) do |
| 99 | passive:battleBegin() | 99 | passive:battleBegin() |
| 100 | end | 100 | end |
| 101 | +end | ||
| 102 | + | ||
| 103 | +function BaseObject:battleEnd() | ||
| 101 | for _, buff in ipairs(self.buffs) do | 104 | for _, buff in ipairs(self.buffs) do |
| 102 | - buff:battleBegin() | 105 | + buff:battleEnd() |
| 103 | end | 106 | end |
| 104 | end | 107 | end |
| 105 | 108 |