43 次代碼提交 acd23d2751 ... 1b1eea54bc

作者 SHA1 備註 提交日期
  Kevin_Smarts 1b1eea54bc Merge remote-tracking branch 'Netuttki/master' 6 月之前
  Kevin_Smarts 534a552ab4 Merge remote-tracking branch 'Hornguy6/master' 6 月之前
  Kevin_Smarts 5566d22976 Merge remote-tracking branch 'Anjuna/master' 6 月之前
  Lusticon 293be2f054 [fixed] $boy var 6 月之前
  Lusticon af3f546c2c Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 6 月之前
  Lusticon 3024889eb7 [fixed] loop execute 6 月之前
  Lusticon da041a81ce [fixed] cum cleanup 6 月之前
  Lusticon 56d61ee334 [fixed] cum leaking pregnancies 6 月之前
  Lusticon 4d610c63eb [fixed] leaked cum owner id 6 月之前
  Lusticon 70357866dd Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 6 月之前
  anjuna krokus 3301c2f285 Merge remote-tracking branch 'master/master' 6 月之前
  anjuna krokus ed33b301c0 [fixed] small bugfix to `booty_call_sms` and added some additional clauses (which should never trigger) to help bugfix in the future 6 月之前
  Lusticon 903557aa35 [fixed] dynamic leftovers 6 月之前
  Lusticon 8756d3bbdc Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 6 月之前
  Lusticon 976e079090 [changed] cheat menu dynamics rework 6 月之前
  Lusticon f887bbe7c0 [fixed] cheat menu index page 6 月之前
  hornguy6 836500a32c [added] seeding for Fitness Freak trait 6 月之前
  hornguy6 e2700ec05e [added] Anya gonna bust you if you have sex with a guy in her bed XD 6 月之前
  hornguy6 04a878a640 [fixed] other part of drunk Anya 6 月之前
  hornguy6 f9dde44178 [fixed] properly added drunk Anya 6 月之前
  anjuna krokus f8d30a8ff2 [added] the option to report the blackmailer to the police. This does not currently actually do anything, for now :) 6 月之前
  hornguy6 53a50534fa Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 6 月之前
  anjuna krokus 953e27beba [fixed] blackmailers sms schedule not properly resetting after paying the money. Added the preparation to report the blackmailer to the police 6 月之前
  anjuna krokus c21be1475f Merge remote-tracking branch 'master/master' 6 月之前
  Netuttki 63756ccf7f Merge remote-tracking branch 'Kevin-upstream/master' 6 月之前
  Netuttki 10c6354039 Merge branch 'master' of https://git.tfgames.site/netuttki/glife 6 月之前
  anjuna krokus c07aeaa645 [fixed] small bugfix to blackmailer. The blackmailer should now not text you if you've paid on that day 6 月之前
  anjuna krokus 41f4893ea0 [fixed] bug fixes in `booty_call` related to the booty call schedulars and hotel and home links 6 月之前
  Lusticon a705dc035b [fixed] hair arranging vars check 6 月之前
  Lusticon fcdded0f78 [fixed] Pavlin peep vars 6 月之前
  Lusticon b7a016fef3 [fixed] vars reset 6 月之前
  Lusticon 4784122691 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 6 月之前
  hornguy6 4a00df76dc [changed] act is now a hyperlink 6 月之前
  hornguy6 a7ab1e0bbc [changed] get your money at the train station immediately after finishing work without needing to click 6 月之前
  hornguy6 9d0a92ceec [fixed] missing image...? 6 月之前
  hornguy6 df7493b8b3 added] new Luda dialogues 6 月之前
  hornguy6 e2af9dd2c6 [fixed] gs instead of gt 6 月之前
  hornguy6 87108f89a2 [changed] moved bus station option to the bottom to prevent offsetting of top leaving options and messing up muscle memory :) 6 月之前
  hornguy6 101e0cde96 [fixed] wrong location being called 6 月之前
  hornguy6 57ab913cd0 [added] seeding new variables for npcs 6 月之前
  hornguy6 f4c7fd4937 [fixed] < instead of <= and removed redundant code 6 月之前
  Netuttki ce48922b33 Merge remote-tracking branch 'Kevin-upstream/master' 8 月之前
  Netuttki 60a0c7315c Merge remote-tracking branch 'Kevin-upstream/master' 8 月之前

文件差異過大導致無法顯示
+ 240 - 668
locations/Cheatmenu_din.qsrc


+ 52 - 74
locations/Cum_Manage.qsrc

@@ -11,26 +11,26 @@
 !!
 !!	Cum Array indices:
 !!
-!!	cumarrnam : Sperm Owner
-!!	cumarrppt : Sperm Potential Potency (max sperm delivery)
-!!	cumarrcpt : Sperm Current Potency	(current amount of sperm)
-!!	cumarrdel : Sperm "Delivery" (method of *VAGINAL ONLY* acquisition)
-!!	cumarrcon :	Contraception type used
-!!	cumarrage : Sperm age in hours
-!!	cumarrkno : Did you know/realize who did it?
-!!	cumarrcnt : Unique identifier of the exact which time the MC has had this sperm incident occur.
+!!	$cumarrnam : Sperm Owner
+!!	cumarrppt  : Sperm Potential Potency (max sperm delivery)
+!!	cumarrcpt  : Sperm Current Potency	(current amount of sperm)
+!!	cumarrdel  : Sperm "Delivery" (method of *VAGINAL ONLY* acquisition)
+!!	cumarrcon  : Contraception type used
+!!	cumarrage  : Sperm age in hours
+!!	cumarrkno  : Did you know/realize who did it?
+!!	cumarrcnt  : Unique identifier of the exact which time the MC has had this sperm incident occur.
 !!
 !!
 !!
 !!	Spatter Array indices:
 !!
-!!	sparrloc : Location of the sperm, as per cumarrdel
-!!	sparrnam : Spatter Owner
-!!	sparrppt : Spatter Potential Potency (Used to increase potency if you don't clean yourself out)
-!!	sparridt : Did you know/realize who did it?
-!!	sparrvol : Volume of the spatter. 40 is average.
-!!	sparrslc : Spread status of the spatter. High volume can spread the contaminant from it's starting place.
-!!	sparrcnt : Unique identifier of the exact which time the MC has had this spatter incident occur.
+!!	sparrloc  : Location of the sperm, as per cumarrdel
+!!	$sparrnam : Spatter Owner
+!!	sparrppt  : Spatter Potential Potency (Used to increase potency if you don't clean yourself out)
+!!	sparridt  : Did you know/realize who did it?
+!!	sparrvol  : Volume of the spatter. 40 is average.
+!!	sparrslc  : Spread status of the spatter. High volume can spread the contaminant from it's starting place.
+!!	sparrcnt  : Unique identifier of the exact which time the MC has had this spatter incident occur.
 !!
 !!
 !!
@@ -236,6 +236,7 @@ if $ARGS[0] = '':
 						sparrvol[sparrtemp] += sexvolume
 						cumsumbod += sexvolume
 						cumsumvag += sexvolume
+						cumloc[0] = 1
 						condom_break = 1
 						stat['broken_condoms'] += 1
 						stat['last_broken_condom'] = daystart
@@ -265,6 +266,7 @@ if $ARGS[0] = '':
 					sparrvol[sparrtemp] += sexvolume
 					cumsumbod += sexvolume
 					cumsumvag += sexvolume
+					cumloc[0] = 1
 					condom_break = 1
 
 					sparridt[sparrtemp] = cumarrkno[cumarrtemp]
@@ -285,6 +287,7 @@ if $ARGS[0] = '':
 					sparrvol[sparrtemp] += sexvolume
 					cumsumbod += sexvolume
 					cumsumvag += sexvolume
+					cumloc[0] = 1
 
 					sparridt[sparrtemp] = cumarrkno[cumarrtemp]
 					sparrslc[sparrtemp] = 0
@@ -322,6 +325,7 @@ if $ARGS[0] = '':
 				sparrvol[sparrtemp] += sexvolume
 				cumsumbod += sexvolume
 				cumsumvag += sexvolume
+				cumloc[0] = 1
 
 				sparridt[sparrtemp] = cumarrkno[cumarrtemp]
 				sparrslc[sparrtemp] = 0
@@ -370,48 +374,21 @@ if $ARGS[0] = '':
 			sparrage[sparrtemp] = 0
 			sparrcnt[sparrtemp] = stat['cum_count']
 
-			if $pantyworntype = 'none':
-
-				if spafinloc = 2:
-					spafinloc = 1
-
-				elseif spafinloc = 5:
-					spafinloc = 4
-
-				end
-
-			end
+			!! if no panties cum goes to labia or butt
+			if ($pantyworntype = 'none' or $clothingworntype = 'nude') and (spafinloc = 2 or spafinloc = 5): spafinloc -= 1
 
+			!! if no clothes but cum loc is on clothes
 			if $clothingworntype = 'nude':
-
-				if spafinloc = 2:
-					spafinloc = 1
-
-				elseif spafinloc = 5:
+				!! clothes in groin area
+				if spafinloc = 6:
 					spafinloc = 4
-
-				elseif spafinloc = 6:
-
-					if rand(0,1) = 0:
-						spafinloc = 1
-
-					else
-						spafinloc = 4
-
-					end
-
+					if rand(0,1) = 0: spafinloc = 1
+				!! clothes
 				elseif spafinloc = 7:
-
-					if rand(0,1) = 0:
-						spafinloc = 14
-
-					else
-						spafinloc = 15
-
-					end
-
+					spafinloc = 15
+					if rand(0,1) = 0: spafinloc = 8
+					if rand(0,1) = 0: spafinloc = 14
 				end
-
 			end
 
 			sparrloc[sparrtemp] = spafinloc
@@ -424,13 +401,12 @@ if $ARGS[0] = '':
 			sparrvol[sparrtemp] += sexvolume
 			cumsumbod += sexvolume
 
-			if spafinloc = 3:
-				cumsumass += sexvolume
-			end
+			if spafinloc = 3: cumsumass += sexvolume
 
 			sparridt[sparrtemp] = cumarrkno[cumarrtemp]
 			sparrslc[sparrtemp] = 0
 
+			cumloc[spafinloc] = 1
 		end
 		if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
 		sexpartkno = 0
@@ -462,19 +438,20 @@ if $ARGS[0] = '':
 
 	if cumsumass >= 60:
 		arrmodtmp = arrpos('sparrloc',3)
-
 		if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
-
 	end
 
 	if cumsumvag >= 60:
 		arrmodtmp = arrpos('sparrloc',0)
-
 		if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
-
 	end
+
 	killvar 'sexspecpot'
 	killvar 'cumnostd'
+	killvar 'arrmodtmp'
+	killvar 'sparrtemp'
+	killvar 'cumarrtemp'
+	if $cumboy ! '': $boy = $cumboy & killvar '$cumboy'
 end
 
 
@@ -539,8 +516,7 @@ if $ARGS[0] = 'cumeater':
 
 	if i ! -1 and i < arrsize('sparrloc'):
 		cumloc[12] = 1
-		spafinloc = 12 & sexvolume = sparrvol[i] & sexunaware = 0 & sexspecpot = -1 & cumarrnam = sparrnam[i] & cumarrcpt = sparrppt[i] & cumarrkno = sparridt[i] & cumarrage = sparrage[i] & cumnostd = 1 & gs 'Cum_Manage'
-		pcs_breath = 0
+		spafinloc = 12 & sexvolume = sparrvol[i] & sexunaware = 0 & sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[i] & cumnostd = 0 & gs 'Cum_Manage'
 		$part = ''
 
 		if cloc = 13:
@@ -1139,7 +1115,7 @@ if $ARGS[0] = 'cum_decay':
 								if sexvolume > 0:
 									spafinloc = 1
 									sexunaware = iif(cumforced=0,iif(rand(0,4)=1 or sparridt[idx]=-2,1,0),0)
-									sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+									sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 									gs 'Cum_Manage'
 									cumvol[1] += sexvolume & cumloc[1] = 1
 								end
@@ -1151,7 +1127,7 @@ if $ARGS[0] = 'cum_decay':
 											spafinloc = 2
 											sexvolume = max(1, cumamount/2)
 											sexunaware = iif(rand(0,3)=1 or sparridt[idx]=-2,1,0)
-											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 											gs 'Cum_Manage'
 											cumvol[2] += sexvolume & cumloc[2] = 1
 										end
@@ -1161,7 +1137,7 @@ if $ARGS[0] = 'cum_decay':
 										if sexvolume > 0:
 											spafinloc = 9
 											sexunaware = iif(rand(0,2)=1 or sparridt[idx]=-2,1,0)
-											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 											gs 'Cum_Manage'
 											cumvol[9] += sexvolume & cumloc[9] = 1
 										end
@@ -1172,7 +1148,7 @@ if $ARGS[0] = 'cum_decay':
 										if sexvolume > 0:
 											spafinloc = 6
 											sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
-											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 											gs 'Cum_Manage'
 											cumvol[6] += sexvolume & cumloc[6] = 1
 										end
@@ -1202,7 +1178,7 @@ if $ARGS[0] = 'cum_decay':
 								if sexvolume > 0:
 									spafinloc = 1
 									sexunaware = iif(cumforced=0,iif(rand(0,4)=1 or sparridt[idx]=-2,1,0),0)
-									sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/2 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+									sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 									gs 'Cum_Manage'
 									cumvol[1] += sexvolume & cumloc[1] = 1
 								end
@@ -1213,7 +1189,7 @@ if $ARGS[0] = 'cum_decay':
 										spafinloc = 4
 										sexvolume = max(0, cumamount/2)
 										sexunaware = 0
-										sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+										sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 										gs 'Cum_Manage'
 										cumvol[4] += sexvolume & cumloc[4] = 1
 									end
@@ -1225,7 +1201,7 @@ if $ARGS[0] = 'cum_decay':
 											spafinloc = 5
 											sexvolume = max(1, cumamount/3)
 											sexunaware = iif(rand(0,3)=1 or sparridt[idx]=-2,1,0)
-											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 											gs 'Cum_Manage'
 											cumvol[5] += sexvolume & cumloc[5] = 1
 										end
@@ -1235,7 +1211,7 @@ if $ARGS[0] = 'cum_decay':
 										if sexvolume > 0:
 											spafinloc = 9
 											sexunaware = iif(rand(0,2)=1 or sparridt[idx]=-2,1,0)
-											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/4 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 											gs 'Cum_Manage'
 											cumvol[9] += sexvolume & cumloc[9] = 1
 										end
@@ -1246,7 +1222,7 @@ if $ARGS[0] = 'cum_decay':
 										if sexvolume > 0:
 											spafinloc = 6
 											sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
-											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 1
 											gs 'Cum_Manage'
 											cumvol[6] += sexvolume & cumloc[6] = 1
 										end
@@ -1265,7 +1241,7 @@ if $ARGS[0] = 'cum_decay':
 								sparrvol[idx] -= sexvolume
 								spafinloc = iif(i=1,2,5)
 								sexunaware = 1
-								sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx] & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 0
+								sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 0
 								gs 'Cum_Manage'
 								cumvol[iif(i=1,2,5)] += sexvolume & cumloc[iif(i=1,2,5)] = 1
 							end
@@ -1275,7 +1251,7 @@ if $ARGS[0] = 'cum_decay':
 							if sexvolume > 0:
 								spafinloc = 6
 								sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
-								sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+								sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 0
 								gs 'Cum_Manage'
 								cumvol[6] += sexvolume & cumloc[6] = 1
 							end
@@ -1291,7 +1267,7 @@ if $ARGS[0] = 'cum_decay':
 							sparrvol[idx] -= sexvolume
 							spafinloc = 0
 							sexunaware = 1
-							sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx] & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 0
+							sexspecpot = -1 & $cumboy = $boy & $boy = $sparrnam[idx] & cumnostd = 0
 							gs 'Cum_Manage'
 							cumvol[17] -= sexvolume & cumvol[0] += sexvolume & cumloc[0] = 1
 						end
