From f864b4525b6cbdb3c967cce1ec428b3ab739ebea Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Mon, 10 Feb 2020 20:11:21 -0500
Subject: [PATCH] Define .rules.rest

---
 src/data/backwardsCompatibility/updateSlaveObject.js | 4 ++++
 src/js/SlaveState.js                                 | 7 +++++++
 src/js/datatypeCleanupJS.js                          | 3 +++
 src/player/js/PlayerState.js                         | 1 +
 4 files changed, 15 insertions(+)

diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js
index 719ac1ebaf3..ec551c5664c 100644
--- a/src/data/backwardsCompatibility/updateSlaveObject.js
+++ b/src/data/backwardsCompatibility/updateSlaveObject.js
@@ -930,4 +930,8 @@ App.Update.Slave = function(slave) {
 			slave.chastityVagina = 0;
 		}
 	}
+
+	if (slave.rules !== undefined && slave.rules.rest === undefined) {
+		slave.rules.rest = "restrictive";
+	}
 };
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index f7e926c6d49..60bc2997ec8 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -36,6 +36,13 @@ App.Entity.RuleState = class RuleState {
 		 * * "luxurious"
 		 */
 		this.living = "spare";
+		/**
+		 * * "none"
+		 * * "restrictive"
+		 * * "permissive"
+		 * * "mandatory"
+		 */
+		this.rest = "restrictive";
 		/**
 		 * * "restrictive"
 		 * * "permissive"
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 6660be97041..cd6f66f96a9 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -1711,6 +1711,9 @@ window.PCDatatypeCleanup = function PCDatatypeCleanup() {
 	if (typeof PC.rules.lactation !== "string") {
 		PC.rules.lactation = "none";
 	}
+	if (typeof PC.rules.rest !== "string") {
+		PC.rules.rest = "permissive";
+	}
 	App.Entity.Utils.migratePronouns(PC);
 	generatePlayerPronouns(PC);
 
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index 578511a999b..6fd1837d6a8 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -62,6 +62,7 @@ App.Entity.PlayerRulesState = class {
 		 * * "luxurious"
 		 */
 		this.living = "luxurious";
+		this.rest = "permissive";
 		this.speech = "permissive";
 		this.release = new App.Entity.PlayerReleaseRulesState();
 		this.relationship = "permissive";
-- 
GitLab