From 4197b185586b8a4bb8f95cea35b0cfebc58fb916 Mon Sep 17 00:00:00 2001
From: Trashman1138 <11461-Trashman1138@users.noreply.gitgud.io>
Date: Sun, 7 Jul 2019 00:47:11 -0700
Subject: [PATCH] Revised asset growth/loss code

---
 src/uncategorized/saDiet.tw | 70 +++++++++++++++++++++++++++++--------
 1 file changed, 55 insertions(+), 15 deletions(-)

diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw
index 485c31af616..b11adede18d 100644
--- a/src/uncategorized/saDiet.tw
+++ b/src/uncategorized/saDiet.tw
@@ -1,7 +1,7 @@
 :: SA diet [nobr]
 
 /* quirk modifiers */
-<<set _rearQuirk = $slaves[$i].geneticQuirks.rearLipedema == 2 ? 2 : 0>>
+<<set _rearQuirk = $slaves[$i].geneticQuirks.rearLipedema == 2 ? 2 : 1>>
 <<set _gigantomastiaMod = $slaves[$i].geneticQuirks.gigantomastia == 2 ? ($slaves[$i].geneticQuirks.macromastia == 2 ? 3 : 2) : 1>>
 
 <<if $slaves[$i].fuckdoll == 0>>
@@ -124,22 +124,40 @@
 	<<else>>
 		<<set $slaves[$i].weight -= _weightLoss+($feeder*2)>>
 	<</if>>
-	<<if $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200 && _gigantomastiaMod != 3>>
-		<<if (($slaves[$i].geneMods.NCS == 0) && (random(1,_assetLoss*_gigantomastiaMod) <= 1+$feeder))>>
+	<<if $slaves[$i].hormoneBalance > 30>>		/* 'Expected' breast size based on weight for feminine-bodied slaves */
+		<<set _growthgoal = 100 + ($slaves[$i].weight + 100)*5*_gigantomastiaMod>>
+		<<set _roll = 100>>
+		<<set _target = Math.trunc(Math.clamp((_weightLoss + ($feeder*2))*10 + (($slaves[$i].boobs-$slaves[$i].boobsImplant) - _growthgoal)/10,0,90))>>
+	<<else>>		/* For masculine- and childish-bodied slaves */
+		<<set _growthgoal = ($slaves[$i].weight + 100)*2*_gigantomastiaMod>>
+		<<set _roll = 25>>
+		<<set _target = Math.trunc(Math.clamp(_weightLoss + ($feeder*2) + (($slaves[$i].boobs-$slaves[$i].boobsImplant) - _growthgoal)/40,0,23))>>
+	<</if>>
+	<<if random(1,_roll) <= _target && (_gigantomastiaMod != 3 && $slaves[$i].boobs >= 100)>>
+		<<if $slaves[$i].geneMods.NCS == 0>>
 			@@.orange;$His breasts get a little smaller.@@
 			<<set $slaves[$i].boobs -= 50>>
-		<<elseif (($slaves[$i].geneMods.NCS == 1) && (random(-_assetLoss, _assetLoss - 2) <= 1+$feeder))>>
+		<<else>>
 			@@.orange;$His breasts get smaller.@@
 			<<set $slaves[$i].boobs -= 100>>
 		<</if>>
 	<</if>>
-	<<if $slaves[$i].butt > 1>>
-		<<if (($slaves[$i].geneMods.NCS == 0) && (random(1,_assetLoss+_rearQuirk) <= 1+$feeder))>>
-			@@.orange;$His butt gets a little smaller.@@
-			<<set $slaves[$i].butt -= 1>>
-		<<elseif (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].butt > 2) && (random(-_assetLoss, _assetLoss - 2 + _rearQuirk) <= 1+$feeder))>>
+	<<if $slaves[$i].hormoneBalance > 30>>		/* 'Expected' butt size based on weight for feminine-bodied slaves, scaled up by 1000 */
+		<<set _growthgoal = ($slaves[$i].weight + 100)*25*_rearQuirk>>
+		<<set _roll = 40000>>
+		<<set _target = Math.trunc(Math.clamp((_weightGain + ($feeder*2))*1000 + (($slaves[$i].butt-$slaves[$i].buttImplant)*1000 - _growthgoal)*2,0,36000))>>
+	<<else>>		/* For masculine- and childish-bodied slaves, likewise scaled up */
+		<<set _growthgoal = Math.trunc(($slaves[$i].weight + 100)*12.5)*_rearQuirk>>
+		<<set _roll = 80000>>
+		<<set _target = Math.trunc(Math.clamp((_weightGain + ($feeder*2))*1000 + (($slaves[$i].butt-$slaves[$i].buttImplant)*1000 - _growthgoal)*4,0,72000))>>
+	<</if>>
+	<<if random(1,_roll) <= _target && $slaves[$i].butt > 0>>
+		<<if (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].butt > 2)>>
 			@@.orange;$His butt gets smaller.@@
 			<<set $slaves[$i].butt -= 2>>
