From c28f5161420f22026292ff888ebd15f028078f90 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Sat, 30 Mar 2019 04:38:02 -0400 Subject: [PATCH] Superfetation work --- devNotes/VersionChangeLog-Premod+LoliMod.txt | 2 ++ src/js/pregJS.js | 30 ++++++++++++++++---- src/js/slaveStatsChecker.js | 12 ++++++-- src/uncategorized/nextWeek.tw | 14 +++++++++ 4 files changed, 50 insertions(+), 8 deletions(-) diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 30cd54b3c64..05d56cfe700 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -9,6 +9,8 @@ Pregmod -easier to passively gain slaving skill -added overalls outfit -UI changes + -slave data structural changes + -tanning and skin color tweaks -fixes -code cleaning diff --git a/src/js/pregJS.js b/src/js/pregJS.js index 29a15658211..8acc9918dea 100644 --- a/src/js/pregJS.js +++ b/src/js/pregJS.js @@ -382,6 +382,9 @@ window.setPregType = function(actor) { } } } + if (actor geneticQuirks.superfetation === 2 && actor.womb.length > 0) { + ovum = Math.ceiling(ovum / 4); + } return ovum; }; @@ -395,7 +398,12 @@ window.setPregType = function(actor) { */ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) { const V = State.variables; + const pronouns; let r = ""; + if (target.ID !== -1) { + pronouns = getPronouns(slave); + const He = capFirstChar(pronouns.pronoun); + } if (V.seePreg !== 0) { if (jsRandom(0,99) < (chance + (V.reproductionFormula*((target.pregSource <= 0) ? ((target.ID === -1) ? 0 : 10) : 20)))) { if (target.mpreg === hole) { @@ -416,10 +424,8 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) { target.pregKnown = 1; if (target.ID === -1) { /* r += "@@.lime;You have gotten pregnant.@@"; */ - } else if (target.fuckdoll === 0) { - r += "@@.lime;She has become pregnant.@@"; } else { - r += "@@.lime;It has become pregnant.@@"; + r += `<span class="lime">${He} has become pregnant.</span>`; } } else { target.pregKnown = 1; @@ -443,13 +449,25 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) { target.pregKnown = 1; if (target.ID === -1) { /* r += "@@.lime;You have gotten pregnant.@@"; */ - } else if (target.fuckdoll === 0) { - r += "@@.lime;She has become pregnant.@@"; } else { - r += "@@.lime;It has become pregnant.@@"; + r += `<span class="lime">${He} has become pregnant.</span>`; + } + if (target geneticQuirks.superfetation === 2 && target.womb.length > 0) { + if (V.seeHyperPreg === 1) { + target.fertPeak = 1; + } else { + target.fertPeak = jsRandom(10, 20); + } } } else { target.pregKnown = 1; + if (target geneticQuirks.superfetation === 2 && target.womb.length > 0) { + if (V.seeHyperPreg === 1) { + target.fertPeak = 1; + } else { + target.fertPeak = jsRandom(10, 20); + } + } } } } diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js index b88a492d73a..16ee9096abd 100644 --- a/src/js/slaveStatsChecker.js +++ b/src/js/slaveStatsChecker.js @@ -183,8 +183,6 @@ window.isFertile = function(slave) { if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2) { /* currently pregnant without superfetation */ return false; - } else if (slave.womb.length > 0) { /* temp failure condition to prevent current double preg bug */ - return false; } else if (slave.broodmother > 0) { /* currently broodmother */ return false; } else if (slave.preg < -1) { /* sterile */ @@ -200,8 +198,18 @@ window.isFertile = function(slave) { } else if (slave.bellyImplant !== -1) { return false; } else if (slave.mpreg === 1) { + if (slave.womb.length > 0) { // superfetation route + if (slave.fertPeak !== 0) { + return false; + } + } return true; /* pregmod end */ } else if (slave.ovaries === 1) { + if (slave.womb.length > 0) { // superfetation route + if (slave.fertPeak !== 0) { + return false; + } + } return true; } return false; diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index b1b4d7d45eb..42b71234f41 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -25,6 +25,13 @@ <</if>> <</if>> <</if>> +<<if $menstruation == 1>> +<<elseif $PC.geneticQuirks.superfetation == 2 && $PC.womb.length > 0>> + <<if $PC.fertPeak == 0>> + <<set $PC.fertPeak = 1>> + <</if>> + <<set $PC.fertPeak-->> +<</if>> /*Adding random changes to the economy*/ <<if $difficultySwitch == 1>> @@ -131,6 +138,13 @@ <<set $slaves[_i].boobs += $slaves[_i].boobsMilk>> <</if>> <</if>> + <<if $menstruation == 1>> + <<elseif $slaves[_i].geneticQuirks.superfetation == 2 && $slaves[_i].womb.length > 0>> + <<if $slaves[_i].fertPeak == 0>> + <<set $slaves[_i].fertPeak = 1>> + <</if>> + <<set $slaves[_i].fertPeak-->> + <</if>> <<set $slaves[_i].trust = Number($slaves[_i].trust.toFixed(1)), $slaves[_i].devotion = Number($slaves[_i].devotion.toFixed(1))>> <<set $slaves[_i].oldDevotion = $slaves[_i].devotion, $slaves[_i].oldTrust = $slaves[_i].trust, $slaves[_i].tired = 0, $slaves[_i].minorInjury = 0>> <<if $slaves[_i].sentence > 1>> -- GitLab