From d58b9070ee6363cdf1a5fb4d61212759080c2559 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sun, 18 Jun 2017 14:08:51 -0400
Subject: [PATCH] More weight work, changes to costs to reduce it for arcades
 and industrial dairies and fixes.

---
 src/js/economyJS.tw                           | 49 +++++-----
 src/npc/descriptions/fVagina.tw               | 89 ++++++++++---------
 src/uncategorized/costs.tw                    | 20 ++++-
 src/uncategorized/costsReport.tw              | 21 ++++-
 .../industrialDairyAssignmentScene.tw         | 12 +--
 src/uncategorized/pePitFight.tw               | 12 ++-
 src/uncategorized/seLethalPit.tw              | 24 +++--
 src/uncategorized/seNonlethalPit.tw           | 26 ++++--
 8 files changed, 156 insertions(+), 97 deletions(-)

diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw
index b45e11e3f95..0a03ba48392 100644
--- a/src/js/economyJS.tw
+++ b/src/js/economyJS.tw
@@ -3,7 +3,7 @@
 window.LivingRule = Object.freeze({LUXURIOUS: 'luxurious', NORMAL: 'normal', SPARSE: 'sparse'});
 window.Job = Object.freeze({
 	DAIRY: 'work in the dairy', MASTER_SUITE: 'serve in the master suite', CONCUBINE: 'be your concubine',
-	BABY_FACTORY: 'labor in the production line', BROTHEL: 'work in the brothel'});
+	BABY_FACTORY: 'labor in the production line', BROTHEL: 'work in the brothel', ARCADE: 'be confined in the arcade'});
 
 window.getSlaveCost = function(s) {
 	if(!s) { return 0; }
@@ -14,13 +14,18 @@ window.getSlaveCost = function(s) {
 	var drugsCost = State.variables.drugsCost;
 	
 	// Living expenses
-	if(s.livingRules === LivingRule.LUXURIOUS) {
-		cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
-	} else if(s.livingRules == LivingRule.NORMAL) {
-		cost += rulesCost * 2;
+	if((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+		if(s.livingRules === LivingRule.LUXURIOUS) {
+			cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
+		} else if(s.livingRules == LivingRule.NORMAL) {
+			cost += rulesCost * 2;
+		} else {
+			cost += rulesCost;
+		}
 	} else {
-		cost += rulesCost;
+		cost += rulesCost * .75;
 	}
+		
 	
 	// Food
 	cost += foodCost * 4;
@@ -64,38 +69,40 @@ window.getSlaveCost = function(s) {
 	
 	// Accessibility costs
 	if(State.variables.boobAccessibility !== 1 && s.boobs > 7500
-		&& (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2)) {
+		&& (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment != Job.ARCADE)) {
 		cost += 50;
 	}
 	if(State.variables.pregAccessibility !== 1
 		&& ((s.preg > 30 && s.pregType >= 2) || (s.preg > 20 && s.pregType >= 10) || (s.preg > 10 && s.pregType >= 20) || s.bellyImplant >= 10000)
-		&& s.assignment != Job.BABY_FACTORY) {
+		&& s.assignment != Job.BABY_FACTORY && (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment != Job.ARCADE)) {
 		cost += 100;
 	}
-	if(State.variables.dickAccessibility != 1 && s.dick > 45) {
+	if(State.variables.dickAccessibility != 1 && s.dick > 45 && (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment != Job.ARCADE)) {
 		cost += 50;
 	}
-	if(State.variables.ballsAccessibility != 1 && s.balls > 90) {
+	if(State.variables.ballsAccessibility != 1 && s.balls > 90 && (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment != Job.ARCADE)) {
 		cost += 50;
 	}
-	if(State.variables.buttAccessibility != 1 && s.butt > 15) {
+	if(State.variables.buttAccessibility != 1 && s.butt > 15 && (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment != Job.ARCADE)) {
 		cost += 50;
 	}
-	if(!canSee(s)) {
+	if(!canSee(s) && (s.assignment != Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment != Job.ARCADE)) {
 		cost += 50;
 	} else if(s.eyes <= -1) {
 		cost += 25;
 	} else if(s.eyewear === 'blurring glasses' || s.eyewear === 'blurring contacts') {
 		cost += 25;
 	}
-	if(s.amp !== 0) {
-		if(s.amp === 1) {
+	if((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+		if(s.amp !== 0) {
+			if(s.amp === 1) {
+				cost += rulesCost;
+			} else {
+				cost += rulesCost / 2;
+			}
+		} else if(!canWalk(s)) {
 			cost += rulesCost;
-		} else {
-			cost += rulesCost / 2;
 		}
-	} else if(!canWalk(s)) {
-		cost += rulesCost;
 	}
 	
 	// Maintenance
@@ -105,8 +112,10 @@ window.getSlaveCost = function(s) {
 	if(s.butt > 10 && s.buttImplantType === 1) {
 		cost += 50;
 	}
-	if(s.preg > 25 && s.universalRulesBirthing === 1) {
-		cost += 50;
+	if((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+		if(s.preg > 25 && s.universalRulesBirthing === 1) {
+			cost += 50;
+		}
 	}
 
 	// Retirement account
diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw
index 645496e6121..b09e64cbc1c 100644
--- a/src/npc/descriptions/fVagina.tw
+++ b/src/npc/descriptions/fVagina.tw
@@ -75,18 +75,19 @@ You call her over so you can
 	<</if>>
 <</if>>
 
-<<set _fPosition = random(1,100) && canWalk($activeSlave)>>
+<<if canWalk($activeSlave)>>
+<<set _fPosition = random(1,100)>>
 You decide to fuck her
 <<if (_fPosition <= 20)>>
-	in the missionary position. You tell her to lie down on the couch next to your desk.<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>> A position that will difficult due to her massive pregnancy.<<elseif $activeSlave.bellyImplant >= 16000>> A position that will difficult due to her massive stomach.<</if>>
+	in the missionary position. You tell her to lie down on the couch next to your desk.<<if hyperPregBellyOne($activeSlave)>> A position that will difficult due to her massive pregnancy.<<elseif hyperBellyOne($activeSlave)>> A position that will difficult due to her massive stomach.<</if>>
 <<elseif (_fPosition <= 40)>>
-	doggy-style. You tell her to get on the couch beside your desk on her hands and knees.<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>> A position that leaves her rear high in the air thanks to her massive pregnancy.<<elseif $activeSlave.bellyImplant >= 16000>> A position that leaves her rear high in the air thanks to her massive stomach.<</if>>
+	doggy-style. You tell her to get on the couch beside your desk on her hands and knees.<<if hyperPregBellyOne($activeSlave)>> A position that leaves her rear high in the air thanks to her massive pregnancy.<<elseif hyperBellyOne($activeSlave)>> A position that leaves her rear high in the air thanks to her massive stomach.<</if>>
 <<elseif (_fPosition <= 60)>>
-	in the cowgirl position. You lie on the couch beside your desk and tell her to straddle you, facing towards you.<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>> A position that will allow you to tease her massive pregnancy as you fuck her.<<elseif $activeSlave.bellyImplant >= 16000>> A position that will allow you to tease her massive belly as you fuck her.<</if>>
+	in the cowgirl position. You lie on the couch beside your desk and tell her to straddle you, facing towards you.<<if hyperPregBellyOne($activeSlave)>> A position that will allow you to tease her massive pregnancy as you fuck her.<<elseif hyperBellyOne($activeSlave)>> A position that will allow you to tease her massive belly as you fuck her.<</if>>
 <<elseif (_fPosition <= 80)>>
-	in the reverse cowgirl position. You lie on the couch beside your desk and tell her to straddle you facing away from you.<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>> A position that will much more comfortable due for her massive pregnancy.<<elseif $activeSlave.bellyImplant >= 16000>> A position that will much more comfortable for her massive belly.<</if>>
+	in the reverse cowgirl position. You lie on the couch beside your desk and tell her to straddle you facing away from you.<<if hyperPregBellyOne($activeSlave)>> A position that will much more comfortable due for her massive pregnancy.<<elseif hyperBellyOne($activeSlave)>> A position that will much more comfortable for her massive belly.<</if>>
 <<else>>
-	in the wheelbarrow position. You tell her to get on the couch beside your desk, stand next to her and lift her legs up into the air.<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>> You hope you don't strain something supporting her massive pregnancy.<<elseif $activeSlave.bellyImplant >= 16000>> You hope you don't strain something supporting her massive belly.<</if>>
+	in the wheelbarrow position. You tell her to get on the couch beside your desk, stand next to her and lift her legs up into the air.<<if hyperPregBellyOne($activeSlave)>> You hope you don't strain something supporting her massive pregnancy.<<elseif hyperBellyOne($activeSlave)>> You hope you don't strain something supporting her massive belly.<</if>>
 <</if>>
 <<set _fSpeed = random(1,100)>>
 
@@ -110,9 +111,9 @@ You decide to fuck her
 	Since she's a quadruple amputee, she's yours to use as a human sex toy. You set her
 	<<if ($PC.dick != 0)>>
 		atop your cock and slide her up and down, managing her with your arms.
-		<<if $activeSlave.dickAccessory == "chastity">>
+		<<if $activeSlave.dickAccessory == "chastity" || $activeSlave.dickAccessory == "combined chastity">>
 			Her dick chastity keeps her useless bitchclit out of the way.
-		<<elseif ($activeSlave.vagina == -1) && ($activeSlave.hormones > 0) && ($activeSlave.balls != 0)>>
+		<<elseif !canAchieveErection($activeSlave)>>
 			As you use her as a helpless cock jacket, her flaccid dick flops around, ignored.
 		<<elseif ($activeSlave.vagina == -1)>>
 			As you use her as a helpless cock jacket, your pounding keeps her prick stiff.
@@ -122,64 +123,64 @@ You decide to fuck her
 		on the couch and straddle her hips, bringing your already-wet pussy hard against her. You grind against her helpless body, using her as a living sybian until her warmth and movement brings you to orgasm.
 	<</if>>
 <<elseif !canWalk($activeSlave) && tooBigBelly($activeSlave)>>
-	You tell her to get situated on the couch, face down. This position pins her down by the massive weight of her belly, pushing her face in amongst the cushions and keeping her crotch in the ideal position to penetrate. Her belly serves as an anchor, allowing you to take her doggy style without any real contribution from her. The position muffles her reaction entirely, other than the rhythmic jiggling of her bulging belly that sticks out from either side of her torso.
+	You tell her to get situated on the couch, face down. This position pins her down by the massive weight of her belly, pushing her face in amongst the cushions and keeping her crotch in the ideal position to penetrate. Her belly serves as an anchor, allowing you to take her doggy style without any real contribution from her. The position muffles her reaction entirely, other than the rhythmic jiggling of her bulging belly as it sticks out from either side of her torso.
 <<elseif !canWalk($activeSlave) && tooBigBreasts($activeSlave)>>
 	You tell her to get situated on the couch, face down. This position pins her down by the massive weight of her tits, pushing her face in amongst the cushions. Her tits serve as an anchor, allowing you to take her doggy style without any real contribution from her. The position muffles her reaction entirely, other than the rhythmic jiggling of the breastflesh that sticks out to either side of her torso.
 <<elseif !canWalk($activeSlave) && tooBigButt($activeSlave)>>
-	You tell her to get situated on the couch, face up. This position pins her down by the massive weight of her rear, causing her to sink into the cushions. Her ass serves as an anchor, allowing you to take her missionary style without any real contribution from her. This position lets you clearly see her reaction, as well as the rhythmic jiggling of the buttflesh that sticks out to either side of her hips.
+	You tell her to get situated on the couch, face up. This position pins her down by the massive weight of her rear, causing her to sink into the cushions. Her ass serves as an anchor, allowing you to take her in the missionary position without any real contribution from her. This lets you clearly see her reaction, as well as the rhythmic jiggling of the buttflesh that sticks out to either side of her hips.
 <<elseif !canWalk($activeSlave) && tooBigBalls($activeSlave)>>
-	You tell her to get situated on the couch, doggy style. This position pins her down by the massive weight of her balls. Her testicles serve as an anchor, allowing you to take her doggy style without any real worry of getting struck by her massive nuts. The position keeps her balls completely still where they rest on the couch, so yo don't have to worry about them getting in the way.
+	You tell her to get situated on the couch, doggy style. This position pins her down by the massive weight of her balls. Her testicles serve as an anchor, allowing you to take her doggy style without any real concern of getting struck by her massive nuts. The position keeps her balls completely still where they rest on the couch, so you don't have to worry about them getting in the way.
 <<elseif ($activeSlave.fetish == "submissive") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($PC.dick != 0)>>
 	She comes over, smiling a little submissive smile, and spreads herself for you. You take her on the couch next to your desk after she gets into position.
 	<<if (_fPosition <= 20)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
+		<<if hyperPregBellyOne($activeSlave)>>
 		You have to heft her gravid body up to position yourself for penetration. But once you are mounted, you rest your head against her bulging belly and feel the movements within as you thrust into her;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<elseif hyperBellyOne($activeSlave)>>
 		You have to heft her weighty body up to position yourself for penetration. But once you are mounted, you rest your head against her massive stomach and feel the force of your thrusts running through her;
 		<<else>>
 		She hugs her torso to you and her breasts press against your chest;
 		<</if>>
 	<<elseif (_fPosition <= 40)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
+		<<if hyperPregBellyOne($activeSlave)>>
 		She arches her back as you continue to pound her, her occupants enjoying the attention. As you rest your weight on her, you run your hands along her distended sides;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<elseif hyperBellyOne($activeSlave)>>
 		She arches her back as you continue to pound her, her belly jiggling just slightly with each thrust. As you rest your weight on her, you run your hands along her distended sides;
 		<<else>>
 		She arches her back as you continue to pound her;
 		<</if>>
 	<<elseif (_fPosition <= 60)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
-		She does her best to not suffocate you with her massive pregnancy or knock you out with it as you thrust into her. You get a face full of pregnancy with each downward motion;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<if hyperPregBellyOne($activeSlave)>>
+		She does her best to not suffocate you with her massive belly or knock you out with it as you thrust into her. You get a face full of pregnancy with each downward motion;
+		<<elseif hyperBellyOne($activeSlave)>>
 		She does her best to not suffocate you with her massive belly or knock you out with it as you thrust into her. You get a face full of implant with each downward motion;
 		<<else>>
 		She puts her hands on your chest and leans forward as you continue to thrust upwards;
 		<</if>>
 	<<elseif (_fPosition <= 80)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
+		<<if hyperPregBellyOne($activeSlave)>>
 		You may have to spread your legs extra wide to accommodate her impressive baby bump, but the angle and pressure it puts on you feels amazing. She puts her hands on your chest and starts to lean back as you continue to thrust upwards, in return you caress her distended sides;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<elseif hyperBellyOne($activeSlave)>>
 		You may have to spread your legs extra wide to accommodate her impressive belly, but the angle and pressure it puts on you feels amazing. She puts her hands on your chest and starts to lean back as you continue to thrust upwards, in return you caress her distended sides;
 		<<else>>
-		She puts her hands on your chest starts to lean back as you continue to thrust upwards;
+		She puts her hands on your chest and starts to lean back as you continue to thrust upwards;
 		<</if>>
 	<<else>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
+		<<if hyperPregBellyOne($activeSlave)>>
 		Before long both of your strength begins to wane, causing her belly to touch the floor. With some of the weight off of the both of you, you keep on pounding;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<elseif hyperBellyOne($activeSlave)>>
 		Before long both of your strength begins to wane, causing her belly to touch the floor. With some of the weight off of the both of you, you keep on pounding;
 		<<else>>
 		She begins to tire as you keep pounding;
 		<</if>>
 	<</if>>
-	you can feel <<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>her children begin to squirm in reaction to their mother's lust<<else>>her heart beating hard<</if>>. As the sex reaches its climax, she begs you to cum inside her unworthy body.
+	you can feel <<if hyperPregBellyOne($activeSlave)>>her children begin to squirm in reaction to their mother's lust<<else>>her heart beating hard<</if>>. As the sex reaches its climax, she begs you to cum inside her unworthy body.
 	<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
-		<<if $activeSlave.dickAccessory == "chastity">>
+		<<if $activeSlave.dickAccessory == "chastity" || ($activeSlave.dickAccessory == "combined chastity")>>
 			She does her submissive best to stay completely soft within her dick chastity.
 		<<else>>
 			As a submissive she spares no attention for her own orgasm, so her rock hard erection swings untended.
 		<</if>>
-	<<elseif ($activeSlave.dickAccessory == "chastity")>>
+	<<elseif ($activeSlave.dickAccessory == "chastity") || ($activeSlave.dickAccessory == "combined chastity")>>
 		Her cock is forgotten inside its chastity cage as you take what you want from her.
 	<<elseif ($activeSlave.dick != 0)>>
 		As a submissive she spares no attention for her own orgasm, so her flaccid cock swings untended.
@@ -195,12 +196,12 @@ You decide to fuck her
 		bend the disobedient slave over your desk and take  her hard from behind. Her breasts <<if ($activeSlave.dick != 0)>>and cock <</if>>slide back and forth across the desk. You give her buttocks some nice hard swats as you pound her. She grunts and moans but knows better than to try to get away.
 		<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
 			Despite her unwillingness to be raped, the stimulation
-			<<if $activeSlave.dickAccessory == "chastity">>
+			<<if $activeSlave.dickAccessory == "chastity" || ($activeSlave.dickAccessory == "combined chastity")>>
 				starts to give her an erection, which her dick chastity makes horribly uncomfortable. She bucks with the pain, her hole spasming delightfully.
 			<<else>>
 				gives her an erection. She's mortified that she would get hard while being raped.
 			<</if>>
-		<<elseif ($activeSlave.dickAccessory == "chastity")>>
+		<<elseif ($activeSlave.dickAccessory == "chastity") || ($activeSlave.dickAccessory == "combined chastity")>>
 			Her dick chastity keeps her bitch cock hidden away while you use her whore hole.
 		<<elseif ($activeSlave.dick != 0)>>
 			Her flaccid dick is ground into the back of the couch as you rape her.
@@ -217,12 +218,12 @@ You decide to fuck her
 	<<if ($PC.dick != 0)>>
 		She obeys, lying on the couch next to your desk with her legs spread. You kneel on the ground and enter her, a hand on each of her legs to give you a good grip. <<if _fSpeed > 75>>The pounding is hard and fast<<elseif _fSpeed > 50>>You pound her firmly and vigorously<<elseif _fSpeed > 25>>You fuck her steadily and controlled<<else>>You fuck her slowly and tenderly<</if>>, and she gasps and <<if _fSpeed > 50>>whines<<else>>moans<</if>>. You reach a hand down to maul her breasts.
 		<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
-			<<if ($activeSlave.dickAccessory == "chastity")>>
+			<<if ($activeSlave.dickAccessory == "chastity") || ($activeSlave.dickAccessory == "combined chastity")>>
 				She enjoys herself, even though her dick chastity keeps her soft by making the beginnings of erection very uncomfortable.
 			<<else>>
 				She bites her lip and moans as she climaxes. You fill her squeezing fuckhole with your cum. She already dribbled her own weak load all over her stomach.
 			<</if>>
-		<<elseif ($activeSlave.dickAccessory == "chastity")>>
+		<<elseif ($activeSlave.dickAccessory == "chastity") || ($activeSlave.dickAccessory == "combined chastity")>>
 			She bites her lip and moans as she climaxes. You fill her squeezing fuckhole with your cum. Precum has been dribbling out of her dick chastity for some time, apparently the best her soft bitchclit can manage.
 		<<elseif ($activeSlave.dick != 0)>>
 			She bites her lip and moans as she climaxes. You fill her squeezing fuckhole with your cum. She already blew her own load all over her stomach despite her inability to get hard.
@@ -239,33 +240,33 @@ You decide to fuck her
 	<<if ($PC.dick != 0)>>
 		She skips over smiling and gives you a quick kiss. You take her on the couch next to your desk after she gets into position. 
 	<<if (_fPosition <= 20)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
+		<<if hyperPregBellyOne($activeSlave)>>
 		You have to heft her gravid body up to position yourself for penetration. But once you are mounted, you rest your head against her bulging belly and feel the movements within as you thrust into her;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<elseif hyperBellyOne($activeSlave)>>
 		You have to heft her weighty body up to position yourself for penetration. But once you are mounted, you rest your head against her massive stomach and feel the force of your thrusts running through her;
 		<<else>>
 		She hugs her torso to you and her breasts press against your chest;
 		<</if>>
 	<<elseif (_fPosition <= 40)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
+		<<if hyperPregBellyOne($activeSlave)>>
 		She arches her back as you continue to pound her, her occupants enjoying the attention. As you rest your weight on her, you run your hands along her distended sides;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<elseif hyperBellyOne($activeSlave)>>
 		She arches her back as you continue to pound her, her belly jiggling just slightly with each thrust. As you rest your weight on her, you run your hands along her distended sides;
 		<<else>>
 		She arches her back as you continue to pound her;
 		<</if>>
 	<<elseif (_fPosition <= 60)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
-		She does her best to not suffocate you with her massive pregnancy or knock you out with it as you thrust into her. You get a face full of pregnancy with each downward motion;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<if hyperPregBellyOne($activeSlave)>>
+		She does her best to not suffocate you with her massive belly or knock you out with it as you thrust into her. You get a face full of pregnancy with each downward motion;
+		<<elseif hyperBellyOne($activeSlave)>>
 		She does her best to not suffocate you with her massive belly or knock you out with it as you thrust into her. You get a face full of implant with each downward motion;
 		<<else>>
 		She puts her hands on your chest and leans forward as you continue to thrust upwards;
 		<</if>>
 	<<elseif (_fPosition <= 80)>>
-		<<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>
-		You may have to spread your legs extra wide to accommodate her impressive baby bump, but the angle and pressure it puts on you feel amazing. She puts her hands on your chest and starts to lean back as you continue to thrust upwards, in return you caress her distended sides;
-		<<elseif $activeSlave.bellyImplant >= 16000>>
+		<<if hyperPregBellyOne($activeSlave)>>
+		You may have to spread your legs extra wide to accommodate her impressive baby bump, but the angle and pressure it puts on you feels amazing. She puts her hands on your chest and starts to lean back as you continue to thrust upwards, in return you caress her distended sides;
+		<<elseif hyperBellyOne($activeSlave)>>
 		You may have to spread your legs extra wide to accommodate her impressive belly, but the angle and pressure it puts on you feels amazing. She puts her hands on your chest and starts to lean back as you continue to thrust upwards, in return you caress her distended sides;
 		<<else>>
 		She puts her hands on your chest starts to lean back as you continue to thrust upwards;
@@ -277,14 +278,14 @@ You decide to fuck her
 			She begins to tire as you keep pounding;
 		<</if>>
 	<</if>>
-	you can feel <<if $activeSlave.preg > 30 && $activeSlave.pregType >= 10>>her children begin to squirm in reaction to their mother's lust<<else>>her heart beating hard<</if>>. As the sex reaches its climax, her kisses grow urgent and passionate.
+	you can feel <<if hyperPregBellyOne($activeSlave)>>her children begin to squirm in reaction to their mother's lust<<else>>her heart beating hard<</if>>. As the sex reaches its climax, her kisses grow urgent and passionate.
 		<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
-			<<if $activeSlave.dickAccessory == "chastity">>
+			<<if $activeSlave.dickAccessory == "chastity" || ($activeSlave.dickAccessory == "combined chastity")>>
 				She enjoys herself, even though her dick chastity keeps her soft by making the beginnings of erection very uncomfortable.
 			<<else>>
 				When you orgasm together, her erect cock squirts cum up towards her tits while your cock fills her with cum.
 			<</if>>
-		<<elseif ($activeSlave.dickAccessory == "chastity")>>
+		<<elseif ($activeSlave.dickAccessory == "chastity") || ($activeSlave.dickAccessory == "combined chastity")>>
 			She bites her lip and moans as she climaxes. You fill her squeezing fuckhole with your cum. Precum has been dribbling out of her dick chastity for some time, apparently the best her soft bitchclit can manage.
 		<<elseif ($activeSlave.dick != 0)>>
 			When you orgasm together, her limp, neglected cock dribbles weakly while your cock fills her with cum.
@@ -300,7 +301,7 @@ You decide to fuck her
 		You pat the tops of your thighs, and she skips over smiling and gives you a quick kiss. Without breaking the lip lock, she sits down, wrapping her legs around you. Your hands reach around her and seize her buttocks, drawing her in even closer so that the warmth between her legs is pressed hard against your pussy, and you can play with her asshole. She grinds enthusiastically against you, moaning into your mouth with pleasure.
 	<</if>>
 <</if>>
-<<if ($activeSlave.vagina >= 0) && ($activeSlave.vaginalAccessory != "chastity belt")>>
+<<if canDoVaginal($activeSlave)>>
 	<<VaginalVCheck>>
 <<else>>
 	<<AnalVCheck>>
diff --git a/src/uncategorized/costs.tw b/src/uncategorized/costs.tw
index 446fd6a0443..d7e45ac2eed 100644
--- a/src/uncategorized/costs.tw
+++ b/src/uncategorized/costs.tw
@@ -43,6 +43,7 @@
 
 <<for $i = 0; $i < $slaves.length; $i++>>
 
+<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 <<if $slaves[$i].livingRules == "luxurious">>
 	<<if $slaves[$i].relationship >= 4>>
 	<<set $costs += ($rulesCost*3)>>
@@ -54,6 +55,9 @@
 <<else>>
 	<<set $costs += $rulesCost>>
 <</if>>
+<<else>>
+	<<set $costs += ($rulesCost*.75)>>
+<</if>>
 
 <<set $costs += $foodCost*4>>
 <<switch $slaves[$i].diet>>
@@ -96,7 +100,7 @@
 
 <<if $boobAccessibility != 1>>
 	<<if ($slaves[$i].boobs > 7500)>>
-	<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<set $costs += 50>>
 	<</if>>
 	<</if>>
@@ -104,7 +108,7 @@
 
 <<if $pregAccessibility != 1>>
 	<<if ($slaves[$i].preg > 30 && $slaves[$i].pregType >= 2) || ($slaves[$i].preg > 20 && $slaves[$i].pregType >= 10) || ($slaves[$i].preg > 10 && $slaves[$i].pregType >= 20) || $slaves[$i].bellyImplant >= 10000>>
-	<<if ($slaves[$i].assignment != "labor in the production line")>>
+	<<if ($slaves[$i].assignment != "labor in the production line") && ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<set $costs += 100>>
 	<</if>>
 	<</if>>
@@ -112,20 +116,26 @@
 
 <<if $dickAccessibility != 1>>
 	<<if ($slaves[$i].dick > 45)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<set $costs += 50>>
 	<</if>>
+	<</if>>
 <</if>>
 
 <<if $ballsAccessibility != 1>>
 	<<if ($slaves[$i].balls > 90)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<set $costs += 50>>
 	<</if>>
+	<</if>>
 <</if>>
 
 <<if $buttAccessibility != 1>>
 	<<if ($slaves[$i].butt > 15)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<set $costs += 50>>
 	<</if>>
+	<</if>>
 <</if>>
 
 <<if $slaves[$i].boobs > 10000>>
@@ -141,9 +151,11 @@
 
 <<if $slaves[$i].preg > 25>>
 <<if $slaves[$i].universalRulesBirthing == 1>>
+<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2)>>
 	<<set $costs += 50>>
 <</if>>
 <</if>>
+<</if>>
 
 <<if $CitizenRetirement == 1>>
 	<<set $costs += 250>>
@@ -179,6 +191,7 @@
 	<</if>>
 <</if>>
 
+<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 <<if ($slaves[$i].amp != 0)>>
   <<if ($slaves[$i].amp == 1)>>
 	<<set $costs += $rulesCost>>
@@ -188,8 +201,9 @@
 <<elseif !canWalk($slaves[$i])>>
   <<set $costs += $rulesCost>>
 <</if>>
+<</if>>
 
-<<if !canSee($slaves[$i])>>
+<<if !canSee($slaves[$i]) && ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<set $costs += 50>>
 <<elseif $slaves[$i].eyes <= -1>>
 	<<if $slaves[$i].eyewear != "corrective glasses">>
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 10bb3744e72..1a71bdd0213 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -154,6 +154,7 @@
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<set $individualCosts = 0>>
 	''$slaves[$i].slaveName'':
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<if $slaves[$i].livingRules == "luxurious">>
 	<<if $slaves[$i].relationship >= 4>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*3)>>
@@ -169,6 +170,10 @@
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost)>>
 		<<set $individualCosts += $rulesCost>>
 	<</if>>
+	<<else>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*.75)>>
+		<<set $individualCosts += ($rulesCost*.75)>>
+	<</if>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;Basic slave food cost: ¤<<print $foodCost*4>>
 	<<set $individualCosts += $foodCost*4>>
 	<<switch $slaves[$i].diet>>
@@ -224,7 +229,7 @@
 	<</switch>>
 	<<if $boobAccessibility != 1>>
 	<<if ($slaves[$i].boobs > 7500)>>
-	<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to inconveniently huge boobs: ¤50
 		<<set $individualCosts += 50>>
 	<</if>>
@@ -232,7 +237,7 @@
 	<</if>>
 	<<if $pregAccessibility != 1>>
 	<<if ($slaves[$i].preg > 30 && $slaves[$i].pregType >= 2) || ($slaves[$i].preg > 20 && $slaves[$i].pregType >= 10) || ($slaves[$i].preg > 10 && $slaves[$i].pregType >= 20) || $slaves[$i].bellyImplant >= 10000>>
-	<<if ($slaves[$i].assignment != "labor in the production line")>>
+	<<if ($slaves[$i].assignment != "labor in the production line") && ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	  <br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to an inconveniently huge belly: ¤100
 	  <<set $individualCosts += 100>>
 	<</if>>
@@ -240,23 +245,29 @@
 	<</if>>
 	<<if $dickAccessibility != 1>>
 	<<if ($slaves[$i].dick > 45)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to an inconveniently huge penis: ¤50
 		<<set $individualCosts += 50>>
 	<</if>>
 	<</if>>
+	<</if>>
 	<<if $ballsAccessibility != 1>>
 	<<if ($slaves[$i].balls > 90)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to inconveniently huge balls: ¤50
 		<<set $individualCosts += 50>>
 	<</if>>
 	<</if>>
+	<</if>>
 	<<if $buttAccessibility != 1>>
 	<<if ($slaves[$i].butt > 15)>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to an inconveniently huge butt: ¤50
 		<<set $individualCosts += 50>>
 	<</if>>
 	<</if>>
-	<<if !canSee($slaves[$i])>>
+	<</if>>
+	<<if !canSee($slaves[$i]) && ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to lack of sight: ¤50
 		<<set $individualCosts += 50>>
 	<<elseif $slaves[$i].eyes <= -1>>
@@ -266,6 +277,7 @@
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to blurred vision: ¤25
 		<<set $individualCosts += 25>>
 	<</if>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
 	<<if ($slaves[$i].amp != 0)>>
 	  <<if ($slaves[$i].amp == 1)>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to limblessness: ¤$rulesCost
@@ -278,6 +290,7 @@
 	  <br>&nbsp;&nbsp;&nbsp;&nbsp;Increased living expenses due to immobility: ¤<<print $rulesCost>>
 	  <<set $individualCosts += $rulesCost>>
 	<</if>>
+	<</if>>
 	<<if $slaves[$i].boobs > 10000>>
 	<<if $slaves[$i].boobsImplantType == 1>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Maintenance cost for oversized string implants: ¤50
@@ -292,10 +305,12 @@
 	<</if>>
 	<<if $slaves[$i].preg > 25>>
 	<<if $slaves[$i].universalRulesBirthing == 1>>
+	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2)>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Coverage cost for daily pregnancy scanning: ¤50
 		<<set $individualCosts += 50>>
 	<</if>>
 	<</if>>
+	<</if>>
 	<<if $CitizenRetirement == 1>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;Retirement account payments: ¤250
 	<<set $individualCosts += 250>>
diff --git a/src/uncategorized/industrialDairyAssignmentScene.tw b/src/uncategorized/industrialDairyAssignmentScene.tw
index d147939ef31..b9c7cce8d6e 100644
--- a/src/uncategorized/industrialDairyAssignmentScene.tw
+++ b/src/uncategorized/industrialDairyAssignmentScene.tw
@@ -21,7 +21,7 @@ Then she falls silent and stares at the machine. Though she hates herself and lo
 			She does the same with dildo that will keep her pregnant and her pussy, and her lower lip starts to quiver.
 		<</if>>
 	<<else>>
-		<<if ($dairyPregSetting > 1) && isFertile($activeSlave)>>
+		<<if ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
 			She gauges the size of the dildo that will keep her pregnant with her hand, finding that it's wider than her fist, and then presses the fist against her pussy. Realizing what's about to happen, she gives a little shudder.
 		<</if>>
 	<</if>>
@@ -36,7 +36,7 @@ Then she falls silent and stares at the machine. Though she hates herself and lo
 	Another slave helps her strip and lays her in the machine,
 <</if>>
 her tears pattering onto the uncaring metal. When she's in place, her shoulders slump as she gives up completely.
-<<if canTalk($activeSlave) == false>>
+<<if !canTalk($activeSlave)>>
 	She mouths 'Goodbye.'
 <<elseif SlaveStatsChecker.checkForLisp($activeSlave)>>
 	"'bye," she lisps.
@@ -158,9 +158,9 @@ begging and sobbing, into the machine's embrace.
 <<if ($dairyStimulatorsSetting > 1)>>
 	I-it'll fuck my b-butthole so wide I'll be u<<s>>ele<<ss>> for anal!
 <</if>>
-<<if ($dairyPregSetting > 2) && isFertile($activeSlave)>>
+<<if ($dairyPregSetting > 2) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
 	My w-womb c-c-can't take it! I'll b-bur<<s>>t! And m-my c-c-cunt will be ruined from the dildo and birthing!
-<<elseif ($dairyPregSetting > 1) && isFertile($activeSlave)>>
+<<elseif ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
 	M-my c-c-cunt will be <<s>>-<<s>>o <<s>>tretched from the dildo and birthing!
 <</if>>
 I'll d-do anything!"
@@ -193,8 +193,8 @@ begging and sobbing, into the machine's embrace.
 <<if ($dairyStimulatorsSetting > 1)>>
 	I-it'll fuck my b-butthole so loo<<s>>e I'll be u<<s>>ele<<ss>> for anal! I p-promi<<s>>e I'll be a good little bitch from now on!
 <</if>>
-<<if ($dairyPregSetting > 2) && isFertile($activeSlave)>>
-	My w-womb c-c-can't take that many babie<s>>! I'll b-bur<<s>>t! M-my c-c-cunt can't t-take that dildo either! I d-don't want to g-get p-pregnant over and over...
+<<if ($dairyPregSetting > 2) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
+	My w-womb c-c-can't take that many babie<<s>>! I'll b-bur<<s>>t! M-my c-c-cunt can't t-take that dildo either! I d-don't want to g-get p-pregnant over and over...
 <<elseif ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
 	M-my c-c-cunt can't t-take that dildo! I d-don't want to g-get p-pregnant over and over...
 <</if>>
diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw
index c6859efad42..ed715077c11 100644
--- a/src/uncategorized/pePitFight.tw
+++ b/src/uncategorized/pePitFight.tw
@@ -54,11 +54,15 @@ Across the ring, her opponent's owner nods civilly to you and examines $activeSl
 	Her shining health makes her a better combatant.
 <</if>>
 
-<<if $activeSlave.weight > 30>>
+<<if $activeSlave.weight > 190>>
+	Her extreme weight nearly immobilizes her. She struggles to move let alone fight.
+<<elseif $activeSlave.weight > 160>>
+	Her extreme weight limits her mobility and range of motion making her an easy target.
+<<elseif $activeSlave.weight > 130>>
+	Her extreme weight holds her back as a pit fighter.
+<<elseif $activeSlave.weight > 30>>
 	Her heavy weight is an impediment as a pit fighter.
-<</if>>
-
-<<if $activeSlave.weight < -10>>
+<<elseif $activeSlave.weight < -10>>
 	Her light weight is an impediment as a pit fighter.
 <</if>>
 
diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw
index e5cfc0a2aa0..b97961990f4 100644
--- a/src/uncategorized/seLethalPit.tw
+++ b/src/uncategorized/seLethalPit.tw
@@ -120,11 +120,15 @@ You review the rules - the combatants will use their choice of swords, and the f
 	Her shining health makes her a better fighter.
 <</if>>
 
-<<if $fighterOne.weight > 30>>
+<<if $fighterOne.weight > 190>>
+	Her extreme weight nearly immobilizes her. She struggles to move let alone fight.
+<<elseif $fighterOne.weight > 160>>
+	Her extreme weight limits her mobility and range of motion making her an easy target.
+<<elseif $fighterOne.weight > 130>>
+	Her extreme weight holds her back as a pit fighter.
+<<elseif $fighterOne.weight > 30>>
 	Her heavy weight is an impediment as a pit fighter.
-<</if>>
-
-<<if $fighterOne.weight < -10>>
+<<elseif $fighterOne.weight < -10>>
 	Her light weight is an impediment as a pit fighter.
 <</if>>
 
@@ -238,11 +242,15 @@ You review the rules - the combatants will use their choice of swords, and the f
 	Her shining health makes her a better fighter.
 <</if>>
 
-<<if $fighterTwo.weight > 30>>
+<<if $fighterTwo.weight > 190>>
+	Her extreme weight nearly immobilizes her. She struggles to move let alone fight.
+<<elseif $fighterTwo.weight > 160>>
+	Her extreme weight limits her mobility and range of motion making her an easy target.
+<<elseif $fighterTwo.weight > 130>>
+	Her extreme weight holds her back as a pit fighter.
+<<elseif $fighterTwo.weight > 30>>
 	Her heavy weight is an impediment as a pit fighter.
-<</if>>
-
-<<if $fighterTwo.weight < -10>>
+<<elseif $fighterTwo.weight < -10>>
 	Her light weight is an impediment as a pit fighter.
 <</if>>
 
diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw
index 5135004f588..e79e4e0da4b 100644
--- a/src/uncategorized/seNonlethalPit.tw
+++ b/src/uncategorized/seNonlethalPit.tw
@@ -95,12 +95,16 @@ You review the rules - the combatants are wearing light gloves, and the fight wi
 	Her height gives her a reach advantage with her fists and feet.
 <</if>>
 
-<<if $fighterOne.health > 50>>
-	Her shining health makes her a better fighter.
-<</if>>
-
-<<if $fighterOne.weight > 30>>
+<<if $fighterOne.weight > 190>>
+	Her extreme weight nearly immobilizes her. She is essentially a fleshy punching bag.
+<<elseif $fighterOne.weight > 160>>
+	Her extreme weight limits her mobility and range of motion even if she can take punches like nothing.
+<<elseif $fighterOne.weight > 130>>
+	Her extreme weight holds her back as a pit fighter.
+<<elseif $fighterOne.weight > 30>>
 	Her heavy weight is an impediment as a pit fighter.
+<<elseif $fighterOne.weight < -10>>
+	Her light weight is an impediment as a pit fighter.
 <</if>>
 
 <<if $fighterOne.weight < -10>>
@@ -205,11 +209,15 @@ You review the rules - the combatants are wearing light gloves, and the fight wi
 	Her shining health makes her a better fighter.
 <</if>>
 
-<<if $fighterTwo.weight > 30>>
+<<if $fighterTwo.weight > 190>>
+	Her extreme weight nearly immobilizes her. She is essentially a fleshy punching bag.
+<<elseif $fighterTwo.weight > 160>>
+	Her extreme weight limits her mobility and range of motion even if she can take punches like nothing.
+<<elseif $fighterTwo.weight > 130>>
+	Her extreme weight holds her back as a pit fighter.
+<<elseif $fighterTwo.weight > 30>>
 	Her heavy weight is an impediment as a pit fighter.
-<</if>>
-
-<<if $fighterTwo.weight < -10>>
+<<elseif $fighterTwo.weight < -10>>
 	Her light weight is an impediment as a pit fighter.
 <</if>>
 
-- 
GitLab