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
}