From 03481a27f52a0866940f02815dae535acc65daf8 Mon Sep 17 00:00:00 2001
From: LollipopScythe <lollipopscythe@protonmail.com>
Date: Sun, 16 Oct 2022 14:33:08 +0100
Subject: [PATCH 1/3] Fixed issue with action defaults `Override` functions

---
 game/base-system/attitudes.twee | 42 ++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/game/base-system/attitudes.twee b/game/base-system/attitudes.twee
index 4a6282d19d..9b7c8138d8 100644
--- a/game/base-system/attitudes.twee
+++ b/game/base-system/attitudes.twee
@@ -231,31 +231,31 @@ __If consensual:__
 
 <<if _requireConfirm is true>>
 	<<link [[Override related settings|$passage]]>>
+		<<run DefaultActions.save(T.defaultActions)>>
 		<<switch _options[_currentOptions]>>
 			<<case "Everyone">>
-				<<set _override to clone($actionDefaults.Everyone)>>
-				<<set _loop to Object.keys($actionDefaults)>>
-				<<run _loop.delete("Everyone")>>
-				<<run _loop.delete("Defiant")>>
-				<<run _loop.delete("Submissive")>>
-				<<run _loop.delete("Alternative")>>
-				<<run _loop.delete("Tentacles")>>
-				<<for _i to 0; _i lt _loop.length;_i++>>
-					<<set $actionDefaults[_loop[_i]] to clone(_override)>>
+				<<set _options to ["Strangers","Animals","Acquaintances","Robin", "Bailey","Whitney","Kylar","Eden","Avery","Leighton"]>>
+				<<for _option range _options>>
+					<<if !$actionDefaults.consensual>>
+						<<set $actionDefaults.consensual to {}>>
+					<</if>>
+					<<if !$actionDefaults.rape>>
+						<<set $actionDefaults.rape to {}>>
+					<</if>>
+					<<set $actionDefaults.consensual[_option] to clone($actionDefaults.consensual.Everyone)>>
+					<<set $actionDefaults.rape[_option] to clone($actionDefaults.rape.Everyone)>>
 				<</for>>
 			<<case "Acquaintances">>
-				<<set _override to clone($actionDefaults.Everyone)>>
-				<<set _loop to Object.keys($actionDefaults)>>
-				<<run _loop.delete("Everyone")>>
-				<<run _loop.delete("Strangers")>>
-				<<run _loop.delete("Acquaintances")>>
-				<<run _loop.delete("Animals")>>
-				<<run _loop.delete("Defiant")>>
-				<<run _loop.delete("Submissive")>>
-				<<run _loop.delete("Alternative")>>
-				<<run _loop.delete("Tentacles")>>
-				<<for _i to 0; _i lt _loop.length;_i++>>
-					<<set $actionDefaults[_loop[_i]] to clone(_override)>>
+				<<set _options to ["Robin","Bailey","Whitney","Kylar","Eden","Avery","Leighton"]>>
+				<<for _option range _options>>
+					<<if !$actionDefaults.consensual>>
+						<<set $actionDefaults.consensual to {}>>
+					<</if>>
+					<<if !$actionDefaults.rape>>
+						<<set $actionDefaults.rape to {}>>
+					<</if>>
+					<<set $actionDefaults.consensual[_option] to clone($actionDefaults.consensual.Everyone)>>
+					<<set $actionDefaults.rape[_option] to clone($actionDefaults.rape.Everyone)>>
 				<</for>>
 		<</switch>>
 	<</link>>
-- 
GitLab


From d14879b7bec7df86f44bfdc59120fbfcca5de9a1 Mon Sep 17 00:00:00 2001
From: LollipopScythe <lollipopscythe@protonmail.com>
Date: Sun, 16 Oct 2022 14:47:52 +0100
Subject: [PATCH 2/3] Added missing named and added additional Checks for them
 when init is not set

---
 game/base-system/attitudes.twee | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/game/base-system/attitudes.twee b/game/base-system/attitudes.twee
index 9b7c8138d8..fdfa27c099 100644
--- a/game/base-system/attitudes.twee
+++ b/game/base-system/attitudes.twee
@@ -94,8 +94,8 @@ What makes you feel uncomfortable?
 	How do you feel about others? (Sets default combat actions.)
 	<br>
 	<<if $moleststat gt 0 or $debug is 1>>
-		<<set _options to ["Everyone","Strangers","Animals","Tentacles","Acquaintances","Robin", "Bailey"]>>
-		<<set _named to ["Whitney","Kylar","Eden","Avery","Leighton"]>>
+		<<set _options to ["Everyone","Strangers","Animals","Tentacles","Acquaintances","Robin","Bailey"]>>
+		<<set _named to ["Whitney","Kylar","Eden","Avery","Leighton","Sydney","Black Wolf","Great Hawk"]>>
 
 		<<for _i to 0; _i lt _named.length; _i++>>
 			<<set _index to $NPCNameList.indexOf(_named[_i])>>
@@ -234,7 +234,7 @@ __If consensual:__
 		<<run DefaultActions.save(T.defaultActions)>>
 		<<switch _options[_currentOptions]>>
 			<<case "Everyone">>
