
Solar Aura
Lvl: 1
Attack
Physical
Range: 15
Sunlight strikes enemies with inner aura. Kicks inflict [Solar Vigor], dealing P.ATK*300% as P.DMG. [Solar Vigor]'s DMG ignores flee and DMG negation, and is based on the enemy's lower defense stats (as between P.DEF and M.DEF, P.DMG down and M.DMG down, Refine P.DMG down and Refine M.DMG down).
Formula
function CommonFun.calcDamage_77503(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 DamSpike = srcUser:GetProperty("DamSpike_PEN")
local DamReduc2 = targetUser:GetProperty("DamReduc")
local MDamReduc2 = targetUser:GetProperty("MDamReduc")
local DamReducfinal = CommonFun.calcDamReDuc(srcUser, targetUser)
if DamReduc2 > MDamReduc2 then
local ReduceLv = CommonFun.calcSpikeLv(srcUser, targetUser)
local SkillDamReduc = CommonFun.calcSkillDamReduc(srcUser, targetUser)
if srcUser:HasBuffID(138002_23_:MAX_STACK_0) then
local MDamSpike = srcUser:GetProperty("MDamSpike_MPEN")
DamSpike = DamSpike + MDamSpike
end
if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(57720_23_:MAX_STACK_0) and srcUser:HasBuffID(138002_23_:MAX_STACK_0) then
DamSpike = DamSpike + 0.2
elseif targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(57720_23_:MAX_STACK_0) then
DamSpike = DamSpike + 0.1
end
if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(58120_23377_PHANTOM_THIEF_CARD_FROM_A_DIFFERENT_WORLD_:MAX_STACK_0) and srcUser:HasBuffID(138002_23_:MAX_STACK_0) then
DamSpike = DamSpike + 0.2
elseif targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(58120_23377_PHANTOM_THIEF_CARD_FROM_A_DIFFERENT_WORLD_:MAX_STACK_0) then
DamSpike = DamSpike + 0.1
end
if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(58730_ALIEN_ELUSIVE_THIEF_CARD_:MAX_STACK_0) and srcUser:HasBuffID(138002_23_:MAX_STACK_0) then
DamSpike = DamSpike + 0.2
elseif targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(58730_ALIEN_ELUSIVE_THIEF_CARD_:MAX_STACK_0) then
DamSpike = DamSpike + 0.1
end
if (targetUser.boss or targetUser.mini) and srcUser:HasBuffID(58730_ALIEN_ELUSIVE_THIEF_CARD_:MAX_STACK_0) and srcUser:HasBuffID(138002_23_:MAX_STACK_0) then
DamSpike = DamSpike + 0.1
elseif (targetUser.boss or targetUser.mini) and srcUser:HasBuffID(58730_ALIEN_ELUSIVE_THIEF_CARD_:MAX_STACK_0) then
DamSpike = DamSpike + 0.05
end
if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(57780_ALIEN_THANATOS_CARD_:MAX_STACK_0) then
local Card22 = srcUser:GetEquipCardNum(7, 23331)
local RefineLv = srcUser:GetEquipedRefineLv(7_WEAPON)
DamSpike = DamSpike + 0.01 * RefineLv * Card22
end
local DamReducThrough = srcUser:GetProperty("DamReducThrough")
local DamSpikeResistance = targetUser:GetProperty("DamSpikeResistance")
if 0 <= DamSpike then
DamSpike = DamSpike * math.max(1 - DamSpikeResistance, 0)
end
if 0 <= DamReduc2 then
DamReduc2 = DamReduc2 * math.max(1 - DamReducThrough, 0)
end
DamReducfinal = 1 - (1 + 0.009 * ReduceLv + DamSpike - MDamReduc2) * SkillDamReduc
local mapid, maptype = srcUser:GetMapInfo()
if (maptype == PVP_MAPS) and targetUser:GetNpcID() ~= 40022_EMPERIUM then
local pvpReduce = 0
local Master = targetUser:GetMasterUser()
if targetUser:GetNpcID() == 0 or Master ~= nil then
pvpReduce = 0.2
end
DamReducfinal = DamReducfinal < -1 and -1 or 1 < DamReducfinal and 1 or DamReducfinal
DamReducfinal = math.floor(DamReducfinal * 1000) / 1000
DamReducfinal = DamReducfinal + 0.3 * (1 - math.sin(DamReducfinal * 3.14 / 2)) + pvpReduce
end
if 0.85 <= DamReducfinal then
DamReducfinal = 0.85
end
end
local RefineDamReduc = targetUser:GetProperty("RefineDamReduc")
local MDef2 = targetUser:GetProperty("MDef")
local MDefPer2 = targetUser:GetProperty("MDefPer")
local RefineMDamReduc = targetUser:GetProperty("RefineMDamReduc")
Def2 = math.min(MDef2, Def2)
DefPer2 = math.min(MDefPer2, DefPer2)
RefineDamReduc = math.min(RefineMDamReduc, RefineDamReduc)
local damChangePer = 0
local skill_lv1 = srcUser:GetLernedSkillLevel(4711_SHADOW_CHASER:SOLAR_VIGOR)
if 1 <= skill_lv1 then
damChangePer = 2.4 + skill_lv1 * 0.6
end
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 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, params)
local ShortRangeDamReduc2 = targetUser:GetProperty("ShortRangeDamReduc")
local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
if skillID == 4717_SHADOW_CHASER:SOLAR_AURA_SKYFIRE then
local fentian = srcUser:GetBuffLayer(139647__:MAX_STACK_0)
local skill_fentian = srcUser:GetLernedSkillLevel(4705_SHADOW_CHASER:SOLAR_FLAME_SHOWER)
damChangePer = damChangePer * math.pow(1 + skill_fentian * 0.01, fentian)
end
if skillID == 4702_SHADOW_CHASER:SCORCHING_REALM then
damChangePer = damChangePer * 25
end
local layer_taiyang = srcUser:GetBuffLayer(139610_POWER_OF_THE_SUN_:MAX_STACK_0)
local yanghui = 1
if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(139680_SUNNY_:MAX_STACK_0) then
local skill_xuri = srcUser:GetLernedSkillLevel(4707_SHADOW_CHASER:SUNLIGHT_RITUAL)
yanghui = 1 + skill_xuri * 0.001 * layer_taiyang
end
local A = ((AtkFinal * DefReduc * (1 - DamReducfinal) + Refine) * damChangePer * (1 - RefineDamReduc) * (1 + DamIncrease - ShortRangeDamReduc2) - Vit2 * (1 + VitPer2)) * yanghui
if A <= 1 then
return 1
end
return A
end
Formula
{
"id": 4714001,
"Cost": 0,
"Desc": [
{
"id": 4711000,
"params": [
300
]
}
],
"Icon": "skill_10000",
"Camps": "Enemy",
"Level": 1,
"Logic": "SkillLockedTarget",
"Damage": [
{
"type": 77503,
"damChangePer": 1
}
],
"DescId": "##42617625",
"NameZh": "##42590710",
"DamTime": {
"type": 1,
"value": 1
},
"Fire_EP": 3,
"RollType": 1,
"Attack_EP": 2,
"SkillType": "Attack",
"Target_EP": 3,
"DamageType": 1,
"Launch_Range": 15
}