From b4bb101a2c481c5990edb8abe4735918e5ed9fba Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Mon, 31 Aug 2020 15:13:05 -0400
Subject: [PATCH] finish husk slave

---
 src/markets/specificMarkets/huskSlave.js | 83 ++++++++----------------
 src/markets/specificMarkets/huskSlave.tw | 60 -----------------
 2 files changed, 26 insertions(+), 117 deletions(-)
 delete mode 100644 src/markets/specificMarkets/huskSlave.tw

diff --git a/src/markets/specificMarkets/huskSlave.js b/src/markets/specificMarkets/huskSlave.js
index 9dcb8f92a91..60040aba275 100644
--- a/src/markets/specificMarkets/huskSlave.js
+++ b/src/markets/specificMarkets/huskSlave.js
@@ -60,29 +60,7 @@ App.Markets["Husk Slave"] = function() {
 			Male: 2,
 			Both: 3
 		};
-
-		const linkArray = [];
-		for (const choice in choices) {
-			if (V.huskSlave.sex === choices[choice]) {
-				linkArray.push(
-					App.UI.DOM.disabledLink(
-						choice,
-						["current selection"]
-					)
-				);
-			} else {
-				linkArray.push(
-					App.UI.DOM.link(
-						choice,
-						() => {
-							V.huskSlave.sex = choices[choice];
-							refresh();
-						}
-					)
-				);
-			}
-		}
-		App.UI.DOM.appendNewElement("div", p, App.UI.DOM.generateLinksStrip(linkArray));
+		p.append(links(choices, "sex"));
 		return p;
 	}
 
@@ -100,6 +78,7 @@ App.Markets["Husk Slave"] = function() {
 				},
 			)
 		);
+		p.append(links(App.Data.misc.baseNationalities.concat(["Stateless"]), "nationality"));
 		return p;
 	}
 
@@ -119,20 +98,22 @@ App.Markets["Husk Slave"] = function() {
 		);
 
 		const linkArray = [];
