Commit bedca62df0dad3b08e570f3d84f0bd4eeb4250aa
1 parent
1607a7f0
冒险
Showing
4 changed files
with
15 additions
and
7 deletions
Show diff stats
src/GlobalVar.lua
| @@ -98,4 +98,5 @@ AdvBackEventType = { | @@ -98,4 +98,5 @@ AdvBackEventType = { | ||
| 98 | End = 8, -- 结束 | 98 | End = 8, -- 结束 |
| 99 | BlockChange = 9, -- 块改变 | 99 | BlockChange = 9, -- 块改变 |
| 100 | PowerChange = 10, --体力改变 | 100 | PowerChange = 10, --体力改变 |
| 101 | + Dead = 11, --怪死亡 | ||
| 101 | } | 102 | } |
| 102 | \ No newline at end of file | 103 | \ No newline at end of file |
src/adv/Adv.lua
| @@ -471,7 +471,7 @@ function Adv:over(success) | @@ -471,7 +471,7 @@ function Adv:over(success) | ||
| 471 | self.advTeam.player = nil --重置玩家的数据 | 471 | self.advTeam.player = nil --重置玩家的数据 |
| 472 | self:clear() | 472 | self:clear() |
| 473 | 473 | ||
| 474 | - self.owner:updateProperty({field = "advItems", ""}) | 474 | + self.owner:updateProperty({field = "advItems", value = ""}) |
| 475 | 475 | ||
| 476 | self:backEnd(score, reward) | 476 | self:backEnd(score, reward) |
| 477 | end | 477 | end |
| @@ -1022,6 +1022,10 @@ function Adv:backAtk(enemyId, receiver) | @@ -1022,6 +1022,10 @@ function Adv:backAtk(enemyId, receiver) | ||
| 1022 | self:pushBackEvent(AdvBackEventType.Atk, {enemyId = enemyId, receiver = receiver}) | 1022 | self:pushBackEvent(AdvBackEventType.Atk, {enemyId = enemyId, receiver = receiver}) |
| 1023 | end | 1023 | end |
| 1024 | 1024 | ||
| 1025 | +function Adv:backDead(enemyId) | ||
| 1026 | + self:pushBackEvent(AdvBackEventType.Dead, {enemyId = enemyId}) | ||
| 1027 | +end | ||
| 1028 | + | ||
| 1025 | 1029 | ||
| 1026 | function Adv:popBackEvents() | 1030 | function Adv:popBackEvents() |
| 1027 | local events = self.backEvents | 1031 | local events = self.backEvents |
src/adv/AdvBattle.lua
| @@ -95,12 +95,14 @@ end | @@ -95,12 +95,14 @@ end | ||
| 95 | function Battle:playerAtk(roomId, blockId) | 95 | function Battle:playerAtk(roomId, blockId) |
| 96 | local enemy = self:getEnemy(roomId, blockId) | 96 | local enemy = self:getEnemy(roomId, blockId) |
| 97 | if enemy then | 97 | if enemy then |
| 98 | - self.adv:backAtk(nil, enemy.id) | ||
| 99 | - enemy:hurt(self.player:getHurtValue(), self.player, {hurtType = 1}) | ||
| 100 | - --是否无法反击 | ||
| 101 | - if not enemy:hadBuff(Buff.CANT_BACK_ATK) then | ||
| 102 | - self.adv:backAtk(enemy.id, nil) | ||
| 103 | - self.player:hurt(enemy:getHurtValue(), enemy, {hurtType = 1}) | 98 | + while not enemy.isDead and not self.player.isDead do |
| 99 | + self.adv:backAtk(nil, enemy.id) | ||
| 100 | + enemy:hurt(self.player:getHurtValue(), self.player, {hurtType = 1}) | ||
| 101 | + --是否无法反击 | ||
| 102 | + if not enemy.isDead and not enemy:hadBuff(Buff.CANT_BACK_ATK) then | ||
| 103 | + self.adv:backAtk(enemy.id, nil) | ||
| 104 | + self.player:hurt(enemy:getHurtValue(), enemy, {hurtType = 1}) | ||
| 105 | + end | ||
| 104 | end | 106 | end |
| 105 | end | 107 | end |
| 106 | end | 108 | end |
src/adv/AdvPlayer.lua
| @@ -237,6 +237,7 @@ function BaseObject:hurt(value, releaser, params) | @@ -237,6 +237,7 @@ function BaseObject:hurt(value, releaser, params) | ||
| 237 | end | 237 | end |
| 238 | 238 | ||
| 239 | self.isDead = true | 239 | self.isDead = true |
| 240 | + self.battle.adv:backDead(self.id) | ||
| 240 | end | 241 | end |
| 241 | self:triggerPassive(Passive.HURT_PERCENT_SELF, {value = value / self.hpMax}) | 242 | self:triggerPassive(Passive.HURT_PERCENT_SELF, {value = value / self.hpMax}) |
| 242 | for _, team in ipairs(self:getTeam(1, true)) do | 243 | for _, team in ipairs(self:getTeam(1, true)) do |