From 50b687aa669356f0c10d60234f7f36d260e6aa19 Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@gmail.com>
Date: Thu, 14 Nov 2019 17:06:17 +0100
Subject: [PATCH] remove broken ear object

---
 src/js/DefaultRules.js                  | 26 +++--------------
 src/js/SlaveState.js                    | 28 ------------------
 src/js/slaveStatsChecker.js             | 39 -------------------------
 src/js/surgery.js                       | 18 ++++--------
 src/pregmod/newChildIntro.tw            |  2 +-
 src/uncategorized/RESS.tw               | 25 +++++++++++++---
 src/uncategorized/hgApplication.tw      |  6 ++--
 src/uncategorized/newSlaveIntro.tw      |  4 +--
 src/uncategorized/reShowerPunishment.tw |  2 +-
 src/uncategorized/remoteSurgery.tw      |  4 +--
 10 files changed, 40 insertions(+), 114 deletions(-)

diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 5c9e599ba21..36f779efb99 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -2447,13 +2447,7 @@ window.DefaultRules = (function() {
 				} else {
 					slave.earPiercing = rule.earPiercing;
 					cashX(forceNeg(V.modCost), "slaveMod", slave);
-					r += `<br>${slave.slaveName}'s `;
-					if (hasBothEars(slave)) {
-						r += `ears have`;
-					} else {
-						r += `ear has`;
-					}
-					r += ` been pierced.`;
+					r += `<br>${slave.slaveName}'s ears have been pierced.`;
 				}
 			}
 		}
