From 130413fbbdb5e48561d5d534b19166959426f307 Mon Sep 17 00:00:00 2001
From: kopareigns <kopareigns@gmail.com>
Date: Wed, 28 Nov 2018 23:22:44 -0500
Subject: [PATCH] Reduce recruitment event likelihood

---
 src/uncategorized/randomNonindividualEvent.tw | 119 ++++++++++--------
 1 file changed, 64 insertions(+), 55 deletions(-)

diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index e705fe2f1de..4b5bee8d6b3 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -31,7 +31,7 @@
 <<else>>
 	<<silently>>
 	/* initialize event lists as arrays [], not objects {} */
-	<<set $events = [], $RecETSevent = [], $REFIevent = [], $PESSevent = [], $PETSevent = [], $REFSevent = [], $activeSlave = 0, $groomSlave = 0, $brideSlave = 0, $recruiterSlave = 0>>
+	<<set $events = [], $RecETSevent = [], $REFIevent = [], $PESSevent = [], $PETSevent = [], $REFSevent = [], $activeSlave = 0, $groomSlave = 0, $brideSlave = 0, $recruiterSlave = 0, _recruitEvents = []>>
 
 	<<set $seed = 0>>
 
@@ -60,7 +60,7 @@
 
 	<</if>> /* CLOSES FUCKDOLL CHECK */
 
-	<<if  $week >= 10>>
+	<<if $week >= 10>>
 		<<set $events.push("P associates public slut")>>
 	<</if>>
 	<<set $legendaryFacility = 1>>
@@ -520,23 +520,23 @@
 
 	/* Acquisition Events */
 
-	<<set $events.push("RE recruit")>>
+	<<set $events.push("RE recruit")>> /* one generic recruit event guaranteed to always be possible */
 	<<if random(1,100) < $rep/200>>
-		<<set $events.push("RE recruit")>>
+		<<set _recruitEvents.push("RE recruit")>>
 	<</if>>
 	<<if $ProRecruitment == 1>>
 		<<if random(1,100) < $rep/200>>
-			<<set $events.push("RE recruit")>>
+			<<set _recruitEvents.push("RE recruit")>>
 		<</if>>
 	<</if>>
 	<<if $AntiEnslavementRep == 0>>
 		<<if random(1,100) < $rep/300>>
-			<<set $events.push("RE recruit")>>
+			<<set _recruitEvents.push("RE recruit")>>
 		<</if>>
 	<</if>>
 	<<if $AntiEnslavementCash == 0>>
 		<<if random(1,100) < $rep/300>>
-			<<set $events.push("RE recruit")>>
+			<<set _recruitEvents.push("RE recruit")>>
 		<</if>>
 	<</if>>
 	<<set $recruit = []>>
@@ -614,7 +614,7 @@
 			<<set $recruit.push("rogue cyborg")>>
 		<</if>>	
 		<<if $arcologyUpgrade.drones == 1>>
-			<<set $events.push("RE malefactor")>>
+			<<set _recruitEvents.push("RE malefactor")>>
 			<<set $malefactor = ["liberator", "whore", "businesswoman", "addict"]>>
 			<<if $seePreg != 0>>
 				<<set $malefactor.push("anchorBaby")>>
@@ -633,7 +633,7 @@
 			<</if>>
 			<<set $malefactor = $malefactor.random()>>
 			<<if ($rep/150) > random(1,100)>>
-				<<set $events.push("RE malefactor")>>
+				<<set _recruitEvents.push("RE malefactor")>>
 			<</if>>
 		<</if>>
 		<<if $rep > 16000 && random(1,100) < $rep/1000 && $cash >= 100000>>
