From 9e22b9e0477e4fd17f7a0205deaa5fd54704a9e1 Mon Sep 17 00:00:00 2001
From: pregmodfan <pregmodfan@cock.li>
Date: Sun, 18 Jun 2017 02:39:23 +0300
Subject: [PATCH] individual body parts size settings for RA (initial mechanic)

---
 src/js/raSelectorJS.tw              | 70 +++++++++++++++++++++++++++++
 src/uncategorized/rulesAssistant.tw | 50 ++++++++++++++-------
 src/utility/raWidgets.tw            |  4 +-
 3 files changed, 108 insertions(+), 16 deletions(-)
 create mode 100644 src/js/raSelectorJS.tw

diff --git a/src/js/raSelectorJS.tw b/src/js/raSelectorJS.tw
new file mode 100644
index 00000000000..b5590a99ea3
--- /dev/null
+++ b/src/js/raSelectorJS.tw
@@ -0,0 +1,70 @@
+:: RA Selector JS [script]
+
+window.growAdvSelector = function(slave, rule) {
+
+	var ret = "";
+	var setd = 0;
+
+	if ((rule.breastSize == "small" && slave.boobs < 350) ||
+		(rule.breastSize == "c-cup" && slave.boobs < 550) ||
+		(rule.breastSize == "f-cup" && slave.boobs < 1100) ||
+		(rule.breastSize == "k-cup" && slave.boobs < 2150) ||
+		(rule.breastSize == "p-cup" && slave.boobs < 3700) ||
+		(rule.breastSize == "unlimited" && slave.boobs < 24000))	
+	{ 
+		slave.drugs = "breast injections"; 
+		ret = slave.slaveName + "'s boobs could be bigger, so she's been put on breast injections.";
+		return ret;
+	}
+	
+	if ((rule.buttSize == "small" && slave.butt < 1) ||
+		(rule.buttSize == "plump" && slave.butt < 3) ||
+		(rule.buttSize == "huge" && slave.butt < 4) ||
+		(rule.buttSize == "enormous" && slave.butt < 6) ||
+		(rule.buttSize == "unlimited" && slave.butt < 19))	
+	{ 
+		slave.drugs = "butt injections"; 
+		ret = slave.slaveName + "'s butt could be bigger, so she's been put on butt injections.";
+		return ret;
+	}
+
+	if ((rule.ballSize == "small" && slave.balls < 2) ||
+		(rule.ballSize == "big" && slave.balls < 4) ||
+		(rule.ballSize == "huge" && slave.balls < 6) ||
+		(rule.ballSize == "unlimited" && slave.balls < 9))	
+	{ 
+		slave.drugs = "testicle enhancement"; 
+		ret = slave.slaveName + "'s balls aren't large enough, so she's been put on testicle enhancement.";
+		return ret;
+	}
+
+	if ((rule.penisSize == "small" && slave.dick < 2) ||
+		(rule.penisSize == "big" && slave.dick < 4) ||
+		(rule.penisSize == "huge" && slave.dick < 6) ||
+		(rule.penisSize == "unlimited" && slave.dick < 12))	
+	{ 
+		slave.drugs = "penis enhancement"; 
+		ret = slave.slaveName + "'s dick aren't large enough, so she's been put on penis enhancement.";
+		return ret;
+	}
+
+	if ((rule.lipSize == "normal" && slave.lips < 15) ||
+		(rule.lipSize == "pretty" && slave.lips < 30) ||
+		(rule.lipSize == "plush" && slave.lips < 55) ||
+		(rule.lipSize == "huge" && slave.lips < 85) ||
+		(rule.lipSize == "facepussy" && slave.lips < 99))	
+	{ 
+		slave.drugs = "lip injections"; 
+		ret = slave.slaveName + "'s lips aren't large enough, so she's been put on lips enhancement.";
+		return ret;
+	}
+
+	if (slave.drugs != "no drugs")
+	{
+		slave.drugs = "no drugs";
+		ret = slave.slaveName + " has reached growth targets and has been taken off growth injections.";
+	}
+
+	return ret;
+
+}
\ No newline at end of file
diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw
index f755cc7b28e..8eafebd4a20 100644
--- a/src/uncategorized/rulesAssistant.tw
+++ b/src/uncategorized/rulesAssistant.tw
@@ -1381,7 +1381,7 @@ Growth hormones for healthy slaves:
 <<elseif $currentRule.growth == "unlimited">>
 	''no limits.''
 <<elseif $currentRule.growth == "advSelect">>
-	''advanced selection of individual body parts.''
+	''advanced selection for individual body parts.''
 <<else>>
 	''no default setting.''
 <</if>>
@@ -1445,27 +1445,47 @@ Please select desired body parts sizes (growth only) <br>
 Breasts: 
 No growth <<rbutton "$currentRule.breastSize" "none">> | 
 Girlish <<rbutton "$currentRule.breastSize" "small">> |
