Torpedo ships can lay mines. The same formulas apply to web laying.
Torps_laid = Min(Torps_available, Trunc((Max_units - Existing_units) / Conversion_rate)) ...0 if Conversion_rate is zero or Existing_units ≥ Max_units ...where Conversion_rate = Trunc(Torp_type^2 * Min(UnitsPerTorpRate[Ship_owner], UnitsPerTorpRate[Minefield_owner]) / 100) Max_units = MaximumMinefieldRadius[Minefield_owner] ^ 2 ...if it is a normal mine field MaximumWebMinefieldRadius[Minefield_owner] ^ 2 ...if it is a web field Units_laid = Torps_laid * Conversion_rate
Existing_units is the number of mine units in the field we're adding to, 0 if it is a new field. Torps_available is the number of Torps allowed for laying using mdX or an extended mission like Lay Minefield. Note that Ship_owner and Minefield_owner can differ if miX or an extended mission is used.
PHost refuses adding torpedoes to a minefield that is close to its maximum size if that would exceed the maximum. For example, Robots cannot add a Mark 8 torpedo (type 10) to a 99 ly (=9801 units) minefield if the maximum radius is 100 ly, because 9801+400 = 10201 which is more than the allowed 10000. In pathological configurations, PHost may even refuse to lay a new minefield if laying a single torpedo would already exceed the limit.