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 |