@@ -1308,9 +1284,11 @@ if $ARGS[0] = 'cum_decay':
 						end
 					end
 					if sparrvol[idx] > 0: cumloc[i] = 1 & cumvol[inx] += sparrvol[idx] else cumloc[i] = 0 & cumvol[inx] = 0
+				elseif sparrvol[idx] <= 0 and ($sparrnam[idx] = '' or sparrloc[idx] ! 0 or (sparrloc[idx] = 0 and sparrage[idx] > 10)):
+					gs 'cum_cleanup', 'cleandeposit', idx
 				end
 				!! reset just in case
-				sexvolume = 0 & cumnostd = 0 & cumarrkno = 0
+				sexvolume = 0 & cumnostd = 0
 			if idx > 0:idx -= 1 & jump 'sparrlocloop'
 		if i < 18:i += 1 & jump 'sparrvolloop'
 		killvar 'i'

+ 1 - 1
locations/_menu_cheat.qsrc

@@ -1,7 +1,7 @@
 # $menu_cheat
 
 gs 'Cheatmenu_din'
-dynamic $cheatmenu
+dynamic $cheatmenu['index']
 
 --- $menu_cheat ---------------------------------
 

+ 11 - 5
locations/bedrPar.qsrc

@@ -171,20 +171,26 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 			else
 				sisterdialog = 1
 
-				if locat['Anya'] = 1:
+				if locat['Anya'] = 26 or (locat['Anya'] = 1 and locat['Anya_party_day'] >= daystart - 1):
+					if sisboypartyQW = 1: sisboypartyQW = 2
+					if sisboyparty = -1: sisboyparty = 1
+					'A drunken <a href="exec:gt ''sistersleep'', ''drunk_after_party''">Anya</a> is sound asleep in her bed.'
+				elseif locat['Anya'] = 1:
 					'<a href="exec:gt ''sistersleep'', ''sister_sleep''">Anya</a> is asleep in her bed.'
 				elseif locat['Anya'] = 4:
 					sisterdialog = 3
 					'<a href="exec:gt ''sister_chat'', ''talking''">Anya</a> is getting ready to go out.'
 				elseif locat['Anya'] = 15:
-					if anyaQW['bathroom_dildos'] > 0:gt'sister_chat','bathroom_dildo_talk1'
+					if anyaQW['bathroom_dildos'] > 0:
+						gt'sister_chat','bathroom_dildo_talk1'
+					elseif sisterQW['sex_room'] > 0:
+						gt'sister_chat','sex_room_talk1'
+					end
 					'<a href="exec:gt ''sister_chat'', ''talking''">Anya</a> is sitting on her bed, reading a book.'
 				elseif locat['Anya'] = 26 or (locat['Anya'] = 1 and locat['Anya_party_day'] >= daystart - 1):
 					if sisboypartyQW = 1: sisboypartyQW = 2
 					if sisboyparty = -1: sisboyparty = 1
-					'A drunken Anya is sound asleep in her bed.'
-					!! In the future should point to 'sistersleep', 'drunk_after_party' when that content is added again
-					!! 'A drunken <a href="exec:gt ''sistersleep'', ''drunk_after_party''">Anya</a> is sound asleep in her bed.'
+					'A drunken <a href="exec:gt ''sistersleep'', ''drunk_after_party''">Anya</a> is sound asleep in her bed.'
 				end
 			end
 		end

+ 205 - 43
locations/blackmailer.qsrc

@@ -72,6 +72,16 @@ if $ARGS[0] = 'init_blackmail':
 	end
 end
 
+
+
+
+	!!=============================================!!
+	!!                                             !!
+	!!                  FUNCTIONS                  !!
+	!!                                             !!
+	!!=============================================!!
+
+
 if $ARGS[0] = 'add_blackmail_selfie':
 	temp_i = 0
 	if blackmailQW['total_material'] <= 10:
@@ -116,19 +126,27 @@ end
 
 
 if $ARGS[0] = 'cikl':
-	if blackmailQW['stage'] = 3 and blackmailQW['smsday'] = 0:
-		blackmailQW['smsday'] = blackmailQW['dreamday'] + 3
-		gs 'telefon', 'AddContact', 'Blackmailer', 'icon_na', 1
-		gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS1'", "daystart > blackmailQW['smsday'] and (hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
-	elseif daystart = blackmailQW['smsday'] and blackmailQW['next_payment'] > 0:
-		gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS1_reminder'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
-	elseif daystart > blackmailQW['smsday'] and blackmailQW['next_payment'] > 0:
-		gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS_failure'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
-
-	!Currently repeating content
-	elseif blackmailQW['stage'] >= 5 and blackmailQW['smsday'] = 0:
-		blackmailQW['smsday'] = daystart + rand(0, 13 - 5 * min(blackmailQW['stage'] - 5, 2)) + 6
-		gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS_repeat'", "daystart > blackmailQW['smsday'] and (hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+	if blackmailQW['next_payment'] > 0:
+		if daystart = blackmailQW['smsday']:
+			gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS1_reminder'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+		elseif daystart > blackmailQW['smsday']:
+			gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS_failure'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+		end
+	else
+		if blackmailQW['smsday'] = 0:
+			if blackmailQW['stage'] = 3:
+				blackmailQW['smsday'] = blackmailQW['dreamday'] + 4
+				gs 'telefon', 'AddContact', 'Blackmailer', 'icon_na', 1
+			elseif blackmailQW['stage'] >= 5:
+				blackmailQW['smsday'] = daystart + 6 + rand(0, 12 - 5 * (min(blackmailQW['stage'], 7) - 5))
+			end
+		elseif daystart >= blackmailQW['smsday']:
+			if blackmailQW['stage'] = 3:
+				gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS1'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+			elseif blackmailQW['stage'] >= 5:
+				gs 'telefon', 'SetSMSSchedule', 'Blackmailer', "", "0", "gs 'blackmailer', 'Add_SMS_repeat'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+			end
+		end
 	end
 end
 
@@ -291,8 +309,8 @@ end
 
 
 if $ARGS[0] = 'Add_SMS1':
+	if blackmailQW['stage'] = 3: blackmailQW['stage'] = 4
 	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
-	blackmailQW['stage'] = 4
 	blackmailQW['smsday'] = daystart + 2
 	blackmailQW['next_payment'] = rand(50, 100) * 10
 	$blackmailQW['blackmail_image_chosen'] = $blackmailQW['init_flashimage']
@@ -324,39 +342,48 @@ end
 if $ARGS[0] = 'Add_SMS1_reminder':
 	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
 
-	$SMSTree['0'] = '<<$pcs_firstname>> don''t forget, if you don''t leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, you will regret it'
-
-	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'receive', $SMSTree['0']
-		gs 'SMSText_builder', 'receive_img', $blackmailQW['blackmail_image_chosen']
-		gs 'SMStext_builder', 'add_sms', 'Blackmailer'
-	gs 'SMStext_builder', 'end'
-	killvar '$SMSTree'
+	if blackmailQW['next_payment'] > 0:
+		if blackmailQW['escape'] = -1: blackmailQW['escape'] = 0
+		$SMSTree['0'] = '<<$pcs_firstname>> don''t forget, if you don''t leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, you will regret it'
+
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree['0']
+			gs 'SMSText_builder', 'receive_img', $blackmailQW['blackmail_image_chosen']
+			gs 'SMStext_builder', 'add_sms', 'Blackmailer'
+		gs 'SMStext_builder', 'end'
+		killvar '$SMSTree'
+	end
 end
 
 if $ARGS[0] = 'Add_SMS_failure':
 	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
-	blackmailQW['stage'] = -1
-
-	$SMSTree['0'] = 'Guess you like it when people know you''re a whore'
-		$SMSTree['1'] = 'or you didn''t think I''d go through with it'
-			$SMSTree['2'] = 'we''ll see'
-
-	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'receive', $SMSTree['0']
-		gs 'SMStext_builder', 'receive', $SMSTree['1']
-		gs 'SMStext_builder', 'receive', $SMSTree['2']
-		gs 'SMStext_builder', 'add_sms', 'Blackmailer'
-	gs 'SMStext_builder', 'end'
+	blackmailQW['smsday'] = 0
 
-	if blackmailQW['stage'] < 6:
-		if blackmailQW['init_flashregion'] = 'city':
-			fame['city_sex'] += 2 * blackmailQW['total_material']
-		elseif blackmailQW['init_flashregion'] = 'gad':
-			fame['gad_sex'] += 10 * blackmailQW['total_material']
-		else
-			fame['pav_sex'] += 5 * blackmailQW['total_material']
+	if blackmailQW['next_payment'] > 0:
+		if blackmailQW['escape'] = -1: blackmailQW['escape'] = 0
+		blackmailQW['next_payment'] = 0
+
+		$SMSTree['0'] = 'Guess you like it when people know you''re a whore'
+			$SMSTree['1'] = 'or you didn''t think I''d go through with it'
+				$SMSTree['2'] = 'we''ll see'
+
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree['0']
+			gs 'SMStext_builder', 'receive', $SMSTree['1']
+			gs 'SMStext_builder', 'receive', $SMSTree['2']
+			gs 'SMStext_builder', 'add_sms', 'Blackmailer'
+		gs 'SMStext_builder', 'end'
+
+		if blackmailQW['stage'] < 6:
+			if blackmailQW['init_flashregion'] = 'city':
+				fame['city_sex'] += 2 * blackmailQW['total_material']
+			elseif blackmailQW['init_flashregion'] = 'gad':
+				fame['gad_sex'] += 10 * blackmailQW['total_material']
+			else
+				fame['pav_sex'] += 5 * blackmailQW['total_material']
+			end
 		end
+		blackmailQW['stage'] = -1
 	end
 end
 
@@ -394,11 +421,12 @@ if $ARGS[0] = 'park1':
 	else
 		act 'Hide the money (<<blackmailQW[''next_payment'']>> <b>₽</b>)':
 			*clr & cla
+			if blackmailQW['stage'] = 4: blackmailQW['stage'] = 5
+			gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+			blackmailQW['smsday'] = 0
 			money -= blackmailQW['next_payment']
 			blackmailQW['total_payment'] += blackmailQW['next_payment']
 			blackmailQW['next_payment'] = 0
-			blackmailQW['stage'] = 5
-			blackmailQW['smsday'] = 0
 
 			minut += 1
 			gs 'stat'
@@ -416,15 +444,147 @@ end
 
 
 
