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_rateExisting_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.



