From 6efc7577d13febf8517a02f194784026178b716d Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@mailbox.org>
Date: Tue, 11 Jan 2022 19:58:41 +0100
Subject: [PATCH] Remove surgery Degradation

Move some forgotten checks to the right places
---
 .../legacy files/Unused_Surgery_Scenes.js     | 82 -------------------
 js/medicine/surgery/genitials/geld.js         |  5 ++
 js/medicine/surgery/genitials/maleToFemale.js | 12 +--
 src/npc/surgery/surgery.js                    |  8 +-
 4 files changed, 18 insertions(+), 89 deletions(-)
 rename src/npc/surgery/surgeryDegradation.js => devNotes/legacy files/Unused_Surgery_Scenes.js (87%)

diff --git a/src/npc/surgery/surgeryDegradation.js b/devNotes/legacy files/Unused_Surgery_Scenes.js
similarity index 87%
rename from src/npc/surgery/surgeryDegradation.js
rename to devNotes/legacy files/Unused_Surgery_Scenes.js
index 29b944a2877..b9e55704dd4 100644
--- a/src/npc/surgery/surgeryDegradation.js
+++ b/devNotes/legacy files/Unused_Surgery_Scenes.js	
@@ -1,85 +1,3 @@
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {HTMLElement|DocumentFragment}
- */
-App.UI.SlaveInteract.surgeryDegradation = function(slave) {
-	const el = new DocumentFragment();
-	let r = [];
-	const {his, him} = getPronouns(slave);
-
-	/* disallow surgery for slaves on certain assignments */
-	// TODO: do this before apply, this is too late
-	switch (slave.assignment) {
-		case "be your agent":
-		case "live with your agent":
-			return App.UI.DOM.makeElement("span", `You must retrieve ${slave.slaveName} from ${his} assignment before performing surgery on ${him}.`, "red");
-	}
-
-	// TODO: do this during apply
-	if (slave.dick === 0) {
-		if (slave.vagina === -1) {
-			slave.piercing.genitals.weight = 0;
-			slave.piercing.genitals.smart = false;
-		}
-		if (slave.drugs === "penis enhancement" || slave.drugs === "hyper penis enhancement" || slave.drugs === "breast redistributors") {
-			slave.drugs = "no drugs";
-		}
-	}
-	if (slave.balls === 0) {
-		if (slave.drugs === "testicle enhancement" || slave.drugs === "hyper testicle enhancement" || slave.drugs === "testicle atrophiers") {
-			slave.drugs = "no drugs";
-		}
-	}
-
-
-	// Search for Reaction class and apply if there is one.
-	if (App.Medicine.Surgery.ReactionsMap.has(V.surgeryType)) {
-		const reaction = App.Medicine.Surgery.ReactionsMap.get(V.surgeryType);
-
-		if (reaction.invasive && slave.health.condition < random(-100, -80)) {
-			r.push(`${slave.slaveName} <span class="health dec">has died from complications of surgery.</span>`);
-			App.Events.addParagraph(el, r);
-			removeSlave(slave);
-			V.nextLink = "Main";
-			return el;
-		}
-
-		if (reaction.removeJob) {
-			removeJob(slave, Job.LURCHER, true);
-			removeJob(slave, Job.PIT, true);
-			removeJob(slave, slave.assignment);
-		}
-
-		r.push(...reaction.intro(slave, {}));
-
-		const resultMain = reaction.reaction(slave, {});
-		for (const p of resultMain.longReaction) {
-			r.push(...p);
-			App.Events.addParagraph(el, r);
-			r = [];
-		}
-		slave.devotion += resultMain.devotion;
-		slave.trust += resultMain.trust;
-
-		const resultOutro = reaction.outro(slave, {}, resultMain);
-		for (const p of resultOutro.longReaction) {
-			r.push(...p);
-			App.Events.addParagraph(el, r);
-			r = [];
-		}
-		slave.devotion += resultOutro.devotion;
-		slave.trust += resultOutro.trust;
-
-		return el;
-	} else {
-		r.push(`<span class="error">ERROR bad/missing surgery description</span>`);
-		r.push(`surgeryType: ${V.surgeryType}`);
-		App.Events.addParagraph(el, r);
-	}
-
-	return null;
-};
-
 // switch (V.surgeryType) {
 /*
 
diff --git a/js/medicine/surgery/genitials/geld.js b/js/medicine/surgery/genitials/geld.js
index d2d9efdb28d..45f63cb509b 100644
--- a/js/medicine/surgery/genitials/geld.js
+++ b/js/medicine/surgery/genitials/geld.js
@@ -47,6 +47,11 @@ App.Medicine.Surgery.Procedures.Geld = class extends App.Medicine.Surgery.Proced
 		this._slave.ballType = "human";
 		this._slave.scrotum = 0;
 		this._slave.vasectomy = 0;
+		if (this._slave.drugs === "testicle enhancement" ||
+			this._slave.drugs === "hyper testicle enhancement" ||
+			this._slave.drugs === "testicle atrophiers") {
+			this._slave.drugs = "no drugs";
+		}
 		return this._assemble(new App.Medicine.Surgery.Reactions.Geld());
 	}
 };
diff --git a/js/medicine/surgery/genitials/maleToFemale.js b/js/medicine/surgery/genitials/maleToFemale.js
index 9e168d9071b..71c8ebd92b8 100644
--- a/js/medicine/surgery/genitials/maleToFemale.js
+++ b/js/medicine/surgery/genitials/maleToFemale.js
@@ -51,18 +51,18 @@ App.Medicine.Surgery.Procedures.MaletoFemale = class extends App.Medicine.Surger
 	}
 
 	apply(cheat) {
-		this._slave.dick = 0;
-		this._slave.dickAccessory = "none";
-		this._slave.chastityPenis = 0;
-		this._slave.dickTat = 0;
-		this._slave.foreskin = 0;
+		surgeryAmp(this._slave, "dick");
 		this._slave.scrotum = 0;
 		this._slave.balls = 0;
 		this._slave.ballType = "human";
 		this._slave.vasectomy = 0;
 		this._slave.vagina = 0;
 		this._slave.preg = -2;
-		this._slave.skill.vaginal = 0;
+		if (this._slave.drugs === "testicle enhancement" ||
+			this._slave.drugs === "hyper testicle enhancement" ||
+			this._slave.drugs === "testicle atrophiers") {
+			this._slave.drugs = "no drugs";
+		}
 		return this._assemble(new App.Medicine.Surgery.Reactions.MaletoFemale());
 	}
 };
diff --git a/src/npc/surgery/surgery.js b/src/npc/surgery/surgery.js
index 5b6f13579cd..b6a9ce69c06 100644
--- a/src/npc/surgery/surgery.js
+++ b/src/npc/surgery/surgery.js
@@ -481,10 +481,16 @@ globalThis.surgeryAmp = function(slave, part, cheat = false) {
 			slave.dick = 0;
 			slave.foreskin = 0;
 			slave.skill.vaginal = 0;
-			slave.piercing.dick.weight = 0;
 			slave.dickTat = 0;
 			slave.dickAccessory = "none";
 			slave.chastityPenis = 0;
+			if (slave.vagina === -1) {
+				slave.piercing.genitals.weight = 0;
+				slave.piercing.genitals.smart = false;
+			}
+			if (slave.drugs === "penis enhancement" || slave.drugs === "hyper penis enhancement" || slave.drugs === "breast redistributors") {
+				slave.drugs = "no drugs";
+			}
 			surgeryDamage(slave, 20, cheat);
 			break;
 		case "vagina":
-- 
GitLab