-		for (let i = 0; i < App.Data.misc.filterRaces.length; i++) {
-			if (V.huskSlave.race === App.Data.misc.filterRacesLowercase[i]) {
+		const raceUpper = App.Data.misc.filterRaces.concat(["Not Important"]);
+		const raceLower = App.Data.misc.filterRacesLowercase.concat(["not important"]);
+		for (let i = 0; i < raceUpper.length; i++) {
+			if (V.huskSlave.race === raceLower[i]) {
 				linkArray.push(
 					App.UI.DOM.disabledLink(
-						App.Data.misc.filterRaces[i],
+						raceUpper[i],
 						["current selection"]
 					)
 				);
 			} else {
 				linkArray.push(
 					App.UI.DOM.link(
-						App.Data.misc.filterRaces[i],
+						raceUpper[i],
 						() => {
-							V.huskSlave.race = App.Data.misc.filterRacesLowercase[i];
+							V.huskSlave.race = raceLower[i];
 							refresh();
 						}
 					)
@@ -156,29 +137,7 @@ App.Markets["Husk Slave"] = function() {
 			Important: 0,
 			"Not Important": 1,
 		};
-		p.append(links(choices, V.huskSlave.virgin));
-		const linkArray = [];
-		for (const choice in choices) {
-			if (V.huskSlave.virgin === choices[choice]) {
-				linkArray.push(
-					App.UI.DOM.disabledLink(
-						choice,
-						["current selection"]
-					)
-				);
-			} else {
-				linkArray.push(
-					App.UI.DOM.link(
-						choice,
-						() => {
-							V.huskSlave.virgin = choices[choice];
-							refresh();
-						}
-					)
-				);
-			}
-		}
-		App.UI.DOM.appendNewElement("div", p, App.UI.DOM.generateLinksStrip(linkArray));
+		p.append(links(choices, "virgin"));
 		return p;
 	}
 
@@ -219,27 +178,37 @@ App.Markets["Husk Slave"] = function() {
 
 	function links(choices, global) {
 		const linkArray = [];
-		for (const choice in choices) {
-			if (global === choices[choice]) {
+		if (Array.isArray(choices)) {
+			for (let i = 0; i < choices.length; i++) {
+				makeLink(choices[i], choices[i]);
+			}
+		} else {
+			for (const choice in choices) {
+				makeLink(choice, choices[choice]);
+			}
+		}
+		return App.UI.DOM.makeElement("div", App.UI.DOM.generateLinksStrip(linkArray));
+
+		function makeLink(title, value) {
+			if (V.huskSlave[global] === value) {
 				linkArray.push(
 					App.UI.DOM.disabledLink(
-						choice,
+						title,
 						["current selection"]
 					)
 				);
 			} else {
 				linkArray.push(
 					App.UI.DOM.link(
-						choice,
+						title,
 						() => {
-							global = choices[choice];
+							V.huskSlave[global] = value;
 							refresh();
 						}
 					)
 				);
 			}
 		}
-		return App.UI.DOM.makeElement("div", App.UI.DOM.generateLinksStrip(linkArray));
 	}
 
 	function refresh() {
diff --git a/src/markets/specificMarkets/huskSlave.tw b/src/markets/specificMarkets/huskSlave.tw
deleted file mode 100644
index 4a0a13ef120..00000000000
--- a/src/markets/specificMarkets/huskSlave.tw
+++ /dev/null
@@ -1,60 +0,0 @@
-:: Husk Slave [nobr]
-
-<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $encyclopedia = "Kidnapped Slaves">>
-<<if ($huskSlave.dick == 0) && ($huskSlave.vagina == -1)>><<set $huskSlave.vagina = 0>><</if>>
-
-<<if $huskSlaveOrdered == 0>>You lay out a new order for a braindead slave to be put aside for your use.<<else>>You review your posted husk order.<</if>> Your order requests a body with the following characteristics:
-
-<<set $huskSlave.age = Math.clamp($huskSlave.age, $minimumSlaveAge, $retirementAge-1)>>
-
-<br><br>
-Age:
-<br><<textbox "$huskSlave.age" $huskSlave.age "Husk Slave">>
-
-<br><br>
-Sex:
-<<if $huskSlave.sex == 1>>Female.
-<<elseif $huskSlave.sex == 2>>Male.
-<<elseif $huskSlave.sex == 3>>Futanari.
-<</if>>
-<br>[[Female|Husk Slave][$huskSlave.sex = 1]]
-| [[Male|Husk Slave][$huskSlave.sex = 2]]
-| [[Both|Husk Slave][$huskSlave.sex = 3]]
-
-<br><br>
-Nationality:
-<br><<textbox "$huskSlave.nationality" $huskSlave.nationality "Husk Slave">>
-
-<br><br>
-<<textbox "$huskSlave.race" $huskSlave.race "Husk Slave">>
-<br>[[White|Husk Slave][$huskSlave.race = "white"]]
-| [[Asian|Husk Slave][$huskSlave.race = "asian"]]
-| [[Latina|Husk Slave][$huskSlave.race = "latina"]]
-| [[Middle Eastern|Husk Slave][$huskSlave.race = "middle eastern"]]
-| [[Black|Husk Slave][$huskSlave.race = "black"]]
-| [[Semitic|Husk Slave][$huskSlave.race = "semitic"]]
-| [[Southern European|Husk Slave][$huskSlave.race = "southern european"]]
-| [[Indo-Aryan|Husk Slave][$huskSlave.race = "indo-aryan"]]
-| [[Amerindian|Husk Slave][$huskSlave.race = "amerindian"]]
-| [[Pacific Islander|Husk Slave][$huskSlave.race = "pacific islander"]]
-| [[Malay|Husk Slave][$huskSlave.race = "malay"]]
-| [[Mixed Race|Husk Slave][$huskSlave.race = "mixed race"]]
-| [[Not Important|Husk Slave][$huskSlave.race = "not important"]]
-
-<br><br>
-Virginity:
-<<if $huskSlave.virgin == 0>>Virgin.
-<<else>>Not important.
-<</if>>
-<br>[[Important|Husk Slave][$huskSlave.virgin = 0]]
-| [[Not Important|Husk Slave][$huskSlave.virgin = 1]]
-
-<br><br><br>
-Reserving a body will cost <<print cashFormat(10000)>> up front. Canceling an order will refund your money; however, if a delivered body is rejected, your money will not be refunded.
-<<if $huskSlaveOrdered == 1>>
-	[[Withdraw body order|Main][$huskSlaveOrdered = 0, cashX(10000, "slaveTransfer")]]
-<<elseif $cash < 10000>>
-	//You lack the credits to place a body reservation.//
-<<else>>
-	[[Post body order|Main][$huskSlaveOrdered = 1, cashX(-10000, "slaveTransfer")]]
-<</if>>
-- 
GitLab