@@ -2807,20 +2801,8 @@ window.DefaultRules = (function() {
 						}
 					} else if (["ears"].includes(rule.brandTarget)) {
 						// Ears
-						if (!hasAnyEars(slave)) {
+						if (slave.earShape === "none") {
 							brandPlace = "";
-						} else if (!hasLeftEar(slave)) {
-							if (brandPlace === "both") {
-								brandPlace = "right";
-							} if (brandPlace === "left") {
-								brandPlace = "";
-							}
-						} else if (!hasRightEar(slave)) {
-							if (brandPlace === "both") {
-								brandPlace = "left";
-							} if (brandPlace === "right") {
-								brandPlace = "";
-							}
 						}
 					}
 
@@ -2831,8 +2813,8 @@ window.DefaultRules = (function() {
 						(!hasRightArm(slave) && ["right upper arm", "right lower arm", "right wrist", "right hand"].includes(rule.brandTarget)) ||
 						(!hasLeftLeg(slave) && ["left thigh", "left calf", "left ankle", "left foot"].includes(rule.brandTarget)) ||
 						(!hasRightLeg(slave) && ["right thigh", "right calf", "right ankle", "right foot"].includes(rule.brandTarget)) ||
-						(!hasLeftEar(slave) && ["left ear"].includes(rule.brandTarget)) ||
-						(!hasRightEar(slave) && ["right ear"].includes(rule.brandTarget))
+						(slave.earShape === "none" && ["left ear"].includes(rule.brandTarget)) ||
+						(slave.earShape === "none" && ["right ear"].includes(rule.brandTarget))
 					) {
 						brandPlace = "";
 					} else {
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index f79030c5c06..bd3eaeb4c73 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -404,26 +404,6 @@ App.Entity.EyeState = class EyeState {
 	}
 };
 
-App.Entity.EarState = class EarState {
-	constructor() {
-		/**
-		 * level of piercing
-		 * * 0: none
-		 * * 1: light
-		 * * 2: heavy
-		 */
-		this.piercing = 0;
-		this.shape = "normal";
-		/**
-		 * level of damage
-		 * * 0: none
-		 * * 1: light
-		 * * 2: heavy
-		 */
-		this.damage = 0;
-	}
-};
-
 App.Entity.SlaveState = class SlaveState {
 	constructor() {
 		/** Slave's current name */
@@ -694,14 +674,6 @@ App.Entity.SlaveState = class SlaveState {
 		/** kemonomimi ear color
 		 * "hairless" */
 		this.earTColor = "hairless";
-		/**
-		 * ears of the slave
-		 */
-		/*
-		this.auricle = {
-			left: new App.Entity.EarState(),
-			right: new App.Entity.EarState()
-		};*/
 		/** sense of smell
 		0 - yes, -1 - no */
 		this.smells = 0;
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 96387001541..10f9e988b6d 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -1404,42 +1404,3 @@ window.getRightEyeID = function(slave) {
 		return 0;
 	}
 };
-
-/**
- * True if slave has at least one ear
- *
- * @param {App.Entity.SlaveState} slave
- * @returns {boolean}
- */
-window.hasAnyEars = function(slave) {
-	return !!slave.auricle.right || !!slave.auricle.left;
-};
-
-/**
- * True if slave has both ears
- *
- * @param {App.Entity.SlaveState} slave
- * @returns {boolean}
- */
-window.hasBothEars = function(slave) {
-	return !!slave.auricle.right && !!slave.auricle.left;
-};
-
-/**
- * True if slave has left ear
- *
- * @param {App.Entity.SlaveState} slave
- * @returns {boolean}
- */
-window.hasLeftEar = function(slave) {
-	return !!slave.auricle.left;
-};
-/**
- * True if slave has right ear
- *
- * @param {App.Entity.SlaveState} slave
- * @returns {boolean}
- */
-window.hasRightEar = function(slave) {
-	return !!slave.auricle.right;
-};
diff --git a/src/js/surgery.js b/src/js/surgery.js
index d3b1a547085..d048abe3fa9 100644
--- a/src/js/surgery.js
+++ b/src/js/surgery.js
@@ -458,23 +458,17 @@ App.Medicine.Surgery.sizingProcedures = function() {
 window.surgeryAmp = function(slave, part) {
 	switch (part) {
 		case "left ear":
-			slave.auricle.left = null;
 			delete slave.brand["left ear"];
-			if (!hasAnyEars(slave)) {
-				slave.earShape = "none";
-				slave.earT = "none";
-				slave.earPiercing = 0;
-			}
+			slave.earShape = "none";
+			slave.earT = "none";
+			slave.earPiercing = 0;
 			slave.health -= 10;
 			break;
 		case "right ear":
-			slave.auricle.right = null;
 			delete slave.brand["right ear"];
-			if (!hasAnyEars(slave)) {
-				slave.earShape = "none";
-				slave.earT = "none";
-				slave.earPiercing = 0;
-			}
+			slave.earShape = "none";
+			slave.earT = "none";
+			slave.earPiercing = 0;
 			slave.health -= 10;
 			break;
 		case "dick":
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index d71d72a233c..c461c1e386e 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -8,7 +8,7 @@
 /* use the secondary location if the primary brand target won't work for this slave */
 <<set _brandTarget = $brandTarget.primary>>
 <<if ($activeSlave.dick == 0 && $brandTarget.primary == "penis")
-|| (!hasAnyEars($activeSlave) && $brandTarget.primary == "ear")
+|| ($activeSlave.earShape !== "none" && $brandTarget.primary == "ear")
 || (!hasAnyNaturalLegs($activeSlave) && ($brandTarget.primary == "thigh" || $brandTarget.primary == "calf" || $brandTarget.primary == "ankle" || $brandTarget.primary == "foot"))
 || ($activeSlave.balls == 0 && $activeSlave.scrotum == 0 && $brandTarget.primary == "testicle")>>
 	<<set _brandTarget = $brandTarget.secondary>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 527a209267d..e65c2142e9a 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -354,11 +354,28 @@ hips innocently and moves up to $his lower legs. But then, as $he slowly massage
 <<else>>
 	it to become apparent that $his hungry asspussy serves as $his only genitalia.
 <</if>>
-With $his back arched and $his thighs together $his <<if $activeSlave.butt > 5>>massive buttocks part a little, showing a hint of<<elseif $activeSlave.butt > 2>>big buttocks part, revealing<<else>>cute buttocks are spread wide apart, displaying<</if>> $his <<if $activeSlave.anus > 2>>lewd anal slit<<elseif $activeSlave.anus == 2>>big butthole<<else>>tight anus<</if>>. <<if canSee($activeSlave)>><<if $activeSlave.belly >= 50000>>$His _belly stomach is far too large to see around, but given $his held pose, $he's waiting to see what you do<<elseif $activeSlave.belly >= 5000>>$He peeks around the edge of $his belly, checking your crotch to see if you are watching<<else>>$He peeks between $his legs again, checking to see if you're watching<</if>><<elseif canHear($activeSlave)>>$His <<if hasBothEars($activeSlave)>>ears perk<<else>>ear perks<</if>> up, listening to see if you are still there<<else>>$He stays as still as $he can, clearly waiting for you to make a move<</if>>.
+With $his back arched and $his thighs together $his <<if $activeSlave.butt > 5>>massive buttocks part a little, showing a hint of<<elseif $activeSlave.butt > 2>>big buttocks part, revealing<<else>>cute buttocks are spread wide apart, displaying<</if>> $his <<if $activeSlave.anus > 2>>lewd anal slit<<elseif $activeSlave.anus == 2>>big butthole<<else>>tight anus<</if>>.
+<<if canSee($activeSlave)>>
+	<<if $activeSlave.belly >= 50000>>$His _belly stomach is far too large to see around, but given $his held pose, $he's waiting to see what you do
+	<<elseif $activeSlave.belly >= 5000>>$He peeks around the edge of $his belly, checking your crotch to see if you are watching
+	<<else>>$He peeks between $his legs again, checking to see if you're watching
+	<</if>>
+<<elseif canHear($activeSlave)>>
+	$His ears perk up, listening to see if you are still there
+<<else>>
+	$He stays as still as $he can, clearly waiting for you to make a move
+<</if>>.
 
 <<case "sore shoulders">>
 
-<<EventNameLink>> comes before you for a routine inspection. The <<if $activeSlave.muscles > 95>>heavily muscled<<elseif $activeSlave.muscles > 30>>ripped<<else>>toned<</if>><<if $activeSlave.preg > $activeSlave.pregData.normalBirth/1.33>> and heavily pregnant<<elseif $activeSlave.preg > $activeSlave.pregData.normalBirth/2>>pregnant<</if>> $desc is looking good, but as $he raises $his arm<<if hasBothArms($activeSlave)>>s<</if>> over $his head to spin $his nude torso under your gaze, $he winces slightly. <<if canSee($activeSlave)>>$His <<= App.Desc.eyeColor($activeSlave)>> eyes flick up to see if you noticed, and $his face falls a little when $he sees that you did. You raise one eyebrow, and the obedient slave explains $himself<<elseif canHear($activeSlave)>>$His <<if hasBothEars($activeSlave)>>ears perk<<else>>ear perks<</if>> up to hear if you noticed. You clear your throat, startling $him and making $him explain $himself<<else>>$He tries to affect a stoic expression, but when you tentatively touch one of $his shoulders, $he grimaces slightly and quickly opts to explain $himself<</if>>.
+<<EventNameLink>> comes before you for a routine inspection. The <<if $activeSlave.muscles > 95>>heavily muscled<<elseif $activeSlave.muscles > 30>>ripped<<else>>toned<</if>><<if $activeSlave.preg > $activeSlave.pregData.normalBirth/1.33>> and heavily pregnant<<elseif $activeSlave.preg > $activeSlave.pregData.normalBirth/2>>pregnant<</if>> $desc is looking good, but as $he raises $his arm<<if hasBothArms($activeSlave)>>s<</if>> over $his head to spin $his nude torso under your gaze, $he winces slightly.
+<<if canSee($activeSlave)>>
+	$His <<= App.Desc.eyeColor($activeSlave)>> eyes flick up to see if you noticed, and $his face falls a little when $he sees that you did. You raise one eyebrow, and the obedient slave explains $himself
+<<elseif canHear($activeSlave)>>
+	$His ears perk up to hear if you noticed. You clear your throat, startling $him and making $him explain $himself
+<<else>>
+	$He tries to affect a stoic expression, but when you tentatively touch one of $his shoulders, $he grimaces slightly and quickly opts to explain $himself
+<</if>>.
 <<if !canTalk($activeSlave)>>
 	$He uses gestures to beg your pardon, and explains that yesterday was arm day for $him, and $he went out a little hard. $His shoulders are a little sore, but $he gestures that $he's all right.
 <<else>>
@@ -13794,7 +13811,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 <<link "Let $him get dressed and spend some quality time with $him">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-		You let $activeSlave.slaveName don a nice dress and take $him out. $He's a little suspicious at first but when you reach the first balcony on your lazy route around the huge building the sun on $his face and the gentle breeze around $his <<if hasAnyEars($activeSlave)>>ear<<if hasBothEars($activeSlave)>>s<</if>><<else>>neck<</if>> convince $him there's no trick. $He watches you shyly as you lead $him around, soaking in the sights and relaxing. Though you still speak as $his <<= WrittenMaster($activeSlave)>>, you chat about goings on around the arcology, and you buy $him a fresh fruit from a vendor. The unexpected show of care and compassion has $him quite agog. By the time you take $him out onto another parklike balcony and fuck $him on a bench,
+		You let $activeSlave.slaveName don a nice dress and take $him out. $He's a little suspicious at first but when you reach the first balcony on your lazy route around the huge building the sun on $his face and the gentle breeze around $his ears convince $him there's no trick. $He watches you shyly as you lead $him around, soaking in the sights and relaxing. Though you still speak as $his <<= WrittenMaster($activeSlave)>>, you chat about goings on around the arcology, and you buy $him a fresh fruit from a vendor. The unexpected show of care and compassion has $him quite agog. By the time you take $him out onto another parklike balcony and fuck $him on a bench,
 		<<if ($activeSlave.dick > 0) && ($activeSlave.chastityPenis == 1) && ($activeSlave.chastityAnus == 1)>>
 			$his combined chastity cage and anal chastity belt makes $him move awkwardly.
 		<<elseif ($activeSlave.dick > 0) && ($activeSlave.chastityPenis == 1)>>
@@ -21007,7 +21024,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 <br><<link "Fuck $him">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-		You can't help but be aroused by the sight of your swollen, helpless slave, and you take off your pants, revealing your erection. The slave's <<if canSee($activeSlave)>>backward glance falls on your dick<<elseif canHear($activeSlave)>>ear<<if hasBothEars($activeSlave)>>s perk<<else>> perks<</if>> up<<else>>head tilts to face you<</if>> and $he
+		You can't help but be aroused by the sight of your swollen, helpless slave, and you take off your pants, revealing your erection. The slave's <<if canSee($activeSlave)>>backward glance falls on your dick<<elseif canHear($activeSlave)>>ears perk up<<else>>head tilts to face you<</if>> and $he
 		<<if $activeSlave.devotion > 95>>
 			licks $his lips,
 			<<if hasAnyLegs($activeSlave)>>
diff --git a/src/uncategorized/hgApplication.tw b/src/uncategorized/hgApplication.tw
index a8723d1c5de..59c00c20da0 100644
--- a/src/uncategorized/hgApplication.tw
+++ b/src/uncategorized/hgApplication.tw
@@ -327,7 +327,7 @@ In spare moments $he teaches $activeSlave.slaveName how to prostitute _himself2.
 <<if $activeSlave.devotion >= -20 && $activeSlave.genes == "XY" && $activeSlave.attrXY <= 35 && $arcologies[0].FSBodyPurist == "unset" && ($arcologies[0].FSPaternalist == "unset" || ($arcologies[0].FSPaternalist != "unset" && $modScore < 13))>>
 	<<set _piercingForbidden = 0>>
 	<<for _i = 0; _i < 1; _i++>>
-		<<if $activeSlave.earPiercing == 0 && hasAnyEars($activeSlave)>>
+		<<if $activeSlave.earPiercing == 0 && $activeSlave.earShape !== "none">>
 			<<if $arcologies[0].FSDegradationist != "unset">>
 				<<set $activeSlave.earPiercing = 2>>
 			<<else>>
@@ -338,9 +338,9 @@ In spare moments $he teaches $activeSlave.slaveName how to prostitute _himself2.
 				<<set _piercingForbidden = 1, $activeSlave.earPiercing = 0>>
 			<<else>>
 				<<if $arcologies[0].FSDegradationist != "unset">>
-					$HeadGirl.slaveName knows that $activeSlave.slaveName needs to adjust to life as a slave _girl2, so $he has the slave's ear<<if hasBothEars($activeSlave)>>s<</if>> pierced. This will be a constant reminder that _he2 is simply a sexual object here.
+					$HeadGirl.slaveName knows that $activeSlave.slaveName needs to adjust to life as a slave _girl2, so $he has the slave's ears pierced. This will be a constant reminder that _he2 is simply a sexual object here.
 				<<else>>
-					$HeadGirl.slaveName knows that $activeSlave.slaveName needs help adjusting to life as a slave _girl2, so $he has the slave's ear<<if hasBothEars($activeSlave)>>s<</if>> pierced. A little feminine touch can make a big difference.
+					$HeadGirl.slaveName knows that $activeSlave.slaveName needs help adjusting to life as a slave _girl2, so $he has the slave's ears pierced. A little feminine touch can make a big difference.
 				<</if>>
 				<<run cashX(forceNeg($modCost), "slaveMod", $activeSlave)>>
 				<<break>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index f8bf6c6c505..7225b6fbcc9 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -921,7 +921,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<<if canDoAnal($activeSlave)>>
 		<<link "Make sure $he enjoys $his first anal sex">>
 			<<replace "#introResult">>
-				You introduce $him to obedience and proper manners regarding $his <<= WrittenMaster($activeSlave)>> before sending $him off for a physical. That night, $he's returned to your room, and finds you doing business on a tablet in bed. $He looks doubtful, but obeys when you direct $him to get into bed<<if $PC.dick == 0>>, even after $he realizes you're wearing a strap-on<</if>>. You turn out the light and spoon $him from behind, kissing $his neck<<if hasAnyEars($activeSlave)>> and ear<<if hasBothEars($activeSlave)>>s<</if>><</if>>, cupping $his swollen breasts, and running your hands across $his pregnant belly with its taut $activeSlave.skin skin. $He's awkward at first but $his body responds to the tenderness. Before long $he's humping $his pussy back and forth against <<if $PC.dick == 1>>your cock<<else>>the strap-on<</if>>. You tell $him no, not there, and begin to gently work <<if $PC.dick == 1>>your dickhead<<else>>its tip<</if>> up $his tight but relaxed ass. $He's unsure of $himself, but you keep $him nice and relaxed. $He doesn't climax to $his @@.lime;first buttsex,@@ but $he is learning to @@.mediumaquamarine;trust@@ that you won't hurt $him.
+				You introduce $him to obedience and proper manners regarding $his <<= WrittenMaster($activeSlave)>> before sending $him off for a physical. That night, $he's returned to your room, and finds you doing business on a tablet in bed. $He looks doubtful, but obeys when you direct $him to get into bed<<if $PC.dick == 0>>, even after $he realizes you're wearing a strap-on<</if>>. You turn out the light and spoon $him from behind, kissing $his neck and ears, cupping $his swollen breasts, and running your hands across $his pregnant belly with its taut $activeSlave.skin skin. $He's awkward at first but $his body responds to the tenderness. Before long $he's humping $his pussy back and forth against <<if $PC.dick == 1>>your cock<<else>>the strap-on<</if>>. You tell $him no, not there, and begin to gently work <<if $PC.dick == 1>>your dickhead<<else>>its tip<</if>> up $his tight but relaxed ass. $He's unsure of $himself, but you keep $him nice and relaxed. $He doesn't climax to $his @@.lime;first buttsex,@@ but $he is learning to @@.mediumaquamarine;trust@@ that you won't hurt $him.
 			<</replace>>
 			<<set $activeSlave.trust += 10>>
 			<<set $activeSlave.anus = 1>>
@@ -1776,7 +1776,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Make sure $he knows pregnant women can still enjoy sex.">>
 		<<replace "#introResult">>
-			You introduce $him to obedience and proper manners regarding $his <<= WrittenMaster($activeSlave)>> before sending $him off for a physical. That night, $he's returned to your room, and finds you doing business on a tablet in bed. $He looks doubtful, but obeys when you direct $him to get into bed<<if $PC.dick == 0>>, even after $he realizes you're wearing a strap-on<</if>>. You turn out the light and spoon $him from behind, kissing $his neck<<if hasAnyEars($activeSlave)>> and ear<<if hasBothEars($activeSlave)>>s<</if>><</if>>, cupping $his swollen breasts, and running your hands across $his pregnant belly with its taut $activeSlave.skin skin. $He's awkward at first but $his body responds to the tenderness. Before long $he's humping $his pussy back and forth against <<if $PC.dick == 1>>your cock<<else>>the strap-on<</if>>. You begin to gently work <<if $PC.dick == 1>>your dickhead<<else>>its tip<</if>> up $his used pussy. $He's unsure of $himself, but you keep $him nice and relaxed. After several minutes of gentle loving, $he's nothing but a satisfied puddle in your arms. $He believes that $he can @@.mediumaquamarine;trust@@ you won't harm $him or $his child.
+			You introduce $him to obedience and proper manners regarding $his <<= WrittenMaster($activeSlave)>> before sending $him off for a physical. That night, $he's returned to your room, and finds you doing business on a tablet in bed. $He looks doubtful, but obeys when you direct $him to get into bed<<if $PC.dick == 0>>, even after $he realizes you're wearing a strap-on<</if>>. You turn out the light and spoon $him from behind, kissing $his neck and ears, cupping $his swollen breasts, and running your hands across $his pregnant belly with its taut $activeSlave.skin skin. $He's awkward at first but $his body responds to the tenderness. Before long $he's humping $his pussy back and forth against <<if $PC.dick == 1>>your cock<<else>>the strap-on<</if>>. You begin to gently work <<if $PC.dick == 1>>your dickhead<<else>>its tip<</if>> up $his used pussy. $He's unsure of $himself, but you keep $him nice and relaxed. After several minutes of gentle loving, $he's nothing but a satisfied puddle in your arms. $He believes that $he can @@.mediumaquamarine;trust@@ you won't harm $him or $his child.
 		<</replace>>
 		<<set $activeSlave.trust += 5>>
 		<<= VCheck.Vaginal()>>
diff --git a/src/uncategorized/reShowerPunishment.tw b/src/uncategorized/reShowerPunishment.tw
index 443f4849087..09df3a32a01 100644
--- a/src/uncategorized/reShowerPunishment.tw
+++ b/src/uncategorized/reShowerPunishment.tw
@@ -53,7 +53,7 @@ $activeSlave.slaveName is being very thorough. When you first appeared, $he was
 	<br><br>
 	When $activeSlave.slaveName is finally done, $HeadGirl.slaveName's
 	<<if $HGSeverity > 0>>
-		hands seize $him by the <<if hasBothEars($activeSlave)>>ears<<else>>scruff of the neck<</if>> and pull $his head in for a kiss that is dominance distilled into the form of a loving gesture. Then _he2 pokes _his2 bitch in the side, forcing the slave to collapse in just the right way.
+		hands seize $him by the ears and pull $his head in for a kiss that is dominance distilled into the form of a loving gesture. Then _he2 pokes _his2 bitch in the side, forcing the slave to collapse in just the right way.
 	<<elseif $HGSeverity == 0>>
 		arms encircle $him in an embrace that is simultaneously controlling, comforting, and sexually insistent. The slave does not resist, allowing the Head Girl to run _his2 hands over the warm, wet sex slave.
 	<<else>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 0b68e169bf6..914274ac314 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -189,8 +189,8 @@ $He has
 	<<if $activeSlave.earShape != "normal" && $activeSlave.earShape != "none">>
 		[[Restore to normal|Surgery Degradation][$activeSlave.earShape = "normal", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "earRestore"]]
 	<</if>>
-	<<if $activeSlave.earShape != "normal" && hasAnyEars($activeSlave) && $seeExtreme == 1 && $activeSlave.indentureRestrictions < 1>> | <</if>>
-	<<if hasAnyEars($activeSlave) && $seeExtreme == 1 && $activeSlave.indentureRestrictions < 1>>
+	<<if $activeSlave.earShape != "normal" && $activeSlave.earShape !== "none" && $seeExtreme == 1 && $activeSlave.indentureRestrictions < 1>> | <</if>>
+	<<if $activeSlave.earShape != "none" && $seeExtreme == 1 && $activeSlave.indentureRestrictions < 1>>
 		[[Remove them|Surgery Degradation][surgeryAmp($activeSlave, "left ear"), surgeryAmp($activeSlave, "right ear"), $surgeryType = "earGone", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]
 	<</if>>
 	<<if $activeSlave.earShape == "none">>
-- 
GitLab