diff --git a/src/events/RETS/reShowerForce.js b/src/events/RETS/reShowerForce.js
index 42fdf1b2700b589feef208d6239a2a6d6de61ae5..4ac56a98b8a0463eff83a505145f76a577cce28a 100644
--- a/src/events/RETS/reShowerForce.js
+++ b/src/events/RETS/reShowerForce.js
@@ -10,19 +10,21 @@ App.Events.RETSShowerForce = class RETSShowerForce extends App.Events.BaseEvent
 			[ // event slave /domslave
 				s => s.fetish !== "mindbroken",
 				hasAnyArms,
-				hasAnyLegs,
+				canWalk,
 				canTalk,
+				canSee,
 				s => s.devotion > 50,
 				s => s.trust <= 75,
 				s => (["sadist", "dom"].includes(s.fetish) || s.energy > 95),
 			],
 			[ // and subslave
 				s => s.fetish !== "mindbroken",
-				canWalk,
+				canStand,
 				canTalk,
+				canHear,
 				isSlaveAvailable,
 				s => s.devotion <= 20,
-				s => (s.fetish !== "buttslut" || s.fetishKnown === 0),
+				s => (s.fetish !== "buttslut"),
 				s => (canDoAnal(s) && s.anus !== 0),
 			]
 		];
@@ -104,26 +106,24 @@ App.Events.RETSShowerForce = class RETSShowerForce extends App.Events.BaseEvent
 				t.push("emphasis.");
 			}
 			t.push(`You politely admonish ${eventSlave.slaveName}, and tell ${him} to do a better job of looking after ${his} anal bottom's pleasure. ${He} nods vigorously and snakes a hand around ${subSlave.slaveName}, to where`);
-			if ((subSlave.dick > 0) && !canAchieveErection(subSlave)) {
-				t.push(`${his2} limp dick is smashed against the glass.`);
-			} else if (subSlave.dick > 0) {
+			if (subSlave.chastityPenis) {
+				t.push(`${his2} caged dick is scraping against the glass.`);
+			} else if (canAchieveErection(subSlave)) {
 				t.push(`${his2} dick, shamefully half-hard despite ${his2} unwillingness, is smashed against the glass.`);
-			} else if (subSlave.vagina === -1) {
-				t.push(`${his2} featureless groin is hidden between ${his2} forced-together legs.`);
-			} else {
+			} else if (subSlave.dick > 0) {
+				t.push(`${his2} limp dick is smashed against the glass.`);
+			} else if (subSlave.vagina > -1) {
 				t.push(`${his2} neglected pussy is hidden between ${his2} forced-together legs.`);
+			} else {
+				t.push(`${his2} featureless groin is hidden between ${his2} forced-together legs.`);
 			}
-			t.push(`${eventSlave.slaveName} goes back to the anal, but gives ${subSlave.slaveName} a serviceable reach around as ${he} does. ${subSlave.slaveName} does not orgasm, but ${he2} looks a little less unhappy and <span class="mediumaquamarine">thanks you</span> for your intervention after ${eventSlave.slaveName}`);
+			t.push(`${eventSlave.slaveName} goes back to the anal, but gives ${subSlave.slaveName} a serviceable reach around as ${he} does. ${subSlave.slaveName} does not orgasm, but ${he2} looks a little less unhappy and <span class="trust inc">thanks you</span> for your intervention after ${eventSlave.slaveName}`);
 			if (canPenetrate(eventSlave)) {
 				t.push(`grunts, fills ${his2} asshole with cum, and pulls ${himself} out.`);
 			} else {
 				t.push(`shakes with orgasm and removes ${his} fingers.`);
 			}
-			if (canPenetrate(eventSlave)) {
-				seX(subSlave, "anal", eventSlave, "penetrative");
-			} else {
-				actX(subSlave, "anal");
-			}
+			seX(subSlave, "anal", eventSlave, "penetrative");
 			subSlave.trust += 4;
 			if (canPenetrate(eventSlave) && canImpreg(subSlave, eventSlave)) {
 				t.push(knockMeUp(subSlave, 5, 1, eventSlave.ID, true));
@@ -169,15 +169,11 @@ App.Events.RETSShowerForce = class RETSShowerForce extends App.Events.BaseEvent
 			if (subSlave.belly >= 10000) {
 				t.push(`the overfilled`);
 			}
-			t.push(`${subSlave.slaveName}. The position isn't the best for pounding's sake, but the sadistic thrill of ${subSlave.slaveName}'s anguish is plenty to bring both you and ${eventSlave.slaveName} to prompt orgasm. ${subSlave.slaveName} stumbles painfully back to the shower with <span class="gold">ill-concealed terror,</span> while ${eventSlave.slaveName} impulsively gives you a <span class="hotpink">quick hug.</span>`);
+			t.push(`${subSlave.slaveName}. The position isn't the best for pounding's sake, but the sadistic thrill of ${subSlave.slaveName}'s anguish is plenty to bring both you and ${eventSlave.slaveName} to prompt orgasm. ${subSlave.slaveName} stumbles painfully back to the shower with <span class="trust dec">ill-concealed terror,</span> while ${eventSlave.slaveName} impulsively gives you a <span class="devotion inc">quick hug.</span>`);
 			eventSlave.devotion += 4;
-			if (canPenetrate(eventSlave)) {
-				seX(subSlave, "anal", eventSlave, "penetrative");
-			} else {
-				actX(subSlave, "anal");
-			}
 			subSlave.trust -= 5;
-			seX(eventSlave, "anal", V.PC, "penetrative");
+			seX(subSlave, "anal", eventSlave, "penetrative");
+			seX(subSlave, "anal", V.PC, "penetrative");
 			if (canImpreg(subSlave, V.PC)) {
 				t.push(knockMeUp(subSlave, 5, 1, -1, true));
 			}