Formula
function CommonFun.calcDamage_80(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 Numxp = srcUser:GetRunePoint(82001_AESIR_INCREASE_SAGE_S_AUTO_ATTACK_BONUS_FROM_INT_BY)
local NormalAtk = srcUser:GetProperty("NormalAtk")
NormalAtk = NormalAtk + (3 + 0.3 * Numxp) * 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 skilllv_1 = srcUser:GetLernedSkillLevel(1324_ASSASSIN:SHARPEN_WEAPON)
local CriDam = 0
if 0 < skilllv_1 and skilllv_1 <= 5 then
CriDam = 0.1
elseif 5 < skilllv_1 then
CriDam = 0.1 + (skilllv_1 - 5) * 0.05
end
local Num_bs = srcUser:GetRunePoint(82024_AESIR_INCREASE_CRIT_DMG_BY_AN_EXTRA_5_WHEN_USING_AUTO_ATTACK_ONCE_THE_SAGE_LEARNS_SHARPEN_WEAPON)
local GemValue1 = srcUser:GetGemValue(82101_THE_CHANCE_OF_AUTO_ATTACK_TRIGGERING_A_CRIT_PERCENTAGE_CRIT_DMG_S)
local GemValue2 = srcUser:GetGemValue(82102_THE_CHANCE_OF_AUTO_ATTACK_TRIGGERING_A_CRIT_PERCENTAGE_CRIT_DMG_S)
local RuneDamage = 1 + CriDam + 0.03 * Num1 + 0.03 * Num2 + 0.04 * Num3 + 0.05 * Num_bs + GemValue2 / 100000 + Num24 + Num26
local RuneDamage1 = 0
if 0 < Num4 + Num5 + skilllv_1 + Num25 + Num27 then
RuneDamage1 = skilllv_1 + Luk / 3 + Num4 * 5 + Num5 * 5 + GemValue1 / 1000 + 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)
local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
if skillID == 2718_ARCHBISHOP:FIRE_BREATH_ARCHBISHOP:FIRE_BREATH then
local Num = srcUser:GetBuffLayer(137570_SERPENT_ECHO_:MAX_STACK_3)
local count = params.hitedCount
if count == 1 then
A = A * (1 + Num * 0.5)
end
end
if MDef2 <= 0 and (srcUser:HasBuffID(42360_POCKET_WATCH_:MAX_STACK_0) or srcUser:HasBuffID(43110_TIME_MANIPULATOR_:MAX_STACK_0) or srcUser:HasBuffLayer(43110, EBUFFERLAYER_SHADOW)) and (srcUser:HasBuffID(41670_SAGE_S_DIARY_:MAX_STACK_0) or srcUser:HasBuffID(42240_SAGE_S_HANDBOOK_:MAX_STACK_0)) then
RuneDamage1 = 100
end
local damageType = CommonFun.DamageType.Normal
if CommonFun.IsInRate(RuneDamage1, srcUser:GetRandom()) then
A = A * RuneDamage
damageType = CommonFun.DamageType.Crit
end
if srcUser:HasBuffID(137540_SURGING_ARCANE_:MAX_STACK_10) and skillID == 2718_ARCHBISHOP:FIRE_BREATH_ARCHBISHOP:FIRE_BREATH then
local skilllv_an = srcUser:GetLernedSkillLevel(2704_ARCHBISHOP:DISASTER_PANIC)
A = A * (1 + skilllv_an * 0.2)
damageType = CommonFun.DamageType.Crit
end
if A <= 1 then
return 1
end
return A, damageType
end

Time and space barrier
Self Superposition
{
"id": 137620,
"BuffName": "23",
"BuffRate": {
"Odds": {
"a": 2,
"b": 1,
"type": 8251
}
},
"BuffEffect": {
"id": 2702001,
"Odds": 100,
"type": "UseSkill",
"IsActive": 0,
"is_superposition": 1
}
}

Disaster Panic
Self Superposition
{
"id": 137622,
"BuffName": "23",
"BuffRate": {
"Odds": {
"type": 8250
}
},
"BuffEffect": {
"id": 2704001,
"Odds": 100,
"type": "UseSkill",
"IsActive": 0,
"is_superposition": 1
}
}

Plunder of Fate
Enemy Superposition
{
"id": 137621,
"BuffName": "23",
"BuffRate": {
"Odds": {
"a": 2,
"b": 1,
"type": 8251
}
},
"BuffEffect": {
"id": 2703001,
"Odds": 100,
"type": "UseSkill",
"IsActive": 0,
"is_superposition": 1
}
}

Invasion
Enemy Superposition
{
"id": 137623,
"BuffName": "23",
"BuffRate": {
"Odds": {
"a": 8,
"b": 4,
"type": 8251
}
},
"BuffEffect": {
"id": 2705001,
"Odds": 100,
"type": "UseSkill",
"IsActive": 0,
"is_superposition": 1
}
}

Abyssal Spear
Enemy Superposition
{
"id": 137624,
"BuffName": "23",
"BuffRate": {
"Odds": {
"a": 8,
"b": 4,
"type": 8251
}
},
"BuffEffect": {
"id": 2706001,
"Odds": 100,
"type": "UseSkill",
"IsActive": 0,
"is_superposition": 1
}
}

Space-time Prison
Enemy Superposition
{
"id": 137625,
"BuffName": "23",
"BuffRate": {
"Odds": {
"a": 2,
"b": 1,
"type": 8251
}
},
"BuffEffect": {
"id": 2707001,
"Odds": 100,
"type": "UseSkill",
"IsActive": 0,
"is_superposition": 1
}
}
Formula
{
"CD": 0,
"id": 2700001,
"Buff": {
"self_superposition": [
{
"id": 137620,
"skill": 2702
},
{
"id": 137622,
"skill": 2704
}
],
"enemy_superposition": [
{
"id": 137621,
"skill": 2703
},
{
"id": 137623,
"skill": 2705
},
{
"id": 137624,
"skill": 2706
},
{
"id": 137625,
"skill": 2707
}
]
},
"Cost": 0,
"Desc": [
{
"id": 73000,
"params": [
100
]
}
],
"Icon": "skill_10000",
"Camps": "Enemy",
"Level": 1,
"Logic": "SkillLockedTarget",
"Damage": [
{
"type": 80,
"damChangePer": 1,
"elementparam": 5
}
],
"DescId": "##170797",
"SE_hit": "Skill/skill_hero_snake_fireball_hit_01",
"DamTime": {
"type": 1,
"value": 1
},
"Fire_EP": 6,
"Pvp_buff": {
"self_superposition": [
{
"id": 137620,
"skill": 2702
},
{
"id": 137622,
"skill": 2704
}
],
"enemy_superposition": [
{
"id": 137621,
"skill": 2703
},
{
"id": 137623,
"skill": 2705
},
{
"id": 137624,
"skill": 2706
},
{
"id": 137625,
"skill": 2707
}
]
},
"RollType": 2,
"AttackAct": [
"attack",
"attack2"
],
"Attack_EP": 0,
"SE_attack": "Skill/skill_hero_snake_genattack_attack_01",
"SkillType": "Attack",
"Target_EP": 3,
"Launch_Type": 2,
"Logic_Param": {
"emit": {
"type": 1,
"speed": 20,
"effect": "sfx_magicsnake_atk_bullet_prf,LowFire_B"
}
},
"Launch_Range": 6
}