From c332abd5fd0e74d2ad19d655991192d379d4a4dd Mon Sep 17 00:00:00 2001
From: lowercase-donkey <lowercasedonkey@gmail.com>
Date: Mon, 15 Jul 2019 23:34:09 -0400
Subject: [PATCH] Universal rule scars support

---
 src/uncategorized/newSlaveIntro.tw  |  36 ++++++--
 src/uncategorized/universalRules.tw | 125 +++++++++++++++++++++++++++-
 2 files changed, 152 insertions(+), 9 deletions(-)

diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 87d7835881e..f39c101eaf0 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -24,34 +24,54 @@
 	<</if>>
 <</if>>
 <<if $activeSlave.balls == 0 && $activeSlave.scrotum == 0>>
-	<<if $brandTarget.primary == "testicle">>
+	<<if ["left testicle", "right testicle"].includes($brandTarget.primary)>>
 		<<set _brandTarget = $brandTarget.secondary>>
 	<</if>>
-	<<if $scarTarget.primary == "testicle">>
+	<<if ["left testicle", "right testicle"].includes($scarTarget.primary)>>
 		<<set _scarTarget = $scarTarget.secondary>>
 	<</if>>
 <</if>>
 <<if $activeSlave.earShape == "none">>
-	<<if $brandTarget.primary == "ear">>
+	<<if ["left ear", "right ear"].includes($brandTarget.primary)>>
 		<<set _brandTarget = $brandTarget.secondary>>
 	<</if>>
-	<<if $scarTarget.primary == "ear">>
+	<<if ["left ear", "right ear"].includes($scarTarget.primary)>>
 		<<set _scarTarget = $scarTarget.secondary>>
 	<</if>>
 <</if>>
 <<if $activeSlave.amp != 0>>
-	<<if (["upper arm", "lower arm", "wrist", "hand"].includes($brandTarget.primary))>>
+	<<if ([
+		"left upper arm", "right upper arm", 
+		"left lower arm", "right lower arm", 
+		"left wrist", "right wrist", 
+		"left hand", "right hand"
+		].includes($brandTarget.primary))>>
 		<<set _brandTarget = $brandTarget.secondary>>
 	<</if>>
-	<<if (["upper arm", "lower arm", "wrist", "hand"].includes($scarTarget.primary))>>
+	<<if ([
+		"left upper arm", "right upper arm", 
+		"left lower arm", "right lower arm", 
+		"left wrist", "right wrist", 
+		"left hand", "right hand"
+		].includes($scarTarget.primary))>>
 		<<set _scarTarget = $scarTarget.secondary>>
 	<</if>>
 <</if>>
 <<if $activeSlave.amp != 0>> /* amp check is in two parts for future multiamp */
-	<<if (["thigh", "calve", "ankle", "foot"].includes($brandTarget.primary))>>
+	<<if ([
+		"left thigh", "right thigh", 
+		"left calve", "right calve", 
+		"left ankle", "right ankle", 
+		"left foot", "right foot"
+		].includes($brandTarget.primary))>>
 		<<set _brandTarget = $brandTarget.secondary>>
 	<</if>>
-	<<if (["thigh", "calve", "ankle", "foot"].includes($scarTarget.primary))>>
+	<<if ([
+		"left thigh", "right thigh", 
+		"left calve", "right calve", 
+		"left ankle", "right ankle", 
+		"left foot", "right foot"
+		].includes($scarTarget.primary))>>
 		<<set _scarTarget = $scarTarget.secondary>>
 	<</if>>
 <</if>>