+	!!=============================================!!
+	!!                                             !!
+	!!                   POLICE                    !!
+	!!                                             !!
+	!!=============================================!!
+
+
+if $ARGS[0] = 'set_police_act':
+	if blackmailQW['stage'] >= 3 and blackmailQW['escape'] = 0:
+		act 'Report that you''re being blackmailed':
+			menu_off = 1
+			minut += 5
+			gs 'stat'
+			gt 'blackmailer', 'police1'
+		end
+	end
+end
+
+if $ARGS[0] = 'police1':
+	if $region = 'pav':
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/police/pavrec.jpg" ></center>'
+		'You walk up to a bored looking cop shuffling about some paperwork.'
+	else:
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
+		'You walk up to a window, you pick up the phone and hear a buzzer sound on the other side. One of the officers picks it up without hesitation and looks at you.'
+	end
+	'"Can I help you?"'
+	'"I-I''m being blackmailed" you stammer. The cops eyebrow raises slightly, but other than that his expression doesn''t change.'
+	if $region = 'pav':
+		'"Follow me, we can take your statement over here."'
+	else
+		'"Someone will come out to meet you. Follow them and they''ll take your statement in the back."'
+	end
+	act 'Continue':
+		*clr & cla
+		minut += 5
+		gs 'stat'
+
+		'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation1.jpg"></center>'
+		if $region = 'pav':
+			'You sit down at a shoddy looking desk and another officer who looks only marginally more competent than the one who greeted you sits down across from you.'
+		else
+			'As promised, someone comes out and takes you into their office space behind. You sit down at a shoddy looking desk and the officer takes his place on the other side of it.'
+		end
+		'"Alright ma''am, you stated that you were being blackmailed. Could you please explain the situation?"'
+		gs 'willpower', 'flash', 'self'
+		if pcs_willpwr < will_cost:
+			act 'Tell them that somebody caught you flashing your <<$blackmailQW[''init_flashaction'']>> <<$blackmailQW[''init_flashloc_desc'']>> and has been demanding money (<font color="red"><<will_cost>> willpower</font>)':'<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		else
+			act 'Tell them that somebody caught you flashing your <<$blackmailQW[''init_flashaction'']>> <<$blackmailQW[''init_flashloc_desc'']>> and has been demanding money.':
+				*clr & cla
+				minut += 5
+				gs 'stat'
+
+				'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation2.jpg"></center>'
+				'"Some creep took a picture of me and is demanding money or he''ll release the picture!"'
+				'"Hmm, how did this person contact you?"'
+				'"He texted me."'
+				'You see a stark of hope flash through the officers eyes, if you could show us the texts we might be able to locate him."'
+				
+				if arrpos('$SMSContact', 'Blackmailer') >= 0:
+					act 'Show them the messages':
+						*clr & cla
+						if $blackmailQW['blackmail_image_chosen'] = '': $blackmailQW['blackmail_image_chosen'] = $blackmailQW['init_flashimage']
+						blackmailQW['escape'] = 1
+						minut += 10
+						gs 'stat'
+
+						'<center><img <<$set_imgh>> src="<<$blackmailQW[''blackmail_image_chosen'']>>"></center>'
+						'You open your phone and show the police officers the messages, and the images that you were send. You see the officer raise his eyebrow and you think you can almost hear him mutter "accidentally?" under his breath.'
+						'The officer fuddles around with you phone for a few minutes, his expression darkning with every bygone moment.'
+						'"Ma''am, we''re taking this very seriously, but the perp was smart and hid his telephone number. We''ll try our best, stake out this drop-off location, but I don''t have high hopes that we''ll catch him quick enough."'
+						'"I''m so sorry."'
+						'A sense of defeat and humiliation fills you, the need to remove yourself from this situation is almost unbearable.'
+						'"We will do everything we can, and here, take my card. Anything you need."'
+						'You pocket the card without even looking at it, and quickly hurry out the station.'
+						act 'Leave': gt $loc, $loc_arg
+
+					end
+					act 'Claim you deleted the messages': gt 'blackmailer', 'police_deleted'
+				else
+					act 'Say you deleted the messages': gt 'blackmailer', 'police_deleted'
+				end
+			end
+		end
+		act 'This is too embarrassing, flee the police station':
+			*clr & cla
+			blackmailQW['escape'] = -1
+			minut += 10
+			gs 'stat'
+
+			if $region = 'pav':
+				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/police/pavext.jpg" ></center>'
+			else:
+				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityext.jpg"></center>'
+			end
+			'Sitting in the interrogation room with the police officer, the situation suddenly comes crashing into you. You''re going to have to show some proof. That you were flashing your <<$blackmailQW[''init_flashaction'']>> <<$blackmailQW[''init_flashloc_desc'']>>. They will see the texts, the photos. They will see you for who you must be on the inside. You can already feel their eyes judging you.'
+			'"I-I-I can''t, I can''t, I can''t..." you manage to push out, nearly hyper-ventilating.'
+			'You nearly jump up out of the chair, backing up towards the door. Your eyes wide with panic "I''m sorry, I was mistaken".'
+			'The police officer just sighs and moves towards the door "If you change your mind, you kn..."'
+			'The remainder of the officers words fall on deaths ear as you rush out of the police station.'
+
+			act 'Leave the station': gt $loc, $loc_arg
+		end
+	end
+end
+
+if $ARGS[0] = 'police_deleted':
+	minut += 10
+	blackmailQW['escape'] = -1
+	gs 'stat'
+
+	if $region = 'pav':
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/police/pavext.jpg" ></center>'
+	else:
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityext.jpg"></center>'
+	end
+	'"Uhhmm" you stammer. "I, uhh, I deleted them."'
+	'The hope in the officers eyes is immediately extinguised, replaced with a distrusting and tired look. "I''m sorry ma''am, we''ll try our best but without any evidence we really can''t help you."'
+	'"If the suspect contacts you again, please don''t delete the messages. Okay?"'
+	'You nod your head dejectedly.'
+	'The officer stands up and escorts you back to the lobby. You briefly think to inform the officer about the drop-off location, but before you can even open your mouth you''re already outside the station.'
+	'Seems like you''ll need some proof before they''ll take you seriously.'
+
+	act 'Leave': gt $loc, $loc_arg
+end
+
+
+
+
 	!!=============================================!!
 	!!                                             !!
 	!!                  REPEATING                  !!
 	!!                                             !!
 	!!=============================================!!
 
+
 if $ARGS[0] = 'Add_SMS_repeat':
 	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
 	blackmailQW['smsday'] = daystart + 2
+	if blackmailQW['escape'] = -1: blackmailQW['escape'] = 0
 	blackmailQW['next_payment'] = (rand(50, 100) + (blackmailQW['total_payment'] / 50 ) / (1 + blackmailQW['total_payment'] / 20000)) * 10
 	$blackmailQW['blackmail_image_chosen'] = func('blackmailer', 'choose_blackmail_image')
 
@@ -598,6 +758,8 @@ if $ARGS[0] = 'park_repeat':
 	else
 		act 'Hide the money (<<blackmailQW[''next_payment'']>> <b>₽</b>)':
 			*clr & cla
+			gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+			blackmailQW['smsday'] = 0
 			money -= blackmailQW['next_payment']
 			blackmailQW['total_payment'] += blackmailQW['next_payment']
 			blackmailQW['next_payment'] = 0

+ 53 - 68
locations/booty_call.qsrc

@@ -10,7 +10,7 @@ if $ARGS[0] = 'scheduler':
 end
 
 if $ARGS[0] = 'fuckbuddy_scheduler2':
-	if i <= arrsize('$fuckbuddy'):
+	if i < arrsize('$fuckbuddy'):
 		$temp = 'FuckBuddy'
 		gs 'booty_call', 'fb_npc_stat_update'
 !!		if (rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or npc_booty_call[$FuckBuddy[i]] = daystart) and npc_rel[$FuckBuddy[i]] > 0 and npc_no_booty_call[$FuckBuddy[i]] ! daystart and npc_big_fight[$FuckBuddy[i]] < daystart - 7:
@@ -18,22 +18,11 @@ if $ARGS[0] = 'fuckbuddy_scheduler2':
 !!		temporary removal of npc_rel requirement until boy initiated breakups can occur
 
 !!		if (rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or npc_booty_call[$FuckBuddy[i]] = daystart) and npc_no_booty_call[$FuckBuddy[i]] ! daystart and (npc_big_fight[$FuckBuddy[i]] < daystart - 7 and daystart > 7):
-		if $npc_rel_type[$FuckBuddy[i]] = 'sugar_daddy':
-			if npc_sugar_daddy_timer[$FuckBuddy[i]] - (npc_rel[$FuckBuddy[i]] / 10) > daystart:
-				npc_no_booty_call[$FuckBuddy[i]] = daystart
-				
-			elseif (npc_booty_call_date[$FuckBuddy[i]] = daystart or rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or rand(1,100) <= npc_rel[$FuckBuddy[i]]) and npc_no_booty_call[$FuckBuddy[i]] ! daystart:
-				sugar_daddy_call[$FuckBuddy[i]] = 1
-				gs 'booty_call', 'fuckbuddy_scheduler3'
-			else
-				npc_no_booty_call[$FuckBuddy[i]] = daystart
-			end
+
+		if (npc_booty_call_date[$FuckBuddy[i]] = daystart or rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or rand(1,100) <= npc_rel[$FuckBuddy[i]]) and npc_no_booty_call[$FuckBuddy[i]] ! daystart:
+			gs 'booty_call', 'fuckbuddy_scheduler3'
 		else
-			if (npc_booty_call_date[$FuckBuddy[i]] = daystart or rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or rand(1,100) <= npc_rel[$FuckBuddy[i]]) and npc_no_booty_call[$FuckBuddy[i]] ! daystart:
-				gs 'booty_call', 'fuckbuddy_scheduler3'
-			else
-				npc_no_booty_call[$FuckBuddy[i]] = daystart
-			end
+			npc_no_booty_call[$FuckBuddy[i]] = daystart
 		end
 		i += 1
 		gs 'booty_call', 'fuckbuddy_scheduler2'
@@ -45,29 +34,21 @@ end
 
 
 if $ARGS[0] = 'sugar_daddy_scheduler2':
-	if i <= arrsize('$sugar_daddy'):
+	if i < arrsize('$sugar_daddy'):
 		gs 'booty_call', 'sd_npc_stat_update'
 !!		if (rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or npc_booty_call[$FuckBuddy[i]] = daystart) and npc_rel[$FuckBuddy[i]] > 0 and npc_no_booty_call[$FuckBuddy[i]] ! daystart and npc_big_fight[$FuckBuddy[i]] < daystart - 7:
 
 !!		temporary removal of npc_rel requirement until boy initiated breakups can occur
 
 !!		if (rand(1,10) <= npc_sexdrive[$FuckBuddy[i]] or npc_booty_call[$sugar_daddy[i]] = daystart) and npc_no_booty_call[$sugar_daddy[i]] ! daystart and (npc_big_fight[$sugar_daddy[i]] < daystart - 7 and daystart > 7):
-		if $npc_rel_type[$sugar_daddy[i]] = 'sugar_daddy':
-			if npc_sugar_daddy_timer[$sugar_daddy[i]] - (npc_rel[$sugar_daddy[i]] / 10) > daystart:
-				npc_no_booty_call[$sugar_daddy[i]] = daystart
-				
-			elseif (npc_booty_call_date[$sugar_daddy[i]] = daystart or rand(1,10) <= npc_sexdrive[$sugar_daddy[i]] or rand(1,100) <= npc_rel[$sugar_daddy[i]]) and npc_no_booty_call[$sugar_daddy[i]] ! daystart:
-				sugar_daddy_call[$sugar_daddy[i]] = 1
-				gs 'booty_call', 'sugar_daddy_scheduler3'
-			else
-				npc_no_booty_call[$sugar_daddy[i]] = daystart
-			end
+		if npc_sugar_daddy_timer[$sugar_daddy[i]] - (npc_rel[$sugar_daddy[i]] / 10) > daystart:
+			npc_no_booty_call[$sugar_daddy[i]] = daystart
+			
+		elseif (npc_booty_call_date[$sugar_daddy[i]] = daystart or rand(1,10) <= npc_sexdrive[$sugar_daddy[i]] or rand(1,100) <= npc_rel[$sugar_daddy[i]]) and npc_no_booty_call[$sugar_daddy[i]] ! daystart:
+			sugar_daddy_call[$sugar_daddy[i]] = 1
+			gs 'booty_call', 'sugar_daddy_scheduler3'
 		else
-			if (npc_booty_call_date[$sugar_daddy[i]] = daystart or rand(1,10) <= npc_sexdrive[$sugar_daddy[i]] or rand(1,100) <= npc_rel[$sugar_daddy[i]]) and npc_no_booty_call[$sugar_daddy[i]] ! daystart:
-				gs 'booty_call', 'sugar_daddy_scheduler3'
-			else
-				npc_no_booty_call[$sugar_daddy[i]] = daystart
-			end
+			npc_no_booty_call[$sugar_daddy[i]] = daystart
 		end
 		i += 1
 		gs 'booty_call', 'sugar_daddy_scheduler2'
@@ -146,7 +127,7 @@ if $ARGS[0] = 'SMS raiser':
 		i += 1
 		jump 'fuckbuddy_sms_raiser_loop'
 	end
-	
+
 	i = 0
 	:sugar_daddy_sms_raiser_loop
 	if i < arrsize('$sugar_daddy'):
@@ -162,53 +143,57 @@ if $ARGS[0] = 'SMS raiser':
 end
 
 if $ARGS[0] = 'home_links':
-	i=0
-	*nl
+	i = 0
 	:loopFB_homes
-	if (npc_residence[$Fuckbuddy[i]] = 1 and $loc = 'pav_residential') or (npc_residence[$Fuckbuddy[i]] = 3 and $loc = 'city_residential')or (npc_residence[$Fuckbuddy[i]] = 4 and $loc = 'city_center'):
-		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$Fuckbuddy[i]>>'''' "><<$npc_firstname[$Fuckbuddy[i]]>>''''s</a> apartment is nearby.'' ')
-		!! ''''
+	if i < arrsize('$Fuckbuddy'):
+		*nl
+		if (npc_residence[$Fuckbuddy[i]] = 1 and $loc = 'pav_residential') or (npc_residence[$Fuckbuddy[i]] = 3 and $loc = 'city_residential')or (npc_residence[$Fuckbuddy[i]] = 4 and $loc = 'city_center'):
+			dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$Fuckbuddy[i]>>'''' "><<$npc_firstname[$Fuckbuddy[i]]>>''''s</a> apartment is nearby.'' ')
+			!! ''''
+		end
+		!!		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''fb_npc_home_start'''',''''<<$Fuckbuddy[i]>>'''' "><<$npc_firstname[$Fuckbuddy[i]]>>''''s</a> apartment is nearby.'' ')
+		i += 1
+		jump 'loopFB_homes'
 	end
-	!!		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''fb_npc_home_start'''',''''<<$Fuckbuddy[i]>>'''' "><<$npc_firstname[$Fuckbuddy[i]]>>''''s</a> apartment is nearby.'' ')
 
-	i +=1
-	if i < arrsize('$Fuckbuddy') : jump 'loopFB_homes'
-	
-	i=0
-	*nl
+	i = 0
 	:loopSD_homes
-	if (npc_residence[$sugar_daddy[i]] = 1 and $loc = 'pav_residential') or (npc_residence[$sugar_daddy[i]] = 3 and $loc = 'city_residential')or (npc_residence[$sugar_daddy[i]] = 4 and $loc = 'city_center'):
-		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$sugar_daddy[i]>>'''' "><<$npc_firstname[$sugar_daddy[i]]>>''''s</a> apartment is nearby.'' ')
-		!! ''''
+	if i < arrsize('$sugar_daddy'):
+		*nl
+		if (npc_residence[$sugar_daddy[i]] = 1 and $loc = 'pav_residential') or (npc_residence[$sugar_daddy[i]] = 3 and $loc = 'city_residential')or (npc_residence[$sugar_daddy[i]] = 4 and $loc = 'city_center'):
+			dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$sugar_daddy[i]>>'''' "><<$npc_firstname[$sugar_daddy[i]]>>''''s</a> apartment is nearby.'' ')
+			!! ''''
+		end
+		!!		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''fb_npc_home_start'''',''''<<$sugar_daddy[i]>>'''' "><<$npc_firstname[$sugar_daddy[i]]>>''''s</a> apartment is nearby.'' ')
+		i += 1
+		jump 'loopSD_homes'
 	end
-	!!		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''fb_npc_home_start'''',''''<<$sugar_daddy[i]>>'''' "><<$npc_firstname[$sugar_daddy[i]]>>''''s</a> apartment is nearby.'' ')
-
-	i +=1
-	if i < arrsize('$sugar_daddy') : jump 'loopSD_homes'
 end
 
 if $ARGS[0] = 'hotel_links':
-	i=0
-	*nl
+	i = 0
 	:loopFB_hotel
