From 23fca23df8b6032630c505c7fa3499f2d92dda74 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Thu, 27 Dec 2018 09:29:35 -0500
Subject: [PATCH] cloning

---
 devNotes/VersionChangeLog-Premod+LoliMod.txt |  6 +++++
 devNotes/twine JS.txt                        |  1 +
 src/js/slaveSummaryWidgets.tw                | 14 ++++++++++
 src/pregmod/geneLab.tw                       |  2 --
 src/utility/extendedFamilyWidgets.tw         | 28 +++++++++++++++++---
 5 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 787ce37a2e9..1b808306d5b 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,6 +2,12 @@
 
 0.10.7.1-1.4.x
 
+12/27/2018
+
+	3
+	-added cloning
+	-fixes
+
 12/23/2018
 
 	2
diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 0f2fd0992af..6eae6fab4b0 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -10307,6 +10307,7 @@ window.generateGenetics = (function() {
 		let dadSkinIndex = father !== 0 ? (skinToMelanin[father.origSkin] || 11) : 8;
 		let skinIndex = Math.round(Math.random() * (dadSkinIndex - momSkinIndex) + momSkinIndex);
 		return [
+			'pure white',
 			'pure white',
 			'extremely pale',
 			'pale',
diff --git a/src/js/slaveSummaryWidgets.tw b/src/js/slaveSummaryWidgets.tw
index 44788270923..1cb9a8bedf9 100644
--- a/src/js/slaveSummaryWidgets.tw
+++ b/src/js/slaveSummaryWidgets.tw
@@ -232,12 +232,14 @@ window.SlaveSummaryUncached = (function(){
 			else
 				short_legacy_family(slave);
 			r += `</span>`;
+			short_clone(slave);
 			short_rival(slave);
 		} else if (V.abbreviateMental === 2) {
 			if (V.familyTesting === 1)
 				long_extended_family(slave);
 			else
 				long_legacy_family(slave);
+			long_clone(slave);
 			long_rival(slave);
 		}
 		if (slave.fuckdoll === 0) {
@@ -3848,6 +3850,12 @@ window.SlaveSummaryUncached = (function(){
 		}
 	}
 
+	function short_clone(slave) {
+		if (slave.clone != 0) {
+			r += ` Clone`;
+		}
+	}
+
 	function short_rival(slave) {
 		if (slave.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
@@ -4037,6 +4045,12 @@ window.SlaveSummaryUncached = (function(){
 		}
 	}
 
+	function long_clone(slave) {
+		if (slave.clone != 0) {
+			r += ` <span class="skyblue">Clone of ${slave.clone}.</span>`;
+		}
+	}
+
 	function long_rival(slave) {
 		if (slave.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
diff --git a/src/pregmod/geneLab.tw b/src/pregmod/geneLab.tw
index c5feb381bff..e4f28b253dc 100644
--- a/src/pregmod/geneLab.tw
+++ b/src/pregmod/geneLab.tw
@@ -13,7 +13,6 @@ The Gene Lab
 Genetic Harvesting
 <hr>
 
-<<if $cheatMode == 1>>
 <<if ($cloningSystem != 1) && ($rep <= 18000*_PCSkillCheck)>>
 	//You lack the reputation needed to access methods for human cloning//
 	<br>
@@ -30,5 +29,4 @@ Genetic Harvesting
 <<elseif ($cloningSystem > 0)>>
 	The gene lab is capable of implanting a slave's genetic sequence into a blank embryo to produce a basic clone.
 	<br>
-<</if>>
 <</if>>
\ No newline at end of file
diff --git a/src/utility/extendedFamilyWidgets.tw b/src/utility/extendedFamilyWidgets.tw
index 3d9c6baa868..58b167f26db 100644
--- a/src/utility/extendedFamilyWidgets.tw
+++ b/src/utility/extendedFamilyWidgets.tw
@@ -586,7 +586,7 @@
 <</if>>
 
 /*testtest PC sister passages - determines how many sisters you have*/
-<<if areSisters($activeSlave, $PC) < 3 && areSisters($activeSlave, $PC) > 0 && $activeSlave.genes == "XX">>
+<<if areSisters($activeSlave, $PC) < 3 && areSisters($activeSlave, $PC) > 0 && $activeSlave.genes == "XX" && $activeSlave.cloneID != -1>>
 	$He
 	<<if _sisters.length > 1>>
 		@@.lightgreen;is your sister along with <<print _sisters.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
@@ -598,7 +598,7 @@
 <</if>>
 
 /*testtest PC brother passages - determines how many brothers you have*/
-<<if areSisters($activeSlave, $PC) < 3 && areSisters($activeSlave, $PC) > 0 && $activeSlave.genes == "XY">>
+<<if areSisters($activeSlave, $PC) < 3 && areSisters($activeSlave, $PC) > 0 && $activeSlave.genes == "XY" && $activeSlave.cloneID != -1>>
 	$He
 	<<if _brothers.length > 1>>
 		@@.lightgreen;is your brother along with <<print _brothers.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
@@ -650,7 +650,7 @@
 	<<if _sisters.length > 1>>
 		@@.lightgreen;<<print _sisters.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>> are $his sisters.@@
 	<<else>>
-		@@.lightgreen; _sisters[0].slaveName is $his sister.@@
+		@@.lightgreen; _sisters[0].slaveName is $his sister<<if $activeSlave.cloneID == _sisters[0].ID>>-clone<</if>>.@@
 	<</if>>
 <</if>>
 
@@ -659,7 +659,7 @@
 	<<if _brothers.length > 1>>
 		@@.lightgreen;<<print _brothers.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>> are $his brothers.@@
 	<<else>>
-		@@.lightgreen;_brothers[0].slaveName is $his brother.@@
+		@@.lightgreen;_brothers[0].slaveName is $his brother<<if $activeSlave.cloneID == _sisters[0].ID>>-clone<</if>>.@@
 	<</if>>
 <</if>>
 
@@ -699,6 +699,15 @@
 	@@.lightgreen;_children[0].slaveName is a half-brother to $him.@@
 <</if>>
 
+<<if $activeSlave.clone != 0>>
+	$He is
+	<<if $activeSlave.cloneID == -1>>
+		your clone.
+	<<else>>
+		 a clone of $activeSlave.clone.
+	<</if>>
+<</if>>
+
 <<if $cheatMode == 1>>
 	$activeSlave.sisters sisters, $activeSlave.daughters daughters.
 <</if>>
@@ -866,6 +875,17 @@
 <</if>>
 <<set $children = []>>
 
+/*
+<<if $PC.clone != 0>>
+	<br>You are a clone of
+	<<if $activeSlave.cloneID == -1>>
+		yourself.
+	<<else>>
+		 $PC.clone.
+	<</if>>
+<</if>>
+*/
+
 /*Player is Father, lists children you fathered*/
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $PC.ID == $slaves[$i].father>>
-- 
GitLab