From 090823ce22590836021e5dfaf89c6f159875ae15 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Wed, 19 Feb 2020 21:00:55 -0500
Subject: [PATCH] embed buttplug functions

---
 js/003-data/miscData.js | 171 ++++++++++++++++++++++++++++++++++++----
 src/js/wardrobeUse.js   |  20 -----
 2 files changed, 155 insertions(+), 36 deletions(-)

diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js
index 899ad5c6155..fdead4db832 100644
--- a/js/003-data/miscData.js
+++ b/js/003-data/miscData.js
@@ -2389,15 +2389,78 @@ App.Data.misc = {
 	],
 
 	vaginalAccessories: [
-		{name: "None", value: "none"},
-		{name: "Bullet vibrator", value: "bullet vibrator"},
-		{name: "Smart bullet vibrator", value: "smart bullet vibrator"},
-		{name: "Dildo", value: "dildo"},
-		{name: "Long dildo", value: "long dildo", rs: "buyBigDildos"},
-		{name: "Large dildo", value: "large dildo"},
-		{name: "Long, large dildo", value: "long, large dildo", rs: "buyBigDildos"},
-		{name: "Huge dildo", value: "huge dildo"},
-		{name: "Long, huge dildo", value: "long, huge dildo", rs: "buyBigDildos"}
+		{
+			name: "None",
+			value: "none"
+		},
+		{
+			name: "Bullet vibrator",
+			value: "bullet vibrator"
+		},
+		{
+			name: "Smart bullet vibrator",
+			value: "smart bullet vibrator"
+		},
+		{
+			name: "Dildo",
+			value: "dildo"
+		},
+		{
+			name: "Long dildo",
+			value: "long dildo",
+			rs: "buyBigDildos",
+			unlock: function(slave) {
+				if (V.buyBigDildos > 0) {
+					if (slave) {
+						if (slave.belly < 1500 && slave.weight < 130) {
+							return true;
+						}
+					} else {
+						return true;
+					}
+				}
+			}
+		},
+		{
+			name: "Large dildo",
+			value: "large dildo"
+		},
+		{
+			name: "Long, large dildo",
+			value: "long, large dildo",
+			rs: "buyBigDildos",
+			unlock: function(slave) {
+				if (V.buyBigDildos > 0) {
+					if (slave) {
+						if (slave.belly < 1500 && slave.weight < 130) {
+							return true;
+						}
+					} else {
+						return true;
+					}
+				}
+			}
+		},
+		{
+			name: "Huge dildo",
+			value: "huge dildo"
+		},
+		{
+			name: "Long, huge dildo",
+			value: "long, huge dildo",
+			rs: "buyBigDildos",
+			unlock: function(slave) {
+				if (V.buyBigDildos > 0) {
+					if (slave) {
+						if (slave.belly < 1500 && slave.weight < 130) {
+							return true;
+						}
+					} else {
+						return true;
+					}
+				}
+			}
+		}
 	],
 
 	vaginalAttachments: [
@@ -2410,13 +2473,89 @@ App.Data.misc = {
 	],
 
 	buttplugs: [
-		{name: "None", value: "none"},
-		{name: "Standard plug", value: "plug"},
-		{name: "Long plug", value: "long plug", rs: "toysBoughtButtPlugs"},
-		{name: "Large plug", value: "large plug"},
-		{name: "Long, large plug", value: "long, large plug", rs: "toysBoughtButtPlugs"},
-		{name: "Huge plug", value: "huge plug"},
-		{name: "Long, huge plug", value: "long, huge plug", rs: "toysBoughtButtPlugs"}
+		{
+			name: "None",
+			value: "none"
+		},
+		{
+			name: "Standard plug",
+			value: "plug"
+		},
+		{
+			name: "Long plug",
+			value: "long plug",
+			rs: "toysBoughtButtPlugs",
+			unlock: function(slave) {
+				if (V.toysBoughtButtPlugs > 0) {
+					if (slave) {
+						if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
+							return false;
+						} else{
+							return true;
+						}
+					} else {
+						return true;
+					}
+				}
+			}
+		},
+		{
+			name: "Large plug",
+			value: "large plug"
+		},
+		{
+			name: "Long, large plug",
+			value: "long, large plug",
+			rs: "toysBoughtButtPlugs",
+			unlock: function(slave) {
+				if (V.toysBoughtButtPlugs > 0) {
+					if (slave) {
+						if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
+							return false;
+						} else {
+							return true;
+						}
+					} else {
+						return true;
+					}
+				}
+			}
+		},
+		{
+			name: "Huge plug",
+			value: "huge plug",
+			unlock: function(slave) {
+				if (slave) {
+					if (slave.anus < 2) {
+						return false; // clothingOption.disabled = `Slave's anus is too small for this right now`;
+					} else {
+						return true;
+					}
+				} else {
+					return true;
+				}
+			}
+		},
+		{
+			name: "Long, huge plug",
+			value: "long, huge plug",
+			rs: "toysBoughtButtPlugs",
+			unlock: function(slave) {
+				if (V.toysBoughtButtPlugs > 0) {
+					if (slave) {
+						if (slave.anus < 2) {
+							return false; // clothingOption.disabled = `Slave's anus is too small for this right now`;
+						} else if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
+							return false; // clothingOption.disabled = "Elites frown on this";
+						} else {
+							return true;
+						}
+					} else {
+						return true;
+					}
+				}
+			}
+		}
 	],
 
 	buttplugAttachments: [
diff --git a/src/js/wardrobeUse.js b/src/js/wardrobeUse.js
index 7c646db8421..5f8c7f2d0ca 100644
--- a/src/js/wardrobeUse.js
+++ b/src/js/wardrobeUse.js
@@ -389,26 +389,6 @@ App.UI.Wardrobe.buttplug = function(slave) {
 			clothingOption.FS = item.fs;
 		}
 
-		if (item.value === "huge plug") {
-			if (slave.anus < 2) {
-				clothingOption.disabled = `Slave's anus is too small for this right now`;
-			}
-		} else if (item.value === "long plug") {
-			if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
-				clothingOption.disabled = "Elites frown on this";
-			}
-		} else if (item.value === "long, large plug") {
-			if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
-				clothingOption.disabled = "Elites frown on this";
-			}
-		} else if (item.value === "long, huge plug") {
-			if (slave.anus < 2) {
-				clothingOption.disabled = `Slave's anus is too small for this right now`;
-			}
-			if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
-				clothingOption.disabled = "Elites frown on this";
-			}
-		}
 		if (item.value !== "none") {
 			// skip none in set, we set the link elsewhere.
 			optionsArray.push(clothingOption);
-- 
GitLab