Formula
CommonFun.ModifyRealDam
formula.lua
1function CommonFun.ModifyRealDam(srcUser, targetUser, params, skillParams, damage, skillID, maptype)
2 local NormalAtkDam = srcUser:GetProperty("NormalAtkDam")
3 local NormalAtkRes = targetUser:GetProperty("NormalAtkRes")
4 local SkillDam = srcUser:GetProperty("SkillDam")
5 local SkillRes = targetUser:GetProperty("SkillRes")
6 if (skillID == 306_LORD_KNIGHT:ASURA_STRIKE or skillID == 3303_LIGHTBRINGER:SKY_BREAKING_DRAGON_FIST or skillID == 819_HIGH_WIZARD:SKY_BREAKING_DRAGON_FIST) and srcUser:HasBuffID(22000830_ASURA_STRIKE_IGNORES_SKILL_DMG_DOWN_:MAX_STACK_0) then
7 SkillRes = math.max(SkillRes - 0.3, 0)
8 end
9 local ActuallySkiRes = SkillRes - SkillDam
10 local ActuallyNorRes = NormalAtkRes - NormalAtkDam
11 if maptype == PVP_MAPS then
12 ActuallySkiRes = ActuallySkiRes < -1 and -1 or 1 < ActuallySkiRes and 1 or ActuallySkiRes
13 ActuallySkiRes = math.floor(ActuallySkiRes * 1000) / 1000
14 ActuallySkiRes = ActuallySkiRes + 0.4 * (1 - math.sin(ActuallySkiRes * 3.14 / 2))
15 ActuallyNorRes = ActuallyNorRes < -1 and -1 or 1 < ActuallyNorRes and 1 or ActuallyNorRes
16 ActuallyNorRes = math.floor(ActuallyNorRes * 1000) / 1000
17 ActuallyNorRes = ActuallyNorRes + 0.4 * (1 - math.sin(ActuallyNorRes * 3.14 / 2))
18 end
19 local NormalEnd = 1 - ActuallyNorRes
20 local SkillEnd = 1 - ActuallySkiRes
21 NormalEnd = math.max(NormalEnd, 0.15)
22 SkillEnd = math.max(SkillEnd, 0.15)
23 if skillID == 404_RUNE_KNIGHT:FEAR_BREEZE_AUTO_ATTACK or skillID == 1232_THIEF:DUPLE_LIGHT or skillID == 4796_PHANTOM_DANCER:M_ATK then
24 SkillEnd = 1
25 end
26 if skillID == 83040_:CURRENT or skillID == 83041_:CURRENT_INCREASE_IN_NUMBER_OF_PEOPLE or skillID == 83042_:CURRENT_THUNDERSTORM or skillID == 83050_:HOMING_MISSILE or skillID == 83051_:ELECTRIC_ENERGY_TRACKING_BOMB then
27 SkillEnd = 1
28 end
29 if CommonFun.RollType.Magic == skillParams.RollType then
30 local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
31 if srcUser:IsAttackSkill(params.skillIDAndLevel) and 0 < damage then
32 local NormalMRealDam = srcUser:GetProperty("NormalMRealDam")
33 damage = (damage + NormalMRealDam * (1 - RefineMDamReduc)) * NormalEnd
34 elseif not srcUser:IsAttackSkill(params.skillIDAndLevel) and 0 < damage then
35 local SkillMRealDam = srcUser:GetProperty("SkillMRealDam")
36 damage = (damage + SkillMRealDam * (1 - RefineMDamReduc)) * SkillEnd
37 end
38 end
39 if CommonFun.RollType.Attack == skillParams.RollType then
40 local RefineDamReduc = CommonFun.calcRefineDamReduc(srcUser, targetUser)
41 if srcUser:IsAttackSkill(params.skillIDAndLevel) and 0 < damage then
42 local NormalRealDam = srcUser:GetProperty("NormalRealDam")
43 damage = (damage + NormalRealDam * (1 - RefineDamReduc)) * NormalEnd
44 elseif not srcUser:IsAttackSkill(params.skillIDAndLevel) and 0 < damage then
45 local SkillRealDam = srcUser:GetProperty("SkillRealDam")
46 damage = (damage + SkillRealDam * (1 - RefineDamReduc)) * SkillEnd
47 end
48 end
49 return damage
50endFormula Graph
Connected Archive Data
See which cards, equipment, headwears, buffs, and other archived records connect to this formula.
Loading graph filters
CommonFun.ModifyRealDam
commonfun-modifyrealdam
Nodes
0
Edges
0
Related Nodes
Select at least one node type.
