diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index 9df18a339519b07663a7617bc776357752799854..bbe0d4b5cb0dcef595ebf981fa078e55d7165759 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -677,6 +677,9 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.ovaImplant !== "string") { slave.ovaImplant = 0; } + if (slave.pubertyXX === 0 && slave.ovaries > 0 && slave.preg === -1) { + slave.preg = 0; // no contraceptives for prepubescent slaves + } slave.fertPeak = Math.clamp(+slave.fertPeak, 0, 4) || 0; slave.broodmother = Math.clamp(+slave.broodmother, 0, 3) || 0; slave.broodmotherFetuses = Math.max(+slave.broodmotherFetuses, 0) || 0; diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index a5ebb5d42447c886a26c7752e320d2c09d4bcc0c..e0de72364001cb3464adfac424a4536766258758 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -1050,7 +1050,7 @@ globalThis.DefaultRules = (function() { */ function ProcessContraceptives(slave, rule) { if ((rule.preg !== undefined) && (rule.preg !== null)) { - if (rule.preg === true && slave.preg === 0) { + if (rule.preg === true && slave.preg === 0 && slave.pubertyXX === 1) { r += `<br>${slave.slaveName} is being given contraceptives.`; slave.preg = -1; } else if (slave.preg === -1 && rule.preg === false) { diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index 3d088d06c33badba2e534ed3da2d00e131d5267d..f8188c36eddb712f18ec3248d31db9587de9c55f 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -2251,17 +2251,8 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { if (eventSlave.ovaries === 1) { if (eventSlave.pubertyXX === 0) { if (eventSlave.preg === 0) { - if (eventSlave.physicalAge >= eventSlave.pubertyAgeXX - 0.5) { - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); - State.variables.RESSevent.push("first period"); + if (eventSlave.physicalAge + eventSlave.birthWeek / 52 >= eventSlave.pubertyAgeXX - 0.5) { + State.variables.RESSevent.push(...Array.from({length: 10}, () => "first period")); } } } @@ -2269,17 +2260,8 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { if (canPenetrate(eventSlave)) { if (eventSlave.balls > 0) { if (eventSlave.pubertyXY === 0) { - if (eventSlave.physicalAge >= eventSlave.pubertyAgeXY - 0.5) { - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); - State.variables.RESSevent.push("wet dreams"); + if (eventSlave.physicalAge + eventSlave.birthWeek / 52 >= eventSlave.pubertyAgeXY - 0.5) { + State.variables.RESSevent.push(...Array.from({length: 10}, () => "wet dreams")); } } } diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js index 19bb229f68e329c4a3205dbb8d3e43140317ec07..aa24346754e6ac5c90090e9f7cb56a263ddc9b92 100644 --- a/src/js/generateMarketSlave.js +++ b/src/js/generateMarketSlave.js @@ -1344,7 +1344,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 if (slave.vagina > -1) { slave.preg = jsEither([-2, -1, -1, -1, -1, -1, -1, -1, 1, 1]); if (slave.physicalAge < slave.pubertyAgeXX) { - slave.preg = -1; + slave.preg = 0; } if (slave.preg > 0) { slave.pregType = setPregType(slave); diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js index c724790fe76adb713cb7c4590cfea0e3686f73dd..59d8bff58ad784a0716ef853b06c3bbbc5441b01 100644 --- a/src/js/slaveGenerationJS.js +++ b/src/js/slaveGenerationJS.js @@ -1540,6 +1540,9 @@ globalThis.generatePuberty = function(slave) { if ((slave.ovaries === 1 || slave.mpreg === 1) && slave.physicalAge >= slave.pubertyAgeXX) { slave.pubertyXX = 1; } else { + if (slave.preg >= -1) { + slave.preg = 0; + } slave.pubertyXX = 0; } if (slave.balls > 0 && slave.ballType !== "sterile" && slave.physicalAge >= slave.pubertyAgeXY) { diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw index 0882f6f08546a2f9aa2eac9c3f63e112131310f7..10aab1e74e25294cda3a196e1cd6e212bada920b 100644 --- a/src/uncategorized/seCoursing.tw +++ b/src/uncategorized/seCoursing.tw @@ -105,7 +105,9 @@ You lead your lurcher _activeLurcher.slaveName out on a leash, naked just like t <<set $activeSlave.anus = 1>> <<set $activeSlave.vagina = 0>> <<set $activeSlave.counter.anal += 1, $analTotal += 1>> - <<set $activeSlave.preg = -1>> + <<if $activeSlave.pubertyXX > 0>> + <<set $activeSlave.preg = -1>> + <</if>> <<set $activeSlave.ovaries = 1>> <<set $activeSlave.skill.vaginal = 0>> <<set $activeSlave.skill.oral = 0>> @@ -162,7 +164,9 @@ You lead your lurcher _activeLurcher.slaveName out on a leash, naked just like t <<set $activeSlave.anus = 1>> <<set $activeSlave.vagina = 1>> <<set $activeSlave.counter.anal += 1, $analTotal += 1>> - <<set $activeSlave.preg = -1>> + <<if $activeSlave.pubertyXX > 0>> + <<set $activeSlave.preg = -1>> + <</if>> <<set $activeSlave.ovaries = 1>> <<set $activeSlave.skill.vaginal = 15>> <<set $activeSlave.skill.oral = 15>>