From 5d9b32ec5b0bf3ece8fea4c9dcfef045cebe7d32 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Thu, 4 Jun 2020 19:24:07 -0400
Subject: [PATCH] horn

---
 src/npc/descriptions/horns.js             | 43 +++++++++++++++++++++++
 src/uncategorized/longSlaveDescription.tw |  2 +-
 src/utility/descriptionWidgetsFlesh.tw    | 29 ---------------
 3 files changed, 44 insertions(+), 30 deletions(-)
 create mode 100644 src/npc/descriptions/horns.js

diff --git a/src/npc/descriptions/horns.js b/src/npc/descriptions/horns.js
new file mode 100644
index 00000000000..b57d12d9574
--- /dev/null
+++ b/src/npc/descriptions/horns.js
@@ -0,0 +1,43 @@
+App.Desc.horns = function(slave) {
+	const r = [];
+	const {
+		he, him, his, hers, himself, boy, He, His
+	} = getPronouns(slave);
+	if (slave.horn === "curved succubus horns") {
+		r.push(`${He} has`);
+		if (slave.face > 40) {
+			r.push(`majestic ${slave.hornColor} horns that jut out from the back of ${his} head and curve forward, looking almost like a crown.`);
+		} else if (slave.face > 0) {
+			r.push(`imposing ${slave.hornColor} horns that jut out from the back of ${his} head and curve forward nicely.`);
+		} else {
+			r.push(`terrifying ${slave.hornColor} horns that jut out from the back of ${his} head and curve forward menacingly.`);
+		}
+	} else if (slave.horn === "backswept horns") {
+		if (slave.face > 40) {
+			r.push(`majestic ${slave.hornColor} horns that jut out the front of ${his} head and curve backwards, like some royal headdress.`);
+		} else if (slave.face > 0) {
+			r.push(`imposing ${slave.hornColor} horns that jut out the front of ${his} head and curve backwards nicely.`);
+		} else {
+			r.push(`terrifying ${slave.hornColor} horns that jut out the front of ${his} head and curve backwards, looking like some twisted helmet.`);
+		}
+	} else if (slave.horn === "cow horns") {
+		r.push(`${He} has two ${slave.hornColor} cow horns on the sides of ${his} head; they curve sharply upward.`);
+	} else if (slave.horn === "two long oni horns") {
+		r.push(`${He} has two long ${slave.hornColor} horns sticking straight up out of ${his} forehead`);
+		if (slave.devotion > 20) {
+			r.push(`${he} holds them up proudly.`);
+		} else {
+			r.push(`forehead.`);
+		}
+	} else if (slave.horn === "one long oni horn") {
+		r.push(`${He} has a long ${slave.hornColor} horn sticking straight up out of ${his}`);
+		if (slave.devotion > 20) {
+			r.push(`forehead ${he} holds it up proudly`);
+		} else {
+			r.push(`forehead.`);
+		}
+	} else if (slave.horn === "small horns") {
+		r.push(`${He} has cute, little ${slave.hornColor} horns sticking out of ${his} head.`);
+	}
+	return r.join(" ");
+};
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 51233c1e9a4..8bbb9f9c97d 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -1908,7 +1908,7 @@ $He is
 	<</if>>
 <</if>>
 
-<<hornDescription>>
+<<= App.Desc.horns($activeSlave)>>
 <<= App.Desc.face($activeSlave)>>
 <<mouthDescription>>
 
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 70b0c913b30..f402b7849ed 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -1,34 +1,5 @@
 :: flesh description widgets [widget nobr]
 
-<<widget "hornDescription">>
-	<<if $activeSlave.horn == "curved succubus horns">>
-		$He has
-		<<if $activeSlave.face > 40>>
-			majestic $activeSlave.hornColor horns that jut out from the back of $his head and curve forward, looking almost like a crown.
-		<<elseif $activeSlave.face > 0>>
-			imposing $activeSlave.hornColor horns that jut out from the back of $his head and curve forward nicely.
-		<<else>>
-			terrifying $activeSlave.hornColor horns that jut out from the back of $his head and curve forward menacingly.
-		<</if>>
-	<<elseif $activeSlave.horn == "backswept horns">>
-		<<if $activeSlave.face > 40>>
-			majestic $activeSlave.hornColor horns that jut out the front of $his head and curve backwards, like some royal headdress.
-		<<elseif $activeSlave.face > 0>>
-			imposing $activeSlave.hornColor horns that jut out the front of $his head and curve backwards nicely.
-		<<else>>
-			terrifying $activeSlave.hornColor horns that jut out the front of $his head and curve backwards, looking like some twisted helmet.
-		<</if>>
-	<<elseif $activeSlave.horn == "cow horns">>
-		$He has two $activeSlave.hornColor cow horns on the sides of $his head; they curve sharply upward.
-	<<elseif $activeSlave.horn == "two long oni horns">>
-		$He has two long $activeSlave.hornColor horns sticking straight up out of $his forehead<<if $activeSlave.devotion > 20>>; $he holds them up proudly<</if>>.
-	<<elseif $activeSlave.horn == "one long oni horn">>
-		$He has a long $activeSlave.hornColor horn sticking straight up out of $his forehead<<if $activeSlave.devotion > 20>>; $he holds it up proudly<</if>>.
-	<<elseif $activeSlave.horn == "small horns">>
-		$He has cute, little $activeSlave.hornColor horns sticking out of $his head.
-	<</if>>
-<</widget>>
-
 <<widget "mouthDescription">>
 
 $He has
-- 
GitLab