From 325a3cc3e41bb7cd7f48b8b5f4468f37c0aee4bf Mon Sep 17 00:00:00 2001
From: Trinidad <anchaiscastilla@gmail.com>
Date: Thu, 14 Sep 2023 12:17:57 +0200
Subject: [PATCH] 	modified:   devNotes/usefulJSFunctionDocumentation.md 
 modified:   src/npc/descriptions/genericDescriptions.js 	modified:  
 src/pregmod/editGenetics.js

---
 devNotes/usefulJSFunctionDocumentation.md   |  2 +
 src/npc/descriptions/genericDescriptions.js | 41 ++++++++++++++++++++-
 src/pregmod/editGenetics.js                 |  4 +-
 3 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/devNotes/usefulJSFunctionDocumentation.md b/devNotes/usefulJSFunctionDocumentation.md
index 854e8597825..e8602bc0e2e 100644
--- a/devNotes/usefulJSFunctionDocumentation.md
+++ b/devNotes/usefulJSFunctionDocumentation.md
@@ -187,6 +187,8 @@ dickDesc(slave) // Returns the description of the slave's penis.
 
 ballsDesc(slave) // Returns the description of the slave's testicles.
 
+clitDesc(slave) // Returns the description of the slave's clitoris.
+
 anusDesc(slave) // Returns the description of the slave's anus.
 
 boobsDesc(slave) // Returns the size descriptor of the slave's breasts.
diff --git a/src/npc/descriptions/genericDescriptions.js b/src/npc/descriptions/genericDescriptions.js
index dc7be8724cb..e24e0903c14 100644
--- a/src/npc/descriptions/genericDescriptions.js
+++ b/src/npc/descriptions/genericDescriptions.js
@@ -352,7 +352,7 @@ globalThis.lipsDesc = function(slave, withNoun = true, withSurgery = true) {
 }
 
 /**
- * Returns the description of the slave's bally
+ * Returns the description of the slave's belly
  * @param {FC.HumanState} slave // admits V.PC as argument.
  * @param {boolean} withNoun
  * @param {boolean} pregReference // mentions pregnancy if slave is pregnant
@@ -451,3 +451,42 @@ globalThis.bellyDesc = function(slave, withNoun = true, pregReference = true) {
 	}
 	return `${jsEither(adj)}`;
 }
+
+/**
+ * Returns the description of the slave's clit
+ * @param {FC.HumanState} slave // admits V.PC as argument.
+ * @param {boolean} withNoun
+ * @returns {string}
+ */
+globalThis.clitDesc = function(slave, withNoun = true) {
+	if (!slave) {return "ERROR"}
+	if (slave.dick > 0) { // slaves with dicks don't have clits
+		return dickDesc(slave, withNoun);
+	}
+	if (slave.vagina < 0) { // no vagina, no vulva, no clit
+		return `lack of${withNoun ? " clitoris" : ""}`;
+	}
+	let adj = [];
+	let noun = ["clit"];
+	switch (slave.clit) {
+		case 0:
+			adj.push("", "cute", "average");
+			noun.push("clit", "clitoris", "button", "bud");
+			break;
+		case 1:
+			adj.push("large", "big");
+			break;
+		case 2:
+			adj.push("huge", "huge", "noticeable");
+			break;
+		case 3:
+			adj.push("enormous", "prominent", "protruding")
+			break;
+		case 4:
+			adj.push("penis-like", "dick-like", "phallus-like", "hypertrophied");
+			break;
+		default:
+			adj.push("massive penis-like", "elephantine phallic", "gigantic dick-like", "immense penis-like");
+			noun.push("megaclit", "clit", "vulva appendage");
+	}
+}
\ No newline at end of file
diff --git a/src/pregmod/editGenetics.js b/src/pregmod/editGenetics.js
index fa9dbbf7c48..dd638361d4d 100644
--- a/src/pregmod/editGenetics.js
+++ b/src/pregmod/editGenetics.js
@@ -313,7 +313,7 @@ App.UI.editGenetics = function() {
 			cell.setAttribute("data-max", "3");
 
 			makeHeader(`Clitoris`);
-			cell = App.UI.DOM.appendNewElement("td", row, clitDesc(s.clit), ["editor", "number-editor"]);
+			cell = App.UI.DOM.appendNewElement("td", row, clitorisDesc(s.clit), ["editor", "number-editor"]);
 			cell.setAttribute("data-param", "clit");
 			cell.setAttribute("data-min", "0");
 			cell.setAttribute("data-max", "5");
@@ -497,7 +497,7 @@ App.UI.editGenetics = function() {
 			'3': 'huge dangling'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
 	}
-	function clitDesc(s) {
+	function clitorisDesc(s) {
 		return ({
 			'0': 'normal',
 			'1': 'large',
-- 
GitLab