
Mechanical Punch
Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 3500% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
Skill Levels
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 3300% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 3100% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 2900% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 2700% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 2500% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 2300% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 2100% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 1900% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
• Throws a Mechanical Punch to the target and other enemies within 5 meters in the distance, dealing (M. ATK +Self STR x Self VIT/5) x 1700% neutral M. DMG and gathering them together, immobilizing them for 2 seconds.
Formula
1function CommonFun.calcDamage_63501(srcUser, targetUser, params, damageParam, logger)
2 local Int = srcUser:GetProperty("Int")
3 local Vit = srcUser:GetProperty("Vit")
4 local Str = srcUser:GetProperty("Str")
5 local MAtk = srcUser:GetProperty("MAtk")
6 local MAtkPer = srcUser:GetProperty("MAtkPer")
7 local RangeDam = srcUser:GetProperty("RangeDam")
8 local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
9 local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
10 if 1 <= IgnoreMDef then
11 IgnoreMDef = 1
12 end
13 local MRefine = srcUser:GetProperty("MRefine")
14 local RangeDam = srcUser:GetProperty("RangeDam")
15 local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
16 local targetDefElement = targetUser:GetProperty("DefAttr")
17 local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
18 local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
19 local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
20 local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
21 local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
22 local MDef2 = targetUser:GetProperty("MDef")
23 local MDefPer2 = targetUser:GetProperty("MDefPer")
24 local Vit2 = targetUser:GetProperty("Vit")
25 local VitPer2 = targetUser:GetProperty("VitPer")
26 local Int2 = targetUser:GetProperty("Int")
27 local IntPer2 = targetUser:GetProperty("IntPer")
28 local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
29 local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
30 local damChangePer = damageParam.damChangePer
31 local BaseMAtk = Int + math.floor(Int * Int / 100)
32 local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk + Str * Vit / 5) * raceparam * bossparam * bossparam2
33 local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
34 local skilllv_fsp = srcUser:GetLernedSkillLevel(2592_HIGH_PRIEST:INCENDIARY_GUN)
35 local skilllv_lx = srcUser:GetLernedSkillLevel(2598_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN)
36 local skilllv_lgp = srcUser:GetLernedSkillLevel(2600_HIGH_PRIEST:SPARK_FLOW)
37 local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
38 if skillID == 2592_HIGH_PRIEST:INCENDIARY_GUN_HIGH_PRIEST:INCENDIARY_GUN and damageParam.elementparam == 1 and 1 <= skilllv_lgp and srcUser:HasBuffID(136910_THUNDERBOLT_CORE_:MAX_STACK_0) then
39 damChangePer = (skilllv_fsp * 2.4 + 12) * skilllv_lgp * 0.1
40 end
41 if skillID == 2598_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN and damageParam.elementparam == 4 then
42 local GemValue = srcUser:GetGemValue(203101_RECHARGEABLE_INCENDIARY_GUN_DMG_PERCENTAGE)
43 local GemDam = 1 + GemValue / 100000
44 local Fifth = 1
45 local MaxSp = srcUser:GetProperty("MaxSp")
46 local Sp = srcUser:GetProperty("Sp")
47 if srcUser:HasBuffID(90004734_VAULT_LIGHTNING_PUNCH_1_TIER_5_:MAX_STACK_0) and srcUser:HasBuffID(136910_THUNDERBOLT_CORE_:MAX_STACK_0) then
48 Fifth = Fifth + 0.15 * Sp / MaxSp
49 end
50 damChangePer = (skilllv_fsp * 2.4 + 12) * (skilllv_lx * 0.02 + 0.3) * GemDam * Fifth
51 end
52 if skillID == 2598_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN and damageParam.elementparam == 1 and 1 <= skilllv_lgp and srcUser:HasBuffID(136910_THUNDERBOLT_CORE_:MAX_STACK_0) then
53 local GemValue = srcUser:GetGemValue(203101_RECHARGEABLE_INCENDIARY_GUN_DMG_PERCENTAGE)
54 local GemDam = 1 + GemValue / 100000
55 local Fifth = 1
56 local MaxSp = srcUser:GetProperty("MaxSp")
57 local Sp = srcUser:GetProperty("Sp")
58 if srcUser:HasBuffID(90004734_VAULT_LIGHTNING_PUNCH_1_TIER_5_:MAX_STACK_0) and srcUser:HasBuffID(136910_THUNDERBOLT_CORE_:MAX_STACK_0) then
59 Fifth = Fifth + 0.15 * Sp / MaxSp
60 end
61 damChangePer = (skilllv_fsp * 2.4 + 12) * (skilllv_lx * 0.02 + 0.3) * skilllv_lgp * 0.1 * GemDam * Fifth
62 end
63 local A = (MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (1 - RefineMDamReduc) * damChangePer * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 * (1 + RangeDam) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)
64 if targetUser:GetNpcID() ~= 0 and (skillID == 2592_HIGH_PRIEST:INCENDIARY_GUN_HIGH_PRIEST:INCENDIARY_GUN or skillID == 2598_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN_HIGH_PRIEST:RECHARGEABLE_INCENDIARY_GUN) then
65 A = A * (1 + skilllv_fsp * 0.1)
66 end
67 if A <= 1 then
68 return 1
69 end
70 return A
71end