From f82b608434448653021ed9a4c0a786ebeb47fca7 Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Mon, 11 May 2020 12:54:52 -0700 Subject: [PATCH] Fix first period event trigger. Prepubescent slaves should not be on contraceptives. --- .../backwardsCompatibility/datatypeCleanup.js | 3 +++ src/js/DefaultRules.js | 2 +- src/js/eventSelectionJS.js | 26 +++---------------- src/js/generateMarketSlave.js | 2 +- src/js/generateRelatedSlave.js | 4 +++ src/js/slaveGenerationJS.js | 3 +++ src/uncategorized/seCoursing.tw | 8 ++++-- 7 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index e3fa0e0b2fa..c0692bc0f94 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 8b565adae01..05a4385340e 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 0bda43a6d05..1e3f9a35a13 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 19bb229f68e..aa24346754e 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 4707f55d938..ddee56275bb 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 c724790fe76..59d8bff58ad 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 0882f6f0854..10aab1e74e2 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>> -- GitLab