@@ -811,176 +811,176 @@
 		<<set $FSAcquisitionEvents = []>>
 		<<if $arcologies[0].FSSupremacist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Supremacist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSSubjugationist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Subjugationist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSGenderRadicalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Gender Radicalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSRepopulationFocus > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Repopulation Efforts")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSRestart > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Eugenics")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $seePreg != 0>>
 		<<if $arcologies[0].FSGenderFundamentalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Gender Fundamentalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<</if>>
 		<<if $arcologies[0].FSPaternalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Paternalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSDegradationist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Degradationist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSBodyPurist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Body Purist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSTransformationFetishist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Transformation Fetishist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSYouthPreferentialist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Youth Preferentialist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSMaturityPreferentialist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Maturity Preferentialist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSSlimnessEnthusiast > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Slimness Enthusiast")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSAssetExpansionist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Asset Expansionist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $seePreg != 0>>
 		<<if $arcologies[0].FSPastoralist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Pastoralist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<</if>>
 		<<if $arcologies[0].FSPhysicalIdealist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Physical Idealist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSHedonisticDecadence > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Hedonistic Decadence")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSChattelReligionist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Chattel Religionist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSSupremacist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Supremacist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSSubjugationist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Subjugationist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSGenderRadicalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Gender Radicalist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $seePreg != 0>>
 		<<if $arcologies[0].FSGenderFundamentalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Gender Fundamentalist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<</if>>
 		<<if $arcologies[0].FSPaternalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Paternalist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSDegradationist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Degradationist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSBodyPurist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Body Purist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSTransformationFetishist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Transformation Fetishist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSYouthPreferentialist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Youth Preferentialist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSMaturityPreferentialist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Maturity Preferentialist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSSlimnessEnthusiast > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Slimness Enthusiast Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSAssetExpansionist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Asset Expansionist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSPastoralist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Pastoralist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSPhysicalIdealist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Physical Idealist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSHedonisticDecadence > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Hedonistic Decadence Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSChattelReligionist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Chattel Religionist Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSRepopulationFocus > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Repopulation Efforts Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSRestart > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Eugenics Two")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSRomanRevivalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Roman Revivalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSAztecRevivalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Aztec Revivalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSEdoRevivalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Edo Revivalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSArabianRevivalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Arabian Revivalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSChineseRevivalist > random(1,100)>>
 			<<set $FSAcquisitionEvents.push("Chinese Revivalist")>>
-			<<set $events.push("RE FS acquisition")>>
+			<<set _recruitEvents.push("RE FS acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSEgyptianRevivalist > random(1,100)>>
-			<<set $events.push("RE FSEgyptianRevivalist acquisition")>>
+			<<set _recruitEvents.push("RE FSEgyptianRevivalist acquisition")>>
 		<</if>>
 		<<if $arcologies[0].FSPaternalistDecoration == 100 && $minimumSlaveAge <= 14 && $week >= 100 && (ndef $swanSong || $swanSong == 0)>>
 			<<set $recruit.push("paternalist swan song")>>
@@ -1305,7 +1305,7 @@
 		<</if>>
 	<</if>>
 
-	<<if $minimumSlaveCost > 3000>>
+	<<if $minimumSlaveCost > 3000 && random(1,2) == 1>>
 		<<set $events.push("RE shipping container")>>
 	<</if>>
 
@@ -1318,8 +1318,11 @@
 	<</if>>
 
 	<<if $mercenaries > 0>>
-		<<set $events.push("RE AWOL")>>
-		<<set $events.push("RE Poker Night")>>
+		<<if random(1,2) == 1>>
+			<<set $events.push("RE AWOL")>>
+		<<else>>
+			<<set $events.push("RE Poker Night")>>
+		<</if>>
 	<</if>>
 
 	<<if $arcologies[0].prosperity >= 100 && ($rep > random(1,30000))>>
@@ -1392,7 +1395,7 @@
 	/* EVENT RANDOMIZATION */
 
 	<<for $i = 0; $i < $RecETSevent.length; $i++>>
-		<<set $events.push("RecETS")>>
+		<<set _recruitEvents.push("RecETS")>>
 	<</for>>
 	<<for $i = 0; $i < $REFIevent.length; $i++>>
 		<<set $events.push("REFI")>>
@@ -1406,6 +1409,12 @@
 	<<for $i = 0; $i < $REFSevent.length; $i++>>
 		<<set $events.push("REFS")>>
 	<</for>>
+	<<set _maxRecruitNumber = Math.min(10, Math.ceil($events.length/4))>>
+	<<if _maxRecruitNumber < _recruitEvents.length>>
+		<<set _recruitEvents.shuffle()>>
+		<<set _recruitEvents.length = _maxRecruitNumber>>
+	<</if>>
+	<<set $events = $events.concat(_recruitEvents)>>
 	<<if $cheatMode == 1>>
 		<<goto "random event select">>
 	<<else>>
-- 
GitLab