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> <<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