+		<<else>>
+			@@.orange;$His butt gets a little smaller.@@
+			<<set $slaves[$i].butt -= 1>>
 		<</if>>
 	<</if>>
 	<<if ($slaves[$i].weight < -95)>>
@@ -315,7 +333,19 @@
 		<<else>>
 			<<set $slaves[$i].weight += _weightGain+($feeder*2)>>
 		<</if>>
-		<<if random(1,_assetGain) <= 1+$feeder>>
+		<<if $slaves[$i].hormoneBalance > 30>>		/* 'Expected' breast size based on weight for feminine-bodied slaves */
+			<<set _growthgoal = 100 + ($slaves[$i].weight + 100)*5*_gigantomastiaMod>>
+			<<set _roll = 100>>
+			<<set _target = Math.trunc(Math.clamp((_weightGain + ($feeder*2))*10 - (($slaves[$i].boobs-$slaves[$i].boobsImplant) - _growthgoal)/10,0,90))>>
+		<<else>>		/* For masculine- and childish-bodied slaves */
+			<<set _growthgoal = ($slaves[$i].weight + 100)*2*_gigantomastiaMod>>
+			<<set _roll = 25>>
+			<<set _target = Math.trunc(Math.clamp(_weightGain + ($feeder*2) - (($slaves[$i].boobs-$slaves[$i].boobsImplant) - _growthgoal)/40,0,23))>>
+		<</if>>
+		<<if ($slaves[$i].geneMods.NCS == 1)>>
+			<<set _roll = Math.trunc(_roll * 2)>>
+		<</if>>
+		<<if random(1,_roll) <= _target>>
 			@@.lime;$His breasts get a little bigger.@@
 			<<if ($slaves[$i].geneMods.NCS == 0)>>
 				<<set $slaves[$i].boobs += 50>>
@@ -323,11 +353,21 @@
 				<<set $slaves[$i].boobs += 25>>
 			<</if>>
 		<</if>>
-		<<if $slaves[$i].butt < 10>>
-			<<if random(1,_assetGain-_rearQuirk) <= 1+$feeder>>
-				@@.lime;$His butt gets a little bigger.@@
-				<<set $slaves[$i].butt += 1>>
-			<</if>>
+		<<if $slaves[$i].hormoneBalance > 30>>		/* 'Expected' butt size based on weight for feminine-bodied slaves, scaled up by 1000 */
+			<<set _growthgoal = ($slaves[$i].weight + 100)*25*_rearQuirk>>
+			<<set _roll = 40000>>
+			<<set _target = Math.trunc(Math.clamp((_weightGain + ($feeder*2))*1000 - (($slaves[$i].butt-$slaves[$i].buttImplant)*1000 - _growthgoal)*2,0,36000))>>
+		<<else>>		/* For masculine- and childish-bodied slaves, likewise scaled up */
+			<<set _growthgoal = Math.trunc(($slaves[$i].weight + 100)*12.5)*_rearQuirk>>
+			<<set _roll = 80000>>
+			<<set _target = Math.trunc(Math.clamp((_weightGain + ($feeder*2))*1000 - (($slaves[$i].butt-$slaves[$i].buttImplant)*1000 - _growthgoal)*4,0,72000))>>
+		<</if>>
+		<<if ($slaves[$i].geneMods.NCS == 1)>>
+			<<set _roll = Math.trunc(_roll * 2)>>
+		<</if>>
+		<<if random(1,_roll) <= _target>>
+			@@.lime;$His butt gets a little bigger.@@
+			<<set $slaves[$i].butt += 1>>
 		<</if>>
 		<<if $slaves[$i].weight > 200>>
 			$He is now quite fat, so $his diet @@.yellow;has defaulted to maintenance of this weight.@@
-- 
GitLab