CommonFun.calcDamage_120121 mapped uses · 1 skills
function CommonFun.calcDamage_1201(srcUser, targetUser, params, damageParam, logger)
local Str = srcUser:GetProperty("Str")
local Dex = srcUser:GetProperty("Dex")
local Luk = srcUser:GetProperty("Luk")
local Atk = srcUser:GetProperty("Atk")
local AtkPer = srcUser:GetProperty("AtkPer")
local DamIncrease = srcUser:GetProperty("DamIncrease")
local IgnoreDef = 0
local IgnoreDef1 = srcUser:GetProperty("IgnoreDef")
local IgnoreDef2 = srcUser:GetProperty("IgnoreEquipDef")
if targetUser.boss or targetUser.mini then
IgnoreDef = IgnoreDef1
else
IgnoreDef = IgnoreDef1 + IgnoreDef2
end
if 1 <= IgnoreDef then
IgnoreDef = 1
end
local Refine = srcUser:GetProperty("Refine")
local Def2 = targetUser:GetProperty("Def")
local DefPer2 = targetUser:GetProperty("DefPer")
local Vit2 = targetUser:GetProperty("Vit")
local VitPer2 = targetUser:GetProperty("VitPer")
local DamReduc2 = CommonFun.calcDamReDuc(srcUser, targetUser)
local RefineDamReduc = targetUser:GetProperty("RefineDamReduc")
local damChangePer = damageParam.damChangePer
local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
local bodyparam = CommonFun.CalcBodyParam(srcUser, targetUser, params, damageParam, logger)
local elementparam = CommonFun.CalcElementParam(srcUser, targetUser, params, damageParam, logger)
local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
local bodyparam2 = CommonFun.CalcBodyParam2(srcUser, targetUser, params, damageParam, logger)
local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
local sizeCorrection = 1
if nil ~= CommonFun.Shape then
if CommonFun.Shape.S == targetUser.shape then
sizeCorrection = 1
elseif CommonFun.Shape.M == targetUser.shape then
if srcUser:HasBuffID(91000170) or srcUser:HasBuffID(91000540) or srcUser:HasBuffID(91001530) or srcUser:HasBuffID(91001531) then
sizeCorrection = 2.2
elseif srcUser:HasBuffID(90001983) then
sizeCorrection = 2.6
else
sizeCorrection = 2
end
elseif CommonFun.Shape.L == targetUser.shape then
if srcUser:HasBuffID(41721) then
sizeCorrection = 5.1
elseif srcUser:HasBuffID(90001173) then
sizeCorrection = 5.1
elseif srcUser:HasBuffID(90001172) then
sizeCorrection = 4.35
elseif srcUser:HasBuffID(90001171) then
sizeCorrection = 3.75
elseif srcUser:HasBuffID(90001170) then
sizeCorrection = 3.3000000000000003
else
sizeCorrection = 3
end
end
end
local Sign = 1
local Num1 = targetUser:GetBuffLayer(117660)
local fromid = targetUser:GetBuffFromID(117660)
local guid = srcUser:GetGuid()
local skilllv_1 = srcUser:GetLernedSkillLevel(1267)
skilllv_1 = math.min(skilllv_1, 5)
local GemValue = srcUser:GetGemValue(11131)
if fromid == guid then
Sign = 1 + (skilllv_1 * 0.01 + 0.02 + GemValue / 100000) * Num1
end
local BaseAtk = Str * 2 + math.floor(Str * Str / 100) + math.floor(Dex / 5) + math.floor(Luk / 5)
local AtkFinal = ((Atk - BaseAtk) * (1 + AtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * bodyparam * elementparam * elementparam2 + BaseAtk) * raceparam * bossparam * bossparam2
local DefReduc = CommonFun.CalcDef(srcUser, targetUser)
local ShortRangeDamReduc2 = targetUser:GetProperty("ShortRangeDamReduc")
local BaseLvDamage = 0
local IBaseLv = srcUser.BaseLv
if srcUser:HasBuffID(42190) then
BaseLvDamage = IBaseLv * 20
end
local GemValue = srcUser:GetGemValue(11081)
local GemDam = 1
if CommonFun.Shape.L == targetUser.shape then
GemDam = 1 + GemValue / 100000
end
local skilllv_ha = srcUser:GetLernedSkillLevel(3005)
local StateEffect = targetUser:GetProperty("StateEffect")
local bits2 = CommonFun.getBits(StateEffect)
local Heian = 1
if bits2[CommonFun.StateEffect.Dark] == 1 then
Heian = 1 + skilllv_ha * 0.04
end
local A = ((AtkFinal * DefReduc * (1 - DamReduc2) + Refine) * damChangePer * (1 - RefineDamReduc) * (1 + DamIncrease - ShortRangeDamReduc2) * GemDam - Vit2 * (1 + VitPer2)) * sizeCorrection * Sign * Heian + BaseLvDamage
if A <= 1 then
return 1
end
return A
endRelated skills