Formula

CommonFun.calcBuff_5220

function CommonFun.calcBuff_5220(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local FreezeAtk = srcUser:GetProperty("FreezeAtk")
  local FreezeDef2 = targetUser:GetProperty("FreezeDef")
  local FreezeDam = 1 + FreezeAtk - FreezeDef2
  if FreezeDam <= 0 then
    FreezeDam = 0
  end
  local StateAtk = srcUser:GetProperty("StateAtk")
  local StateDef2 = targetUser:GetProperty("StateDef")
  local StateDam = 1 + StateAtk - StateDef2
  if StateDam <= 0 then
    StateDam = 0
  end
  local rate1 = (lv * 2 + 20) * FreezeDam * StateDam * CommonFun.calcAttrFreezeRate(srcUser, targetUser)
  local rate2 = (lv * 2 + 20) * FreezeDam * StateDam * CommonFun.calcAttrFreezeRate(srcUser, targetUser)
  local Hasbuff = 0
  if srcUser:HasBuffID(20820030_DIAMOND_STARDUST_FREEZE_EFFECT_IGNORES_IMMUNITY_:MAX_STACK_0) then
    Hasbuff = 1
  end
  local A = rate1 * a + rate2 * b * Hasbuff
  if A <= 0 then
    return 0
  end
  return A
end