diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index e3fa0e0b2fae264d53ffde31beb350b36ce2eed5..c0692bc0f94c1fcf5844a588a74e15c1fb4de283 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 8b565adae01fc363914756ac81c9e55beec6adcb..05a4385340ec1cde4b2b0573bc66e719f37e026f 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -1008,7 +1008,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 0bda43a6d0514d9952b5887b240c41b42c5d86a9..1e3f9a35a131c8dfdb107b104b64bcaa485402e4 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/generateRelatedSlave.js b/src/js/generateRelatedSlave.js index 4707f55d938e4cf5e7b59d8062357c9a592b89af..ddee56275bb7a1e51adef834c8424e14e1bacef9 100644 --- a/src/js/generateRelatedSlave.js +++ b/src/js/generateRelatedSlave.js @@ -303,6 +303,10 @@ globalThis.generateRelatedSlave = (function() { } SetBellySize(slave); + if (slave.ovaries === 1 && slave.pubertyXX === 0 && slave.preg === -1) { + slave.preg = 0; // take prepubescent slaves off contraceptives + } + // reset lactation slave.lactation = 0; slave.lactationDuration = 0; 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>>