From 5c4d0bf6b74084c799a9781f43af0d77d89f792c Mon Sep 17 00:00:00 2001 From: chenxi Date: Tue, 25 Apr 2023 10:29:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=8F=E9=AA=8C=E5=8A=A0=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/module/battle/component/battle_unit_comp.lua | 7 ++++++- lua/app/userdata/battle/team/battle_team_entity.lua | 4 ++++ lua/app/userdata/battle/team/battle_unit_entity.lua | 4 ++++ 3 files changed, 14 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 28724165..11264134 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -1147,7 +1147,12 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) if hpRealReduce < 0 and self.side == BattleConst.SIDE_DEF then -- 实际掉血了 local exp = self.unitEntity:getExp() if exp > 0 then - self.battleController:addBattleExp(math.floor(exp/self.unitEntity:getMaxHp()*-hpRealReduce)) + local expTime = atker.unitEntity:getExpTime() + local addExp = math.floor(exp/self.unitEntity:getMaxHp()*-hpRealReduce) + if expTime > 0 then + addExp = addExp * (DEFAULT_FACTOR + expTime) // DEFAULT_FACTOR + end + self.battleController:addBattleExp(addExp) end end local shieldHpDiff = self.unitEntity:getShieldHp() - shieldHpBefore diff --git a/lua/app/userdata/battle/team/battle_team_entity.lua b/lua/app/userdata/battle/team/battle_team_entity.lua index debdfa75..4834417e 100644 --- a/lua/app/userdata/battle/team/battle_team_entity.lua +++ b/lua/app/userdata/battle/team/battle_team_entity.lua @@ -169,6 +169,10 @@ function BattleTeamEntity:getNormalAttackAddCount() return self.attr[ATTR_NAME.NORMAL_ATTACK_COUNT] or 0 end +function BattleTeamEntity:getExpTime() + return self.attr.exp_time or 0 +end + function BattleTeamEntity:addMaxHp(num) local hpBefore = self.attr.hp local currPercent = hpBefore * DEFAULT_FACTOR // self.attr.max_hp diff --git a/lua/app/userdata/battle/team/battle_unit_entity.lua b/lua/app/userdata/battle/team/battle_unit_entity.lua index d5e90a56..d2b32e1f 100644 --- a/lua/app/userdata/battle/team/battle_unit_entity.lua +++ b/lua/app/userdata/battle/team/battle_unit_entity.lua @@ -318,6 +318,10 @@ function BattleUnitEntity:getExp() return self.unitData.exp end +function BattleUnitEntity:getExpTime() + return self.team:getExpTime() +end + function BattleUnitEntity:getIsDead() return self.team:getIsDead() end