From a90f2c3b22c03ecbac361b9ab29699e5c0df1e9b Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Sun, 23 Feb 2020 13:12:59 -0500
Subject: [PATCH] experimental setting

---
 src/arcologyBuilding/manufacturing.js       |  2 +-
 src/init/storyInit.tw                       |  6 +++
 src/pregmod/organFarm.tw                    |  2 +-
 src/uncategorized/BackwardsCompatibility.tw |  8 ++++
 src/uncategorized/manageArcology.tw         |  2 +-
 src/uncategorized/managePenthouse.tw        | 18 ++++-----
 src/uncategorized/nonRandomEvent.tw         |  2 +-
 src/uncategorized/options.tw                | 44 +++++++++++++++++++++
 8 files changed, 71 insertions(+), 13 deletions(-)

diff --git a/src/arcologyBuilding/manufacturing.js b/src/arcologyBuilding/manufacturing.js
index bac40cf7491..a29724021cf 100644
--- a/src/arcologyBuilding/manufacturing.js
+++ b/src/arcologyBuilding/manufacturing.js
@@ -196,7 +196,7 @@ App.Arcology.Cell.Manufacturing = class extends App.Arcology.Cell.BaseCell {
 				));
 			}
 
-			if (V.cheatMode === 1) {
+			if (V.experimental.food === 1) {
 				if (V.farmyard === 0) {
 					fragment.append(thisCell._makeUpgrade(
 						"Construct a farming facility to grow food for your arcology and house animals",
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 91dbffff340..6cdb9ae6ad1 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -1287,6 +1287,12 @@ You should have received a copy of the GNU General Public License along with thi
 
 <<set $cheatMode = 0>>
 <<set $cheatModeM = 1>>
+<<set $experimental = {
+	nursery: 0,
+	food: 0,
+	animalOvaries: 0,
+	dinnerParty: 0
+}>>
 <<set $NaNArray = []>>
 
 <<set $fcnn = []>>
diff --git a/src/pregmod/organFarm.tw b/src/pregmod/organFarm.tw
index ee9a5c6f477..63c37890bee 100644
--- a/src/pregmod/organFarm.tw
+++ b/src/pregmod/organFarm.tw
@@ -77,7 +77,7 @@
 		</div>
 	<</if>>
 
-	<<if $seePreg != 0 && $seeBestiality == 1 && $cheatMode == 1>>
+	<<if $seePreg != 0 && $seeBestiality == 1 && $experimental.animalOvaries == 1>>
 		<<if $farmyardLabUpgrades.animalOvaries > 0>>
 			<<if $animalOvaries < 1>>
 				<div class="note">
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index c235961c8f8..70b0f6adc7f 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -1387,6 +1387,14 @@
 <<if ndef $cheatModeM>>
 	<<set $cheatModeM = 1>>
 <</if>>
+<<if ndef $experimental>>
+	<<set $experimental = {
+		nursery: 0,
+		food: 0,
+		animalOvaries: 0,
+		dinnerParty: 0
+	}>>
+<</if>>
 <<if ndef $MercenariesMessageSent>>
 	<<set $MercenariesMessageSent = 0>>
 <</if>>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index b385cf29d8a..896280bfdda 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -521,7 +521,7 @@
 	Your arcology is named <<textbox "$arcologies[0].name" $arcologies[0].name "Manage Arcology">>
 </p>
 
-<<if $cheatMode == 1 && $seeExtreme == 1>>
+<<if $experimental.dinnerParty == 1 && $seeExtreme == 1>>
 	<p>
 		[[Host Dinner Party|Dinner Party Preparations]]
 	</p>
diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw
index 938219a7896..f59c83755ff 100644
--- a/src/uncategorized/managePenthouse.tw
+++ b/src/uncategorized/managePenthouse.tw
@@ -88,15 +88,15 @@
 	</div>
 
 	<<if $familyTesting == 1 && $seePreg != 0>>
-		<<if $cheatMode == 1>>
-		<div>
-		<<if $nursery == 0>>
-			[[Build a nursery to raise children from birth|Manage Penthouse][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $nursery = 5, $nurseryNannies = 1, $PC.skill.engineering += 1]]
-			<span class="detail">Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>></span>
-		<<else>>
-				The penthouse has a nursery built where infants can be brought up.
-		<</if>>
-		</div>
+		<<if $experimental.nursery == 1>>
+			<div>
+				<<if $nursery == 0>>
+					[[Build a nursery to raise children from birth|Manage Penthouse][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $nursery = 5, $nurseryNannies = 1, $PC.skill.engineering += 1]]
+					<span class="detail">Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>></span>
+				<<else>>
+						The penthouse has a nursery built where infants can be brought up.
+				<</if>>
+			</div>
 		<</if>>
 	<</if>>
 
diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw
index af321d54b07..aa9f340454b 100644
--- a/src/uncategorized/nonRandomEvent.tw
+++ b/src/uncategorized/nonRandomEvent.tw
@@ -60,7 +60,7 @@
 	<</if>>
 <<elseif (_effectiveWeek == 46) && ($mercenaries > 0)>>
 	<<goto "P raid invitation">>
-<<elseif (_effectiveWeek == 48) && ($cheatMode == 1)>>
+<<elseif (_effectiveWeek == 48) && ($experimental.food == 1)>>
 	<<set $foodCrisis = 1>>
 	<<goto "P food crisis">>
 <<elseif (_effectiveWeek == 50) && ($rations > 0)>>
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index 18ec7934246..1aa47da9f91 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -90,6 +90,7 @@ This save was created using FC version $ver build $releaseID.
 <button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'CONTENT&FLAVOR')" id="tab CONTENT&FLAVOR">Content & flavour</button>
 <button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'MODS')" id="tab MODS">Mods</button>
 <button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'DEBUG/CHEATING')" id="tab DEBUG/CHEATING">Debug/cheating</button>
+<button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'Experimental')" id="tab Experimental">Experimental</button>
 <br>
 
 <div id="Display" class="tabcontent">
@@ -1033,3 +1034,46 @@ This save was created using FC version $ver build $releaseID.
 		<</if>>
 	</div>
 </div>
+
+<div id="Experimental" class="tabcontent">
+	<div class="subHeading" style="fontWeight:bold">
+		Experimental means just that: experimental.  Options below are likely to be in an <span class="yellow">even more incomplete or broken state than usual.</span>  <span class="red">THEY MAY NOT WORK AT ALL.</span>  Make sure you back up your save before enabling any of these, and if you are that interested, consider helping to improve them.
+	</div>
+	<<if $pedo_mode === 1>>
+		<<options $experimental.nursery>>
+			Nursery is
+			<<option 1 "Enabled">>
+			<<option 0 "Disabled">>
+			<<comment>>
+			This will enable the experimental nursery, which allows players to interact with growing slave children.  An alternative to the incubator.
+		<</options>>
+	<</if>>
+
+	<<options $experimental.food>>
+		Food is
+		<<option 1 "Enabled">>
+		<<option 0 "Disabled">>
+		<<comment>>
+		This will enable the experimental food supply and demand system, as well as a new farmyard building and assignments.
+	<</options>>
+
+	<<if $seeExtreme === 1 && $seeBestiality === 1>>
+		<<options $experimental.animalOvaries>>
+			Animal Ovaries
+			<<option 1 "Enabled">>
+			<<option 0 "Disabled">>
+			<<comment>>
+			This will allow slaves to be impregnated by animals.
+		<</options>>
+	<</if>>
+
+	<<if $seeExtreme === 1>>
+		<<options $experimental.dinnerParty>>
+			Dinner party
+			<<option 1 "Enabled">>
+			<<option 0 "Disabled">>
+			<<comment>>
+			This will enable a controversial but very broken event.  Warning: Snuff, cannibalism.
+		<</options>>
+	<</if>>
+</div>
-- 
GitLab