From 57b271fc43fd86cd0a20a6b48694462e803d7f9e Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sun, 19 Jul 2020 19:36:05 -0400
Subject: [PATCH] Define canStand and canMove

---
 src/js/statsChecker/statsChecker.js | 92 +++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js
index f8dc76f97a1..c2ffc260f92 100644
--- a/src/js/statsChecker/statsChecker.js
+++ b/src/js/statsChecker/statsChecker.js
@@ -827,6 +827,98 @@ globalThis.canWalk = function(slave) {
 	return true;
 };
 
+/** can this slave stay upright for any period of time?
+ * @param {App.Entity.SlaveState} slave
+ * @returns {boolean}
+ */
+globalThis.canStand = function(slave) {
+	if (!slave) {
+		return null;
+	} else if (!hasBothLegs(slave)) {
+		return false;
+	} else if (slave.heels === 1 && !setup.highHeels.includes(slave.shoes)) {
+		return false;
+	} else if (tooFatSlave(slave)) {
+		return false;
+	} else if (tooBigBreasts(slave)) {
+		return false;
+	} else if (slave.physicalAge <= 3) {
+		if (slave.belly >= 150000 + (slave.muscles * 500)) {
+			return false;
+		}
+	} else if (slave.physicalAge <= 12) {
+		if (slave.belly >= 450000 + (slave.muscles * 800)) {
+			return false;
+		}
+	} else if (slave.physicalAge < 18) {
+		if (slave.belly >= 450000 + (slave.muscles * 1000)) {
+			return false;
+		}
+	} else if (slave.physicalAge >= 18) {
+		if (slave.belly >= 1500000 + (slave.muscles * 2000)) {
+			return false;
+		}
+	}
+	return true;
+};
+
+/** can she move at all?
+ * @param {App.Entity.SlaveState} slave
+ * @returns {boolean}
+ */
+globalThis.canMove = function(slave) {
+	if (!slave) {
+		return null;
+	} else if (canWalk(slave)) {
+		return true; // If she can walk, no point to even check anything after
+	} else if (!hasBothLegs(slave)) {
+		return false;
+	} else if (tooFatSlave(slave)) {
+		return false;
+	} else if (slave.physicalAge <= 3) {
+		if (slave.boobs > 25000 + (slave.muscles * 20)) {
+			return false;
+		}
+		if (slave.belly >= 100000) {
+			return false;
+		}
+		if (slave.balls >= 30 + (slave.muscles * 0.3) && slave.physicalAge <= 3) {
+			return false;
+		}
+	} else if (slave.physicalAge <= 12) {
+		if (slave.boobs > 100000 + (slave.muscles * 50)) {
+			return false;
+		}
+		if (slave.belly >= 400000) {
+			return false;
+		}
+		if (slave.balls >= 60 + (slave.muscles * 0.5) && slave.physicalAge <= 12) {
+			return false;
+		}
+	} else if (slave.physicalAge < 18) {
+		if (slave.boobs > 250000 + (slave.muscles * 100)) {
+			return false;
+		}
+		if (slave.belly >= 600000) {
+			return false;
+		}
+		if (slave.balls >= 90 + (slave.muscles * 0.7)) {
+			return false;
+		}
+	} else if (slave.physicalAge >= 18) {
+		if (slave.boobs > 500000 + (slave.muscles * 200)) {
+			return false;
+		}
+		if (slave.belly >= 1000000) {
+			return false;
+		}
+		if (slave.balls >= 90 + (slave.muscles * 0.7)) {
+			return false;
+		}
+	}
+	return true;
+};
+
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {boolean} checkLanguage Does a bad accent count as being unable to speak?
-- 
GitLab