diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index d3fb52c80700b61708d95625e74b5dee680e6494..5b6b24408d5a4c99dae2ec48563b6b11371d7ba9 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -13,6 +13,7 @@ Pregmod -RA can now manage basic abortions -added abortion tracking tattoos -added bulk incubator retrieval + -added "pFace" and "uFace" genetic traits -fixes 0.10.7.1-2.1.x diff --git a/devNotes/twine CSS b/devNotes/twine CSS index c4d4e15ab984871a01727c3ec449e86ac31b4eb0..2e3bf0334933c7400fff449a562245cff474fe57 100644 --- a/devNotes/twine CSS +++ b/devNotes/twine CSS @@ -371,6 +371,17 @@ button.accordion.active:before { overflow: hidden; } +div.accordion:before { + content: '\002B'; + color: #777; + font-weight: bold; + float: left; + margin-right: 5px; +} +div.accordion.active:before { + content: "\2212"; +} + /* begin efmCSS */ #graph .linage { diff --git a/src/cheats/mod_EditFSCheat.tw b/src/cheats/mod_EditFSCheat.tw index e9d95ac122e579d19ae1d70f9217cb0920eceb60..434a64cf002347a1cacf655a8d7c414c462e2fee 100644 --- a/src/cheats/mod_EditFSCheat.tw +++ b/src/cheats/mod_EditFSCheat.tw @@ -264,9 +264,9 @@ <br><<radiobutton "$arcologies[0].FSTransformationFetishistDecoration" 80>> 80 (Slaves stationed in public spaces.) <br><<radiobutton "$arcologies[0].FSTransformationFetishistDecoration" 100>> 100 (Remodeled exterior; Fully customized.) - <br>Law: $arcologies[0].FSTransformationFetishistLaw | - <<radiobutton "$arcologies[0].FSTransformationFetishistLaw" 0>> 0 (Not passed.) - | <<radiobutton "$arcologies[0].FSTransformationFetishistLaw" 1>> 1 (Passed.) + <br>Law: $arcologies[0].FSTransformationFetishistSMR | + <<radiobutton "$arcologies[0].FSTransformationFetishistSMR" 0>> 0 (Not passed.) + | <<radiobutton "$arcologies[0].FSTransformationFetishistSMR" 1>> 1 (Passed.) <br>[[Apply and reset Body Purism|MOD_Edit FS Cheat][removeFS("FSBodyPurist")]] diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw index e01e8a82ddcb63281fadc52e906fbe0f845aebe9..15f56987d291a60d99dfc1f0dbb8dbe34b1899c3 100644 --- a/src/events/intro/initNationalities.tw +++ b/src/events/intro/initNationalities.tw @@ -182,7 +182,6 @@ <<set $arcologies[0].FSDegradationistSMR = 0>> <<set $arcologies[0].FSBodyPuristLaw = 0>> <<set $arcologies[0].FSBodyPuristSMR = 0>> -<<set $arcologies[0].FSTransformationFetishistLaw = 0>> <<set $arcologies[0].FSTransformationFetishistSMR = 0>> <<set $arcologies[0].FSYouthPreferentialistLaw = 0>> <<set $arcologies[0].FSYouthPreferentialistSMR = 0>> diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js index 169ad39198ec109da1b5433dff97b887906212e0..70947a096ed063adc1c91fd775369bc44fc9e507 100644 --- a/src/js/generateGenetics.js +++ b/src/js/generateGenetics.js @@ -62,10 +62,11 @@ window.generateGenetics = (function() { genes.father = setFatherID(actor2); genes.fatherName = setFatherName(father, activeFather, actor2); genes.nationality = setNationality(father, mother); + genes.geneticQuirks = setGeneticQuirks(father, mother, genes.gender); genes.skin = setSkin(father, mother); genes.race = setRace(father, mother, actor2); genes.intelligence = setIntelligence(father, mother, activeMother, actor2); - genes.face = setFace(father, mother, activeMother, actor2); + genes.face = setFace(father, mother, activeMother, actor2, genes.geneticQuirks); genes.faceShape = setFaceShape(father, mother); genes.eyeColor = setEyeColor(father, mother, actor2); genes.hColor = setHColor(father, mother, actor2); @@ -75,7 +76,6 @@ window.generateGenetics = (function() { genes.sexualFlaw = setSexualFlaw(father, mother); genes.behavioralFlaw = setBehavioralFlaw(father, mother); genes.fetish = setFetish(father, mother); - genes.geneticQuirks = setGeneticQuirks(father, mother, genes.gender); return genes; } @@ -449,9 +449,15 @@ window.generateGenetics = (function() { } //face - function setFace(father, mother, activeMother, actor2) { + function setFace(father, mother, activeMother, actor2, genes) { let face; - if (mother.ID === -1) { + if (genes.pFace > 0 && genes.uFace > 0) { + face = 0; + } else if (genes.pFace > 0) { + face = 100; + } else if (genes.uFace > 0) { + face = -100; + } else if (mother.ID === -1) { if (actor2 === -6) { face = jsRandom(90,100); } else if (father !== 0) { @@ -478,7 +484,7 @@ window.generateGenetics = (function() { } else { face = mother.face; } - if (V.inbreeding === 1) { + if (V.inbreeding === 1 && genes.pFace === 0 && genes.uFace === 0) { if (mother.ID !== -1) { if (father !== 0 && father.ID === -1 && activeMother.breedingMark !== 1) { if (face > -100 && jsRandom(1,100) > 60) { @@ -621,6 +627,28 @@ window.generateGenetics = (function() { } } } + + //perfect face + if (father !== 0) { + if (mother.geneticQuirks.pFace + father.geneticQuirks.pFace >= 4) { + quirks.pFace = 2; + } else if (mother.geneticQuirks.pFace === 2 || father.geneticQuirks.pFace === 2) { + quirks.pFace = 1; + } + } else if (mother.geneticQuirks.pFace === 2) { + quirks.pFace = 1; + } + + //ugly face + if (father !== 0) { + if (mother.geneticQuirks.uFace + father.geneticQuirks.uFace >= 4) { + quirks.uFace = 2; + } else if (mother.geneticQuirks.uFace === 2 || father.geneticQuirks.uFace === 2) { + quirks.uFace = 1; + } + } else if (mother.geneticQuirks.uFace === 2) { + quirks.uFace = 1; + } return clone(quirks); } diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js index 16bd8542138491eb3444c99b78ce69ff81b8eea6..95d513e927d03d5cbf78b61a0381eed56ebf5b21 100644 --- a/src/js/generateNewSlaveJS.js +++ b/src/js/generateNewSlaveJS.js @@ -853,6 +853,11 @@ window.GenerateNewSlave = (function(){ case "masculine": slave.face += jsRandom(-10,0); } + if (slave.face >= 100 && slave.face >= jsRandom(-100000,100)) { + slave.geneticQuirks.pFace = 2; + } else if (slave.face <= -100 && slave.face <= jsRandom(-100,100000)) { + slave.geneticQuirks.uFace = 2; + } } function generateXYFace() { @@ -892,6 +897,11 @@ window.GenerateNewSlave = (function(){ case "masculine": slave.face += jsRandom(-10,0); } + if (slave.face >= 100 && slave.face >= jsRandom(-100000,100)) { + slave.geneticQuirks.pFace = 2; + } else if (slave.face <= -100 && slave.face <= jsRandom(-100,100000)) { + slave.geneticQuirks.uFace = 2; + } } function generateXXPregAdaptation() { diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw index 85debf228ead78b84226b41521efa118d99e844e..05113cef22bb2f74580c0fa5058347382d56a99b 100644 --- a/src/uncategorized/arcmgmt.tw +++ b/src/uncategorized/arcmgmt.tw @@ -1011,7 +1011,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> <<if $arcologies[0].FSPaternalistLaw == 1>>The slaves are well cared for, and it can sometimes be difficult to tell slaves from citizens. <<elseif $arcologies[0].FSDegradationistLaw == 1>>Most of the slaves are recent captures, since the vicious society that's taken root here uses people up quickly.<</if>> <<if $arcologies[0].FSBodyPuristLaw == 1>>The average slave is quite healthy. -<<elseif $arcologies[0].FSTransformationFetishistLaw == 1>> +<<elseif $arcologies[0].FSTransformationFetishistSMR == 1>> <<if $arcologies[0].FSTransformationFetishistResearch == 1>> Breast implants are almost universal; <<if $arcologies[0].FSSlimnessEnthusiast == "unset">>an M-cup bust is below average among the slave population<<else>>even the most lithe slave sports a pair of overly round chest balloons<</if>>. <<else>> diff --git a/src/uncategorized/arcologyDescription.tw b/src/uncategorized/arcologyDescription.tw index 1330f5211e721142973f58f9dcbc0035066631bf..3f4101438a97ea5acd3f262242079bc6be2ebba3 100644 --- a/src/uncategorized/arcologyDescription.tw +++ b/src/uncategorized/arcologyDescription.tw @@ -628,7 +628,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el <<if $arcologies[0].FSPaternalistLaw == 1>>The slaves are well cared for, and it can sometimes be difficult to tell slaves from citizens. <<elseif $arcologies[0].FSDegradationistLaw == 1>>Most of the slaves are recent captures, since the vicious society that's taken root here uses people up quickly.<</if>> <<if $arcologies[0].FSBodyPuristLaw == 1>>The average slave is quite healthy. -<<elseif $arcologies[0].FSTransformationFetishistLaw == 1>> +<<elseif $arcologies[0].FSTransformationFetishistSMR == 1>> <<if $arcologies[0].FSTransformationFetishistResearch == 1>> Breast implants are almost universal; <<if $arcologies[0].FSSlimnessEnthusiast == "unset">>an M-cup bust is below average among the slave population<<else>>even the most lithe slave sports a pair of overly round chest balloons<</if>>. <<else>> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 70d25de441a9f79f48acf4118258caec089d6fe5..0ae78fc2bab676764af5a15437d4f223ab1f6772 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -1325,6 +1325,14 @@ $He has //$He already has received the plasticity increasing elasticity treatment// <</if>> <</if>> + <<if $activeSlave.geneticQuirks.pFace == 2>> + <br> + [[Prevent passing of perfect faces|Surgery Degradation][$activeSlave.geneticQuirks.pFace = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave), $activeSlave.health -= 40, $activeSlave.chem += 100,$surgeryType = "gene treatment"]] + <</if>> + <<if $activeSlave.geneticQuirks.uFace == 2>> + <br> + [[Prevent passing of hideous faces|Surgery Degradation][$activeSlave.geneticQuirks.uFace = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave), $activeSlave.health -= 40, $activeSlave.chem += 100,$surgeryType = "gene treatment"]] + <</if>> <<if $activeSlave.geneticQuirks.hyperFertility == 2>> <br> [[Correct genetic hyper fertility|Surgery Degradation][$activeSlave.geneticQuirks.hyperFertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave), $activeSlave.health -= 40, $activeSlave.chem += 100,$surgeryType = "gene treatment"]] diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw index 5d22b2e77889e57947222cf2b264c8a0e288bdb5..35c9159533d7b256fb54a5ee5297e494d9df897f 100644 --- a/src/utility/descriptionWidgets.tw +++ b/src/utility/descriptionWidgets.tw @@ -258,6 +258,14 @@ <<widget "geneticQuirkAssessment">> <<if $geneticMappingUpgrade == 1>> + <<if $activeSlave.geneticQuirks.pFace == 2>> + $He has an exceedingly rare trait associated with perfect facial beauty. + <<if $activeSlave.geneticQuirks.uFace == 2>> + Oddly enough, $he also possesses a conflicting trait for raw uglyness; the two average each other out. + <</if>> + <<elseif $activeSlave.geneticQuirks.uFace == 2>> + $He has an exceedingly rare trait associated with some of the ugliest mugs in history. + <</if>> <<if $activeSlave.geneticQuirks.fertility == 2 && $activeSlave.geneticQuirks.hyperFertility == 2>> $He has a unique genetic condition resulting in inhumanly high <<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1>>