Formula

CommonFun.calcBuff_3255

function CommonFun.calcBuff_3255(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Num = srcUser:GetRunePoint(c)
  local diary = 0
  if srcUser:HasBuffID(90002383_MAGIC_SURGE_ROBE_R4_:MAX_STACK_0) and srcUser:HasBuffID(90002147_SAGE_S_DIARY_R8_:MAX_STACK_0) then
    diary = 3
  end
  if srcUser:HasBuffID(90002383_MAGIC_SURGE_ROBE_R4_:MAX_STACK_0) and srcUser:HasBuffID(42240_SAGE_S_HANDBOOK_:MAX_STACK_0) then
    diary = 3
  end
  if srcUser:HasBuffID(42620_MAGIC_ABYSS_:MAX_STACK_0) and srcUser:HasBuffID(90002147_SAGE_S_DIARY_R8_:MAX_STACK_0) then
    diary = 3
  end
  if srcUser:HasBuffID(42620_MAGIC_ABYSS_:MAX_STACK_0) and srcUser:HasBuffID(42240_SAGE_S_HANDBOOK_:MAX_STACK_0) then
    diary = 3
  end
  local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
  if equipRingSD.id ~= 0 and srcUser:HasBuffLayer(42620, EBUFFERLAYER_SHADOW) and (srcUser:HasBuffID(90002147_SAGE_S_DIARY_R8_:MAX_STACK_0) or srcUser:HasBuffID(42240_SAGE_S_HANDBOOK_:MAX_STACK_0)) then
    diary = 3
  end
  if srcUser:HasBuffID(90004514_SAGE_S_HANDBOOK_1_T5_:MAX_STACK_0) and srcUser:HasBuffID(90004515_SAGE_S_HANDBOOK_1_T5_EFFECT_:MAX_STACK_0) then
    diary = diary + 5
  end
  local GemValue1 = srcUser:GetGemValue(82001_DOUBLE_FLURRY_CHANCE_PERCENTAGE)
  local GemValue2 = 0
  if srcUser:HasBuffID(118340_MAGIC_FIST_:MAX_STACK_0) or srcUser:HasBuffID(118341_MAGIC_FIST_:MAX_STACK_0) or srcUser:HasBuffID(118342_MAGIC_FIST_:MAX_STACK_0) or srcUser:HasBuffID(118343_MAGIC_FIST_:MAX_STACK_0) or srcUser:HasBuffID(118344_MAGIC_FIST_:MAX_STACK_0) then
    GemValue2 = srcUser:GetGemValue(82002_DOUBLE_FLURRY_CHANCE_PERCENTAGE_AFTER_UNLOCKING_MAGIC_FIST)
  end
  local GemDam = GemValue1 / 1000 + GemValue2 / 1000
  local A = lv * a + b + Num * d + diary + GemDam
  return A
end