From 170ddb3066f29c423a756e456786f8c02e72e334 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Thu, 18 May 2023 15:34:17 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=8A=80=E8=83=BD=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E7=94=9F=E6=95=88=E6=9D=A1=E4=BB=B6=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/module/battle/battle_const.lua | 10 +++ .../battle/component/battle_unit_comp.lua | 21 +++++- .../helper/battle_skill_condition_handle.lua | 70 +++++++++++++++++++ .../battle_skill_condition_handle.lua.meta | 10 +++ lua/app/module/battle/team/battle_team.lua | 4 ++ .../battle/skill/battle_skill_entity.lua | 18 +++++ .../battle/team/battle_team_entity.lua | 4 ++ .../battle/team/battle_unit_entity.lua | 4 ++ 8 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 lua/app/module/battle/helper/battle_skill_condition_handle.lua create mode 100644 lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta diff --git a/lua/app/module/battle/battle_const.lua b/lua/app/module/battle/battle_const.lua index 359d0332..6b71c665 100644 --- a/lua/app/module/battle/battle_const.lua +++ b/lua/app/module/battle/battle_const.lua @@ -193,6 +193,16 @@ BattleConst.SKILL_RECORD_DATA_NAME = { HP_LOWER_THAN = 1 } +BattleConst.SKILL_CONDITION_TYPE = { + STATE = "state", -- 状态 + ATTR = "attr", -- 属性 +} + +BattleConst.SKILL_CONDITION_REL_TYPE = { + AND = 1, + OR = 2, +} + BattleConst.PASSIVE_EVENT = { ON_UNIT_PREPARE_OVER = 2, -- 新单位出场时 ON_UNI_ATTACK_START = 3, -- 攻击开始前 diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index cf49f334..0cc3cd4a 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -2,6 +2,7 @@ local BattleConst = require "app/module/battle/battle_const" local BattleHelper = require "app/module/battle/helper/battle_helper" local BattleBuffHandle = require "app/module/battle/helper/battle_buff_handle" local BATTLE_BOARD_SKILL_HANDLE = require "app/module/battle/skill/battle_board_skill_handle" +local BATTLE_SKILL_CONDITION_HANDLE = require "app/module/battle/helper/battle_skill_condition_handle" local BattlePassive = require "app/module/battle/helper/battle_passive" local BattleUnitComp = class("BattleUnitComp", LuaComponent) @@ -1140,6 +1141,10 @@ function BattleUnitComp:addBuff(buffEffect) return self.team:addBuff(buffEffect) end +function BattleUnitComp:getBuffCountByName(buffName) + return self.team:getBuffCountByName(buffName) +end + function BattleUnitComp:updateBuffState(buff, num) self.team:updateBuffState(buff, num) end @@ -1204,8 +1209,10 @@ function BattleUnitComp:onSkillTakeEffect(skill, isFinalBlock, validEffectIdx) local succ = false for k, effect in ipairs(effectList) do if k >= validEffectIdx[1] and k <= validEffectIdx[2] then - if self:takeEffect(effect, target) then - succ = true + if self:judgeSkillEffectCondition(skill, k, target) then + if self:takeEffect(effect, target) then + succ = true + end end end end @@ -1235,6 +1242,16 @@ function BattleUnitComp:onSkillTakeEffect(skill, isFinalBlock, validEffectIdx) end end +function BattleUnitComp:judgeSkillEffectCondition(skill, index, target) + if not skill then + return true + end + + local buffConditions = skill:getBuffCondition(index) + local conditionRel = skill:getBuffConditionRel(index) + return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, target) +end + function BattleUnitComp:takeEffect(buff, target) local ratio = buff:getRatio() if ratio < DEFAULT_FACTOR then diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua b/lua/app/module/battle/helper/battle_skill_condition_handle.lua new file mode 100644 index 00000000..4d4e0a48 --- /dev/null +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua @@ -0,0 +1,70 @@ +local BattleConst = require "app/module/battle/battle_const" + +local BattleSkillConditionHandle = {} + +local SKILL_CONDITION_REL_TYPE = BattleConst.SKILL_CONDITION_REL_TYPE +local SKILL_CONDITION_TYPE = BattleConst.SKILL_CONDITION_TYPE + +local function _judgeTargetState(buffCondition, conditionRel, target) + local num = target:getBuffCountByName(buffCondition.attr) + if num > 0 then -- 拥有这个buff + return true + end + return false +end + +local function _judgeTargetAttr(buffCondition, conditionRel, target) + local attrNum = target.unitEntity:getAttrValue(buffCondition.attr) + return BattleSkillConditionHandle._strOperatorOverloading(buffCondition.op, attrNum, buffCondition.v) +end + +BattleSkillConditionHandle._judgeSkillEffectCondition = { + [SKILL_CONDITION_TYPE.STATE] = _judgeTargetState, + [SKILL_CONDITION_TYPE.ATTR] = _judgeTargetAttr, +} + +BattleSkillConditionHandle._strOperatorOverloading = function(opStr, value1, value2) + if opStr == "<" then + return value1 < value2 + elseif opStr == "<=" then + return value1 <= value2 + elseif opStr == "=" then + return value1 == value2 + elseif opStr == ">" then + return value1 > value2 + elseif opStr == ">=" then + return value1 >= value2 + elseif opStr == "!=" then + return value1 ~= value2 + end + + return false +end + +function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, conditionRel, target) + if not buffConditions or not conditionRel then + return true + end + + local passConditionCount = 0 + for _, condition in ipairs(buffConditions) do + local func = BattleSkillConditionHandle._judgeSkillEffectCondition[condition.type] + if func(condition, conditionRel, target) then + passConditionCount = passConditionCount + 1 + end + end + + if conditionRel == SKILL_CONDITION_REL_TYPE.AND then + if passConditionCount >= #buffConditions then + return true + end + elseif conditionRel == SKILL_CONDITION_REL_TYPE.OR then + if passConditionCount > 0 then + return true + end + end + + return false +end + +return BattleSkillConditionHandle \ No newline at end of file diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta b/lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta new file mode 100644 index 00000000..220d8dd0 --- /dev/null +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9858e4faf8623ec4983583f58ea463ba +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/battle/team/battle_team.lua b/lua/app/module/battle/team/battle_team.lua index 7b56959e..76ffd501 100644 --- a/lua/app/module/battle/team/battle_team.lua +++ b/lua/app/module/battle/team/battle_team.lua @@ -480,6 +480,10 @@ function BattleTeam:updateBuffState(buff, num) end end +function BattleTeam:getBuffCountByName(buffName) + return self.sameBuffCount[buffName] or 0 +end + function BattleTeam:getLoopFxResCount(res) return self.loopFxMap[res] or 0 end diff --git a/lua/app/userdata/battle/skill/battle_skill_entity.lua b/lua/app/userdata/battle/skill/battle_skill_entity.lua index eebb0d86..b87cac50 100644 --- a/lua/app/userdata/battle/skill/battle_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_skill_entity.lua @@ -199,6 +199,24 @@ function BattleSkillEntity:getEffectBlockTime() return self.blockTime end +function BattleSkillEntity:getBuffCondition(index) + if not self.skillInfo.buff_condition then + return + end + return self.skillInfo.buff_condition[index] +end + +function BattleSkillEntity:getBuffConditionRel(index) + if not self.skillInfo.condition_rel then + return + end + for _, info in ipairs(self.skillInfo.condition_rel) do + if info[1] == index then + return info[2] + end + end +end + function BattleSkillEntity:getTargetType() return self.skillInfo.obj end diff --git a/lua/app/userdata/battle/team/battle_team_entity.lua b/lua/app/userdata/battle/team/battle_team_entity.lua index 5cda5537..08bbccb1 100644 --- a/lua/app/userdata/battle/team/battle_team_entity.lua +++ b/lua/app/userdata/battle/team/battle_team_entity.lua @@ -305,6 +305,10 @@ function BattleTeamEntity:getSkillHurt() return self.attr.skill_hurt or 0 end +function BattleTeamEntity:getAttrValue(attrName) + return self.attr[attrName] or 0 +end + function BattleTeamEntity:takeDamageOrCure(num) if self.isDead then return 0 diff --git a/lua/app/userdata/battle/team/battle_unit_entity.lua b/lua/app/userdata/battle/team/battle_unit_entity.lua index c7f308a4..e84bf21e 100644 --- a/lua/app/userdata/battle/team/battle_unit_entity.lua +++ b/lua/app/userdata/battle/team/battle_unit_entity.lua @@ -394,6 +394,10 @@ function BattleUnitEntity:getIsDead() return self.team:getIsDead() end +function BattleUnitEntity:getAttrValue(attr) + return self.team:getAttrValue(attr) +end + function BattleUnitEntity:addSkillExtraUseTimes(skillId, count) if self.skillExtraUseTimes == nil then self.skillExtraUseTimes = {} From 82d95ee5fdecb36f219746243e8c3792c97bf68a Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Thu, 18 May 2023 20:43:10 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=A2=AB=E5=8A=A8=E3=80=81buff=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/module/battle/battle_const.lua | 5 ++++- .../battle/component/battle_unit_comp.lua | 20 ++++++++++++------- .../battle/controller/battle_controller.lua | 2 +- .../module/battle/helper/battle_passive.lua | 15 ++++++++++++++ .../helper/battle_skill_condition_handle.lua | 18 ++++++++++++----- lua/app/module/battle/team/battle_team.lua | 4 ++-- .../battle/skill/battle_skill_entity.lua | 1 + 7 files changed, 49 insertions(+), 16 deletions(-) diff --git a/lua/app/module/battle/battle_const.lua b/lua/app/module/battle/battle_const.lua index 6b71c665..ff793f7b 100644 --- a/lua/app/module/battle/battle_const.lua +++ b/lua/app/module/battle/battle_const.lua @@ -209,7 +209,10 @@ BattleConst.PASSIVE_EVENT = { HP_LOWER_THAN = 4, -- 血量低于X% USE_NORMAL_SKILL = 5, -- 使用普攻 ACTIVE_SKILL_HIT = 6, -- 主动技能命中 - ON_DEAD = 7, -- 死亡时 + ON_NORAML_SKILL_OVER = 7, -- 普攻结束后 + ON_DEAD_BY_BURN = 8, -- 有敌人死于灼烧伤害时触发 + ON_DEAD_BY_SKILL = 9, -- 有敌人死于技能时触发 + ON_DEAD = 10, -- 死亡时 } local BUFF_NAME = { diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index 0cc3cd4a..cd9beb2a 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -336,6 +336,7 @@ function BattleUnitComp:useSkill(index, count, callback) end if count <= 0 then self.normalSkillCount = 0 + self:checkPassiveEvent(PASSIVE_EVENT.ON_NORAML_SKILL_OVER, self) else self.normalSkillCount = count + self.unitEntity:getNormalAttackAddCount() end @@ -855,6 +856,7 @@ function BattleUnitComp:updateSkillAttack(dt) self.currActiveSkill:startUse() self:doNextSkillAttack() end + self:checkPassiveEvent(PASSIVE_EVENT.ON_NORAML_SKILL_OVER, self) else -- 继续普攻 self:doNextNormalAttack() end @@ -890,9 +892,6 @@ function BattleUnitComp:updateSkillAttack(dt) else if self.currAttackKeyTime > 0 and self.attackTime >= self.currAttackKeyTime then -- 到达关键后使用 if self.normalSkillCount > 0 then - if self.normalSkillCount == 1 and self.currActiveSkill == nil then -- 最后一次攻击 - self.team:setCentralizedAttack(false) - end local skill = self.unitEntity:getNormalSkill() if skill then local attackName = skill:getSkillAttackName() @@ -900,8 +899,13 @@ function BattleUnitComp:updateSkillAttack(dt) else self.currAttackKeyTime = 0 end + local isFinalBlock = self.currAttackKeyTime <= 0 + + if self.normalSkillCount == 1 and self.currActiveSkill == nil and isFinalBlock then -- 最后一次攻击 + self.team:setCentralizedAttack(false) + end self:onSkillTakeEffect(skill, self.currAttackKeyTime <= 0, self.validEffectIdx) - if self.normalSkillCount == 1 and self.currActiveSkill == nil then -- 最后一次攻击 + if self.normalSkillCount == 1 and self.currActiveSkill == nil and isFinalBlock then -- 最后一次攻击 self.battleController:setIsPauseHpProgress(false) end else @@ -1104,6 +1108,7 @@ function BattleUnitComp:updateNormalAttack(dt) else self:onAttackOver() end + self:checkPassiveEvent(PASSIVE_EVENT.ON_NORAML_SKILL_OVER, self) return else -- 继续攻击 self:doNextNormalAttack() @@ -1209,7 +1214,7 @@ function BattleUnitComp:onSkillTakeEffect(skill, isFinalBlock, validEffectIdx) local succ = false for k, effect in ipairs(effectList) do if k >= validEffectIdx[1] and k <= validEffectIdx[2] then - if self:judgeSkillEffectCondition(skill, k, target) then + if self:judgeSkillEffectCondition(skill, k) then if self:takeEffect(effect, target) then succ = true end @@ -1242,14 +1247,15 @@ function BattleUnitComp:onSkillTakeEffect(skill, isFinalBlock, validEffectIdx) end end -function BattleUnitComp:judgeSkillEffectCondition(skill, index, target) +function BattleUnitComp:judgeSkillEffectCondition(skill, index) if not skill then return true end local buffConditions = skill:getBuffCondition(index) local conditionRel = skill:getBuffConditionRel(index) - return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, target) + + return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, self.battleController) end function BattleUnitComp:takeEffect(buff, target) diff --git a/lua/app/module/battle/controller/battle_controller.lua b/lua/app/module/battle/controller/battle_controller.lua index 89407f12..0394cd29 100644 --- a/lua/app/module/battle/controller/battle_controller.lua +++ b/lua/app/module/battle/controller/battle_controller.lua @@ -2620,7 +2620,7 @@ local function _generalAttack(self, instruction, callback) end local function _playSkill(self, instruction, callback) - self.atkTeam:useSkill(instruction.skillMatch, instruction.count, #self.instructions == 0, callback) + self.atkTeam:useSkill(instruction.skillMatch, instruction.count, #self.instructions == 0, BattleConst.EFFECT_TYPE.DIRECT, callback) end BattleController._doInstruction = { diff --git a/lua/app/module/battle/helper/battle_passive.lua b/lua/app/module/battle/helper/battle_passive.lua index a023ba49..278879b4 100644 --- a/lua/app/module/battle/helper/battle_passive.lua +++ b/lua/app/module/battle/helper/battle_passive.lua @@ -49,6 +49,18 @@ local function _checkActiveSkillHit(unitComp, skill, targetComp) return 1 end +local function _checkOnNormalSkillOver(unitComp, skill, targetComp) + return 1 +end + +local function _checkOnDeadByBurn(unitComp, skill, targetComp) + return 1 +end + +local function _checkOnDeadBySkill(unitComp, skill, targetComp) + return 1 +end + local function _checkOnDead(unitComp, skill, targetComp) return 1 end @@ -59,6 +71,9 @@ BattlePassive.checkTrigger = { [PASSIVE_EVENT.HP_LOWER_THAN] = _checkhpLowerThan, [PASSIVE_EVENT.USE_NORMAL_SKILL] = _checkUseNormalSkill, [PASSIVE_EVENT.ACTIVE_SKILL_HIT] = _checkActiveSkillHit, + [PASSIVE_EVENT.ON_NORAML_SKILL_OVER] = _checkOnNormalSkillOver, + [PASSIVE_EVENT.ON_DEAD_BY_BURN] = _checkOnDeadByBurn, + [PASSIVE_EVENT.ON_DEAD_BY_SKILL] = _checkOnDeadBySkill, [PASSIVE_EVENT.ON_DEAD] = _checkOnDead, } diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua b/lua/app/module/battle/helper/battle_skill_condition_handle.lua index 4d4e0a48..841d0b77 100644 --- a/lua/app/module/battle/helper/battle_skill_condition_handle.lua +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua @@ -5,7 +5,7 @@ local BattleSkillConditionHandle = {} local SKILL_CONDITION_REL_TYPE = BattleConst.SKILL_CONDITION_REL_TYPE local SKILL_CONDITION_TYPE = BattleConst.SKILL_CONDITION_TYPE -local function _judgeTargetState(buffCondition, conditionRel, target) +local function _judgeTargetState(buffCondition, conditionRel, target, battleController) local num = target:getBuffCountByName(buffCondition.attr) if num > 0 then -- 拥有这个buff return true @@ -13,7 +13,7 @@ local function _judgeTargetState(buffCondition, conditionRel, target) return false end -local function _judgeTargetAttr(buffCondition, conditionRel, target) +local function _judgeTargetAttr(buffCondition, conditionRel, target, battleController) local attrNum = target.unitEntity:getAttrValue(buffCondition.attr) return BattleSkillConditionHandle._strOperatorOverloading(buffCondition.op, attrNum, buffCondition.v) end @@ -41,7 +41,7 @@ BattleSkillConditionHandle._strOperatorOverloading = function(opStr, value1, val return false end -function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, conditionRel, target) +function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, conditionRel, battleController) if not buffConditions or not conditionRel then return true end @@ -49,8 +49,16 @@ function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, co local passConditionCount = 0 for _, condition in ipairs(buffConditions) do local func = BattleSkillConditionHandle._judgeSkillEffectCondition[condition.type] - if func(condition, conditionRel, target) then - passConditionCount = passConditionCount + 1 + if func then + local target + if condition.side == BattleConst.SIDE_ATK then + target = battleController.atkTeam:getMainUnit() + else + target = battleController.defTeam:getMainUnit() + end + if func(condition, conditionRel, target, battleController) then + passConditionCount = passConditionCount + 1 + end end end diff --git a/lua/app/module/battle/team/battle_team.lua b/lua/app/module/battle/team/battle_team.lua index 76ffd501..6c887cf6 100644 --- a/lua/app/module/battle/team/battle_team.lua +++ b/lua/app/module/battle/team/battle_team.lua @@ -78,7 +78,7 @@ function BattleTeam:useNormalSkill(matchType, count, isFinalAction, effectType, unit:useNormalSkill(count, effectType, callback) end -function BattleTeam:useSkill(matchType, count, isFinalAction, callback) +function BattleTeam:useSkill(matchType, count, isFinalAction, effectType, callback) self.isFinalAction = isFinalAction local unit = nil if matchType == nil then @@ -94,7 +94,7 @@ function BattleTeam:useSkill(matchType, count, isFinalAction, callback) end local lastMainUnit = self.mainUnit self.mainUnit = unit - unit:beforeAttack() + unit:beforeAttack(effectType) unit:resetBeforeAttack() if unit:useSkill(1, count, callback) then if lastMainUnit and lastMainUnit ~= unit then diff --git a/lua/app/userdata/battle/skill/battle_skill_entity.lua b/lua/app/userdata/battle/skill/battle_skill_entity.lua index b87cac50..b83c7a05 100644 --- a/lua/app/userdata/battle/skill/battle_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_skill_entity.lua @@ -215,6 +215,7 @@ function BattleSkillEntity:getBuffConditionRel(index) return info[2] end end + return self.skillInfo.condition_rel[index] end function BattleSkillEntity:getTargetType() From ccea5fedfab17f46689fd8506c29a74fb9a20f80 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Thu, 18 May 2023 21:20:10 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=80=E8=83=BD=E7=94=9F=E6=95=88?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/helper/battle_skill_condition_handle.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua b/lua/app/module/battle/helper/battle_skill_condition_handle.lua index 841d0b77..09244fff 100644 --- a/lua/app/module/battle/helper/battle_skill_condition_handle.lua +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua @@ -4,6 +4,7 @@ local BattleSkillConditionHandle = {} local SKILL_CONDITION_REL_TYPE = BattleConst.SKILL_CONDITION_REL_TYPE local SKILL_CONDITION_TYPE = BattleConst.SKILL_CONDITION_TYPE +local DEFAULT_FACTOR = BattleConst.DEFAULT_FACTOR local function _judgeTargetState(buffCondition, conditionRel, target, battleController) local num = target:getBuffCountByName(buffCondition.attr) @@ -14,7 +15,12 @@ local function _judgeTargetState(buffCondition, conditionRel, target, battleCont end local function _judgeTargetAttr(buffCondition, conditionRel, target, battleController) - local attrNum = target.unitEntity:getAttrValue(buffCondition.attr) + local attrNum = 0 + if buffCondition.attr == "hpp" then + attrNum = target.unitEntity:getHpPercent() * DEFAULT_FACTOR + else + attrNum = target.unitEntity:getAttrValue(buffCondition.attr) + end return BattleSkillConditionHandle._strOperatorOverloading(buffCondition.op, attrNum, buffCondition.v) end From 0f8121fea1f73a24334c608dc32a2eebfe684da3 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Thu, 18 May 2023 22:07:35 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/config/buff.lua | 31 +- lua/app/config/chapter.lua | 360 ++------ lua/app/config/hero.lua | 236 ++++- lua/app/config/skill.lua | 864 +++++++++++++++++- lua/app/config/skill_rogue.lua | 653 +++++++++++-- lua/app/config/struct.lua | 3 +- lua/app/module/battle/battle_const.lua | 6 + .../battle/component/battle_unit_comp.lua | 20 +- .../battle/helper/battle_buff_handle.lua | 8 +- .../battle/helper/battle_buff_special.lua | 2 +- .../skill/battle_board_skill_handle.lua | 2 +- 11 files changed, 1774 insertions(+), 411 deletions(-) diff --git a/lua/app/config/buff.lua b/lua/app/config/buff.lua index e7b43da2..162d8ce2 100644 --- a/lua/app/config/buff.lua +++ b/lua/app/config/buff.lua @@ -501,10 +501,28 @@ local buff = { } }, [74]={ - ["name"]="remove_skill", - ["buff_type"]=7, - ["stack"]=2, - ["decr"]=3 + ["name"]="shield_ice", + ["buff_type"]=2, + ["decr"]=3, + ["icon"]="shield_ice", + ["fx_continued"]={ + 11 + }, + ["fx_disappear"]={ + 14 + } + }, + [75]={ + ["name"]="shield_ice_rebound_400", + ["buff_type"]=2, + ["decr"]=3, + ["icon"]="shield_ice", + ["fx_continued"]={ + 11 + }, + ["fx_disappear"]={ + 14 + } } } local keys = { @@ -582,12 +600,13 @@ local keys = { ["be_dmg_to_heal"]=buff[71], ["death_summon"]=buff[72], ["shield_rebound_400"]=buff[73], - ["remove_skill"]=buff[74] + ["shield_ice"]=buff[74], + ["shield_ice_rebound_400"]=buff[75] } } local config = { data=buff, keys=keys, -count=74 +count=75 } return config \ No newline at end of file diff --git a/lua/app/config/chapter.lua b/lua/app/config/chapter.lua index 7b46331d..b97c6a32 100644 --- a/lua/app/config/chapter.lua +++ b/lua/app/config/chapter.lua @@ -88,41 +88,17 @@ local chapter = { ["idle_exp"]=11, ["idle_gold"]=16, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -266,41 +242,17 @@ local chapter = { ["idle_exp"]=12, ["idle_gold"]=17, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -466,41 +418,17 @@ local chapter = { ["idle_exp"]=13, ["idle_gold"]=18, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -673,41 +601,17 @@ local chapter = { ["idle_exp"]=14, ["idle_gold"]=19, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -880,41 +784,17 @@ local chapter = { ["idle_exp"]=15, ["idle_gold"]=20, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1087,41 +967,17 @@ local chapter = { ["idle_exp"]=16, ["idle_gold"]=21, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1310,41 +1166,17 @@ local chapter = { ["idle_exp"]=17, ["idle_gold"]=22, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1533,41 +1365,17 @@ local chapter = { ["idle_exp"]=18, ["idle_gold"]=23, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1756,41 +1564,17 @@ local chapter = { ["idle_exp"]=19, ["idle_gold"]=24, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1978,41 +1762,17 @@ local chapter = { ["idle_exp"]=20, ["idle_gold"]=25, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } } diff --git a/lua/app/config/hero.lua b/lua/app/config/hero.lua index ff39447d..9e05285e 100644 --- a/lua/app/config/hero.lua +++ b/lua/app/config/hero.lua @@ -228,7 +228,7 @@ local hero = { }, ["model_id"]="p0011", ["icon"]="5", - ["item_id"]=24001, + ["item_id"]=14001, ["unlock_chapter"]=1 }, [22001]={ @@ -347,6 +347,64 @@ local hero = { ["item_id"]=23001, ["unlock_chapter"]=1 }, + [23002]={ + ["position"]=2, + ["qlt"]=3, + ["hurt_skill"]={ + 2300210, + 2300211, + 2300212, + 2300213 + }, + ["base_skill"]=2300220, + ["rouge_skill"]=2300200, + ["rouge_skill_1"]=2300201, + ["rouge_skill_2"]=2300202, + ["rouge_skill_3"]=2300203, + ["rouge_skill_4"]=2300204, + ["rouge_skill_5"]=2300205, + ["rouge_skill_6"]=2300206, + ["rouge_skill_7"]=2300207, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0010", + ["icon"]="5", + ["item_id"]=23002, + ["unlock_chapter"]=1 + }, [24001]={ ["position"]=2, ["qlt"]=4, @@ -521,6 +579,122 @@ local hero = { ["item_id"]=33001, ["unlock_chapter"]=1 }, + [33002]={ + ["position"]=3, + ["qlt"]=3, + ["hurt_skill"]={ + 3300210, + 3300211, + 3300212, + 3300213 + }, + ["base_skill"]=3300220, + ["rouge_skill"]=3300200, + ["rouge_skill_1"]=3300201, + ["rouge_skill_2"]=3300202, + ["rouge_skill_3"]=3300203, + ["rouge_skill_4"]=3300204, + ["rouge_skill_5"]=3300205, + ["rouge_skill_6"]=3300206, + ["rouge_skill_7"]=3300207, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0006", + ["icon"]="6", + ["item_id"]=33002, + ["unlock_chapter"]=1 + }, + [34001]={ + ["position"]=3, + ["qlt"]=4, + ["hurt_skill"]={ + 3400110, + 3400111, + 3400112, + 3400113 + }, + ["base_skill"]=3400120, + ["rouge_skill"]=3400100, + ["rouge_skill_1"]=3400101, + ["rouge_skill_2"]=3400102, + ["rouge_skill_3"]=3400103, + ["rouge_skill_4"]=3400104, + ["rouge_skill_5"]=3400105, + ["rouge_skill_6"]=3400106, + ["rouge_skill_7"]=3400107, + ["begin_lv"]=5, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0006", + ["icon"]="6", + ["item_id"]=34001, + ["unlock_chapter"]=1 + }, [42001]={ ["position"]=4, ["qlt"]=2, @@ -579,6 +753,64 @@ local hero = { ["item_id"]=42001, ["unlock_chapter"]=1 }, + [43001]={ + ["position"]=4, + ["qlt"]=3, + ["hurt_skill"]={ + 4300110, + 4300111, + 4300112, + 4300113 + }, + ["base_skill"]=4300120, + ["rouge_skill"]=4300100, + ["rouge_skill_1"]=4300101, + ["rouge_skill_2"]=4300102, + ["rouge_skill_3"]=4300103, + ["rouge_skill_4"]=4300104, + ["rouge_skill_5"]=4300105, + ["rouge_skill_6"]=4300106, + ["rouge_skill_7"]=4300107, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0003", + ["icon"]="3", + ["item_id"]=43001, + ["unlock_chapter"]=1 + }, [44001]={ ["position"]=4, ["qlt"]=4, @@ -697,6 +929,6 @@ local hero = { } } local config = { -data=hero,count=12 +data=hero,count=16 } return config \ No newline at end of file diff --git a/lua/app/config/skill.lua b/lua/app/config/skill.lua index 2241deba..7417e85c 100644 --- a/lua/app/config/skill.lua +++ b/lua/app/config/skill.lua @@ -399,7 +399,8 @@ local skill = { ["type"]="state", ["attr"]="bleed", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -702,7 +703,8 @@ local skill = { ["type"]="state", ["attr"]="imprison", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -974,7 +976,8 @@ local skill = { ["type"]="state", ["attr"]="stun", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -998,7 +1001,8 @@ local skill = { ["type"]="state", ["attr"]="bleed", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -1176,7 +1180,8 @@ local skill = { ["type"]="state", ["attr"]="burn", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -1365,12 +1370,13 @@ local skill = { } }, [2300121]={ + ["position"]=2, ["effect_type"]=2, ["trigger"]=6, ["effect"]={ { ["type"]="bleed", - ["num"]=0, + ["num"]=3500, ["ratio"]=10000, ["round"]=2 } @@ -1440,13 +1446,15 @@ local skill = { } }, [2300123]={ + ["position"]=2, ["buff_condition"]={ { { ["type"]="state", ["attr"]="lethargy", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -1469,12 +1477,13 @@ local skill = { ["obj"]=2 }, [2300124]={ + ["position"]=2, ["effect_type"]=2, ["trigger"]=6, ["effect"]={ { ["type"]="bleed", - ["num"]=0, + ["num"]=3500, ["ratio"]=10000, ["round"]=3 } @@ -1482,6 +1491,7 @@ local skill = { ["obj"]=2 }, [2300125]={ + ["position"]=2, ["effect_type"]=2, ["trigger"]=8, ["effect"]={ @@ -1495,13 +1505,15 @@ local skill = { ["obj"]=1 }, [2300126]={ + ["position"]=2, ["buff_condition"]={ { { ["type"]="state", ["attr"]="lethargy", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -1523,6 +1535,194 @@ local skill = { }, ["obj"]=2 }, + [2300210]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200111, + ["name_act"]="attack01", + ["fx_self"]=300004, + ["fx_target"]=4, + ["fx_target_delay"]=366 + }, + [2300211]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200112, + ["name_act"]="attack02", + ["fx_self"]=300005, + ["fx_target"]=4, + ["fx_target_delay"]=400 + }, + [2300212]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200113, + ["name_act"]="attack03", + ["fx_self"]=300006, + ["fx_target"]=4, + ["fx_target_delay"]=333 + }, + [2300213]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200114, + ["name_act"]="attack04", + ["fx_self"]=300007, + ["fx_target"]=4, + ["fx_target_delay"]=433 + }, + [2300220]={ + ["energy"]=10, + ["link"]=1, + ["position"]=2, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["battle_icon"]="2", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [2300221]={ + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="crit_add", + ["num"]=2000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [2300222]={ + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="crit_add", + ["num"]=3000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [2300223]={ + ["buff_condition"]={ + { + { + ["type"]="attr", + ["attr"]="hpp", + ["op"]="<", + ["v"]=5000, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="crit_time_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, [2400110]={ ["position"]=2, ["effect_type"]=1, @@ -1637,13 +1837,15 @@ local skill = { } }, [2400121]={ + ["position"]=2, ["buff_condition"]={ { { ["type"]="state", ["attr"]="frozen", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -1672,13 +1874,15 @@ local skill = { ["obj"]=2 }, [2400122]={ + ["position"]=2, ["buff_condition"]={ { { ["type"]="state", ["attr"]="frozen", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -1929,7 +2133,8 @@ local skill = { ["type"]="state", ["attr"]="poison", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -2141,6 +2346,437 @@ local skill = { }, ["obj"]=1 }, + [3300210]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300111, + ["name_act"]="attack01", + ["fx_target"]=300021 + }, + [3300211]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300112, + ["name_act"]="attack02", + ["fx_target"]=300022 + }, + [3300212]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300113, + ["name_act"]="attack03", + ["fx_target"]=300023 + }, + [3300213]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300114, + ["name_act"]="attack04", + ["fx_target"]=300024 + }, + [3300220]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3300221]={ + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="vulnerable", + ["num"]=2500, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3300222]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="poison", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="poison", + ["num"]=5000, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3300223]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="poison", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="poison", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3400110]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300111, + ["name_act"]="attack01", + ["fx_target"]=300021 + }, + [3400111]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300112, + ["name_act"]="attack02", + ["fx_target"]=300022 + }, + [3400112]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300113, + ["name_act"]="attack03", + ["fx_target"]=300023 + }, + [3400113]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300114, + ["name_act"]="attack04", + ["fx_target"]=300024 + }, + [3400120]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=43750, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3400121]={ + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="vulnerable", + ["num"]=2500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3400122]={ + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="vulnerable", + ["num"]=3500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3400123]={ + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="bleed", + ["num"]=3500, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3400124]={ + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="bleed", + ["num"]=7000, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, [4200110]={ ["position"]=4, ["effect_type"]=1, @@ -2274,7 +2910,8 @@ local skill = { ["type"]="state", ["attr"]="normal_attack_dec", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -2304,7 +2941,8 @@ local skill = { ["type"]="state", ["attr"]="normal_attack_dec", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -2326,6 +2964,199 @@ local skill = { }, ["obj"]=2 }, + [4300110]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200111, + ["name_act"]="attack01", + ["fx_target"]=300009 + }, + [4300111]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200112, + ["name_act"]="attack02", + ["fx_target"]=300010 + }, + [4300112]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200113, + ["name_act"]="attack03", + ["fx_target"]=300011 + }, + [4300113]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200114, + ["name_act"]="attack04", + ["fx_target"]=300012 + }, + [4300120]={ + ["energy"]=10, + ["link"]=1, + ["position"]=4, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=40000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="normal_attack_dec", + ["num"]=1, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [4300121]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_blue_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [4300122]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=5000, + ["round"]=1 + } + }, + ["obj"]=2, + ["skill_position"]=2 + }, + [4300123]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="shield_ice", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [4300124]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="shield_ice_rebound_400", + ["num"]=10000, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [4300210]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200111, + ["name_act"]="attack01", + ["fx_target"]=300009 + }, [4400110]={ ["position"]=4, ["effect_type"]=1, @@ -2458,7 +3289,8 @@ local skill = { ["type"]="state", ["attr"]="burn", ["op"]=">", - ["v"]=0 + ["v"]=0, + ["side"]=2 } } }, @@ -4301,6 +5133,6 @@ local skill = { } } local config = { -data=skill,count=203 +data=skill,count=238 } return config \ No newline at end of file diff --git a/lua/app/config/skill_rogue.lua b/lua/app/config/skill_rogue.lua index 4f80a9d1..0f9916df 100644 --- a/lua/app/config/skill_rogue.lua +++ b/lua/app/config/skill_rogue.lua @@ -772,6 +772,7 @@ local skill_rogue = { }, [1200107]={ ["unlock"]=1200105, + ["cover_unlock"]=1200105, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=4, @@ -781,12 +782,6 @@ local skill_rogue = { }, ["skill_position"]=1, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=1200121, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=1200122, @@ -852,18 +847,13 @@ local skill_rogue = { }, [1300104]={ ["unlock"]=1300101, + ["cover_unlock"]=1300101, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=3, ["type"]=12, ["skill_position"]=1, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=1300121, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=1300124, @@ -896,6 +886,7 @@ local skill_rogue = { }, [1300106]={ ["unlock"]=1300105, + ["cover_unlock"]=1300105, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=3, @@ -905,12 +896,6 @@ local skill_rogue = { }, ["skill_position"]=1, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=1300126, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=1300127, @@ -1138,18 +1123,13 @@ local skill_rogue = { }, [1400105]={ ["unlock"]=1400101, + ["cover_unlock"]=1400101, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=1400122, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=1400125, @@ -1392,18 +1372,13 @@ local skill_rogue = { }, [2300104]={ ["unlock"]=2300101, + ["cover_unlock"]=2300101, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=3, ["type"]=12, ["skill_position"]=2, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=2400121, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=2300124, @@ -1433,18 +1408,13 @@ local skill_rogue = { }, [2300106]={ ["unlock"]=2300103, + ["cover_unlock"]=2300103, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=2300123, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=2300126, @@ -1472,6 +1442,159 @@ local skill_rogue = { ["obj"]=4, ["icon"]="45" }, + [2300200]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=2, + ["icon"]="56" + }, + [2300201]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=2, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="51" + }, + [2300202]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="atkp_yellow_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=4, + ["icon"]="45" + }, + [2300203]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=2, + ["type"]=3, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="45" + }, + [2300204]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=2, + ["boardrange"]={ + { + ["type"]=5, + ["range"]=1 + }, + { + ["type"]=6, + ["range"]=1 + }, + { + ["type"]=7, + ["range"]=1 + }, + { + ["type"]=8, + ["range"]=1 + } + }, + ["icon"]="49" + }, + [2300205]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="51" + }, + [2300206]={ + ["unlock"]=2300205, + ["cover_unlock"]=2300205, + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300222, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="51" + }, + [2300207]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300223, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="45" + }, [2400100]={ ["limit_times"]=1, ["weight"]=30000, @@ -1525,18 +1648,13 @@ local skill_rogue = { }, [2400103]={ ["unlock"]=2400102, + ["cover_unlock"]=2400102, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=2400121, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=2400122, @@ -1577,6 +1695,7 @@ local skill_rogue = { }, [2400106]={ ["unlock"]=2400105, + ["cover_unlock"]=2400105, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=3, @@ -1656,14 +1775,6 @@ local skill_rogue = { 30000 }, ["skill_position"]=3, - ["effect"]={ - { - ["type"]="add_skill", - ["num"]=9, - ["ratio"]=10000, - ["round"]=1 - } - }, ["obj"]=5, ["icon"]="33" }, @@ -1691,6 +1802,15 @@ local skill_rogue = { ["range"]=1 } }, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=9, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, ["icon"]="55" }, [3200105]={ @@ -1712,18 +1832,13 @@ local skill_rogue = { }, [3200106]={ ["unlock"]=3200105, + ["cover_unlock"]=3200105, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=3, ["type"]=12, ["skill_position"]=3, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=3200123, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=3200124, @@ -1850,18 +1965,13 @@ local skill_rogue = { }, [3300106]={ ["unlock"]=3300104, + ["cover_unlock"]=3300104, ["limit_times"]=1, ["weight"]=3000, ["qlt"]=2, ["type"]=12, ["skill_position"]=3, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=3300123, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=3300124, @@ -1892,6 +2002,233 @@ local skill_rogue = { ["obj"]=8, ["icon"]="48" }, + [3300200]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300201]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="38" + }, + [3300202]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="38" + }, + [3300203]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 1, + 30000 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300204]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=1, + ["parameter"]={ + 3300222 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300205]={ + ["unlock"]=3300204, + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 2, + 5000 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300206]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp_green_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=5, + ["icon"]="38" + }, + [3300207]={ + ["unlock"]=3300204, + ["cover_unlock"]=3300204, + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 3300223 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3400100]={ + ["type"]=6, + ["icon"]="67" + }, + [3400101]={ + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=3, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="67" + }, + [3400103]={ + ["limit_times"]=1, + ["weight"]=1000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp_green_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400104]={ + ["unlock"]=3400101, + ["cover_unlock"]=3400101, + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400105]={ + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400106]={ + ["unlock"]=3400106, + ["cover_unlock"]=3400106, + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400107]={ + ["type"]=14, + ["parameter"]={ + 4 + }, + ["effect"]={ + { + ["type"]="skill_fire_times", + ["num"]=3400120, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, [4200100]={ ["limit_times"]=1, ["weight"]=30000, @@ -1998,18 +2335,13 @@ local skill_rogue = { }, [4200107]={ ["unlock"]=4200105, + ["cover_unlock"]=4200105, ["limit_times"]=1, ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=4, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=4200122, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=4200123, @@ -2020,6 +2352,181 @@ local skill_rogue = { ["obj"]=6, ["icon"]="39" }, + [4300100]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=6 + }, + [4300101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + } + }, + [4300102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300121, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [4300103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=8, + ["parameter"]={ + 2, + 1 + }, + ["skill_position"]=4 + }, + [4300104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 1, + 30000 + }, + ["skill_position"]=4 + }, + [4300105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300122, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [4300106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300123, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [4300107]={ + ["unlock"]=4300106, + ["cover_unlock"]=4300106, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300124, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [4300300]={ + ["limit_times"]=1 + }, + [4300301]={ + ["limit_times"]=1 + }, + [4300302]={ + ["limit_times"]=1 + }, + [4300303]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="44" + }, + [4300304]={ + ["limit_times"]=1 + }, + [4300305]={ + ["limit_times"]=1 + }, + [4300306]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + } + }, + [4300307]={ + ["limit_times"]=1 + }, [4400100]={ ["limit_times"]=1, ["weight"]=30000, @@ -2119,18 +2626,13 @@ local skill_rogue = { }, [4400107]={ ["unlock"]=4400105, + ["cover_unlock"]=4400105, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=4, ["type"]=12, ["skill_position"]=4, ["effect"]={ - { - ["type"]="remove_skill", - ["num"]=4400122, - ["ratio"]=10000, - ["round"]=1 - }, { ["type"]="add_skill", ["num"]=4400123, @@ -2246,6 +2748,7 @@ local skill_rogue = { }, [5200107]={ ["unlock"]=5200105, + ["cover_unlock"]=5200105, ["limit_times"]=1, ["weight"]=1000, ["qlt"]=4, @@ -2258,6 +2761,6 @@ local skill_rogue = { } } local config = { -data=skill_rogue,count=140 +data=skill_rogue,count=180 } return config \ No newline at end of file diff --git a/lua/app/config/struct.lua b/lua/app/config/struct.lua index eb5c95d7..fa049262 100644 --- a/lua/app/config/struct.lua +++ b/lua/app/config/struct.lua @@ -33,7 +33,8 @@ local struct = { ["parameter1"]="type:string", ["parameter2"]="attr:string", ["parameter3"]="op:string", - ["parameter4"]="v:int" + ["parameter4"]="v:int", + ["parameter5"]="side:int" } } local config = { diff --git a/lua/app/module/battle/battle_const.lua b/lua/app/module/battle/battle_const.lua index ff793f7b..9834052f 100644 --- a/lua/app/module/battle/battle_const.lua +++ b/lua/app/module/battle/battle_const.lua @@ -189,6 +189,12 @@ BattleConst.EFFECT_TYPE = { COUNTERATTACK = 301, -- 反击 } +---- 特殊的伤害类型,其余都是buffname +BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE = { + ROUND_BEGIN_HEAL = "round_begin_heal", + KILL_MAX_ELEMENT_AND_HEAL = "kill_max_element_and_heal", +} + BattleConst.SKILL_RECORD_DATA_NAME = { HP_LOWER_THAN = 1 } diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index cd9beb2a..99234f41 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -695,7 +695,7 @@ function BattleUnitComp:updateRecoverHpWaveState(dt) if healNum < 0 then -- 治疗效果不能为负数 healNum = 0 end - self:takeDamageOrCure(self, healNum, EFFECT_TYPE.HEAL, 0) + self:takeDamageOrCure(self, healNum, EFFECT_TYPE.HEAL, 0, BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE.ROUND_BEGIN_HEAL) if self.recoverHpCount <= 0 then if self.finishRecoverHpCallback then local callback = self.finishRecoverHpCallback @@ -883,6 +883,11 @@ function BattleUnitComp:updateSkillAttack(dt) else self:onAttackOver() end + + local target = self.battleController:getOtherSideMainUnit(self.side) + if target and target.unitEntity:getIsDead() then + self:checkPassiveEvent(PASSIVE_EVENT.ON_DEAD_BY_SKILL, self) + end return else self.currActiveSkill = currActiveSkill @@ -1353,7 +1358,7 @@ function BattleUnitComp:removeEffect(buff, target) end end -function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) +function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus, damageOrCureType) if self:getIsClear() then return 0 end @@ -1411,16 +1416,16 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) end if effectType == EFFECT_TYPE.DIRECT then if hp > 0 and self.unitEntity:getShieldRebound() then -- 伤害反弹 - atker:takeDamageOrCure(self, num*self.unitEntity:getShieldRebound() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0) + atker:takeDamageOrCure(self, num*self.unitEntity:getShieldRebound() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0, BattleConst.BUFF_NAME.SHIELD_REBOUND_200) end if self.unitEntity:getBeSucked() > 0 then -- 吸血 - atker:takeDamageOrCure(self, -num*self.unitEntity:getBeSucked() // DEFAULT_FACTOR, EFFECT_TYPE.HEAL, 0) + atker:takeDamageOrCure(self, -num*self.unitEntity:getBeSucked() // DEFAULT_FACTOR, EFFECT_TYPE.HEAL, 0, BattleConst.ATTR_NAME.BE_SUCKED) end if self.unitEntity:getIsLethargy() then -- 移除昏睡 self:removeBuffByName(BattleConst.BUFF_NAME.LETHARGY) end if self.unitEntity:getThorns() > 0 then -- 反伤 - atker:takeDamageOrCure(self, num*self.unitEntity:getThorns() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0) + atker:takeDamageOrCure(self, num*self.unitEntity:getThorns() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0, BattleConst.BUFF_NAME.THORNS) end if self.unitEntity:getCounterAttack() > 0 then -- 触发反击 local counterattack = self.unitEntity:getCounterAttack() @@ -1441,10 +1446,15 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) else if self.unitEntity:getIsDead() then self:changeState(UNIT_STATE.DEAD) + if damageOrCureType == BattleConst.BUFF_NAME.BURN then + local target = self.battleController:getOtherSideMainUnit(self.side) + target:checkPassiveEvent(BattleConst.PASSIVE_EVENT.ON_DEAD_BY_BURN, target) + end elseif damage < 0 and self.currState == UNIT_STATE.IDLE then self:playHurt() end end + if hp > 0 then self.team:checkPassiveEvent(PASSIVE_EVENT.HP_LOWER_THAN, atker, hpPercent) else diff --git a/lua/app/module/battle/helper/battle_buff_handle.lua b/lua/app/module/battle/helper/battle_buff_handle.lua index d59f4d39..f063ca9c 100644 --- a/lua/app/module/battle/helper/battle_buff_handle.lua +++ b/lua/app/module/battle/helper/battle_buff_handle.lua @@ -18,7 +18,7 @@ local function _doDotWork(unitComp, buffEffect, buff) else damage = -damage end - unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus) + unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus, buff:getName()) end local function _doHotWork(unitComp, buffEffect, buff) @@ -26,7 +26,7 @@ local function _doHotWork(unitComp, buffEffect, buff) if cure < 0 then -- 加血不能是负数 cure = 0 end - unitComp:takeDamageOrCure(buffEffect.sender, cure, EFFECT_TYPE.HOT, hurtStatus) + unitComp:takeDamageOrCure(buffEffect.sender, cure, EFFECT_TYPE.HOT, hurtStatus, buff:getName()) end function BattleBuffHandle.doBuffWork(unitComp, buffEffect) @@ -92,7 +92,7 @@ local function _takeEffectDirectHurt(unitComp, buff, target, buffEffect) else damage = -damage end - target:takeDamageOrCure(unitComp, damage, EFFECT_TYPE.DIRECT, hurtStatus) + target:takeDamageOrCure(unitComp, damage, EFFECT_TYPE.DIRECT, hurtStatus, buff:getName()) return damage end @@ -105,7 +105,7 @@ local function _takeEffectDirectCure(unitComp, buff, target, buffEffect) if cure < 0 then -- 加血不能是负数 cure = 0 end - target:takeDamageOrCure(unitComp, cure, EFFECT_TYPE.HEAL, hurtStatus) + target:takeDamageOrCure(unitComp, cure, EFFECT_TYPE.HEAL, hurtStatus, buff:getName()) return cure end diff --git a/lua/app/module/battle/helper/battle_buff_special.lua b/lua/app/module/battle/helper/battle_buff_special.lua index 43232ce5..64967a97 100644 --- a/lua/app/module/battle/helper/battle_buff_special.lua +++ b/lua/app/module/battle/helper/battle_buff_special.lua @@ -43,7 +43,7 @@ local function _bleedWork(unitComp, buffEffect, buff) else damage = -damage end - unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus) + unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus, buff:getName()) return 1 end diff --git a/lua/app/module/battle/skill/battle_board_skill_handle.lua b/lua/app/module/battle/skill/battle_board_skill_handle.lua index 8aece41f..ba82316c 100644 --- a/lua/app/module/battle/skill/battle_board_skill_handle.lua +++ b/lua/app/module/battle/skill/battle_board_skill_handle.lua @@ -252,7 +252,7 @@ local function _takeKillMaxElementAndHeal(atkUnitComp, skillEntity, battleContro local list = elementMap[maxElement] local heal = count * effectNum * atkUnitComp.unitEntity:getAtk() // GConst.BattleConst.DEFAULT_FACTOR - atkUnitComp:takeDamageOrCure(atkUnitComp, heal, BattleConst.EFFECT_TYPE.HEAL, 0) + atkUnitComp:takeDamageOrCure(atkUnitComp, heal, BattleConst.EFFECT_TYPE.HEAL, 0, BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE.KILL_MAX_ELEMENT_AND_HEAL) battleController:killGrids(list) end