-	if $booty_call_hotel[$Fuckbuddy[i]] = $region and booty_call_invite[$FuckBuddy[i]] = daystart:
-		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$Fuckbuddy[i]>>'''' "><<$npc_firstname[$Fuckbuddy[i]]>></a> booked a hotel room to meet you in.'' ')
-		!! ''''
+	if i < arrsize('$Fuckbuddy'):
+		*nl
+		if $booty_call_hotel[$Fuckbuddy[i]] = $region and booty_call_invite[$FuckBuddy[i]] = daystart:
+			dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$Fuckbuddy[i]>>'''' "><<$npc_firstname[$Fuckbuddy[i]]>></a> booked a hotel room to meet you in.'' ')
+			!! ''''
+		end
+		i += 1
+		jump 'loopFB_hotel'
 	end
-	
-	i +=1
-	if i < arrsize('$Fuckbuddy') : jump 'loopFB_hotel'
-	
-	i=0
-	*nl
+
+	i = 0
 	:loopSD_hotel
-	if $booty_call_hotel[$sugar_daddy[i]] = $region and booty_call_invite[$sugar_daddy[i]] = daystart:
-		dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$sugar_daddy[i]>>'''' "><<$npc_firstname[$sugar_daddy[i]]>></a> booked a hotel room to meet you in.'' ')
-		!! ''''
+	if i < arrsize('$sugar_daddy'):
+		*nl
+		if $booty_call_hotel[$sugar_daddy[i]] = $region and booty_call_invite[$sugar_daddy[i]] = daystart:
+			dynamic(' ''<a href="exec: minut += 2 & gt ''''sex_ev_start'''',''''initiate_pre'''',''''<<$sugar_daddy[i]>>'''' "><<$npc_firstname[$sugar_daddy[i]]>></a> booked a hotel room to meet you in.'' ')
+			!! ''''
+		end
+		i += 1
+		jump 'loopSD_hotel'
 	end
-	
-	i +=1
-	if i < arrsize('$sugar_daddy') : jump 'loopSD_hotel'
 end
 
 !! booty_call_invite['B0']

+ 13 - 1
locations/booty_call_sms.qsrc

@@ -425,7 +425,7 @@ if $ARGS[0] = 'new_booty_call':
 		$SMSTree['10'] = 'i want to see you'
 			$SMSTree['11'] = 'ive booked a hotel room'
 
-	elseif $npc_rel_type[$ARGS[1]] = 'casual_date' or $npc_rel_type[$ARGS[2]] = 'fuckbuddy':
+	elseif $npc_rel_type[$ARGS[1]] = 'casual_date' or $npc_rel_type[$ARGS[1]] = 'fuckbuddy':
 		$SMSTree['10'] = 'ive been thinking about you'
 				!! player response 1 option 1
 			$SMSTree['a11'] = 'what were you thinking about?'
@@ -457,6 +457,8 @@ if $ARGS[0] = 'new_booty_call':
 								$SMSTree['a12'] = 'want to come over and have some fun?'
 							end
 						end
+					else
+						$SMSTree['a12'] = 'PLACEHOLDER 1'
 					end
 				end
 
@@ -517,6 +519,16 @@ if $ARGS[0] = 'new_booty_call':
 					$SMSTree['11'] = 'lets get naughty'
 			end
 		end
+
+	elseif $npc_rel_type[$ARGS[1]] = 'lover':
+		!! temp
+		$SMSTree['10'] = '$npc_rel_type = lover!!'
+			$SMSTree['11'] = 'PLACEHOLDER2'
+
+	else
+		!! temp
+		$SMSTree['10'] = 'PLACEHOLDER3'
+			$SMSTree['11'] = 'PLACEHOLDER4'
 	end
 
 

+ 1 - 3
locations/cum_call.qsrc

@@ -112,10 +112,8 @@ if $ARGS[0] ! 'precum':
 	!{'boy <<$boydesc>> loc <<spafinloc>> contra <<sexcontra>> vol <<sexvolume>> ppt <<sexspecpot>> know <<sexpartkno>> unaware <<sexunaware>> cumboy <<$cumboy>>'}
 
 	gs 'Cum_Manage'
-	$boy = $cumboy
-
+	if $cumboy ! '': $boy = $cumboy & killvar '$cumboy'
 	sexcontra = 0
-	killvar '$cumboy'
 else
 	!This is to check for pregnancy and stds from precum. It is added for readability when it is used in the code.
 	!It will call cum_call with potency of 1 40th of what it would be for a normal call.

+ 38 - 38
locations/cum_cleanup.qsrc

@@ -46,29 +46,29 @@ gs 'cum_cleanup'}
 	16 = 'In your hair'
 	17 = 'In a condom in your vagina'}
 
-if $ARGS[0] = 'cleanloc' and arrsize('ARGS') > 1:
-	i = 0
+if $ARGS[0] = 'cleanloc':
+	l = 0
 	:cleanlocloop
-	if i < arrsize('$sparrnam'):
-		if sparrloc[i] = ARGS[1]:
-			if sparrloc[i] = 0 or sparrloc[i] = 3:
+	if l < arrsize('$sparrnam'):
+		if sparrloc[l] = ARGS[1]:
+			if sparrloc[l] = 0 or sparrloc[l] = 3:
 				if mc_inventory['enema_kit'] = 1 or cheatKlisma = 0:
-					cumsumvag -= iif(sparrloc[i]=0,sparrvol[i],0)
-					cumsumass -= iif(sparrloc[i]=3,sparrvol[i],0)
-					sparrvol[i] = 0
-					sparrslc[i] = 0
+					cumsumvag -= iif(sparrloc[l]=0,sparrvol[l],0)
+					cumsumass -= iif(sparrloc[l]=3,sparrvol[l],0)
+					sparrvol[l] = 0
+					sparrslc[l] = 0
 				else
 					cumspclnt = 15
 					gs 'cum_cleanup'
 				end
 			else
-				gs 'cum_cleanup', 'cleandeposit', i
+				gs 'cum_cleanup', 'cleandeposit', l
 			end
 		end
-		i += 1
+		l += 1
 		jump 'cleanlocloop'
 	end
-elseif $ARGS[0] = 'cleandeposit' and arrsize('ARGS') > 1:
+elseif $ARGS[0] = 'cleandeposit':
 	cumsumbod -= sparrvol[ARGS[1]]
 	cumsumvag -= iif(sparrloc[ARGS[1]]=0,sparrvol[ARGS[1]],0)
 	cumsumass -= iif(sparrloc[ARGS[1]]=3,sparrvol[ARGS[1]],0)
@@ -80,11 +80,10 @@ elseif $ARGS[0] = 'cleandeposit' and arrsize('ARGS') > 1:
 	KILLVAR 'sparrvol',ARGS[1]
 	KILLVAR 'sparrslc',ARGS[1]
 	KILLVAR 'sparrcnt',ARGS[1]
-	cumloc[ARGS[1]] = 0
 	if cumsumbod < 0: cumsumbod = 0
 	if cumsumvag <= 0: cumsumvag = 0 & cum_vol['vagina'] = 0 & cumvol[0] = 0 & cum_loc['vagina'] = 0 & cumloc[0] = 0
 	if cumsumass <= 0: cumsumass = 0 & cum_vol['anus'] = 0   & cumvol[3] = 0 & cum_loc['anus'] = 0   & cumloc[3] = 0
-elseif $ARGS[0] = 'cleanwomb' and arrsize('ARGS') > 1:
+elseif $ARGS[0] = 'cleanwomb':
 	KILLVAR 'cumarrcpt',ARGS[1]
 	KILLVAR 'cumarrppt',ARGS[1]
 	KILLVAR '$cumarrnam',ARGS[1]
@@ -268,66 +267,67 @@ elseif $ARGS[0] = '':
 		KILLVAR 'cum_vol'
 	end
 
-	i = 0
+	l = 0
 	:cumcleanloop
-	if i < arrsize('$sparrnam'):
-		tmp = arrpos('deresidue', sparrloc[i])
+	if l < arrsize('$sparrnam'):
+		tmp = arrpos('deresidue', sparrloc[l])
 		if tmp ! -1 and tmp < arrsize('deresidue'):
 			!! vagina
-			if sparrloc[i] = 0:
+			if sparrloc[l] = 0:
 				!! cannot be completely cleaned with tissues\toilet use\hypno block\no enema kit
-				if FUNC('Cum_Manage', 'check_innards', sparrloc[i]) = 1 _ 
+				if FUNC('Cum_Manage', 'check_innards', sparrloc[l]) = 1 _ 
 				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
 				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
-					cumsumbod -= sparrvol[i] & cumsumvag -= sparrvol[i]
-					sparrslc[i] = 0 & sparrvol[i] = 0
+					cumsumbod -= sparrvol[l] & cumsumvag -= sparrvol[l]
+					sparrslc[l] = 0 & sparrvol[l] = 0
 					isprok = 0 & vibratorIN = 0
 				end
 			!! ass
-			elseif sparrloc[i] = 3:
-				if FUNC('Cum_Manage', 'check_innards', sparrloc[i]) = 1 or cumspclnt = 7 _ 
+			elseif sparrloc[l] = 3:
+				if FUNC('Cum_Manage', 'check_innards', sparrloc[l]) = 1 or cumspclnt = 7 _ 
 				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
 				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
-					cumsumbod -= sparrvol[i] & cumsumass -= sparrvol[i]
-					sparrslc[i] = 0 & sparrvol[i] = 0
+					cumsumbod -= sparrvol[l] & cumsumass -= sparrvol[l]
+					sparrslc[l] = 0 & sparrvol[l] = 0
 					analplugin = 0 & analplugout = 0
 				end
 			else
-				cumsumbod -= sparrvol[i]
-				sparrslc[i] = 0 & sparrvol[i] = 0
+				cumsumbod -= sparrvol[l]
+				sparrslc[l] = 0 & sparrvol[l] = 0
 			end
 		end
 
-		tmp = arrpos('toclean', sparrloc[i])
-		if tmp ! -1 and tmp < arrsize('toclean'):
+		tmp = arrpos('toclean', sparrloc[l])
+		if tmp ! -1 and tmp < arrsize('toclean') and sparrvol[l] > 0:
 			!! vagina
-			if sparrloc[i] = 0:
-				if cumsumvag*rand(6,9)/6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[i], 1) and isprok = 0 and vibratorIN = 0 _ 
+			if sparrloc[l] = 0:
+				if cumsumvag*rand(6,9)/6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[l], 1) and isprok = 0 and vibratorIN = 0 _ 
 				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
 				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
-					gs 'cum_cleanup', 'cleandeposit', i
+					gs 'cum_cleanup', 'cleandeposit', l
 					if cumspclnt = 3: isprok = 0 & vibratorIN = 0
 				end
 			!! ass
-			elseif sparrloc[i] = 3:
-				if (cumsumass*rand(6,9)/6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[i], 1) and analplugin = 0) or cumspclnt = 7 _ 
+			elseif sparrloc[l] = 3:
+				if (cumsumass*rand(6,9)/6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[l], 1) and analplugin = 0) or cumspclnt = 7 _ 
 				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
 				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
-					gs 'cum_cleanup', 'cleandeposit', i
+					gs 'cum_cleanup', 'cleandeposit', l
 					if cumspclnt = 3 or cumspclnt = 7: analplugin = 0
 				end
 			else
-				gs 'cum_cleanup', 'cleandeposit', i
+				gs 'cum_cleanup', 'cleandeposit', l
 			end
 		else
-			i += 1
+			if sparrvol[l] <= 0 and ($sparrnam[l] = '' or sparrloc[l] ! 0 or (sparrloc[l] = 0 and sparrage[l] > 10)): gs 'cum_cleanup', 'cleandeposit', l
+			l += 1
 		end
 		jump 'cumcleanloop'
 	end
 	killvar 'toclean'
 	killvar 'deresidue'
 	killvar 'tmp'
-	killvar 'i'
+	killvar 'l'
 	killvar 'lubonus'
 	killvar 'anal_slip'
 	killvar 'vaginal_slip'

+ 21 - 12
locations/din_bad.qsrc

@@ -157,19 +157,28 @@ if $ARGS[0] = 'd_bag':
 	elseif (mc_inventory['travel_mirror'] =  1 or mc_inventory['comb'] =  1) and pcs_hairbsh = 1: 
 		'There''s a hairbrush in your purse. Your hair doesn''t need brushing right now.'
 	end
-	if pcs_hairlng > 80 and mc_inventory['scrunchies'] >= 1 and hbraids = 0:
-		if hscrunchw = 0 and hpingripw = 0: 'As you have a scrunchy, you can arrange your hair into a <a href="exec:hscrunchw = 1 & gs ''din_bad'', ''d_bag''">ponytail</a>. You have <<mc_inventory[''scrunchies'']>> scrunchies left.'
-		if hscrunchw = 1: 'Remove the <a href="exec:hscrunchw = 0 & gs ''din_bad'', ''d_bag''">scrunchie</a> to get rid of the ponytail.'
-	end
-	if pcs_hairlng > 80 and pcs_hairlng <= 400 and mc_inventory['kirbygrips'] >= 1 and hbraids = 0:
-		if hscrunchw = 0 and hpingripw = 0: 'You have several clips, pins and grips for you hair. Hence, you can <a href="exec:hpingripw = 1 & gs ''din_bad'', ''d_bag''">updo your hair</a>. You have <<mc_inventory[''kirbygrips'']>> hair accessories at your disposal.'
-		if hpingripw = 1: 'Let your hair <a href="exec:hpingripw = 0 & gs ''din_bad'', ''d_bag''">flow free</a>.'
-	end
-	if pcs_hairlng > 80 and pcs_hairlng <= 800 and mc_inventory['scrunchies'] >= 2 and hbraids = 0:
-		if hscrunchw = 0 and hpingripw = 0: 'You can use two hair ties to make yourself some <a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''din_bad'', ''d_bag''">pigtails</a>.'
-		if hscrunchw = 2: '<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''din_bad'', ''d_bag''">Remove</a> your scrunchies and let your hair flow free again.'
+	if pcs_hairbsh > 0 and pcs_hairlng > 80 and hbraids = 0:
+		*nl
+		if mc_inventory['scrunchies'] >= 1 and hscrunchw + hpingripw = 0:
+			'As you have a scrunchy, you can arrange your hair into a <a href="exec:hscrunchw = 1 & gs ''din_bad'', ''d_bag''">ponytail</a>. You have <<mc_inventory[''scrunchies'']>> scrunchies left.'
+		end
+		if pcs_hairlng <= 400 and mc_inventory['kirbygrips'] >= 1 and hscrunchw + hpingripw = 0:
+			'You have several clips, pins and grips for you hair. Hence, you can <a href="exec:hpingripw = 1 & gs ''din_bad'', ''d_bag''">updo your hair</a>. You have <<mc_inventory[''kirbygrips'']>> hair accessories at your disposal.'
+		end
+		if pcs_hairlng <= 800 and mc_inventory['scrunchies'] >= 1:
+			if mc_inventory['scrunchies'] >= 2 and hscrunchw + hpingripw = 0:
+				'You can use two hair ties to make yourself some <a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''din_bad'', ''d_bag''">pigtails</a>.'
+			end
+			if canBraidHair = 1 and hscrunchw + hpingripw + hpigtail = 0:
+				'You can spend <<pcs_hairlng/10>> minutes <a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''din_bad'', ''d_bag''">braiding</a> your hair, just the way your sister taught you.'
+			end
+		end
 	end
-	
+	if hscrunchw = 1: 'Remove the <a href="exec:hscrunchw = 0 & gs ''din_bad'', ''d_bag''">scrunchie</a> to get rid of the ponytail.'
+	if hscrunchw = 2: '<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''din_bad'', ''d_bag''">Remove</a> your scrunchies and let your hair flow free again.'
+	if hpingripw = 1: 'Let your hair <a href="exec:hpingripw = 0 & gs ''din_bad'', ''d_bag''">flow free</a>.'
+	if hbraids > 0: 'Take <<hbraids*2+pcs_hairlng/50>> minutes removing your <a href="exec:minut += hbraids*2+pcs_hairlng/50 & hbraids = 0 & gs ''din_bad'', ''d_bag''">braid</a>.'
+
 	*nl
 	if mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
 		if preziktype = 2 or mc_inventory['sabotaged_condoms'] > 0:

+ 12 - 0
locations/exercise.qsrc

@@ -531,9 +531,11 @@ if $ARGS[0] = 'tier1':
 	if ARGS[1] = 0:
 		minut += 15
 		mult = 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += 15
 	else
 		minut += ARGS[1]
 		mult = (ARGS[1]-1)/15 + 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += ARGS[1] / 2
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
@@ -571,6 +573,7 @@ if $ARGS[0] = 'tier1':
 	end
 	mcnt += 1
 	if mcnt < mult: jump 'timeexploop1'
+	stat['last_workout_trig'] = 1
 	killvar 'mcnt'
 	killvar 'mult'
 end
@@ -579,9 +582,11 @@ if $ARGS[0] = 'tier2':
 	if ARGS[1] = 0:
 		minut += 15
 		mult = 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += 15
 	else
 		minut += ARGS[1]
 		mult = (ARGS[1]-1)/15 + 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += ARGS[1] / 2
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
@@ -619,6 +624,7 @@ if $ARGS[0] = 'tier2':
 	end
 	mcnt += 1
 	if mcnt < mult: jump 'timeexploop2'
+	stat['last_workout_trig'] = 1
 	killvar 'mcnt'
 	killvar 'mult'
 end
@@ -627,9 +633,11 @@ if $ARGS[0] = 'tier3':
 	if ARGS[1] = 0:
 		minut += 15
 		mult = 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += 15
 	else
 		minut += ARGS[1]
 		mult = (ARGS[1]-1)/15 + 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += ARGS[1]
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
@@ -667,6 +675,7 @@ if $ARGS[0] = 'tier3':
 	end
 	mcnt += 1
 	if mcnt < mult: jump 'timeexploop3'
+	stat['last_workout_trig'] = 1
 	killvar 'mcnt'
 	killvar 'mult'
 end
@@ -675,9 +684,11 @@ if $ARGS[0] = 'tier4':
 	if ARGS[1] = 0:
 		minut += 15
 		mult = 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += 15
 	else
 		minut += ARGS[1]
 		mult = (ARGS[1]-1)/15 + 1
+		if pcs_traits['fitness_freak'] = 1: pcs_horny += ARGS[1]
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
@@ -715,6 +726,7 @@ if $ARGS[0] = 'tier4':
 	end
 	mcnt += 1
 	if mcnt < mult: jump 'timeexploop4'
+	stat['last_workout_trig'] = 1
 	killvar 'mcnt'
 	killvar 'mult'
 end

+ 137 - 136
locations/femcyc.qsrc

@@ -129,24 +129,24 @@
 !!
 !!	Cum Array indices (taken from Cum_Manage.qsrc):
 !!
-!!	cumarrnam : Sperm Owner
-!!	cumarrppt : Sperm Potential Potency (max sperm delivery)
-!!	cumarrcpt : Sperm Current Potency	(current amount of sperm)
-!!	cumarrdel : Sperm "Delivery" (method of *VAGINAL ONLY* acquisition)
-!!	cumarrcon :	Contraception typ used
-!!	cumarrage : Sperm age in hours
-!!	cumarrkno : Did you know/realize who did it?
-!!	cumarrcnt : Unique identifier of the exact which time the MC has had this sperm incident occur.
+!!	$cumarrnam : Sperm Owner
+!!	cumarrppt  : Sperm Potential Potency (max sperm delivery)
+!!	cumarrcpt  : Sperm Current Potency	(current amount of sperm)
+!!	cumarrdel  : Sperm "Delivery" (method of *VAGINAL ONLY* acquisition)
+!!	cumarrcon  : Contraception typ used
+!!	cumarrage  : Sperm age in hours
+!!	cumarrkno  : Did you know/realize who did it?
+!!	cumarrcnt  : Unique identifier of the exact which time the MC has had this sperm incident occur.
 !!
 !!	Spatter Array indices (taken from Cum_Manage.qsrc):
 !!
-!!	sparrloc : Location of the sperm, as per cumarrdel
-!!	sparrnam : Spatter Owner
-!!	sparrppt : Spatter Potential Potency (Used to increase potency if you do not clean yourself out)
-!!	sparridt : Did you know/realize who did it?
-!!	sparrvol : Volume of the spatter. 40 is average.
-!!	sparrslc : Spread status of the spatter. High volume can spread the contaminant from it is starting place.
-!!	sparrcnt : Unique identifier of the exact which time the MC has had this spatter incident occur.
+!!	sparrloc  : Location of the sperm, as per cumarrdel
+!!	$sparrnam : Spatter Owner
+!!	sparrppt  : Spatter Potential Potency (Used to increase potency if you do not clean yourself out)
+!!	sparridt  : Did you know/realize who did it?
+!!	sparrvol  : Volume of the spatter. 40 is average.
+!!	sparrslc  : Spread status of the spatter. High volume can spread the contaminant from it is starting place.
+!!	sparrcnt  : Unique identifier of the exact which time the MC has had this spatter incident occur.
 !!
 !!	Values of 'cumarrdel' as defined by the cum_arr (taken from Cum_Manage.qsrc):
 !!
@@ -305,141 +305,142 @@ if $ARGS[0] = '':
 		killvar 'succycletmp'
 	end
 
-	!!cumarrtemp = 0
-	!!cumcondslip = 0
-	!!cumcondslip_aware = 0
+	cumarrtemp = 0
 	if arrsize('sparrvol') > 0:
 		:cumspaloop
-		!!Succubus absorption for internal locations other than womb
-		if succubusflag = 1:
-			if sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
-				sexnutrition += 25*succublvl
-				succubxp += 3
-				sucabscum = 1
-				if sparrvol[cumarrtemp] > 0: sparrvol[cumarrtemp] = 0
+			!!Succubus absorption for internal locations other than womb
+			if succubusflag = 1:
+				if sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
+					sexnutrition += 25*succublvl
+					succubxp += 3
+					sucabscum = 1
+					if sparrvol[cumarrtemp] > 0: sparrvol[cumarrtemp] = 0
+				end
+				!!{if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
+					sexnutrition += 30*succublvl
+					sparrvol[cumarrtemp] -= 30*succublvl
+					if sparrvol[cumarrtemp] < 0: sexnutrition += sparrvol[cumarrtemp] & sparrvol[cumarrtemp] = 0
+				end}
 			end
-		end
-		!!{if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
-			sexnutrition += 30*succublvl
-			sparrvol[cumarrtemp] -= 30*succublvl
-			if sparrvol[cumarrtemp] < 0: sexnutrition += sparrvol[cumarrtemp] & sparrvol[cumarrtemp] = 0
-		end}
-		!!{ Process spatter until it has volume or is too old in vagina. }
-		if sparrvol[cumarrtemp] > 0 or (sparrloc[cumarrtemp] = 0 and sparrage[cumarrtemp] < 10):
-			sparrtmpv = arrsize('$cumarrnam')
-			if sparrloc[cumarrtemp] = 17:
-				sparrtmpv = arrpos('cumarrcnt',sparrcnt[cumarrtemp])
-				if sparrtmpv >= 0:
-					!!'Found guy id <<sparrtmpv>>'
-					if sparrage[cumarrtemp] < 4:
-						cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/5
-					elseif sparrage[cumarrtemp] < 10:
-						cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/30
+			
+			!!{ Process spatter until it has volume or is too old in vagina. }
+			if (sparrvol[cumarrtemp] > 0 or (sparrloc[cumarrtemp] = 0 and sparrage[cumarrtemp] < 10) and $sparrnam[cumarrtemp] ! ''):
+				sparrtmpv = arrsize('$cumarrnam')
+				if sparrloc[cumarrtemp] = 17:
+					sparrtmpv = arrpos('cumarrcnt',sparrcnt[cumarrtemp])
+					if sparrtmpv >= 0:
+						!!'Found guy id <<sparrtmpv>>'
+						if sparrage[cumarrtemp] < 4:
+							cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/5
+						elseif sparrage[cumarrtemp] < 10:
+							cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/30
+						end
 					end
-				end
-			elseif sparrloc[cumarrtemp] = 0:
-				sparrtmpv = arrpos('cumarrcnt',sparrcnt[cumarrtemp])
-				if sparrtmpv >= 0:
-					!!'Found guy id' & sparrtmpv
-					if sparrage[cumarrtemp] < 4:
-						cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/40
-					elseif sparrage[cumarrtemp] < 10:
-						cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/60
+				elseif sparrloc[cumarrtemp] = 0:
+					sparrtmpv = arrpos('cumarrcnt',sparrcnt[cumarrtemp])
+					if sparrtmpv >= 0:
+						!!'Found guy id' & sparrtmpv
+						if sparrage[cumarrtemp] < 4:
+							cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/40
+						elseif sparrage[cumarrtemp] < 10:
+							cumarrcpt[sparrtmpv] += sparrppt[cumarrtemp]/60
+						end
+					end
+				elseif sparrslc[cumarrtemp] = 1 and sparrage[cumarrtemp] < 5:
+					if sparrloc[cumarrtemp] = 1:
+						cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
+						cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
+						$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
+						cumarrage[sparrtmpv] = sparrage[cumarrtemp]
+						cumarrdel[sparrtmpv] = 1
+						cumarrkno[sparrtmpv] = -1
+						cumarrcon[sparrtmpv] = 0
+						cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
+					end
+				elseif sparrslc[cumarrtemp] = 3 and sparrage[cumarrtemp] < 5:
+					if sparrloc[cumarrtemp] = 2:
+						cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
+						cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
+						$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
+						cumarrage[sparrtmpv] = sparrage[cumarrtemp]
+						cumarrdel[sparrtmpv] = 3
+						cumarrkno[sparrtmpv] = -1
+						cumarrcon[sparrtmpv] = 0
+						cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
+					elseif sparrloc[cumarrtemp] = 4:
+						cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
+						cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
+						$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
+						cumarrage[sparrtmpv] = sparrage[cumarrtemp]
+						cumarrdel[sparrtmpv] = 2
+						cumarrkno[sparrtmpv] = -1
+						cumarrcon[sparrtmpv] = 0
+						cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
+					end
+				elseif sparrslc[cumarrtemp] = 5 and sparrage[cumarrtemp] < 5:
+					if sparrloc[cumarrtemp] = 3:
+						cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
+						cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
+						$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
+						cumarrage[sparrtmpv] = sparrage[cumarrtemp]
+						cumarrdel[sparrtmpv] = 2
+						cumarrkno[sparrtmpv] = -1
+						cumarrcon[sparrtmpv] = 0
+						cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
+					elseif sparrloc[cumarrtemp] = 5:
+						cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
+						cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
+						$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
+						cumarrage[sparrtmpv] = sparrage[cumarrtemp]
+						cumarrdel[sparrtmpv] = 3
+						cumarrkno[sparrtmpv] = -1
+						cumarrcon[sparrtmpv] = 0
+						cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
+					elseif sparrloc[cumarrtemp] = 6:
+						cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
+						cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
+						$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
+						cumarrage[sparrtmpv] = sparrage[cumarrtemp]
+						cumarrdel[sparrtmpv] = 3
+						cumarrkno[sparrtmpv] = -1
+						cumarrcon[sparrtmpv] = 0
+						cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
 					end
 				end
-			elseif sparrslc[cumarrtemp] = 1 and sparrage < 5:
-				if sparrloc[cumarrtemp] = 1:
-					cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
-					cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
-					$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
-					cumarrage[sparrtmpv] = sparrage[cumarrtemp]
-					cumarrdel[sparrtmpv] = 1
-					cumarrkno[sparrtmpv] = -1
-					cumarrcon[sparrtmpv] = 0
-					cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
-				end
-			elseif sparrslc[cumarrtemp] = 3 and sparrage < 5:
-				if sparrloc[cumarrtemp] = 2:
-					cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
-					cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
-					$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
-					cumarrage[sparrtmpv] = sparrage[cumarrtemp]
-					cumarrdel[sparrtmpv] = 3
-					cumarrkno[sparrtmpv] = -1
-					cumarrcon[sparrtmpv] = 0
-					cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
-				elseif sparrloc[cumarrtemp] = 4:
-					cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
-					cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
-					$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
-					cumarrage[sparrtmpv] = sparrage[cumarrtemp]
-					cumarrdel[sparrtmpv] = 2
-					cumarrkno[sparrtmpv] = -1
-					cumarrcon[sparrtmpv] = 0
-					cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
-				end
-			elseif sparrslc[cumarrtemp] = 5 and sparrage < 5:
-				if sparrloc[cumarrtemp] = 3:
-					cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
-					cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
-					$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
-					cumarrage[sparrtmpv] = sparrage[cumarrtemp]
-					cumarrdel[sparrtmpv] = 2
-					cumarrkno[sparrtmpv] = -1
-					cumarrcon[sparrtmpv] = 0
-					cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
-				elseif sparrloc[cumarrtemp] = 5:
-					cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
-					cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
-					$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
-					cumarrage[sparrtmpv] = sparrage[cumarrtemp]
-					cumarrdel[sparrtmpv] = 3
-					cumarrkno[sparrtmpv] = -1
-					cumarrcon[sparrtmpv] = 0
-					cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
-				elseif sparrloc[cumarrtemp] = 6:
-					cumarrcpt[sparrtmpv] = sparrppt[cumarrtemp]*sparrvol[cumarrtemp]/sparrage[cumarrtemp]/1000
-					cumarrppt[sparrtmpv] = sparrppt[cumarrtemp]
-					$cumarrnam[sparrtmpv] = $sparrnam[cumarrtemp]
-					cumarrage[sparrtmpv] = sparrage[cumarrtemp]
-					cumarrdel[sparrtmpv] = 3
-					cumarrkno[sparrtmpv] = -1
-					cumarrcon[sparrtmpv] = 0
-					cumarrcnt[sparrtmpv] = sparrcnt[cumarrtemp]
-				end
-			end
 
-			if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
-				sparrvol[cumarrtemp] -= sparrage[cumarrtemp]/2
-				if sparrvol[cumarrtemp] < 0:sparrvol[cumarrtemp] = 0
-			end
-			if sparrloc[cumarrtemp] = 0 and cumsumvag > 60: sparrslc[cumarrtemp] = 1
-			if sparrloc[cumarrtemp] = 3 and cumsumass > 60: sparrslc[cumarrtemp] = 1
-			if sparrloc[cumarrtemp] = 17:
-				cumcondslip += 1
-				if sparridt[cumarrtemp] >= 0:
-					cumcondslip_aware = 1
+				if sparrloc[cumarrtemp] = 0 or sparrloc[cumarrtemp] = 3 or sparrloc[cumarrtemp] = 12:
+					sparrvol[cumarrtemp] -= sparrage[cumarrtemp]/2
+					if sparrvol[cumarrtemp] < 0:sparrvol[cumarrtemp] = 0
 				end
-				if sparrage[cumarrtemp] > 48:
-					cumcondslip_aware = 1
-					if pcs_health > 100: pcs_health -= rand(3,sparrage[cumarrtemp] - 45)
-					'<br><b><font color="red">You feel nauseous.</font></b>'
+				if sparrloc[cumarrtemp] = 0 and cumsumvag > 60: sparrslc[cumarrtemp] = 1
+				if sparrloc[cumarrtemp] = 3 and cumsumass > 60: sparrslc[cumarrtemp] = 1
+				if sparrloc[cumarrtemp] = 17:
+					cumcondslip += 1
+					if sparridt[cumarrtemp] >= 0:
+						cumcondslip_aware = 1
+					end
+					if sparrage[cumarrtemp] > 48:
+						cumcondslip_aware = 1
+						if pcs_health > 100: pcs_health -= rand(3,sparrage[cumarrtemp] - 45)
+						'<br><b><font color="red">You feel nauseous.</font></b>'
+					end
 				end
+				if sparrloc[cumarrtemp] ! 0 and sparrloc[cumarrtemp] ! 3 and sparrloc[cumarrtemp] ! 12 and sparrage < 5: sparrslc[cumarrtemp] += 1
+				sparrage[cumarrtemp] += 1
+				ctemp[0] += sparrvol[cumarrtemp]
+				if sparrloc[cumarrtemp] = 0: ctemp[1] += sparrvol[cumarrtemp]
+				if sparrloc[cumarrtemp] = 3: ctemp[2] += sparrvol[cumarrtemp]
+			else
+				gs 'cum_cleanup', 'cleandeposit', cumarrtemp
 			end
-			if sparrloc[cumarrtemp] ! 0 and sparrloc[cumarrtemp] ! 3 and sparrloc[cumarrtemp] ! 12 and isprok = 0 and sparrage < 5: sparrslc[cumarrtemp] += 1
-			sparrage[cumarrtemp] += 1
-			cumarrtemp += 1
-			ctemp[0] += sparrvol[cumarrtemp]
-			if sparrloc[cumarrtemp] = 0: ctemp[1] += sparrvol[cumarrtemp]
-			if sparrloc[cumarrtemp] = 3: ctemp[2] += sparrvol[cumarrtemp]
-		else
-			gs 'cum_cleanup', 'cleandeposit', cumarrtemp
-		end
-		if cumarrtemp < arrsize('sparrvol'): jump 'cumspaloop'
+		if cumarrtemp < arrsize('sparrvol'): cumarrtemp += 1 & jump 'cumspaloop'
+
 		cumsumbod = ctemp[0]
 		cumsumvag = ctemp[1]
 		cumsumass = ctemp[2]
 		killvar 'ctemp'
+		killvar 'sparrtmpv'
+		killvar 'cumarrtemp'
 	end
 	!!	Breastcycle. Every breast related change with lactation happens in here.
 	if cheat_NoLactation > 0:

+ 1 - 1
locations/fertility.qsrc

@@ -538,7 +538,7 @@ if $ARGS[0] = 'cum_arrcheat':
 		'No Pregnancies registered.'
 	end
 	killvar '$cycletemp'
-	act 'Return to cheat index': dynamic $cheatmenu
+	act 'Return to cheat index': dynamic $cheatmenu['index']
 end
 --- fertility ---------------------------------
 

+ 53 - 48
locations/mirror.qsrc

@@ -36,44 +36,48 @@ if $ARGS[0] = 'start':
 		if mc_inventory['kirbygrips'] < 1:hpingripw = 0
 		if mc_inventory['scrunchies'] < 2:hpigtail = 0
 
-		if pcs_hairbsh < 1: $serv['hairbrush']='<a href="exec: xgt ''mirror'', ''brush''"><img src="images/system/icons/action/hairbrush.png"></a>'
-		if pcs_hairlng > 80 and mc_inventory['scrunchies'] >= 1 and hbraids = 0:
-			if hscrunchw = 0 and hpingripw = 0:
-				$serv['ponytail']='<a href="exec:hscrunchw = 1 & gs ''mirror'', ''start''"><img src="images/system/icons/action/scrunchy.png"></a>'
-				$serv['ponytail desc']='As you have a scrunchy, you can arrange your hair into a <a href="exec:hscrunchw = 1 & gs ''mirror'', ''start''">ponytail</a>. You have <b><<mc_inventory[''scrunchies'']>></b> scrunchies left.'
-			end
-			if hscrunchw = 1:
-				$serv['ponytail']='<a href="exec:hscrunchw = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/ponytail.png"></a>'
-				$serv['ponytail desc']='Remove the <a href="exec:hscrunchw = 0 & gs ''mirror'', ''start''">scrunchie</a> to get rid of the ponytail.'
+		if pcs_hairbsh < 1:
+			$serv['hairbrush']='<a href="exec: xgt ''mirror'', ''brush''"><img src="images/system/icons/action/hairbrush.png"></a>'
+		else
+			if pcs_hairlng > 80 and hbraids = 0:
+				if mc_inventory['scrunchies'] >= 1 and hscrunchw + hpingripw = 0:
+					$serv['ponytail']='<a href="exec:hscrunchw = 1 & gs ''mirror'', ''start''"><img src="images/system/icons/action/scrunchy.png"></a>'
+					$serv['ponytail desc']='As you have a scrunchy, you can arrange your hair into a <a href="exec:hscrunchw = 1 & gs ''mirror'', ''start''">ponytail</a>. You have <b><<mc_inventory[''scrunchies'']>></b> scrunchies left.'
+				end
+				if pcs_hairlng <= 400 and mc_inventory['kirbygrips'] >= 1 and hscrunchw + hpingripw = 0:
+					$serv['bun']='<a href="exec:hpingripw = 1 & gs ''mirror'', ''start''"><img src="images/system/icons/action/clips_pins_grips.png"></a>'
+					$serv['bun desc']='You have several clips, pins and grips for you hair. Hence, you can <a href="exec:hpingripw = 1 & gs ''mirror'', ''start''">updo your hair</a>. You have <b><<mc_inventory[''kirbygrips'']>></b> hair accessories at your disposal.'
+				end
+				if pcs_hairlng <= 800 and mc_inventory['scrunchies'] >= 1:
+					if mc_inventory['scrunchies'] >= 2 and hscrunchw + hpingripw = 0:
+						$serv['pigtails']='<a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''mirror'', ''start''"><img src="images/system/icons/action/hair_ties.png"></a>'
+						$serv['pigtails desc']='You can use two hair ties to make yourself some <a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''mirror'', ''start''">pigtails</a>.'
+					end
+					if canBraidHair = 1 and hscrunchw + hpingripw + hpigtail = 0:
+						$serv['braid']='<a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''mirror'', ''start''"><img src="images/system/icons/action/braiding.png"></a>'
+						$serv['braid desc']='You can spend <<pcs_hairlng/10>> minutes <a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''mirror'', ''start''">braiding</a> your hair, just the way your sister taught you.'
+					end
+				end
 			end
 		end
-		if pcs_hairlng > 80 and pcs_hairlng <= 400 and mc_inventory['kirbygrips'] >= 1 and hbraids = 0:
-			if hscrunchw = 0 and hpingripw = 0:
-				$serv['bun']='<a href="exec:hpingripw = 1 & gs ''mirror'', ''start''"><img src="images/system/icons/action/clips_pins_grips.png"></a>'
-				$serv['bun desc']='You have several clips, pins and grips for you hair. Hence, you can <a href="exec:hpingripw = 1 & gs ''mirror'', ''start''">updo your hair</a>. You have <b><<mc_inventory[''kirbygrips'']>></b> hair accessories at your disposal.'
-			end
-			if hpingripw = 1:
-				$serv['bun']='<a href="exec:hpingripw = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/bun.png"></a>'
-				$serv['bun desc']='Let your hair <a href="exec:hpingripw = 0 & gs ''mirror'', ''start''">flow free</a>.'
-			end
+		
+		if hscrunchw = 1:
+			$serv['ponytail']='<a href="exec:hscrunchw = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/ponytail.png"></a>'
+			$serv['ponytail desc']='Remove the <a href="exec:hscrunchw = 0 & gs ''mirror'', ''start''">scrunchie</a> to get rid of the ponytail.'
 		end
-		if pcs_hairlng > 80 and pcs_hairlng <= 800 and mc_inventory['scrunchies'] >= 2 and hbraids = 0:
-			if hscrunchw = 0 and hpingripw = 0:
-				$serv['pigtails']='<a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''mirror'', ''start''"><img src="images/system/icons/action/hair_ties.png"></a>'
-				$serv['pigtails desc']='You can use two hair ties to make yourself some <a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''mirror'', ''start''">pigtails</a>.'
-			end
-			if hscrunchw = 2:
-				$serv['pigtails']='<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/pigtails.png"></a>'
-				$serv['pigtails desc']='<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''mirror'', ''start''">Remove</a> your scrunchies and let your hair flow free again.'
-			end
+		if hscrunchw = 2:
+			$serv['pigtails']='<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/pigtails.png"></a>'
+			$serv['pigtails desc']='<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''mirror'', ''start''">Remove</a> your scrunchies and let your hair flow free again.'
+		end
+		if hpingripw = 1:
+			$serv['bun']='<a href="exec:hpingripw = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/bun.png"></a>'
+			$serv['bun desc']='Let your hair <a href="exec:hpingripw = 0 & gs ''mirror'', ''start''">flow free</a>.'
 		end
-		if canBraidHair = 1 and mc_inventory['scrunchies'] >= 1 and hBraids = 0 and (pcs_hairlng > 80 and pcs_hairlng <= 800) and hscrunchw = 0 and hpingripw = 0 and hpigtail = 0:
-			$serv['braid']='<a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''mirror'', ''start''"><img src="images/system/icons/action/braiding.png"></a>'
-			$serv['braid desc']='You can spend <<pcs_hairlng/10>> minutes <a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''mirror'', ''start''">braiding</a> your hair, just the way your sister taught you.'
-		elseif hbraids > 0:
+		if hbraids > 0:
 			$serv['braid']='<a href="exec:minut += hbraids*2+pcs_hairlng/50 & hbraids = 0 & gs ''mirror'', ''start''"><img src="images/system/icons/action/braid.png"></a>'
 			$serv['braid desc']='Take <<hbraids*2+pcs_hairlng/50>> minutes removing your <a href="exec:minut += hbraids*2+pcs_hairlng/50 & hbraids = 0 & gs ''mirror'', ''start''">braid</a>.'
 		end
+
 		! ----- actions
 		$serv['back']='<a href="exec: gt ''mirror'',''fin''"><img src="images/system/icons/action/back.png"></a>'
 		! ----- lip balm and false lashes
@@ -245,26 +249,27 @@ if $ARGS[0] = 'start':
 		if mc_inventory['kirbygrips'] < 1:hpingripw = 0
 		if mc_inventory['scrunchies'] < 2:hpigtail = 0
 
-		if pcs_hairlng > 80 and mc_inventory['scrunchies'] >= 1 and hbraids = 0:
+		if pcs_hairbsh > 0 and pcs_hairlng > 80 and hbraids = 0:
 			*nl
-			if hscrunchw = 0 and hpingripw = 0: 'As you have a scrunchy, you can arrange your hair into a <a href="exec:hscrunchw = 1 & gs ''mirror'', ''start''">ponytail</a>. You have <<mc_inventory[''scrunchies'']>> scrunchies left.'
-			if hscrunchw = 1: 'Remove the <a href="exec:hscrunchw = 0 & gs ''mirror'', ''start''">scrunchie</a> to get rid of the ponytail.'
-		end
-
-		if pcs_hairlng > 80 and mc_inventory['kirbygrips'] >= 1 and hbraids = 0:
-			if hscrunchw = 0 and hpingripw = 0: 'You have several clips, pins and grips for you hair. Hence, you can <a href="exec:hpingripw = 1 & gs ''mirror'', ''start''">updo your hair</a>. You have <<mc_inventory[''kirbygrips'']>> hair accessories at your disposal.'
-			if hpingripw = 1: 'Let your hair <a href="exec:hpingripw = 0 & gs ''mirror'', ''start''">flow free</a>.'
-		end
-
-		if pcs_hairlng > 80 and mc_inventory['scrunchies'] >= 2 and hbraids = 0:
-			if hscrunchw = 0 and hpingripw = 0: 'You can use two hair ties to make yourself some <a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''mirror'', ''start''">pigtails</a>.'
-			if hscrunchw = 2: '<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''mirror'', ''start''">Remove</a> your scrunchies and let your hair flow free again.'
-		end
-
-		if canBraidHair = 1 and mc_inventory['scrunchies'] >= 1 and hBraids = 0 and (pcs_hairlng > 80 and pcs_hairlng <= 800) and hscrunchw = 0 and hpingripw = 0 and hpigtail = 0:
-			'You can spend <<pcs_hairlng/10>> minutes <a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''mirror'', ''start''">braiding</a> your hair, just the way your sister taught you.'
+			if mc_inventory['scrunchies'] >= 1 and hscrunchw + hpingripw = 0:
+				'As you have a scrunchy, you can arrange your hair into a <a href="exec:hscrunchw = 1 & gs ''mirror'', ''start''">ponytail</a>. You have <<mc_inventory[''scrunchies'']>> scrunchies left.'
+			end
+			if pcs_hairlng <= 400 and mc_inventory['kirbygrips'] >= 1 and hscrunchw + hpingripw = 0:
+				'You have several clips, pins and grips for you hair. Hence, you can <a href="exec:hpingripw = 1 & gs ''mirror'', ''start''">updo your hair</a>. You have <<mc_inventory[''kirbygrips'']>> hair accessories at your disposal.'
+			end
+			if pcs_hairlng <= 800 and mc_inventory['scrunchies'] >= 1:
+				if mc_inventory['scrunchies'] >= 2 and hscrunchw + hpingripw = 0:
+					'You can use two hair ties to make yourself some <a href="exec:hpigtail = 1 & hscrunchw = 2 & gs ''mirror'', ''start''">pigtails</a>.'
+				end
+				if canBraidHair = 1 and hscrunchw + hpingripw + hpigtail = 0:
+					'You can spend <<pcs_hairlng/10>> minutes <a href="exec:minut += pcs_hairlng/10 & hbraids = 15 & gs ''mirror'', ''start''">braiding</a> your hair, just the way your sister taught you.'
+				end
+			end
 		end
 
+		if hscrunchw = 1: 'Remove the <a href="exec:hscrunchw = 0 & gs ''mirror'', ''start''">scrunchie</a> to get rid of the ponytail.'
+		if hscrunchw = 2: '<a href="exec:hpigtail = 0 & hscrunchw = 0 & gs ''mirror'', ''start''">Remove</a> your scrunchies and let your hair flow free again.'
+		if hpingripw = 1: 'Let your hair <a href="exec:hpingripw = 0 & gs ''mirror'', ''start''">flow free</a>.'
 		if hbraids > 0: 'Take <<hbraids*2+pcs_hairlng/50>> minutes removing your <a href="exec:minut += hbraids*2+pcs_hairlng/50 & hbraids = 0 & gs ''mirror'', ''start''">braid</a>.'
 	end
 

+ 42 - 6
locations/npcgeneratec.qsrc

@@ -95,6 +95,8 @@ end
 !! Flag for virginity
 if npctempc2[1] < 20:
 	npc_sexskill[$npclastgenerated] = 0
+else
+	npc_sexskill[$npclastgenerated] = rand(1,100)
 end
 
 
@@ -587,9 +589,15 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 !!	2 = casual relationship 
 !!	3 = serious relationship
 	npc_goal[$npclastgenerated] = rand(1,3)
-
+	if npc_goal[$npclastgenerated] = 1:
+		$npc_rel_goal[$npclastgenerated] = 'sex'
+	elseif npc_goal[$npclastgenerated] = 2:
+		$npc_rel_goal[$npclastgenerated] = 'casual'
+	elseif npc_goal[$npclastgenerated] = 3:
+		$npc_rel_goal[$npclastgenerated] = 'serious'
+	end
 !!	npc_fidelity is how they will behave in a relationship
-!!	1-3 = will cheat on you and others with no guilt
+!!	1-4 = will cheat on you and others with no guilt
 !!	5-6 = will cheat on others with you
 !!		5 = has been cheating and feels guilty
 !!		6 = cheats on them with you for the first time
@@ -674,6 +682,17 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 		end
 	end
 	
+	npc_manscaped[$npclastgenerated] = rand(0,2) - npc_neat[$npclastgenerated]
+	if npc_manscaped[$npclastgenerated] < 1:
+		npc_manscaped[$npclastgenerated] = 0
+		$npc_pubes[$npclastgenerated] = 'shaved'
+	elseif npc_manscaped[$npclastgenerated] = 1:
+		$npc_pubes[$npclastgenerated] = 'trimmed'
+	elseif npc_manscaped[$npclastgenerated] = 2:
+		$npc_pubes[$npclastgenerated] = 'bush'
+	end
+	
+	
 	!! if npc_argumentative = 1: they will get into more arguments with you about things
 	!! it is also harder to persuade them
 	npc_argumentative[$npclastgenerated] = rand(0,2)
@@ -710,7 +729,6 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 	
 !! ------------------------- sex related preferences ----------------------------------
 
-!!	if rand(0,1) >= 1 and npc_risktaker[$npclastgenerated] ! 1:
 	if rand(0,1) >= 1:
 !!		if npc_condom_conscious = 1: they will use condoms but can be talked out of it
 !!		if npc_condom_conscious = 2: they will always insist on using condoms unless you are in a committed relationship and/or trying for a baby
@@ -719,7 +737,6 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 		else
 			npc_condom_conscious[$npclastgenerated] = rand(-2,2)
 		end
-!!	elseif npc_diligent[$npclastgenerated] ! 1:
 	else
 !!		if npc_no_condoms = 1: they have a preference for skipping condoms but can be talked into using one
 !!		if npc_no_condoms = 2: they will never use a condom no matter what
@@ -729,6 +746,14 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 			npc_no_condoms[$npclastgenerated] = rand(-2,2)
 		end
 	end
+	if npc_condom_conscious[$npclastgenerated] < 0: npc_condom_conscious[$npclastgenerated] = 0
+	if npc_no_condoms[$npclastgenerated] < 0: npc_no_condoms[$npclastgenerated] = 0
+	
+	if rand(1,50) = 1:
+		npc_latex_allergy[$npclastgenerated] = 1
+		npc_no_condoms[$npclastgenerated] = 1
+		npc_condom_conscious[$npclastgenerated] = 0
+	end
 
 !! Preferred sexual position
 	npc_fav_pos[$npclastgenerated] = rand(1,7)
@@ -752,6 +777,15 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 	!! npc_sex_speed determines whether they like it slow, steady, or fast and will cause them to select that speed more frequently
 	!! 1 is slow, 2 is steady, 3 is fast/rough
 	npc_sex_speed[$npclastgenerated] = rand(1,3)
+	
+	
+	npc_sex_volume[$npclastgenerated] = rand(0,3)
+	!! npc_sex_volume refers to how much noise they make during sex
+	!! npc_sex_volume = 0: virtually quiet during sex
+	!! npc_sex_volume = 1: grunting noises only
+	!! npc_sex_volume = 2: will add dirty talk
+	!! npc_sex_volume = 3: loud "obnoxious" noises
+	
 	if npc_sex_speed[$npclastgenerated] = 1 and rand(1,3) = 1:
 		!! npc has a tendency to be overly gentle and cautious
 		npc_gentle_lover[$npclastgenerated] = 1
@@ -826,11 +860,13 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 	else
 		!!failsafe
 		npc_sexdrive[$npclastgenerated] = rand(1,10)
+		if npc_sexdrive[$npclastgenerated] > 5: npc_energetic[$boy] = rand(0,1)
 	end
 	
 	!! if npc_sex_stamina determines how long they can last in bed without cumming
+	npc_sex_stamina[$npclastgenerated] = rand(1,10)
 	
-	if rand(1,10) <= 4:
+!!{	if rand(1,10) <= 4:
 		npc_sex_stamina[$npclastgenerated] = rand(3,5)
 	elseif rand(1,10) <= 3:
 		npc_sex_stamina[$npclastgenerated] = rand(1,3)
@@ -841,7 +877,7 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 	else
 		!!failsafe
 		npc_sex_stamina[$npclastgenerated] = rand(1,10)
-	end
+	end}
 
 	!! npc_spanker determines whether or not they''re into spanking during sex
 	if rand(1,3) = 1: npc_sex_spanker[$npclastgenerated] = 1

+ 4 - 0
locations/npcpreservec.qsrc

@@ -102,6 +102,7 @@ if mid($npctemp,1,1) = 'C':
 	npc_addit[$npclastsaved]		= npc_addit[$npctemp]
 	npc_doors[$npclastsaved]		= npc_doors[$npctemp]
 	npc_goal[$npclastsaved]			= npc_goal[$npctemp]
+	$npc_rel_goal[$npclastsaved]			= $npc_rel_goal[$npctemp]
 	
 !!	relationship ideals/stats
 	
@@ -126,11 +127,13 @@ if mid($npctemp,1,1) = 'C':
 	npc_messy[$npclastsaved] 		= npc_messy[$npctemp]
 	npc_diligent[$npclastsaved] 	= npc_diligent[$npctemp]
 	
+	npc_manscaped[$npclastsaved]		= npc_manscaped[$npctemp]
 	npc_argumentative[$npclastsaved]	= npc_argumentative[$npctemp]
 	npc_competitive[$npclastsaved]		= npc_competitive[$npctemp]
 	npc_insecure[$npclastsaved] 		= npc_insecure[$npctemp]
 	npc_condom_conscious[$npclastsaved] = npc_condom_conscious[$npctemp]
 	npc_no_condoms[$npclastsaved] 		= npc_no_condoms[$npctemp]
+	npc_latex_allergy[$npclastsaved] 	= npc_latex_allergy[$npctemp]
 	npc_caretaker[$npclastsaved] 		= npc_caretaker[$npctemp]
 	npc_childfree[$npclastsaved]		= npc_childfree[$npctemp]
 	npc_abusive[$npclastsaved] 			= npc_abusive[$npctemp]
@@ -144,6 +147,7 @@ if mid($npctemp,1,1) = 'C':
 	npc_fav_pos[$npclastsaved]		= npc_fav_pos[$npctemp]
 	$npc_fav_pos[$npclastsaved]		= $npc_fav_pos[$npctemp]
 	npc_sex_speed[$npclastsaved]	= npc_sex_speed[$npctemp]
+	npc_sex_volume[$npclastsaved]	= npc_sex_volume[$npctemp]
 	npc_gentle_lover[$npclastsaved]	= npc_gentle_lover[$npctemp]
 	npc_dirty_lover[$npclastsaved]	= npc_dirty_lover[$npctemp]
 	npc_sensual_lover[$npclastsaved]= npc_sensual_lover[$npctemp]

+ 1 - 1
locations/obj_din.qsrc

@@ -125,7 +125,7 @@ if $ARGS[0] = 'cheattabs':
 	if menu_page = 0:
 		$cheat_tab_list = '<th>Index</th>'
 	else
-		$cheat_tab_list = '<th><a href="exec:menu_page = 0 & dynamic $cheatmenu">Index</a></th>'
+		$cheat_tab_list = '<th><a href="exec:menu_page = 0 & dynamic $cheatmenu[''index'']">Index</a></th>'
 	end
 
 	if menu_page = 1:

+ 2 - 1
locations/pav_commcenter.qsrc

@@ -48,7 +48,6 @@ if $ARGS[0] ! 'XXX':
 
 	if month > 8 and ml_guitarlesson['advertisement']  = 0: gt 'music_guitarlesson', 'advertisement'
 
-	act 'Walk to the bus station (0:01)': minut += 1 & gt 'bus', 'community'
 
 	if (week < 6 and hour >= 14 and hour < 20) or (week >= 6 and hour >= 9 and hour < 20): act 'Go to the sports section': gt 'gdksport', 'start'
 
@@ -67,6 +66,8 @@ if $ARGS[0] ! 'XXX':
 	!! ballet career
 	gs 'core_library', 'init'
 
+	act 'Walk to the bus station (0:01)': minut += 1 & gt 'bus', 'community'
+	
 	act 'Wait': gs 'obj_din', 'wait'
 
 	if locat['Anya'] = 10: 'Your sister <a href="exec:gt ''sister'', ''pav_commcenter''">Anya</a> is sitting with a group of boys and girls, drinking beer.'

+ 1 - 1
locations/pav_disco_sex.qsrc

@@ -2318,7 +2318,7 @@ if $ARGS[0] = 'End':
 	'<center><video autoplay loop src="images/pc/activities/misc/dress_2.mp4"></video></center>'
 	'After you relax, you smile at <<$npc_firstname[$npclastsaved]>> and say, "That was fun, but I really should get going..."'
 	'<<$npc_firstname[$npclastsaved]>> stretches lazily on the bed, not bothering to get up. "You were great, <<$pcs_nickname>>! I hope I''ll run into you again next time I''m in Pavlovsk!"'
-	if arrpos('sparrloc', 11) ! -1 and sparrvol > 0:cumspclnt = 12 & gs 'cum_cleanup' & 'You look around the room and find a packet of wipes. You take one and quickly wipe the sperm off your face to make yourself presentable enough to go outside.'
+	if arrpos('sparrloc', 11) ! -1: cumspclnt = 12 & gs 'cum_cleanup' & 'You look around the room and find a packet of wipes. You take one and quickly wipe the sperm off your face to make yourself presentable enough to go outside.'
 	gs 'arousal', 'end'
 	gs 'stat'
 	act 'Leave the hotel': gt 'pav_market'

+ 1 - 4
locations/pav_hotelWork.qsrc

@@ -357,7 +357,6 @@ if $ARGS[0] = 'maid':
 			end
 		end
 		if threesomewatched > 0 and threesometojoin = 0:
-			threesometojoin = 1
 			threesomewatched = 0
 			gs 'clothing', 'wear_last_worn'
 			maidtime += 1
@@ -375,14 +374,13 @@ if $ARGS[0] = 'maid':
 				gs 'stat'
 				gs 'willpower', 'voyeur', 'resist'
 				act 'Leave before someone notices you':
-					threesomewatched = 0
-					threesometojoin = 0
 					pavhotprosQW = 1
 					gt 'pav_hotel'
 				end
 				
 				act 'Where is the other guy?':
 					*clr & cla
+					threesometojoin = 1
 					gs 'stat'
 					minut += 2
 
@@ -404,7 +402,6 @@ if $ARGS[0] = 'maid':
 						gs 'stat'
 						'"Hey!" You exclaim, instinctively reaching out to take it back, but the glare he shoots your way freezes you in your tracks. He rummages through your purse until he finds your wallet and takes all of your cash, giving it a disdainful glance before stuffing it into his pocket, before roughly throwing your purse back to you.'
 						'"What the hell, only <<montake>> <b>₽</b>? Our show is worth much more than this. The only thing you get for this chump change is one slap on the ass." He then forcefully turns you around and gives you a hard smack on the ass before gripping your arm and pushing you out the door.'
-						threesomewatched = 0
 						threesometojoin = 0
 						pavhotprosQW = 2
 

+ 33 - 20
locations/pav_pharmacy.qsrc

@@ -193,25 +193,31 @@ if $ARGS[0] = 'buy_condoms':
 			elseif pharmacyfirstbirthcontrol = 1:
 				'"Are you seeing someone new?" Luda asks curiously as she gets a box of rubbers and places in in a bag. "Or just being careful? I thought you were already on birth control."'
 				if birth_control['using_bc'] > 0:
-					act'Someone new':
-						cla & *nl
-						'"Someone new," you smile. "Haven''t gotten around to making sure they''re clean yet."'
-						'"Well I hope you do it soon." Her eyes twinkle mischeviously and she leans in with a hand cupped around her mouth. "I prefer bareback too."'
-						act 'Continue shopping': gt $loc_s, $args_s
-					end
-					
-					act'Hookups':
-						cla & *nl
-						'"I''ve been having a lot of one night stands lately," you tell her.'
-						'"Ahh. Glad to know my niece is popular <i>and</i> smart," she winks, adding the condoms to your purchase.'
-						act 'Continue shopping': gt $loc_s, $args_s
-					end
-					
-					act'Just being safe':
-						cla & *nl
-						'"Just being safe," you shrug. "Birth control can fail. Condoms can too. Better if I use both, isn''t it?"'
-						'"Good girl." She smiles at you proudly and adds the condoms to your purchase.'
+					if birth_control['think_safe'] = 0:
+						'"Still waiting for it to kick in," you smile ruefully.'
+						'"Oh! Silly me!" Luda rolls her eyes in self-deprecating fashion. "Of course. And I call myself a pharmacist! Well good on you for keeping safe in the mean time!"'
 						act 'Continue shopping': gt $loc_s, $args_s
+					else
+						act'Someone new':
+							cla & *nl
+							'"Someone new," you smile. "Haven''t gotten around to making sure they''re clean yet."'
+							'"Well I hope you do it soon." Her eyes twinkle mischeviously and she leans in with a hand cupped around her mouth. "I prefer bareback too."'
+							act 'Continue shopping': gt $loc_s, $args_s
+						end
+						
+						act'Hookups':
+							cla & *nl
+							'"I''ve been having a lot of one night stands lately," you tell her.'
+							'"Ahh. Glad to know my niece is popular <i>and</i> smart," she winks, adding the condoms to your purchase.'
+							act 'Continue shopping': gt $loc_s, $args_s
+						end
+						
+						act'Just being safe':
+							cla & *nl
+							'"Just being safe," you shrug. "Birth control can fail. Condoms can too. Better if I use both, isn''t it?"'
+							'"Good girl." She smiles at you proudly and adds the condoms to your purchase.'
+							act 'Continue shopping': gt $loc_s, $args_s
+						end
 					end
 				else
 					gs'pav_pharmacy', 'luda_stopped_bc'
@@ -757,7 +763,7 @@ if $ARGS[0] = 'buy_morning_after':
 		act'He didn''t pull out':gt 'pav_pharmacy', 'morning_after_no_pullout_meek'
 		act'He didn''t pull out (annoyed)':gt 'pav_pharmacy', 'morning_after_no_pullout_annoyed'
 		if stat['last_broken_condom'] >= daystart - 3:
-			act'The condom broke':gt 'pav_pharmacy', 'buy_morning_after_condom_broke_meek'
+			act'The condom broke':gs 'pav_pharmacy', 'buy_morning_after_condom_broke_meek'
 		end
 		if birth_control['condom_stealth'] >= daystart - 3:
 			act'I got stealthed':gs 'pav_pharmacy', 'morning_after_stealth_meek'
@@ -783,7 +789,7 @@ if $ARGS[0] = 'buy_morning_after':
 			act'I made a mistake':gt 'pav_pharmacy', 'morning_after_mistake_open'
 			act'He didn''t pull out (annoyed)':gt 'pav_pharmacy', 'morning_after_no_pullout_annoyed'
 			if stat['last_broken_condom'] >= daystart - 3:
-				act'The condom broke':gt 'pav_pharmacy', 'buy_morning_after_condom_broke_meek'
+				act'The condom broke':gs 'pav_pharmacy', 'buy_morning_after_condom_broke_meek'
 			end
 			if birth_control['condom_stealth'] >= daystart - 3:
 			act'I got stealthed':gs 'pav_pharmacy', 'morning_after_stealth_open'
@@ -1062,6 +1068,13 @@ if $ARGS[0] = 'morning_after_warning':
 		'"I can''t wait until it does," Luda sighs, rolling her eyes to the heavens.'
 		gs 'pav_pharmacy', 'buy_morning_after_end'
 	else
+		act'No thanks':
+			cla & *nl
+			'"I''ll be okay Aunt," you say.'
+			'"Not if this is any indication," Luda replies dryly.'
+			gs 'pav_pharmacy', 'buy_morning_after_end'
+		end
+		
 		act'I prefer condoms':
 			if preziktype = 0:
 				mc_inventory['equipped_condoms'] += 5

+ 13 - 0
locations/pav_residential.qsrc

@@ -203,6 +203,19 @@ end
 if mid($start_type,1,2) = 'sg' and (hour >= 8 or hour < 23) and cumloc[11] = 1 and rand(0, 3) = 0 and npcdaycheck[54] ! daystart:
 	menu_off = 1
 	*clr & cla
+	if month >= 11 or month <= 3:
+		if hour >= 8 and hour <= 21:
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/pavreswinter.jpg"></center>'
+		else
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/pavreswintern.jpg"></center>'
+		end
+	else
+		if hour >= 8 and hour <= 21:
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/pavres.jpg"></center>'
+		else
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/pavresn.jpg"></center>'
+		end
+	end
 	npcdaycheck[54] = daystart
 	gs 'stat'
 

+ 6 - 2
locations/pav_station.qsrc

@@ -3,8 +3,9 @@
 if $ARGS[0] = 'station_outside':
 	$menu_loc = 'pav_station'
 	$menu_arg = 'station_outside'
-	menu_off = 0
 	$location_type = 'public_indoors'
+	$region = 'pav'
+	menu_off = 0
 	gs 'stat'
 
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/police/pavext.jpg" ></center>'
@@ -17,10 +18,12 @@ end
 
 
 if $ARGS[0] = 'station_inside':
+	$menu_loc = 'pav_station'
 	$menu_arg = 'station_inside'
+	$location_type = 'public_indoors'
+	$region = 'pav'
 	menu_off = 0
 	gs 'stat'
-	$location_type = 'public_indoors'
 
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/police/pavrec.jpg" ></center>'
 	'You are welcomed by a tiny reception area with someone always just lazily hanging around waiting for something to happen. The whole interior has seen better days and you''re reminded by the stories you''ve heard from your parents about how everything used to look run-down during their younger days.'
@@ -55,6 +58,7 @@ if $ARGS[0] = 'reception':
 	end
 
 	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt 'pav_station', 'rape_report'
+	gs 'blackmailer', 'set_police_act'
 end
 
 temp_tot_booked_pav = policeQW['shoplift_booked_pav'] + policeQW['prostitution_booked_pav']

+ 9 - 15
locations/pav_train_hall.qsrc

@@ -55,7 +55,7 @@ if $ARGS[0] = '':
 		*nl
 	end
 
-	act 'Walk to the bus station (0:02)': minut += 2 & gt 'bus', 'pavstation'
+	
 	act 'Walk to the Market (0:03)': minut += 3 & gt 'pav_market'
 	act 'Walk to the Commercial area (0:10)': minut += 10 & gt 'pav_commercial'
 	act 'Walk to the Residential area (0:15)': minut += 15 & gt 'pav_residential'
@@ -63,6 +63,7 @@ if $ARGS[0] = '':
 	act 'Walk to the Five Eight estate (0:15)': minut += 15 & gt 'pav_complex', 'start'
 	act 'Walk to the highway (0:15)': minut += 15 & nroad = 20 & gt 'road'
 	act 'Walk to Pushkin (0:15)': minut += 15 & nroad = 19 & gt 'pushkin'
+	act 'Walk to the bus station (0:02)': minut += 2 & gt 'bus', 'pavstation'
 
 	if transportVars['trainpass_day'] > daystart:
 		func('transport_functions', 'display_trainpass_time')
@@ -85,18 +86,11 @@ if $ARGS[0] = '':
 	end
 
 	if cleanDailypay > 0:
-		act 'Collect your salary':
-			menu_off = 1
-			*clr & cla
-			'<center><h2>Pavlovsk train station interior</h2></center>'
-			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/trainstation/vokzal.jpg"></center>'
-			money += cleanDailypay
-			cleanDailypay = 0
-			minut += 3
-			gs 'stat'
-			'When you are done cleaning all the places you were told to clean, you go to the cashier and collect your well-earned salary.'
-			act 'Continue':minut += 1 & gt 'pav_train_hall'
-		end
+		money += cleanDailypay
+		*nl
+		'When you are done cleaning all the places you were told to clean, you go to the manager''s office and collect your <<cleanDailypay>><b>₽</b> pay.'
+		cleanDailypay = 0
+		gs 'stat'
 	end
 
 	*nl
@@ -122,8 +116,8 @@ if $ARGS[0] = '':
 
 	if poezddalsled = 1:
 		'The platform is bustling with passengers that are entering or leaving the currently waiting train, carrying their heavy bags with them. Several police officers are patrolling the platforms while the train is here, keeping an eye out for any unruly activities.'
-
-		if tovarL > 0:act 'Sell your goods to passengers':gt 'pav_train_hall_events', 'trinkets'
+	
+		if tovarL > 0:'You could <a href="exec:gt ''pav_train_hall_events'', ''trinkets''">try to sell some trinkets</a> to some of the passengers.'
 	end
 
 	act 'Wait':gs 'obj_din', 'wait'

+ 3 - 1
locations/police_station.qsrc

@@ -3,6 +3,7 @@
 if $ARGS[0] = 'start':
 	$menu_loc = 'police_station'
 	$menu_arg = 'start'
+	$region = 'city'
 	menu_off = 0
 
 	'<center><h1><font color="maroon">Police station Entrance</font></h1></center>'
@@ -17,13 +18,14 @@ end
 if $ARGS[0] = 'reception':
 	$menu_loc = 'police_station'
 	$menu_arg = 'reception'
+	$region = 'city'
 	menu_off = 0
 
-	'<center><h1><font color="maroon">Reception area</font></h1></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
 	'Upon entering the station you''re welcomed by a reception desk. The officers sitting here are protected by thick glass and you see several monitors and computers keeping an eye on everything that''s happening inside and outside the building.'
 	
 	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt'police_station','rape_report'
+	gs 'blackmailer', 'set_police_act'
 	act 'Return to the center': gt 'city_center'
 end
 

+ 38 - 0
locations/saveupdater.qsrc

@@ -2898,9 +2898,47 @@ if temp_current_save_version < 00090204:
 		killvar 'temp_transportVars'
 	end
 
+	!! vars clean up
 	killvar 'dynamicCommand'
 	killvar 'bomzstartqwestdi'
 	killvar 'workbomzdi'
+	$cheatWork = ''
+	$cheatWillpower = ''
+	$cheatHapri = ''
+	$no_cum_leak = ''
+	$cyccustom = ''
+	$cheatKlisma = ''
+	$cheatNomakeup = ''
+	$cheatNoSweat = ''
+	$cheatNoEat = ''
+	$cheatNoDrink = ''
+	$cheatNoSleep = ''
+	$cheatNoMood = ''
+	$cheatNoFat = ''
+	$bodyVars['cheat_staticAssets_text'] = ''
+	$cheatHealth = ''
+	$cheatPee = ''
+	$drugVars['cheat_immune_text'] = ''
+	$InfWillpwer = ''
+	$cheatSlut = ''
+	$cheatHorny = ''
+	$sleepVars['cheatVib'] = ''
+	$fight_cheat = ''
+	$autocombat_cheat = ''
+	$cheat_NoPregnancy = ''
+	$cheat_NoLactation = ''
+	$cheatBimbo = ''
+	$cheatBimbo2 = ''
+	$cheatBimbo3 = ''
+	$cheatcumtrait = ''
+	$cheatexhib = ''
+	$cheataddictive = ''
+	$cheatConsole = ''
+	$cheatTime = ''
+	$random_bf_gf_cheat = ''
+	$cheat_street_robbers = ''
+	$cheat_street_rapists = ''
+
 end
 
 

+ 1 - 1
locations/sex_ev_morning.qsrc

@@ -32,7 +32,7 @@ if $ARGS[0] = 'morning_menu1':
 		elseif $sex_ev['loc'] ! 'pc_home':
 			act'Prepare to leave':gs'sex_ev_morning', 'head_out'
 		else
-			act'Say goodbye to <<$npc_firstname[$boy]>>':gt'sex_ev_morning', 'npc_leave'
+			gs'sex_ev_leave', 'npc_leave'
 		end
 		
 		if $clothingworntype = 'nude':

+ 6 - 0
locations/stat.qsrc

@@ -266,6 +266,12 @@ gs 'spellTimer', prevtotmin, totminut
 !! deodorant
 if deodorant_on = 1 and totminut > deodorant_time: gs 'sweat', 'remove_deo'
 
+!! exercise tracking
+if stat['last_workout_trig'] = 1: 
+	stat['last_workout_trig'] = 0
+	stat['last_workout'] = totminut
+end
+
 !!painkiller
 if pain['killer'] > 0:
 	if pain['killer'] = 1: pain_timer = totminut - 2

+ 2 - 0
locations/uni_dorm.qsrc

@@ -1015,6 +1015,8 @@ if $ARGS[0] = 'dorm_room':
 	if $ml_guitar['location'] = $loc: 'Your guitar rests on its stand next to your bed.'
 	if mc_inventory['mag_porn'] > 0: 'You''ve hidden your porn magazines under the mattress of your bed.'
 	
+	vika_inroom = 0 & vika_sleep = 0
+	gs 'music_actions', 'clear_restrictions'
 	if hour > 14 and hour < func('bordel', 'open_hour'):
 		vika_inroom = 1
 		vika_sleep = 0

部分文件因文件數量過多而無法顯示