战斗添加前摇特效,添加多段伤害
parent
0677aa9c04
commit
78b6a988d2
|
@ -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
|
||||
},
|
||||
}
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue