
Flowing Shadow Heart
Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x250% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
Skill Levels
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x240% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x230% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x220% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x210% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x200% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x190% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x180% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x170% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
• Facilitation skill. Slash forward quickly for 2 sec, inflicting Phy. DMG equal to [Flowing Blade Phase 1] x160% on all enemy units in front per 0.2 sec. The enemy at the end of the slash will received doubled DMG. Must equip a sword to cast. The damage is affected by Auto Attack DMG Inc. and Skill DMG Inc..
Formula
1function CommonFun.calcDamage_16301(srcUser, targetUser, params, damageParam, logger)
2 local Str = srcUser:GetProperty("Str")
3 local Dex = srcUser:GetProperty("Dex")
4 local Luk = srcUser:GetProperty("Luk")
5 local Atk = srcUser:GetProperty("Atk")
6 local AtkPer = srcUser:GetProperty("AtkPer")
7 local NormalAtk = srcUser:GetProperty("NormalAtk")
8 NormalAtk = NormalAtk + 5 * Str
9 local DamIncrease = srcUser:GetProperty("DamIncrease")
10 local IgnoreDef = 0
11 local IgnoreDef1 = srcUser:GetProperty("IgnoreDef")
12 local IgnoreDef2 = srcUser:GetProperty("IgnoreEquipDef")
13 if targetUser.boss or targetUser.mini then
14 IgnoreDef = IgnoreDef1
15 else
16 IgnoreDef = IgnoreDef1 + IgnoreDef2
17 end
18 if 1 <= IgnoreDef then
19 IgnoreDef = 1
20 end
21 local Refine = srcUser:GetProperty("Refine")
22 local Def2 = targetUser:GetProperty("Def")
23 local DefPer2 = targetUser:GetProperty("DefPer")
24 local Vit2 = targetUser:GetProperty("Vit")
25 local VitPer2 = targetUser:GetProperty("VitPer")
26 local DamReduc2 = CommonFun.calcDamReDuc(srcUser, targetUser)
27 local RefineDamReduc = CommonFun.calcRefineDamReduc(srcUser, targetUser)
28 local AttrEffect2 = srcUser:GetProperty("AttrEffect")
29 local bits2 = CommonFun.getBits(AttrEffect2)
30 local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
31 local bodyparam = CommonFun.CalcBodyParam(srcUser, targetUser, params, damageParam, logger)
32 local elementparam = CommonFun.CalcElementParam(srcUser, targetUser, params, damageParam, logger)
33 local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
34 local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
35 local bodyparam2 = CommonFun.CalcBodyParam2(srcUser, targetUser, params, damageParam, logger)
36 local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
37 local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
38 local BaseAtk = Str * 2 + math.floor(Str * Str / 100) + math.floor(Dex / 5) + math.floor(Luk / 5)
39 local AtkFinal = ((Atk - BaseAtk + NormalAtk) * (1 + AtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * bodyparam * elementparam * elementparam2 + BaseAtk) * raceparam * bossparam * bossparam2
40 local DefReduc = CommonFun.CalcDef(srcUser, targetUser)
41 local ShortRangeDamReduc2 = targetUser:GetProperty("ShortRangeDamReduc")
42 local damChangePer = damageParam.damChangePer
43 local Agi = srcUser:GetProperty("Agi")
44 local AgiRune = srcUser:GetRunePoint(163012_AESIR_FOR_EVERY_10_POINTS_OF_AGI_AUTO_ATTACK_DMG_0_4)
45 local AgiDam = 1 + math.floor(Agi / 10) * AgiRune * 0.004
46 local Famous = 1
47 local RefineLv7 = srcUser:GetEquipedRefineLv(7_WEAPON)
48 if srcUser:HasBuffID(44360_RENOWNED_BLADE_MURAMASA_:MAX_STACK_0) then
49 Famous = Famous * (RefineLv7 * 0.01 + 1)
50 end
51 if srcUser:HasBuffID(44370_MONSTER_KNIFE_MURAMASA_:MAX_STACK_0) then
52 Famous = Famous * (RefineLv7 * 0.03 + 1)
53 end
54 local A = ((AtkFinal * DefReduc * (1 - DamReduc2) + Refine) * damChangePer * (1 - RefineDamReduc) * (1 + DamIncrease - ShortRangeDamReduc2) - Vit2 * (1 + VitPer2)) * AgiDam * Famous
55 local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
56 if skillID == 2013_SNIPER:FLOWING_BLADE_IV then
57 local Rune = srcUser:GetRunePoint(163021_AESIR_AUTO_ATTACK_FINAL_STYLE_FLOWING_BLADE_IV_DMG_5)
58 A = A * (1 + Rune * 0.05)
59 end
60 local GemValue = srcUser:GetGemValue(163072_FLOWING_SHADOW_HEART_DMG_X_PERCENTAGE)
61 if skillID == 2056_RANGER:FLOWING_SHADOW_HEART then
62 local NormalAtkDam = srcUser:GetProperty("NormalAtkDam")
63 local NormalAtkRes = targetUser:GetProperty("NormalAtkRes")
64 local NormalEnd = 1 + NormalAtkDam - NormalAtkRes
65 NormalEnd = math.max(NormalEnd, 0.1)
66 A = A * math.max(GemValue / 100000, 1) * NormalEnd
67 local targetid = targetUser:GetGuid()
68 local distance = srcUser:GetDistance(targetid)
69 if 3.5 <= distance then
70 A = A * 2
71 end
72 local Cri = srcUser:GetProperty("Cri")
73 local CriRes2 = targetUser:GetProperty("CriRes")
74 local CriDamPer = srcUser:GetProperty("CriDamPer")
75 local CriDefPer2 = targetUser:GetProperty("CriDefPer")
76 local Rate = Cri - CriRes2
77 if CommonFun.IsInRate(Rate, srcUser:GetRandom()) then
78 A = ((AtkFinal * (1 - DamReduc2) + Refine) * damChangePer * (1 - RefineDamReduc) * (1 + DamIncrease) - Vit2 * (1 + VitPer2)) * AgiDam * Famous * math.max(GemValue / 100000, 1) * NormalEnd
79 if 3.5 <= distance then
80 A = A * 2
81 end
82 return math.max(A * (1.5 + CriDamPer - CriDefPer2), 1), CommonFun.DamageType.Crit
83 end
84 end
85 if A <= 1 then
86 return 1
87 end
88 return A
89end