Formula

CommonFun.calcBuff_3080

function CommonFun.calcBuff_3080(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(1185_THIEF:BATTLE_CHANT)
  local Vit = srcUser:GetProperty("Vit")
  local Num = srcUser:GetRunePoint(74070_AESIR_BATTLE_CHANT_HEALING_OVER_TIME_10)
  local BeHealEncPer2 = targetUser:GetProperty("BeHealEncPer")
  local HealEncPer = srcUser:GetProperty("HealEncPer")
  local A = 0
  local RefineLv = srcUser:GetEquipedRefineLv(1)
  local Angel = 1
  if srcUser:HasBuffID(90001817_SACRED_MISSION_R8_:MAX_STACK_0) then
    Angel = 1 + RefineLv / 100 * 2
  end
  local equipRing = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_SHIELD)
  if equipRing.id == 42579 or equipRing.id == 142579 then
    Angel = 1 + equipRing.refinelv / 100 * 2
  end
  local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_SHIELD)
  if equipRingSD.id == 42579 or equipRingSD.id == 142579 then
    Angel = 1 + equipRingSD.refinelv / 100 * 2 * equipRingSD.quench_per / 100
  end
  if srcUser:HasBuffID(90004204_SAINTLY_GLAIVE_1_T5_:MAX_STACK_0) then
    Angel = Angel + 0.15
  end
  if 0 < skilllv_1 and skilllv_1 <= 10 then
    A = skilllv_1 * 2 * (100 + Vit) * (1 + HealEncPer) * (1 + BeHealEncPer2) * (1 + Num / 10) * Angel
  elseif 10 < skilllv_1 then
    A = (20 + skilllv_1) * (100 + Vit) * (1 + HealEncPer) * (1 + BeHealEncPer2) * (1 + Num / 10) * Angel
  end
  local GemValue = srcUser:GetGemValue(72061_BATTLE_CHANT_RECOVERY_EFFECT_PERCENTAGE)
  A = A * (1 + GemValue / 100000)
  local mapid, maptype = srcUser:GetMapInfo()
  if maptype == PVP_MAPS then
    A = A * 4
  end
  return A
end