From 78b6a988d29cf3a4f4b016d21576ed3e40a0d8f5 Mon Sep 17 00:00:00 2001 From: gaoxin Date: Wed, 1 Jul 2020 17:48:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=98=E6=96=97=E6=B7=BB=E5=8A=A0=E5=89=8D?= =?UTF-8?q?=E6=91=87=E7=89=B9=E6=95=88=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E6=AE=B5=E4=BC=A4=E5=AE=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Config/Data/CombatControl.lua | 36 +++++------ .../~Lua/Modules/Battle/BattleManager.lua | 17 ++++-- .../~Lua/Modules/Battle/Logic/Base/Skill.lua | 29 ++++----- .../~Lua/Modules/Battle/View/RoleView.lua | 57 ++++++++++++++++-- data_execl/base_data/CombatControl.xlsx | Bin 21007 -> 20917 bytes 5 files changed, 97 insertions(+), 42 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Config/Data/CombatControl.lua b/Assets/ManagedResources/~Lua/Config/Data/CombatControl.lua index cd134f6d5c..04cadc6351 100644 --- a/Assets/ManagedResources/~Lua/Config/Data/CombatControl.lua +++ b/Assets/ManagedResources/~Lua/Config/Data/CombatControl.lua @@ -1,8 +1,8 @@ local CombatControl = { __count = 136, __indexs = {1011,1,9,1,9,4.1,8.1,16.1,32.1,40.93,99049,32.13}, -__values = {-200,200,1.2,48,150,50,100,150,500}, -__exVals = {107,nil,'normal_effect','c_mrzq_0010_skeff_slidesk_attacked','c_syf_0016_skeff_slidesk_ballistic','c_ch_0015_skeff_slidesk_ballistic','c_ch_0015_skeff_slidesk_attacked','c_syf_0016_skeff_slidesk_attacked','c_skr_0028_skeff_slidesk_ballistic','c_skr_0028_skeff_slidesk_attacked','c_xhht_0017_skeff_slidesk_ballistic','c_xhht_0017_skeff_slidesk_attacked','c_xy_0012_skeff_slidesk_ballistic','c_yl_0014_skeff_slidesk_ballistic','c_nezha_0089_slidesk_slidesk_screeneff','c_yl_0014_skeff_slidesk_attacked','c_xy_0012_skeff_slidesk_attacked','c_yangjian_0092_tapsk_slidesk_attacked','c_yqj_0042_tapsk_slidesk_attacked','m_jdjs_0009_skeff_slide_attacked','c_nezha_0089_tapsk_slidesk_attacked','c_mrzq_0010_skeff_slidesk_ballistic','c_daji_0094_tapsk_slidesk_ballistic','c_ywg_0045_skeff_slidesk_ballistic','c_yqj_0042_skeff_casting_screeneff','m_ghboss_50001_skeff_slide_attacked','c_yangjian_0092_tapsk_slidesk_ballistic','c_fm_0027_skeff_slidesk_screeneff','c_daji_0094_skeff_slidesk_screeneff','m_wy_0019_skeff_tap_attacked','c_wuchen_0106_tapsk_slidesk_ballistic','c_leizhenzi_0095_tapsk_slidesk_ballistic','FX_c_yxz_0057_skill01','s_jieling_md_3007_skeff_casting_attacked','m_kn_0018_skeff_tap_attacked','c_yr_0007_skeff_tapsk_healeff','c_ywg_0045_skeff_slidesk_attacked','c_daji_0094_tapsk_slidesk_attacked','c_wuchen_0106_tapsk_slidesk_attacked','m_sg_0024_skeff_tap_attacked','c_lzz_0002_t9','c_jw_0003_t9','c_ls_0004_t9','c_gg_0005_t9','c_jmm_0006_t9','c_jbj_0007_t9','c_dj_0008_t9','c_ghn_0009_t9','c_hsmw_00010_t9','c_hhe_00011_t9','c_sjnn_00012_t9','c_bhxz_00013_t9','c_ab_00014_t9','c_swk_00015_t9','c_wsps_00016_t9','c_ts_00017_t9','c_kqmw_00018_t9','c_rd_00019_t9','c_gyps_00020_t9','c_fhlh_00021_t9','c_xllh_00022_t9','c_dst_00023_t9','c_pxps_00024_t9','c_ygps_00025_t9','c_ft_00026_t9','c_jcdp_00027_t9','c_fx_00028_t9','c_nz_00029_t9','c_chdr_00030_t9','c_cy_00031_t9','c_ljgz_00032_t9','c_dlsm_00033_t9','c_ce_00034_t9','c_eh_00035_t9','c_ny_00036_t9','c_wg_00037_t9','c_mz_00038_t9','c_zgm_00039_t9','c_yj_00040_t9','c_sgb_00041_t9','c_dhdj_00042_t9','c_jzy_00043_t9','c_jls_00044_t9','c_jtxn_00045_t9','c_lslz_00046_t9','c_ldb_00047_t9','c_ttjz_00048_t9','c_ddtz_00049_t9','c_lc_00050_t9','c_mp_00051_t9','c_yc_00052_t9','c_ylw_00053_t9','c_nxq_00054_t9','c_jy_00055_t9','c_ygl_00056_t9','c_yhj_00057_t9','c_dz_00058_t9','c_jll_00059_t9','c_jlzz_00060_t9','c_axl_00061_t9','c_mz_00062_t9','c_mjn_00063_t9','c_md_00064_t9','c_jz_00065_t9','c_hdxj_00066_t9','c_sdxj_00067_t9','c_jhsn_00068_t9','c_lsx_00069_t9'}, +__values = {-200,200,1.2,3,45,200,100,150,100,400,4000}, +__exVals = {109,nil,'normal_effect','c_mrzq_0010_skeff_slidesk_attacked','c_syf_0016_skeff_slidesk_ballistic','c_ch_0015_skeff_slidesk_ballistic','c_ch_0015_skeff_slidesk_attacked','c_syf_0016_skeff_slidesk_attacked','c_skr_0028_skeff_slidesk_ballistic','c_skr_0028_skeff_slidesk_attacked','c_xhht_0017_skeff_slidesk_ballistic','c_xhht_0017_skeff_slidesk_attacked','c_xy_0012_skeff_slidesk_ballistic','c_yl_0014_skeff_slidesk_ballistic','c_yl_0014_skeff_slidesk_attacked','c_xy_0012_skeff_slidesk_attacked','c_yangjian_0092_tapsk_slidesk_attacked','c_yqj_0042_tapsk_slidesk_attacked','m_jdjs_0009_skeff_slide_attacked','c_nezha_0089_tapsk_slidesk_attacked','c_mrzq_0010_skeff_slidesk_ballistic','c_daji_0094_tapsk_slidesk_ballistic','c_ywg_0045_skeff_slidesk_ballistic','c_yqj_0042_skeff_casting_screeneff','m_ghboss_50001_skeff_slide_attacked','c_yangjian_0092_tapsk_slidesk_ballistic','c_nezha_0089_slidesk_slidesk_screeneff','c_fm_0027_skeff_slidesk_screeneff','Effect_c_nz_00029_t3_attack_02','c_daji_0094_skeff_slidesk_screeneff','m_wy_0019_skeff_tap_attacked','c_wuchen_0106_tapsk_slidesk_ballistic','c_leizhenzi_0095_tapsk_slidesk_ballistic','FX_c_yxz_0057_skill01','s_jieling_md_3007_skeff_casting_attacked','m_kn_0018_skeff_tap_attacked','c_yr_0007_skeff_tapsk_healeff','c_ywg_0045_skeff_slidesk_attacked','c_daji_0094_tapsk_slidesk_attacked','c_wuchen_0106_tapsk_slidesk_attacked','m_sg_0024_skeff_tap_attacked','c_lzz_0002_t9','c_jw_0003_t9','c_ls_0004_t9','c_gg_0005_t9','c_jmm_0006_t9','c_jbj_0007_t9','c_dj_0008_t9','c_ghn_0009_t9','c_hsmw_00010_t9','c_hhe_00011_t9','c_sjnn_00012_t9','c_bhxz_00013_t9','c_ab_00014_t9','c_swk_00015_t9','c_wsps_00016_t9','c_ts_00017_t9','c_kqmw_00018_t9','c_rd_00019_t9','c_gyps_00020_t9','c_fhlh_00021_t9','c_xllh_00022_t9','c_dst_00023_t9','c_pxps_00024_t9','c_ygps_00025_t9','c_ft_00026_t9','c_jcdp_00027_t9','c_fx_00028_t9','c_nz_00029_t9','c_chdr_00030_t9','c_cy_00031_t9','c_ljgz_00032_t9','c_dlsm_00033_t9','c_ce_00034_t9','c_eh_00035_t9','c_ny_00036_t9','c_wg_00037_t9','c_mz_00038_t9','c_zgm_00039_t9','c_yj_00040_t9','c_sgb_00041_t9','c_dhdj_00042_t9','c_jzy_00043_t9','c_jls_00044_t9','c_jtxn_00045_t9','c_lslz_00046_t9','c_ldb_00047_t9','c_ttjz_00048_t9','c_ddtz_00049_t9','c_lc_00050_t9','c_mp_00051_t9','c_yc_00052_t9','c_ylw_00053_t9','c_nxq_00054_t9','c_jy_00055_t9','c_ygl_00056_t9','c_yhj_00057_t9','c_dz_00058_t9','c_jll_00059_t9','c_jlzz_00060_t9','c_axl_00061_t9','c_mz_00062_t9','c_mjn_00063_t9','c_md_00064_t9','c_jz_00065_t9','c_hdxj_00066_t9','c_sdxj_00067_t9','c_jhsn_00068_t9','c_lsx_00069_t9','Effect_c_nz_00029_t3_attack_01'}, __fields = { 'Id', 'SkillType', @@ -23,33 +23,33 @@ __fields = { __defaults = { nil, nil, - 5, + 6, 2, nil, - 31, + 32, 7, nil, - 11, + 13, nil, - 11, - 2, + 13, + 3, 2, 2 }, __refs = { {3,1,-1,2.1,4.1,8.1,16.1,32.1,64.1,8.7}, {3,1,-1,2.1,4.1,8.1,16.1,32.1,64.1,8.7}, - {8,.6,2}, + {8,.6,3}, nil, {2,1,-1,2.1,4.1,8.1,16.1,32.1,40.93,.23}, - {20,-2,-3,17,-9,-5,2,-2,-2.2,-7,0,7,11,-19,20,-20,21,1,-12,13,-23,6,-5,-1,0,10,14,1.2,-22,0,23,-21,-2,-4,28,-27,.2,-1,9,20,-29,8}, + {22,-2,-3,16,-8,-5,2,-2,-2.2,-7,0,7,10,-18,19,-19,20,1.3,-23,6,-5,-1,0,24,7.2,4.2,-22,-2,-4,29,-28,.2,-1,9,21,-30,8}, {2,.8}, - {12,9,-9,32,-32,4,-4,13,-13,33,-33,7,-7,9,-9,1,-1,6.4,14,-14,4,-4,2.1,15,-15,34,-34,5,-5,16,-16,2.1,17,-17,12.2,18,-18,7,-7,5,-5,9,-9,4,-4,6.2,2.1,14.2,35,-35,1,-1,-1,1,36,-36,7,-7,2.1,37,-37,9,-9,30.4,1,-1,2.1,2.1,60.4,38.4,84.2,56.2,1,-1,8.2,78.2,22.3,.23}, - {{{1},{2,.3}},{{2},{6,-4,7,-8}}}, - {11,39,-39,40,-40,41,-41,42,-42,43,-43,44,-44,45,-45,46,-46,47,-47,48,-48,49,-49,50,-50,51,-51,52,-52,53,-53,54,-54,55,-55,56,-56,57,-57,58,-58,59,-59,60,-60,61,-61,62,-62,63,-63,64,-64,65,-65,66,-66,67,-67,68,-68,69,-69,70,-70,71,-71,72,-72,73,-73,74,-74,75,-75,76,-76,77,-77,78,-78,79,-79,80,-80,81,-81,82,-82,83,-83,84,-84,85,-85,86,-86,87,-87,88,-88,89,-89,90,-90,91,-91,92,-92,93,-93,94,-94,95,-95,96,-96,97,-97,98,-98,99,-99,100,-100,101,-101,102,-102,103,-103,104,-104,105,-105,106}, - nil, - nil, - nil, + {14,9,-9,33,-33,4,-4,12,-12,34,-34,7,-7,9,-9,1,-1,6.4,13,-13,4,-4,2.1,14,-14,35,-35,5,-5,15,-15,2.1,16,-16,12.2,17,-17,7,-7,5,-5,9,-9,4,-4,6.2,2.1,14.2,36,-36,1,-1,-1,1,37,-37,7,-7,2.1,38,-38,9,-9,30.4,1,-1,2.1,2.1,60.4,38.4,84.2,56.2,1,-1,8.2,78.2,22.3,.23}, + {{{1},{2,.3}},{{2},{10,-8,7,-8}}}, + {13,40,-40,41,-41,42,-42,43,-43,44,-44,45,-45,46,-46,47,-47,48,-48,49,-49,50,-50,51,-51,52,-52,53,-53,54,-54,55,-55,56,-56,57,-57,58,-58,59,-59,60,-60,61,-61,62,-62,63,-63,64,-64,65,-65,66,-66,67,-67,68,-68,69,-69,70,-70,71,-71,72,-72,73,-73,74,-74,75,-75,76,-76,77,-77,78,-78,79,-79,80,-80,81,-81,82,-82,83,-83,84,-84,85,-85,86,-86,87,-87,88,-88,89,-89,90,-90,91,-91,92,-92,93,-93,94,-94,95,-95,96,-96,97,-97,98,-98,99,-99,100,-100,101,-101,102,-102,103,-103,104,-104,105,-105,106,-106,107}, + {121}, + {5}, + {12}, nil }, __refPoss = { @@ -63,9 +63,9 @@ __refPoss = { nil, {56,6,20,12}, nil, - nil, - nil, - nil, + {56}, + {56}, + {56}, nil }, } diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua b/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua index e11f6a357d..d6a05d9c6a 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua @@ -91,7 +91,7 @@ function this.GetSkillData(skillId, pos) return end local skill = {skillId} - --skill = {skillId, {目标id1, 效果时间, 效果1, 效果2, ...},{目标id2, 效果时间, 效果3, 效果4, ...}, ...} + --skill = {skillId, 命中时间, 持续时间, 伤害次数, {目标id1, 效果1, 效果2, ...},{目标id2, 效果3, 效果4, ...}, ...} --效果 = {效果类型id, 效果参数1, 效果参数2, ...} local target = SkillLogicConfig[skillId].Target @@ -100,18 +100,22 @@ function this.GetSkillData(skillId, pos) local EffectCombat = CombatControl[SkillLogicConfig[skillId].SkillDisplay] local index = 1 + skill[1] = skillId + skill[2] = EffectCombat.KeyFrame/1000 + skill[3] = EffectCombat.SkillDuration/1000 + skill[4] = EffectCombat.SkillNumber + for i = 1, #effectList do local effectGroup = { target[i][1] } -- 效果目标 - effectGroup[2] = EffectCombat.KeyFrame/1000 -- 效果时间(ms -> s) for j = 1, #effectList[i] do local effect = { effectList[i][j] } -- 效果Id for k = 1, #effectArgsList[index] do effect[k + 1] = effectArgsList[index][k] -- 效果参数 end - effectGroup[j + 2] = effect + effectGroup[j + 1] = effect index = index + 1 end - skill[i + 1] = effectGroup + skill[i + 4] = effectGroup end return skill end @@ -539,6 +543,11 @@ function this.GetSkillCombat(id) Hit = combat.Hit, Offset = combat.Offset, skillname = combat.skillname, + BeforeBullet = combat.BeforeBullet, + SkillNumber = combat.SkillNumber, + SkillDuration = combat.SkillDuration, + Orientation = combat.Orientation, + } end return _CombatList[id] diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Skill.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Skill.lua index c6cd446a03..9f314520a2 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Skill.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Skill.lua @@ -10,7 +10,7 @@ local effectPool = BattleObjectPool.New(function () return { type = 0, args = {}} -- type, {args, ...} end) local effectGroupPool = BattleObjectPool.New(function () - return { chooseId = 0, duration = 0, effects = {}} -- chooseId, duration, {effect1, effect2, ...} + return { chooseId = 0, effects = {}} -- chooseId, {effect1, effect2, ...} end) Skill = {} @@ -25,31 +25,32 @@ end function Skill:Init(role, effectData, type, targets, isAdd, isRage) --type 0 异妖 1 点技 2 滑技 local isTeamSkill = type == 0 self.type = type - --skill = {技能ID, {目标id1, 效果时间, 效果1, 效果2, ...},{目标id2, 效果时间, 效果3, 效果4, ...}, ...} + --skill = {技能ID, 命中时间, 持续时间, 伤害次数, {目标id1, 效果1, 效果2, ...},{目标id2, 效果3, 效果4, ...}, ...} --效果 = {效果类型id, 效果参数1, 效果参数2, ...} self.effectList:Clear() self.owner = role self.isTeamSkill = isTeamSkill self.teamSkillType = isTeamSkill and floor(effectData[1] / 100) or 0 - self.id = effectData[1] -- 技能ID - -- self.EffectDuration = 0 -- 效果命中需要的时间 + self.id = effectData[1] -- 技能ID + self.hitTime = effectData[2] -- 效果命中需要的时间 + self.continueTime = effectData[3] -- 命中后伤害持续时间 + self.attackCount = effectData[4] -- 伤害持续时间内伤害次数 self.targets = targets or {} self.isAdd = isAdd self.isRage = isRage - for i=2, #effectData do + for i=5, #effectData do local v = effectData[i] - local effectGroup = effectGroupPool:Get() -- chooseId, duration, {effect1, effect2, ...} - effectGroup.chooseId = v[1] --chooseId - effectGroup.duration = v[2] --duration - for j=3, #v do --effectList + local effectGroup = effectGroupPool:Get() -- chooseId, {effect1, effect2, ...} + effectGroup.chooseId = v[1] -- chooseId + for j=2, #v do -- effectList local effect = effectPool:Get() -- type, {args, ...} effect.type = v[j][1] for k=2, #v[j] do effect.args[k-1] = v[j][k] end - effectGroup.effects[j-2] = effect + effectGroup.effects[j-1] = effect end self.effectList:Add(effectGroup) end @@ -153,7 +154,6 @@ function Skill:Cast(func) if arr and #arr > 0 then --效果延迟1帧生效 BattleLogic.WaitForTrigger(BattleLogic.GameDeltaTime, function() - local duration = effectGroup.duration local effects = effectGroup.effects local weight = floor(chooseId % 10000 / 100) local count = min(chooseId % 10, #arr) @@ -163,7 +163,7 @@ function Skill:Cast(func) -- 全部同时生效 for j=1, count do if arr[j] and not arr[j]:IsRealDead() then - takeEffect(self.owner, arr[j], effects, duration, self) + takeEffect(self.owner, arr[j], effects, self.hitTime, self) end end end) @@ -182,10 +182,7 @@ function Skill:Cast(func) tr.Event:DispatchEvent(BattleEventName.BeSkillCast, self) end --技能的施法时间计算,根据当前目标id关联的持续时间,取其中时间最长的一个 - local duration = 0 - for i=1, self.effectList.size do - duration = max(duration, self.effectList.buffer[i].duration) - end + local duration = self.hitTime + self.continueTime -- 结算时间向后延长0.2秒,避免在效果结算完成前就结束了技能释放 BattleLogic.WaitForTrigger(duration + 0.2, function() self.owner.Event:DispatchEvent(BattleEventName.SkillCastEnd, self) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/RoleView.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/RoleView.lua index 6c2294b9d8..2625d8d200 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/RoleView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/RoleView.lua @@ -755,12 +755,13 @@ function RoleView:OnSkillCast(skill) self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "attack", false) -- 这里相当于技能前摇,等待立绘播放到需要释放关键帧的时间时继续释放技能 + self:CheckSkillForoleEffect(combat, skill) self:DelayFunc(self.spAtkTime, function() BattleManager.ResumeBattle() self:CheckFullSceenSkill(combat, skill) self:checkShake(combat) -- 取消高亮 - self:DelayFunc(combat.KeyFrame/1000 + 0.2, function() + self:DelayFunc((combat.KeyFrame + combat.SkillDuration)/1000 + 0.2, function() self.RootPanel.SetRoleHighLight() self:ChangeCardSorting(battleSorting + self.role.position) self.liveRender.transform:SetParent(Util.GetGameObject(self.GameObject, "Mask").transform) @@ -794,12 +795,13 @@ function RoleView:OnSkillCast(skill) local function _PlaySkill() self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "attack", false) -- 这里相当于技能前摇,等待立绘播放需要释放关键帧的时间时继续释放技能 + self:CheckSkillForoleEffect(combat, skill) self:DelayFunc(self.spAtkTime, function() BattleManager.ResumeBattle() self:CheckFullSceenSkill(combat, skill) self:checkShake(combat) -- 取消高亮 - self:DelayFunc(combat.KeyFrame/1000 + 0.2, function() + self:DelayFunc((combat.KeyFrame + combat.SkillDuration)/1000 + 0.2, function() self.RootPanel.SetRoleHighLight() end) end) @@ -924,11 +926,31 @@ function RoleView:CheckFullSceenSkill(combat, skill) go.transform.localScale = Vector3.one go.transform.localPosition = pos + offset go:SetActive(true) - self:AddDelayRecycleRes(path, go, 3) + self:AddDelayRecycleRes(path, go, 10) end end end +-- 检测前摇技能释放 +function RoleView:CheckSkillForoleEffect(combat, skill) + if not skill then + return + end + if combat.BeforeBullet and combat.BeforeBullet ~= "" then + local path = combat.BeforeBullet + local sortingOrder + if self.camp == 0 then + sortingOrder = self.GameObject:GetComponent("Canvas").sortingOrder + end + local go = loadAsset(path, sortingOrder) + go.transform:SetParent(self.GameObject.transform) + go.transform.localScale = Vector3.one + go.transform.localPosition = Vector3.zero + go:SetActive(true) + self:AddDelayRecycleRes(path, go, 3) + end +end + -- 检测是否需要震动屏幕 function RoleView:checkShake(combat) if combat.ShockScreen == 1 then @@ -1051,8 +1073,35 @@ local DotTypeTip = { [2] = Language[10278], [3] = Language[10279], } +-- function RoleView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) - + if skill and skill.continueTime > 0 and skill.attackCount > 1 then + local space = skill.continueTime / skill.attackCount + local count = skill.attackCount + local d = math.floor(dmg/count) + -- 如果平均伤害小于0 则 + if d == 0 then + d = dmg + count = 1 + end + if count ~= 1 then + -- 后续伤害延迟打出 + Timer.New(function() + self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill) + end, space, count - 1):Start() + -- 立刻打出第一次伤害 + local fd = dmg - d *(count - 1) + self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill) + else + self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) + end + else + self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) + end +end +-- +function RoleView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) + if atkRole:IsDead() then return end if dotType then if dotType == DotType.Poison then self:ArtFloating(ArtFloatingType.PoisonDamage, ArtFloatingColor.Poison, dmg) diff --git a/data_execl/base_data/CombatControl.xlsx b/data_execl/base_data/CombatControl.xlsx index 1c691670bf23565532ae4efced57de5160136e8c..70c44515c6f1c596121996ead274af5dd2071da6 100644 GIT binary patch literal 20917 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 YI%%<2PudKqgYY11z(Q~XiKlP>2d@)v^Z)<= delta 17568 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