From e4edcfcf695f025cb26ca3e3e9b84112fd8131cc Mon Sep 17 00:00:00 2001 From: chenxi Date: Sat, 22 Apr 2023 00:05:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A2=AB=E5=8A=A8=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/controller/battle_controller.lua | 3 +- .../skill/battle_rogue_skill_handle.lua | 6 +-- lua/app/userdata/battle/battle_data.lua | 1 + .../battle/skill/battle_skill_entity.lua | 1 + .../battle/team/battle_unit_entity.lua | 39 +++++++++++++++++-- 5 files changed, 42 insertions(+), 8 deletions(-) diff --git a/lua/app/module/battle/controller/battle_controller.lua b/lua/app/module/battle/controller/battle_controller.lua index 8925f343..397655a7 100644 --- a/lua/app/module/battle/controller/battle_controller.lua +++ b/lua/app/module/battle/controller/battle_controller.lua @@ -360,8 +360,9 @@ function BattleController:enterNextWave() end if self.waveIndex == 1 then -- 第一波 self:generateBoard(true) + else + self.defTeam:prepare() end - self.defTeam:prepare() self:enterRoundBegin() self.isBossWave = self.defTeam:getMainUnit().unitEntity:getIsBoss() end diff --git a/lua/app/module/battle/skill/battle_rogue_skill_handle.lua b/lua/app/module/battle/skill/battle_rogue_skill_handle.lua index 749dc0be..bbd100c3 100644 --- a/lua/app/module/battle/skill/battle_rogue_skill_handle.lua +++ b/lua/app/module/battle/skill/battle_rogue_skill_handle.lua @@ -22,7 +22,7 @@ local _changeBaseSkill = function(skillInfo, battleData, battleController) return end if battleData.atkTeam:getAllMembers()[elementType] then - battleData.atkTeam:getAllMembers()[elementType]:changeActiveSkillId(skillId, newSkillId) + battleData.atkTeam:getAllMembers()[elementType]:changeSkillId(skillId, newSkillId) end end end @@ -139,7 +139,7 @@ local _addSkillEffectParams = function(skillInfo, battleData, battleController) return end if battleData.atkTeam:getAllMembers()[elementType] then - battleData.atkTeam:getAllMembers()[elementType]:addActiveSkillParams(skillId, effect) + battleData.atkTeam:getAllMembers()[elementType]:addSkillParams(skillId, effect) end end end @@ -177,7 +177,7 @@ local _addSkillRound = function(skillInfo, battleData, battleController) return end if battleData.atkTeam:getAllMembers()[elementType] then - battleData.atkTeam:getAllMembers()[elementType]:addActiveSkillRound(skillId, effect) + battleData.atkTeam:getAllMembers()[elementType]:addSkillRound(skillId, effect) end end Logger.logHighlight("------addSkillRound------ " .. elementType .. " " .. json.encode(effect)) diff --git a/lua/app/userdata/battle/battle_data.lua b/lua/app/userdata/battle/battle_data.lua index 879a7403..e32e2c03 100644 --- a/lua/app/userdata/battle/battle_data.lua +++ b/lua/app/userdata/battle/battle_data.lua @@ -532,6 +532,7 @@ function BattleData:addMonster(monsterId, newTeam) matchType = 0, normalSkills = monsterInfo.hurt_skill, activeSkills = monsterInfo.skill, + passiveSkills = monsterInfo.passive_skill, assistingSkill = nil, isBoss = monsterInfo.is_boss, exp = monsterInfo.monster_exp or 0, diff --git a/lua/app/userdata/battle/skill/battle_skill_entity.lua b/lua/app/userdata/battle/skill/battle_skill_entity.lua index 342bb39f..6e6f2d70 100644 --- a/lua/app/userdata/battle/skill/battle_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_skill_entity.lua @@ -24,6 +24,7 @@ function BattleSkillEntity:init() end self:initSkillEffect() self.available = self.skillInfo.effect_type ~= nil + self:clearRecordData() end function BattleSkillEntity:initSkillEffect() diff --git a/lua/app/userdata/battle/team/battle_unit_entity.lua b/lua/app/userdata/battle/team/battle_unit_entity.lua index 6a48b7fd..32ba90d3 100644 --- a/lua/app/userdata/battle/team/battle_unit_entity.lua +++ b/lua/app/userdata/battle/team/battle_unit_entity.lua @@ -36,6 +36,13 @@ function BattleUnitEntity:initSkill() table.insert(self.activeSkills, skill) end end + if self.unitData.passiveSkills then + self.passiveSkills = {} + for k, v in ipairs(self.unitData.passiveSkills) do + local skill = BattleSkillEntity:create(v, GConst.BattleConst.SKILL_TYPE_PASSIVE, self) + table.insert(self.passiveSkills, skill) + end + end end function BattleUnitEntity:getIsBoss() @@ -160,31 +167,55 @@ function BattleUnitEntity:getPassiveSkills() return self.passiveSkills end -function BattleUnitEntity:changeActiveSkillId(originSkillId, tartgetSkillId) +function BattleUnitEntity:changeSkillId(originSkillId, tartgetSkillId) for _, skillEntity in ipairs(self.activeSkills) do if skillEntity:getSkillId() == originSkillId then skillEntity:changeSkillId(tartgetSkillId) - break + return + end + end + if self.passiveSkills then + for _, skillEntity in ipairs(self.passiveSkills) do + if skillEntity:getSkillId() == originSkillId then + skillEntity:changeSkillId(tartgetSkillId) + break + end end end end -function BattleUnitEntity:addActiveSkillParams(skillId, effect) +function BattleUnitEntity:addSkillParams(skillId, effect) for _, skillEntity in ipairs(self.activeSkills) do if skillEntity:getSkillId() == skillId then skillEntity:addSkillEffectParams(effect) break end end + if self.passiveSkills then + for _, skillEntity in ipairs(self.passiveSkills) do + if skillEntity:getSkillId() == skillId then + skillEntity:addSkillEffectParams(effect) + break + end + end + end end -function BattleUnitEntity:addActiveSkillRound(skillId, effect) +function BattleUnitEntity:addSkillRound(skillId, effect) for _, skillEntity in ipairs(self.activeSkills) do if skillEntity:getSkillId() == skillId then skillEntity:addSkillEffectRound(effect) break end end + if self.passiveSkills then + for _, skillEntity in ipairs(self.passiveSkills) do + if skillEntity:getSkillId() == skillId then + skillEntity:addSkillEffectRound(effect) + break + end + end + end end function BattleUnitEntity:getDamageCount()