diff --git a/src/uncategorized/universalRules.tw b/src/uncategorized/universalRules.tw
index d77dd93b17e..4064e1749f0 100644
--- a/src/uncategorized/universalRules.tw
+++ b/src/uncategorized/universalRules.tw
@@ -312,7 +312,130 @@ Use ''$brandDesign.primary'' or choose another brand:
 | //FS// [[Imperial Seal|Universal Rules][$brandDesign.primary = "your Imperial Seal"]] <</if>>
 
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
-Or design your own: <<textbox "$brandDesign.primary" $brandDesign.primary "Universal Rules">> //For best results, use a single word//
+Or design your own: <<textbox "$scarDesign.primary" $scarDesign.primary "Universal Rules">> //For best results, use a single word//
+<br><br>
+''Scaring for slaves''
+<br>
+
+<<switch $scarDesign.primary>>
+	<<case 1>>
+		<<set _printScar = "light scarring">>
+	<<case 2>>
+		<<set _printScar = "heavy scarring">>
+	<<case 3>>
+		<<set _printScar = "fresh scarring">>
+	<<case 4>>
+		<<set _printScar = "burns">>
+	<<case 5>>
+		<<set _printScar = "a menacing scar">>
+	<<case 6>>
+		<<set _printScar = "an exotic scar">>
+	<<case 7>>
+		<<if _scarName === "belly">>
+			<<set _printScar = "an unsightly c-section scar">>
+		<<else>>
+			<<set _printScar = "a surgical scar">>
+		<</if>>
+	<<default>>
+		<<set _printScar = $scarDesign.primary>>
+<</switch>>
+
+One 'welcome' for a new slave is to have them scarred.  Where would you like such scars to be applied?
+<<if ["ankle", "breast", "buttock", "calf", "cheek", "ear", "foot", "hand", "lower arm", "shoulder", "testicle", "thigh", "upper arm", "wrist"].includes($scarTarget.primary)>>
+	<br> On the
+	[[left|Universal Rules][$scarTarget.primary = ("left " + $scarTarget.primary)]]
+	$scarTarget.primary, or the
+	[[right|Universal Rules][$scarTarget.primary = ("right " + $scarTarget.primary)]]?
+<<else>>
+	<br> Current site is ''$scarTarget.primary'':
+	[[Ears|Universal Rules][$scarTarget.primary = "ear"]]
+	| [[Cheeks|Universal Rules][$scarTarget.primary = "cheek"]]
+	| [[Shoulders|Universal Rules][$scarTarget.primary = "shoulder"]]
+	| [[Breasts|Universal Rules][$scarTarget.primary = "breast"]]
+	| [[Arm, upper|Universal Rules][$scarTarget.primary = "upper arm"]]
+	| [[Arm, lower|Universal Rules][$scarTarget.primary = "lower arm"]]
+	| [[Wrist|Universal Rules][$scarTarget.primary = "wrist"]]
+	| [[Hand|Universal Rules][$scarTarget.primary = "hand"]]
+	| [[Buttocks|Universal Rules][$scarTarget.primary = "buttock"]]
+	| [[Thigh|Universal Rules][$scarTarget.primary = "thigh"]]
+	| [[Calf|Universal Rules][$scarTarget.primary = "calve"]]
+	| [[Ankle|Universal Rules][$scarTarget.primary = "ankle"]]
+	| [[Feet|Universal Rules][$scarTarget.primary = "foot"]]
+	| [[Neck|Universal Rules][$scarTarget.primary = "neck"]]
+	| [[Chest|Universal Rules][$scarTarget.primary = "chest"]]
+	| [[Belly|Universal Rules][$scarTarget.primary = "belly"]]
+	| [[Pubic Mound|Universal Rules][$scarTarget.primary = "pubic mound"]]
+	| [[Penis|Universal Rules][$scarTarget.primary = "penis"]]
+	| [[Testicles|Universal Rules][$scarTarget.primary = "testicle"]]
+	| [[Back|Universal Rules][$scarTarget.primary = "back"]]
+	| [[Lower Back|Universal Rules][$scarTarget.primary = "lower back"]]
+<</if>>
+
+<<if ["ankle", "breast", "buttock", "calf", "cheek", "ear", "foot", "hand", "lower arm", "shoulder", "testicle", "thigh", "upper arm", "wrist"].includes($scarTarget.secondary)>>
+	<br> On the
+	[[left|Universal Rules][$scarTarget.secondary = ("left " + $scarTarget.secondary)]]
+	$scarTarget.secondary, or the
+	[[right|Universal Rules][$scarTarget.secondary = ("right " + $scarTarget.secondary)]]?
+<<elseif [
+	"left ankle", "right ankle", 
+	"left calve", "right calve",
+	"left ear", "right ear",
+	"left foot", "right foot", 
+	"left hand", "right hand", 
+	"left lower arm", "right lower arm", 
+	"left penis", "right penis", 
+	"left testicle", "right testicle", 
+	"left thigh", "right thigh", 
+	"left upper arm", "right upper arm", 
+	"left wrist", "right wrist"
+	].includes($scarTarget.primary)>>
+	<br> It's possible that ''$scarTarget.primary'' may be missing from a slave. Choose a fallback in case it is not available: Current backup is ''$scarTarget.secondary'':
+	/* Material copied from bodyModification, but please leave commented out any sections that may not be on ALL slaves. */
+
+	/*<<if $activeSlave.earShape != "none">>[[Ears|Universal Rules][$scarTarget.secondary = "ear"]]<</if>>*/
+	| [[Cheeks|Universal Rules][$scarTarget.secondary = "cheek"]]
+	| [[Shoulders|Universal Rules][$scarTarget.secondary = "shoulder"]]
+	| [[Breasts|Universal Rules][$scarTarget.secondary = "breast"]]
+	/*<<if $activeSlave.amp == 0>>
+		| [[Arm, upper|Universal Rules][$scarTarget.secondary = "upper arm"]]
+		| [[Arm, lower|Universal Rules][$scarTarget.secondary = "lower arm"]]
+		| [[Wrist|Universal Rules][$scarTarget.secondary = "wrist"]]
+		| [[Hand|Universal Rules][$scarTarget.secondary = "hand"]]
+	<</if>>*/
+	| [[Buttocks|Universal Rules][$scarTarget.secondary = "buttock"]]
+	/*<<if $activeSlave.amp == 0>>
+		| [[Thigh|Universal Rules][$scarTarget.secondary = "thigh"]]
+		| [[Calf|Universal Rules][$scarTarget.secondary = "calve"]]
+		| [[Ankle|Universal Rules][$scarTarget.secondary = "ankle"]]
+		| [[Feet|Universal Rules][$scarTarget.secondary = "foot"]]
+	<</if>>*/
+	| [[Neck|Universal Rules][$scarTarget.secondary = "neck"]]
+	| [[Chest|Universal Rules][$scarTarget.secondary = "chest"]]
+	| [[Belly|Universal Rules][$scarTarget.secondary = "belly"]]
+	| [[Pubic Mound|Universal Rules][$scarTarget.secondary = "pubic mound"]]
+	/*<<if $activeSlave.dick > 0>>
+		| [[Penis|Universal Rules][$scarTarget.secondary = "penis"]]
+	<</if>>*/
+	/*<<if $activeSlave.balls > 0 && $activeSlave.scrotum > 0>>
+		| [[Testicles|Universal Rules][$scarTarget.secondary = "testicle"]]
+	<</if>>*/
+	| [[Back|Universal Rules][$scarTarget.secondary = "back"]]
+	| [[Lower Back|Universal Rules][$scarTarget.secondary = "lower back"]]
+<</if>>
+
+<br>
+
+Use ''_printScar'' or choose another scar:
+[[Light scarring|Universal Rules][$scarDesign.primary = 1]]
+| [[Heavy scarring|Universal Rules][$scarDesign.primary = 2]]
+| [[Fresh scarring|Universal Rules][$scarDesign.primary = 3]]
+| [[Burns|Universal Rules][$scarDesign.primary = 4]]
+| [[A menacing scar|Universal Rules][$scarDesign.primary = 5]]
+| [[An exotic scar|Universal Rules][$scarDesign.primary = 6]]
+| [[A surgical scar|Universal Rules][$scarDesign.primary = 7]]
+
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
+Or design your own: <<textbox "$scarDesign.primary" $scarDesign.primary "Universal Rules">> //For best results, use a single word//
 
 <br><br>
 ''Names for slaves''
-- 
GitLab