From fe492541a487c410efb5c8ff366b1a00f1cae106 Mon Sep 17 00:00:00 2001 From: chenxi Date: Mon, 24 Apr 2023 15:11:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E5=8F=8D=E5=BC=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/module/battle/component/battle_unit_comp.lua | 5 ++++- lua/app/userdata/battle/team/battle_team_entity.lua | 4 ++++ lua/app/userdata/battle/team/battle_unit_entity.lua | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index e49509a4..e27b7d14 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -1148,6 +1148,7 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) if shieldHpDiff < 0 then -- 说明护盾减少了 self.team:handleShield(shieldHpDiff, self) end + local hp = self.unitEntity:getHp() local x, y = self.baseObject:fastGetLocalPosition() if num < 0 then -- 伤害 if effectStatus == HURT_STATE_CRIT then @@ -1159,10 +1160,12 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) self:showEffectNumber(BattleConst.EFFECT_COLOR_RED, BattleConst.EFFECT_TYPE_MOVE_R, num, x, y) end end + if hp > 0 and self.unitEntity:getShieldRebound() then -- 伤害反弹 + atker:takeDamageOrCure(self, num*self.unitEntity:getShieldRebound() // DEFAULT_FACTOR, EFFECT_TYPE.DIRECT, 0) + end elseif num > 0 then -- 治疗 self:showEffectNumber(BattleConst.EFFECT_COLOR_GREEN, BattleConst.EFFECT_TYPE_BUFF, "+" .. num, x, y) end - local hp = self.unitEntity:getHp() local hpPercent = self.unitEntity:getHpPercent() self.battleController:refreshHp(self.side, hp, hpPercent) if atker:getIsCentralizedAttack() then diff --git a/lua/app/userdata/battle/team/battle_team_entity.lua b/lua/app/userdata/battle/team/battle_team_entity.lua index 87ff30c1..2f006a2e 100644 --- a/lua/app/userdata/battle/team/battle_team_entity.lua +++ b/lua/app/userdata/battle/team/battle_team_entity.lua @@ -199,6 +199,10 @@ function BattleTeamEntity:getShieldHp() return self.shieldHp end +function BattleTeamEntity:getShieldRebound() + return self.attr.shield_rebound or 0 +end + function BattleTeamEntity:getBlock() return self.attr.block or 0 end diff --git a/lua/app/userdata/battle/team/battle_unit_entity.lua b/lua/app/userdata/battle/team/battle_unit_entity.lua index 2da5aca8..bfa9cba9 100644 --- a/lua/app/userdata/battle/team/battle_unit_entity.lua +++ b/lua/app/userdata/battle/team/battle_unit_entity.lua @@ -302,6 +302,10 @@ function BattleUnitEntity:getShieldHp() return self.team:getShieldHp() end +function BattleUnitEntity:getShieldRebound() + return self.team:getShieldRebound() +end + function BattleUnitEntity:addMaxHp(num) self.team:addMaxHp(num) end