被动技能

This commit is contained in:
chenxi 2023-04-22 00:05:49 +08:00
parent 9a6f2ad5e0
commit e4edcfcf69
5 changed files with 42 additions and 8 deletions

View File

@ -360,8 +360,9 @@ function BattleController:enterNextWave()
end end
if self.waveIndex == 1 then -- 第一波 if self.waveIndex == 1 then -- 第一波
self:generateBoard(true) self:generateBoard(true)
else
self.defTeam:prepare()
end end
self.defTeam:prepare()
self:enterRoundBegin() self:enterRoundBegin()
self.isBossWave = self.defTeam:getMainUnit().unitEntity:getIsBoss() self.isBossWave = self.defTeam:getMainUnit().unitEntity:getIsBoss()
end end

View File

@ -22,7 +22,7 @@ local _changeBaseSkill = function(skillInfo, battleData, battleController)
return return
end end
if battleData.atkTeam:getAllMembers()[elementType] then if battleData.atkTeam:getAllMembers()[elementType] then
battleData.atkTeam:getAllMembers()[elementType]:changeActiveSkillId(skillId, newSkillId) battleData.atkTeam:getAllMembers()[elementType]:changeSkillId(skillId, newSkillId)
end end
end end
end end
@ -139,7 +139,7 @@ local _addSkillEffectParams = function(skillInfo, battleData, battleController)
return return
end end
if battleData.atkTeam:getAllMembers()[elementType] then if battleData.atkTeam:getAllMembers()[elementType] then
battleData.atkTeam:getAllMembers()[elementType]:addActiveSkillParams(skillId, effect) battleData.atkTeam:getAllMembers()[elementType]:addSkillParams(skillId, effect)
end end
end end
end end
@ -177,7 +177,7 @@ local _addSkillRound = function(skillInfo, battleData, battleController)
return return
end end
if battleData.atkTeam:getAllMembers()[elementType] then if battleData.atkTeam:getAllMembers()[elementType] then
battleData.atkTeam:getAllMembers()[elementType]:addActiveSkillRound(skillId, effect) battleData.atkTeam:getAllMembers()[elementType]:addSkillRound(skillId, effect)
end end
end end
Logger.logHighlight("------addSkillRound------ " .. elementType .. " " .. json.encode(effect)) Logger.logHighlight("------addSkillRound------ " .. elementType .. " " .. json.encode(effect))

View File

@ -532,6 +532,7 @@ function BattleData:addMonster(monsterId, newTeam)
matchType = 0, matchType = 0,
normalSkills = monsterInfo.hurt_skill, normalSkills = monsterInfo.hurt_skill,
activeSkills = monsterInfo.skill, activeSkills = monsterInfo.skill,
passiveSkills = monsterInfo.passive_skill,
assistingSkill = nil, assistingSkill = nil,
isBoss = monsterInfo.is_boss, isBoss = monsterInfo.is_boss,
exp = monsterInfo.monster_exp or 0, exp = monsterInfo.monster_exp or 0,

View File

@ -24,6 +24,7 @@ function BattleSkillEntity:init()
end end
self:initSkillEffect() self:initSkillEffect()
self.available = self.skillInfo.effect_type ~= nil self.available = self.skillInfo.effect_type ~= nil
self:clearRecordData()
end end
function BattleSkillEntity:initSkillEffect() function BattleSkillEntity:initSkillEffect()

View File

@ -36,6 +36,13 @@ function BattleUnitEntity:initSkill()
table.insert(self.activeSkills, skill) table.insert(self.activeSkills, skill)
end end
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 end
function BattleUnitEntity:getIsBoss() function BattleUnitEntity:getIsBoss()
@ -160,31 +167,55 @@ function BattleUnitEntity:getPassiveSkills()
return self.passiveSkills return self.passiveSkills
end end
function BattleUnitEntity:changeActiveSkillId(originSkillId, tartgetSkillId) function BattleUnitEntity:changeSkillId(originSkillId, tartgetSkillId)
for _, skillEntity in ipairs(self.activeSkills) do for _, skillEntity in ipairs(self.activeSkills) do
if skillEntity:getSkillId() == originSkillId then if skillEntity:getSkillId() == originSkillId then
skillEntity:changeSkillId(tartgetSkillId) 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 end
end end
function BattleUnitEntity:addActiveSkillParams(skillId, effect) function BattleUnitEntity:addSkillParams(skillId, effect)
for _, skillEntity in ipairs(self.activeSkills) do for _, skillEntity in ipairs(self.activeSkills) do
if skillEntity:getSkillId() == skillId then if skillEntity:getSkillId() == skillId then
skillEntity:addSkillEffectParams(effect) skillEntity:addSkillEffectParams(effect)
break break
end end
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 end
function BattleUnitEntity:addActiveSkillRound(skillId, effect) function BattleUnitEntity:addSkillRound(skillId, effect)
for _, skillEntity in ipairs(self.activeSkills) do for _, skillEntity in ipairs(self.activeSkills) do
if skillEntity:getSkillId() == skillId then if skillEntity:getSkillId() == skillId then
skillEntity:addSkillEffectRound(effect) skillEntity:addSkillEffectRound(effect)
break break
end end
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 end
function BattleUnitEntity:getDamageCount() function BattleUnitEntity:getDamageCount()