Formula
function CommonFun.calcDamage_14302(srcUser, targetUser, params, damageParam, logger)
local Luk = srcUser:GetProperty("Luk")
local Int = srcUser:GetProperty("Int")
local Vit = srcUser:GetProperty("Vit")
local MAtk = srcUser:GetProperty("MAtk")
local NormalAtk = srcUser:GetProperty("NormalAtk")
NormalAtk = NormalAtk + 3 * Int
local MAtkPer = srcUser:GetProperty("MAtkPer")
local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
if 1 <= IgnoreMDef then
IgnoreMDef = 1
end
local Num1 = srcUser:GetBuffLayer(90000952_SILK_ROBE_R3_:MAX_STACK_0)
local Num2 = srcUser:GetBuffLayer(90000953_SILK_ROBE_R4_:MAX_STACK_0)
local Num3 = srcUser:GetBuffLayer(90000954_SILK_ROBE_R5_:MAX_STACK_0)
local Num24 = 0
local RefineLv2 = srcUser:GetEquipedRefineLv(2)
if srcUser:HasBuffID(90000959_1905_:MAX_STACK_0) then
Num24 = Num24 + RefineLv2 * 0.01
end
local Num26 = 0
local equipRing = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
if equipRing.id == 42126 or equipRing.id == 142126 then
Num26 = Num26 + equipRing.refinelv * 0.01 + 0.1
end
if (equipRing.id == 42126 or equipRing.id == 142126) and equipRing.refinelv >= 15 then
Num26 = Num26 + 0.05
end
local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
if equipRingSD.id == 42126 or equipRingSD.id == 142126 then
Num26 = Num26 + (equipRingSD.refinelv * 0.01 + 0.1) * equipRingSD.quench_per / 100
end
if (equipRingSD.id == 42126 or equipRingSD.id == 142126) and equipRingSD.refinelv >= 15 then
Num26 = Num26 + 0.05 * equipRingSD.quench_per / 100
end
local Num4 = srcUser:GetBuffLayer(90000942_TIDAL_SHOES_R3_:MAX_STACK_0)
local Num5 = srcUser:GetBuffLayer(90000944_TIDAL_SHOES_R5_:MAX_STACK_0)
local Num25 = 0
local RefineLv4 = srcUser:GetEquipedRefineLv(4)
if srcUser:HasBuffID(90000949_1910_:MAX_STACK_0) and 10 <= RefineLv4 then
Num25 = 1
end
local Num27 = 0
local equipRingshoes = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_SHOES)
if equipRingshoes.id == 43587 or equipRingshoes.id == 143587 then
if equipRingshoes.refinelv < 5 then
Num27 = Num27 + 10
elseif equipRingshoes.refinelv >= 5 and equipRingshoes.refinelv < 10 then
Num27 = Num27 + 10 + 5
elseif equipRingshoes.refinelv >= 10 and equipRingshoes.refinelv < 15 then
Num27 = Num27 + 10 + 5 + 5
elseif equipRingshoes.refinelv >= 15 then
Num27 = Num27 + 10 + 5 + 5 + 5
end
end
local equipRingSDshoes = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_SHOES)
if equipRingSDshoes.id == 43587 or equipRingSDshoes.id == 143587 then
if equipRingSDshoes.refinelv < 5 then
Num27 = Num27 + 10 * equipRingSDshoes.quench_per / 100
elseif equipRingSDshoes.refinelv >= 5 and equipRingSDshoes.refinelv < 10 then
Num27 = Num27 + 15 * equipRingSDshoes.quench_per / 100
elseif equipRingSDshoes.refinelv >= 10 and equipRingSDshoes.refinelv < 15 then
Num27 = Num27 + 20 * equipRingSDshoes.quench_per / 100
elseif equipRingSDshoes.refinelv >= 15 then
Num27 = Num27 + 25 * equipRingSDshoes.quench_per / 100
end
end
local RuneDamage = 1 + 0.03 * Num1 + 0.03 * Num2 + 0.04 * Num3 + Num24 + Num26
local RuneDamage1 = 0
if 0 < Num4 + Num5 + Num25 + Num27 then
RuneDamage1 = Luk / 3 + Num4 * 5 + Num5 * 5 + Num25 * 5 + Num27
end
local MRefine = srcUser:GetProperty("MRefine")
local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
local targetDefElement = targetUser:GetProperty("DefAttr")
local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
local MDef2 = targetUser:GetProperty("MDef")
local MDefPer2 = targetUser:GetProperty("MDefPer")
local Vit2 = targetUser:GetProperty("Vit")
local VitPer2 = targetUser:GetProperty("VitPer")
local Int2 = targetUser:GetProperty("Int")
local IntPer2 = targetUser:GetProperty("IntPer")
local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
local RefineMDamReduc = targetUser:GetProperty("RefineMDamReduc")
local damChangePer = damageParam.damChangePer
local BaseMAtk = Int + math.floor(Int * Int / 100)
local MAtkFinal = ((MAtk - BaseMAtk + NormalAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
local A = (MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (1 - RefineMDamReduc) * damChangePer * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)
if A <= 1 then
return 1
end
if CommonFun.IsInRate(RuneDamage1, srcUser:GetRandom()) then
return A * RuneDamage, CommonFun.DamageType.Crit
end
return A
end
Formula
{
"CD": 0,
"id": 1600001,
"Cost": 0,
"Desc": [
{
"id": 73000,
"params": [
100
]
}
],
"Icon": "skill_10000",
"Camps": "Enemy",
"Level": 1,
"Logic": "SkillLockedTarget",
"Damage": [
{
"type": 14302,
"damChangePer": 1,
"elementparam": 5
}
],
"DescId": "##170797",
"NameZh": "##169665",
"DamTime": {
"type": 1,
"value": 1
},
"Fire_EP": 3,
"SE_fire": "Skill/wand_kitty_fire",
"RollType": 2,
"AttackAct": [
"attack"
],
"Attack_EP": 3,
"SkillType": "Attack",
"Target_EP": 3,
"Launch_Type": 2,
"Logic_Param": {
"emit": {
"type": 1,
"speed": 20,
"effect": "Eff_Doram_attack_atk,LowFire_B"
}
},
"Launch_Range": 5
}