-				<<set _options to ["Strangers","Animals","Acquaintances","Robin", "Bailey","Whitney","Kylar","Eden","Avery","Leighton"]>>
+				<<set _options to ["Strangers","Animals","Acquaintances","Robin", "Bailey","Whitney","Kylar","Eden","Avery","Leighton","Sydney","Black Wolf","Great Hawk"]>>
 				<<for _option range _options>>
 					<<if !$actionDefaults.consensual>>
 						<<set $actionDefaults.consensual to {}>>
@@ -242,11 +242,15 @@ __If consensual:__
 					<<if !$actionDefaults.rape>>
 						<<set $actionDefaults.rape to {}>>
 					<</if>>
+					<<set _index to $NPCNameList.indexOf(_option)>>
+					<<if $NPCName[_index] && $NPCName[_index].init isnot 1>>
+						<<continue>>
+					<</if>>
 					<<set $actionDefaults.consensual[_option] to clone($actionDefaults.consensual.Everyone)>>
 					<<set $actionDefaults.rape[_option] to clone($actionDefaults.rape.Everyone)>>
 				<</for>>
 			<<case "Acquaintances">>
-				<<set _options to ["Robin","Bailey","Whitney","Kylar","Eden","Avery","Leighton"]>>
+				<<set _options to ["Robin","Bailey","Whitney","Kylar","Eden","Avery","Leighton","Sydney","Black Wolf","Great Hawk"]>>
 				<<for _option range _options>>
 					<<if !$actionDefaults.consensual>>
 						<<set $actionDefaults.consensual to {}>>
@@ -254,6 +258,10 @@ __If consensual:__
 					<<if !$actionDefaults.rape>>
 						<<set $actionDefaults.rape to {}>>
 					<</if>>
+					<<set _index to $NPCNameList.indexOf(_option)>>
+					<<if $NPCName[_index] && $NPCName[_index].init isnot 1>>
+						<<continue>>
+					<</if>>
 					<<set $actionDefaults.consensual[_option] to clone($actionDefaults.consensual.Everyone)>>
 					<<set $actionDefaults.rape[_option] to clone($actionDefaults.rape.Everyone)>>
 				<</for>>
-- 
GitLab


From a0bc9f928b1eb14deb399fa7cfda7a42f9876a68 Mon Sep 17 00:00:00 2001
From: LollipopScythe <lollipopscythe@protonmail.com>
Date: Sun, 16 Oct 2022 18:01:47 +0100
Subject: [PATCH 3/3] Bug Fixes

- Prevented `$semen_volume` to increase for those with a `mini` penis size, as its been set that they can only have `femaleClimax`, preventing them from releasing any semen at all
- Prevented `self-masturbation` during combat for those with chastity devices on
---
 game/base-combat/actions-hands.twee | 6 +++---
 game/base-system/stat-changes.twee  | 5 ++++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/game/base-combat/actions-hands.twee b/game/base-combat/actions-hands.twee
index c3adf05847..9ca59b64d9 100644
--- a/game/base-combat/actions-hands.twee
+++ b/game/base-combat/actions-hands.twee
@@ -1060,13 +1060,13 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 
 <<widget "combatMasturbate">>
 	<<if _args[0] isnot undefined>>
-		<<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>>
+		<<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked") and !$worn.genitals.type.includes('hidden')>>
 			<<if _args[0] is "left">>
 				<<if $promiscuity gt 14 and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>>
 					<<if $player.vaginaExist>>
 						<<set _leftaction["Play with your pussy"] to "leftmasturbatepussy">>
 					<</if>>
-					<<if $player.penisExist and $penisuse is 0>>
+					<<if $player.penisExist and $penisuse is 0 and !$worn.genitals.type.includes('cage')>>
 						<<set _leftaction["Stroke your penis"] to "leftmasturbatepenis">>
 					<</if>>
 				<</if>>
@@ -1076,7 +1076,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 					<<if $player.vaginaExist>>
 						<<set _rightaction["Play with your pussy"] to "rightmasturbatepussy">>
 					<</if>>
-					<<if $player.penisExist and $penisuse is 0>>
+					<<if $player.penisExist and $penisuse is 0 and !$worn.genitals.type.includes('cage')>>
 						<<set _rightaction["Stroke your penis"] to "rightmasturbatepenis">>
 					<</if>>
 				<</if>>
diff --git a/game/base-system/stat-changes.twee b/game/base-system/stat-changes.twee
index 6bbe32e432..2071e6bc8c 100644
--- a/game/base-system/stat-changes.twee
+++ b/game/base-system/stat-changes.twee
@@ -160,7 +160,10 @@
 		<<if $cow gte 6>>
 			<<set $_volume_increase *= 2>>
 		<</if>>
-		<<set $semen_volume += $_volume_increase>>
+		/*Prevents those who can only have "female climax" increase their cum volume*/
+		<<if $player.penissize gt -2 or $_volume_increase <= 0>>
+			<<set $semen_volume += $_volume_increase>>
+		<</if>>
 		<<set $semen_volume to Math.clamp($semen_volume, 0, $semen_max)>>
 	<</if>>
 <</widget>>
-- 
GitLab