-Stacked <<rbutton "$currentRule.breastSize" "big">> |
-Huge <<rbutton "$currentRule.breastSize" "huge">>
+C-cup <<rbutton "$currentRule.breastSize" "c-cup">> |
+F-cup <<rbutton "$currentRule.breastSize" "f-cup">> | 
+K-cup <<rbutton "$currentRule.breastSize" "k-cup">> | 
+P-cup <<rbutton "$currentRule.breastSize" "p-cup">> | 
+Unlimited <<rbutton "$currentRule.breastSize" "unlimited">>
 <br>
-<span id="testID">+++Test block+++</span>
+
 Butt: 
 No growth <<rbutton "$currentRule.buttSize" "none">> | 
-Girlish <<rbutton "$currentRule.buttSize" "small">> |
-Stacked <<rbutton "$currentRule.buttSize" "big">> |
-Huge <<rbutton "$currentRule.buttSize" "huge">>
-Test <<rbutton "$currentRule.buttSize" "test" "testID" "Test description for replace <br> <br>">>
-Test2 <<rbutton "$currentRule.buttSize" "test2" "testID" "Test description 2 for replace <br> <br>">>
+Small <<rbutton "$currentRule.buttSize" "small">> |
+Plump <<rbutton "$currentRule.buttSize" "plump">> |
+Huge <<rbutton "$currentRule.buttSize" "huge">> | 
+Enormous <<rbutton "$currentRule.buttSize" "enormous">> | 
+Unlimited <<rbutton "$currentRule.buttSize" "unlimited">>
 <br>
 
-/*
 Lips: 
-No growth <<if $currentRule.breastSize == "none">><<radiobutton "$currentRule.breastSize" "none" checked>><<else>><<radiobutton "$currentRule.breastSize" "none">><</if>> | 
-Girlish <<if $currentRule.breastSize == "small">><<radiobutton "$currentRule.breastSize" "small" checked>><<else>><<radiobutton "$currentRule.breastSize" "small">><</if>> |
-Stacked <<if $currentRule.breastSize == "big">><<radiobutton "$currentRule.breastSize" "big" checked>><<else>><<radiobutton "$currentRule.breastSize" "big">><</if>> |
-Huge <<if $currentRule.breastSize == "huge">><<radiobutton "$currentRule.breastSize" "huge" checked>><<else>><<radiobutton "$currentRule.breastSize" "huge">><</if>>
+No growth <<rbutton "$currentRule.lipSize" "none">> | 
+Normal <<rbutton "$currentRule.lipSize" "normal">> |
+Pretty <<rbutton "$currentRule.lipSize" "pretty">> |
+Plush <<rbutton "$currentRule.lipSize" "plush">> | 
+Huge <<rbutton "$currentRule.lipSize" "huge">> | 
+Facepussy <<rbutton "$currentRule.lipSize" "facepussy">>
+<br>
+
+Balls: 
+No growth <<rbutton "$currentRule.ballSize" "none">> | 
+Normal <<rbutton "$currentRule.ballSize" "small">> |
+Big <<rbutton "$currentRule.ballSize" "big">> |
+Huge <<rbutton "$currentRule.ballSize" "huge">> | 
+Unlimited <<rbutton "$currentRule.ballSize" "unlimited">>
 <br>
-*/
+
+Penis: 
+No growth <<rbutton "$currentRule.penisSize" "none">> | 
+Normal <<rbutton "$currentRule.penisSize" "small">> |
+Big <<rbutton "$currentRule.penisSize" "big">> |
+Huge <<rbutton "$currentRule.penisSize" "huge">> | 
+Unlimited <<rbutton "$currentRule.penisSize" "unlimited">>
+<br>
+
 
 </div>
 <<timed 40ms>>
diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index 527feed0966..23d291a5362 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -2022,7 +2022,7 @@ Growth hormones for healthy slaves:
 <<elseif $currentRule.growth == "unlimited">>
 	''no limits.''
 <<elseif $currentRule.growth == "advSelect">>
-	''advanced selection of individual body parts.''
+	''advanced selection for individual body parts.''
 <<elseif $currentRule.growth == "none">>
 	''none.''
 <<else>>
@@ -3845,6 +3845,8 @@ check if a rule attribute, any one, is defined and otherwise skip everything.
 		<<set $args[0].drugs = "no drugs">>
 		<br>$args[0].slaveName has reached growth targets and has been taken off growth injections.
 	<</if>>
+<<elseif (_combinedRule.growth == "advSelect")>>
+	<br><<print growAdvSelector($args[0], _combinedRule)>>
 <<else>>
 	<<if ($args[0].hips > -1) && ($args[0].butt < 6) && ($args[0].butt < ($args[0].boobs/500))>>
 		<<set $args[0].drugs = "butt injections">>
-- 
GitLab