
Soul Strike
Lvl: 10
Attack
Magic
CD: 5 sec
Range: 6
Summons holy spirits to attack, dealing (M.Atk800%) holy M.Dmg to the target
Lvl: 9
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk700%) holy M.Dmg to the target
Lvl: 8
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk650%) holy M.Dmg to the target
Lvl: 7
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk600%) holy M.Dmg to the target
Lvl: 6
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk550%) holy M.Dmg to the target
Lvl: 5
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk500%) holy M.Dmg to the target
Lvl: 4
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk450%) holy M.Dmg to the target
Lvl: 3
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk400%) holy M.Dmg to the target
Lvl: 2
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk350%) holy M.Dmg to the target
Lvl: 1
Attack
Magic
CD: 5 sec
Range: 6
• Summons holy spirits to attack, dealing (M.Atk300%) holy M.Dmg to the target
Formula
function CommonFun.calcDamage_2103(srcUser, targetUser, params, damageParam, logger)
local Int = srcUser:GetProperty("Int")
local Vit = srcUser:GetProperty("Vit")
local MAtk = srcUser:GetProperty("MAtk")
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:GetRunePoint(22018_AESIR_SOUL_STRIKE_HAS_A_8_CHANCE_TO_BECOME_HIGH_ENERGY_DEALING_10_DAMAGE)
local RuneRate = Num1 * 8
local RuneDamage = Num1 * 0.1 + 1
local MRefine = srcUser:GetProperty("MRefine")
local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
local targetDefElement = targetUser:GetProperty("DefAttr")
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 enemy = srcUser:IsEnemy(targetUser)
local race2 = targetUser.race
if targetUser:HasBuffID(139410_TWO_FACE_DEMON_KING_HUMAN_:MAX_STACK_0) then
race2 = 3
end
if srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and srcUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
elseif srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
race2 = 2
end
local damChangePer = damageParam.damChangePer
local damChangePer1 = damageParam.damChangePer1
local damChangePer2 = damageParam.damChangePer2
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 BaseMAtk = Int + math.floor(Int * Int / 100)
local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
local BaseLvDamage = 0
local IBaseLv = srcUser.BaseLv
if srcUser:HasBuffID(42110_FLUORESCENCE_:MAX_STACK_0) then
BaseLvDamage = IBaseLv * 15
end
local A = ((MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * damChangePer * (1 - RefineMDamReduc) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)) * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 + damChangePer2 + BaseLvDamage
if CommonFun.IsInRate(RuneRate, srcUser:GetRandom()) then
if race2 == 5 then
return A * (1 + damChangePer1) * RuneDamage
else
return A * RuneDamage
end
elseif race2 == 5 then
return A * (1 + damChangePer1)
else
return A
end
if A <= 1 then
return 1
end
return A
end
Formula
{
"CD": 5,
"id": 108345010,
"Desc": [
{
"id": 100100010,
"params": [
800,
50
]
}
],
"Icon": "skill_76001",
"Camps": "Enemy",
"Level": 10,
"Logic": "SkillLockedTarget",
"Damage": [
{
"type": 2103,
"damChangePer": 8,
"elementparam": 6,
"damChangePer1": 0,
"damChangePer2": 200
}
],
"DescId": "##172002",
"NameZh": "##169275",
"CastAct": "reading",
"DamTime": {
"type": 1,
"value": 5
},
"Fire_EP": 3,
"RollType": 2,
"AttackAct": [
"use_magic"
],
"Attack_EP": 3,
"SkillType": "Attack",
"Target_EP": 2,
"Logic_Param": {
"emit": {
"type": 2,
"effect": "SoulStrike,none",
"duration": 0.5,
"single_fire": false
}
},
"Launch_Range": 6
}