From a3e1f70fc453fe4d0ff2eb5294190da81e7209b5 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Wed, 3 Feb 2021 19:54:39 -0500
Subject: [PATCH] break up organs

---
 src/npc/surgery/organFarm.js | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/npc/surgery/organFarm.js b/src/npc/surgery/organFarm.js
index 7583c84553f..1fc75b6417c 100644
--- a/src/npc/surgery/organFarm.js
+++ b/src/npc/surgery/organFarm.js
@@ -3,7 +3,10 @@
  * @returns {HTMLDivElement}
  */
 App.Medicine.OrganFarm.growActions = function(slave) {
+	const el = new DocumentFragment();
 	const O = App.Medicine.OrganFarm.Organs;
+	const canImplant = [];
+	const cantImplant = [];
 
 	// find already being grown/ready to implant organs
 	const slaveOrgans = {};
@@ -29,7 +32,7 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 		}
 	}
 
-	const div = document.createElement("div");
+	let div = document.createElement("div");
 	div.classList.add("grid-2columns-auto");
 
 	// create entries for each organ
@@ -38,12 +41,12 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 	O.forEach((organ, key) => {
 		if (slaveOrgans[key] === 0) {
 			if (organ.canGrow(slave)) {
-				App.UI.DOM.appendNewElement("div", div, App.UI.DOM.passageLink(organ.name, "Remote Surgery", () => {
+				(organ.implantActions[0].canImplant(slave) ? canImplant : cantImplant).push(App.UI.DOM.makeElement("div", App.UI.DOM.passageLink(organ.name, "Remote Surgery", () => {
 					App.Medicine.OrganFarm.growOrgan(slave, key);
-				}));
+				})));
 
 				const tooltip = typeof organ.tooltip === "string" ? organ.tooltip : organ.tooltip(slave);
-				App.UI.DOM.appendNewElement("div", div, `Costs ${cashFormat(organ.cost)}${tooltip !== "" ? ` and ${tooltip}` : ""}.`, "detail");
+				(organ.implantActions[0].canImplant(slave) ? canImplant : cantImplant).push(App.UI.DOM.makeElement("div", `Costs ${cashFormat(organ.cost)}${tooltip !== "" ? ` and ${tooltip}` : ""}.`, "detail"));
 			}
 			any = true;
 		} else if (slaveOrgans[key] > 0) {
@@ -65,6 +68,17 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 			App.UI.DOM.appendNewElement("div", div, growing[i].text);
 		}
 	}
+	if (canImplant.length > 0) {
+		App.UI.DOM.appendNewElement("div", div, "Can implant immediately", "bold");
+		App.UI.DOM.appendNewElement("div", div);
+		canImplant.forEach(c => div.append(c));
+	}
+	if (cantImplant.length > 0) {
+		App.UI.DOM.appendNewElement("div", div, "Can't implant immediately", "bold");
+		App.UI.DOM.appendNewElement("div", div);
+		cantImplant.forEach(c => div.append(c));
+	}
+	el.append(div);
 
 	if (any) {
 		return div;
-- 
GitLab