diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js index 9a167e05c8ed8f2cde2d75b6bad1c20ce6332bc6..f0d982966693ecc8b71318f918cab536d3d90815 100644 --- a/src/npc/generate/generateMarketSlave.js +++ b/src/npc/generate/generateMarketSlave.js @@ -475,10 +475,15 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 opinion = Math.trunc(opinion/20); opinion = Math.clamp(opinion, -10, 10); + let genes = ""; if (V.arcologies[market].FSSubjugationist > 20) { SGProp.race = V.arcologies[market].FSSubjugationistRace; } - slave = GenerateNewSlave("", SGProp); + if (V.arcologies[market].FSRepopulationFocus > 20) { + genes = "XX"; // "exclusively female" - does not respect $seeDicks + SGProp.minAge = V.fertilityAge; + } + slave = GenerateNewSlave(genes, SGProp); generatePronouns(slave); pronounsGenerated = true; pronoun = getPronouns(slave); @@ -559,37 +564,24 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 } if (V.arcologies[market].FSRepopulationFocus > 50) { r += `They are exclusively female and all extremely pregnant. `; - slave.genes = "XX"; - slave.ovaries = 1; - slave.vagina = either(0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3); - slave.dick = 0; - slave.balls = 0; - slave.scrotum = 0; - if (slave.physicalAge < V.fertilityAge) { - if (V.precociousPuberty === 0) { - slave.physicalAge = V.fertilityAge; - slave.visualAge = V.fertilityAge; - slave.actualAge = V.fertilityAge; - slave.ovaryAge = V.fertilityAge; - } - } - slave.pubertyXX = 1; if (slave.ovaryAge >= 42) { /* corrects menopausal mothers */ slave.ovaryAge = 40; } - slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/ - if (isFertile(slave)) { - slave.vagina = jsRandom(1, 4); - slave.preg = jsRandom(21, 39); - if (jsRandom(1, 2) === 1 && V.seeHyperPreg === 1) { - slave.pregType = jsRandom(3, 29); - slave.pregAdaptation = 250; - } else { - slave.pregType = jsRandom(3, 8); - slave.pregAdaptation = 100; + if (slave.preg < 0) { + slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/ + if (isFertile(slave)) { + slave.vagina = jsRandom(1, 4); + slave.preg = jsRandom(21, 39); + if (jsRandom(1, 2) === 1 && V.seeHyperPreg === 1) { + slave.pregType = jsRandom(3, 29); + slave.pregAdaptation = 250; + } else { + slave.pregType = jsRandom(3, 8); + slave.pregAdaptation = 100; + } + SetBellySize(slave); } - SetBellySize(slave); } slave.lactation = jsRandom(0, 1); if (slave.lactation > 0) { @@ -679,14 +671,16 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 } } else if (V.arcologies[market].FSGenderFundamentalist > 50) { r += `Fertile slaves from there almost never appear without swollen bellies and sensitive nipples. `; - slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/ - if (isFertile(slave)) { - slave.preg = jsRandom(1, 40); - slave.pregType = setPregType(slave); - SetBellySize(slave); - slave.lactation = jsRandom(0, 1); - if (slave.lactation > 0) { - slave.lactationDuration = 2; + if (slave.preg < 0) { + slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/ + if (isFertile(slave)) { + slave.preg = jsRandom(1, 40); + slave.pregType = setPregType(slave); + SetBellySize(slave); + slave.lactation = jsRandom(0, 1); + if (slave.lactation > 0) { + slave.lactationDuration = 2; + } } } }