From 0fa378ec881a41e4bccb522ddd23acfd9fb3d477 Mon Sep 17 00:00:00 2001 From: chenxi Date: Tue, 18 Apr 2023 21:32:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E5=91=BD=E7=9B=B8=E5=85=B3=E8=A2=AB?= =?UTF-8?q?=E5=8A=A8=E6=94=B9=E4=B8=BA=E7=94=B1=E9=98=9F=E4=BC=8D=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/battle/helper/battle_passive.lua | 8 +++---- .../battle/team/battle_team_entity.lua | 23 +++++++++++++++++++ .../battle/team/battle_unit_entity.lua | 8 +++++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/lua/app/module/battle/helper/battle_passive.lua b/lua/app/module/battle/helper/battle_passive.lua index 183da36b..4c24d36c 100644 --- a/lua/app/module/battle/helper/battle_passive.lua +++ b/lua/app/module/battle/helper/battle_passive.lua @@ -25,16 +25,16 @@ end local function _checkhpLowerThan(unitComp, skill, targetComp, hpPercent) local triggerValue = skill:getPassiveTriggerValue() or 0 if hpPercent*DEFAULT_FACTOR < triggerValue then -- 低于指定血量,触发技能 - local data = skill:getRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN) or 0 + local data = unitComp.unitEntity:getTeamRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN) or 0 if data == 1 then -- 已经触发过了 return 0 end - skill:setRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN, 1) + unitComp.unitEntity:setTeamRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN, 1) return 1 else - local data = skill:getRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN) or 0 + local data = unitComp.unitEntity:getTeamRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN) or 0 if data == 1 then -- 已经触发过了,那么需要取消 - skill:setRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN, 0) + unitComp.unitEntity:setTeamRecordData(SKILL_RECORD_DATA_NAME.HP_LOWER_THAN, 0) return -1 end end diff --git a/lua/app/userdata/battle/team/battle_team_entity.lua b/lua/app/userdata/battle/team/battle_team_entity.lua index d9bef4c7..00672b56 100644 --- a/lua/app/userdata/battle/team/battle_team_entity.lua +++ b/lua/app/userdata/battle/team/battle_team_entity.lua @@ -229,11 +229,34 @@ function BattleTeamEntity:handleShield(damageNum) end end +function BattleTeamEntity:getRecordData(name) + if self.recordData == nil then + self.recordData = {} + end + return self.recordData[name] +end + +function BattleTeamEntity:setRecordData(name, value) + if self.recordData == nil then + self.recordData = {} + end + self.recordData[name] = value +end + +function BattleTeamEntity:clearRecordData() + if self.recordData then + for k, v in pairs(self.recordData) do + self.recordData[k] = nil + end + end +end + function BattleTeamEntity:die() if self.isDead then return end self.isDead = true + self:clearRecordData() end function BattleTeamEntity:getIsDead() diff --git a/lua/app/userdata/battle/team/battle_unit_entity.lua b/lua/app/userdata/battle/team/battle_unit_entity.lua index 124a8b34..24dfbec0 100644 --- a/lua/app/userdata/battle/team/battle_unit_entity.lua +++ b/lua/app/userdata/battle/team/battle_unit_entity.lua @@ -253,6 +253,14 @@ function BattleUnitEntity:getSkillExtraUseTimes(skillId) return self.skillExtraUseTimes[skillId] or 0 end +function BattleUnitEntity:getTeamRecordData(name) + return self.team:getRecordData(name) +end + +function BattleUnitEntity:setTeamRecordData(name, value) + self.team:setRecordData(name, value) +end + function BattleUnitEntity:onRoundEnd() for k, v in ipairs(self.activeSkills) do v:cooldown()