From efbd53c7a81aab238e4ce3461cfaec3c5baf6cb5 Mon Sep 17 00:00:00 2001
From: torbjornhub <13432-torbjornhub@users.noreply.gitgud.io>
Date: Sat, 14 Dec 2019 16:41:07 -0800
Subject: [PATCH] Replace DefaultRules.js

---
 src/js/DefaultRules.js | 43 +++++++++++++++++++++++++++++++-----------
 1 file changed, 32 insertions(+), 11 deletions(-)

diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 8443fa745d2..56da738728f 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -18,9 +18,10 @@ window.DefaultRules = (function() {
 		({he, him, his} = getPronouns(slave));
 		const slaveReadOnly = createReadonlyProxy(slave);
 		const {rule, ruleIds} = runWithReadonlyProxy(()=>ProcessSlaveRules(slaveReadOnly));
-		slave.currentRules = ruleIds;
 		if (ruleIds.length === 0) { return r; } // no rules apply
+		slave.currentRules = ruleIds;
 
+		
 		AssignJobToSlave(slave, rule);
 		if (slave.fuckdoll === 0) {
 			ProcessClothing(slave, rule);
@@ -36,6 +37,7 @@ window.DefaultRules = (function() {
 			ProcessArmAccessory(slave, rule);
 			ProcessLegAccessory(slave, rule);
 		}
+		ProcessPit(slave,rule);
 		ProcessBellyImplant(slave, rule);
 		if (isFertile(slave) || slave.pregWeek < 0) {
 			ProcessContraceptives(slave, rule);
@@ -86,7 +88,8 @@ window.DefaultRules = (function() {
 		/** @type {App.RA.Rule[]} */
 		const rules = V.defaultRules.filter((x) => ruleAppliesP(x.condition, slave));
 		const ruleIds = [], assignments = [];
-		for(const rule of rules) {
+		for(const rule of rules)
+		{
 			ruleIds.push(rule.ID);
 			assignments.push(ProcessAssignments(slave, Object.assign({}, rule.set)));
 		}
@@ -1333,12 +1336,12 @@ window.DefaultRules = (function() {
 					}
 					break;
 
-				case "psychostimulants": {
+				case "psychostimulants":
 					let origIntel = V.genePool.find(s => s.ID === slave.ID).intelligence;
 					if (!((slave.intelligence < 100) && (slave.intelligence < origIntel + 15))) {
 						flag = false;
 					}
-				}	break;
+					break;
 
 				case "breast injections":
 					if (slave.boobs >= 48000) {
@@ -1519,6 +1522,23 @@ window.DefaultRules = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {App.RA.RuleSetters} rule
 	 */
+	function ProcessPit(slave,rule){
+		if (rule.pitRules !== undefined && rule.pitRules !== null){
+			if (V.pit > 0){
+			
+			if (rule.pitRules==0){
+			V.fighterIDs = V.fighterIDs.filter(e => e !== slave.ID);
+			r += `<br>${slave.slaveName} has been automatically unassigned from the pit.`;			
+			}else{
+			V.fighterIDs.push(slave.ID);
+			r += `<br>${slave.slaveName} has been automatically assigned to fight in the pit.`;
+			}
+			
+			}
+			
+		}
+	}
+	
 	function ProcessDiet(slave, rule) {
 		// Diet Setting
 		if ((rule.diet !== undefined && rule.diet !== null) || rule.weight !== null) {
@@ -2903,19 +2923,19 @@ window.DefaultRules = (function() {
 	 * @param {App.RA.RuleSetters} rule
 	 */
 	function ProcessLabel(slave, rule) {
-		// mass removal of old tags, variant from '*' mask.
+		//mass removal of old tags, variant from '*' mask.
 		if (rule.removeLabel !== null && rule.removeLabel !== '' && rule.removeLabel === '*') {
 			slave.custom.label = slave.custom.label.replace(/(?:\[.+\])+/, "");
 			r += `<br>All ${slave.slaveName}'s tags is removed.`;
 		}
 
-		// mass removal of old tags, variant from GUI swith.
+		//mass removal of old tags, variant from GUI swith.
 		if (rule.labelTagsClear === true) {
 			slave.custom.label = slave.custom.label.replace(/(?:\[.+\])+/, "");
 			r += `<br>All ${slave.slaveName}'s tags is removed.`;
 		}
 
-		// removing tags selected for removal.
+		//removing tags selected for removal.
 		let tags = [], i;
 		if (rule.removeLabel != null && rule.removeLabel !== '') {
 			tags = rule.removeLabel.split("|");
@@ -2928,7 +2948,7 @@ window.DefaultRules = (function() {
 			}
 		}
 
-		// finally adding new tags.
+		//finally adding new tags.
 		tags = [];
 		if (rule.label != null && rule.label !== '') {
 			tags = rule.label.split("|");
@@ -2945,13 +2965,14 @@ window.DefaultRules = (function() {
 	const rxCheckEqual = /[^!=<>]=[^=<>]/gi;
 	const compileCheck = function(code) {
 		try {
-			// TODO: This should use a cached Function, which should be the same as below.
+			//TODO: This should use a cached Function, which should be the same as below.
 			new Function(`return ${code}`);
-		} catch(e) {
+		}
+		catch(e) {
 			return false;
 		}
 		return true;
-	};
+	}
 	window.RuleHasError = (rule) => rule.condition.function === "custom"
 								 &&(rule.condition.data.match(rxCheckEqual)
 								 || !compileCheck(rule.condition.data));
-- 
GitLab