Browse Source

Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife

* 'master' of https://git.tfgames.site/Kevin_Smarts/glife: (52 commits)
  Small NPC edits
  [fixed] small bugfixes to blackmailer
  [added] more blackmail content
  [added] more unreleased `booty_call_sms` content. Also added some extremely minor improvements to comments/layout in `SMStext_builder`, `phone_slefies_popup`, and `telefon`
  [added] mom rape talk counter
  [fixed] face wash off checks
  [changed] Moved the temporary variables to `temp_transportVars` and killvared them on site.
  [added] Blackmailer will contact Sveta more often (once every 1 to 2 weeks) and the payments will slowly (very slowly) ramp up
  [fixed] saved a bunch of lines by reducing copy pasted text
  [fixed] bad tab and end
  Proofreading of band files
  [fixed] devision by zero
  [changed] sms delay is now 0.25s everywhere
  [fixed] even more bugfixes to `booty_call_sms`
  [fixed/changed] fixed two small bugs in the active content in `booty_call_sms`. Changed the wait time to 0.25s
  [added/fixed/changed] Added new content to the fuckbudy and sugar daddy stuff. An entirely new dialogue written by HornGuy (most of it is currently still not available in game, but the content is added in preparation). Added a new dialogue after declining a booty call (50% chance of triggering) where they will ask for a nudie :). Bug fixes to `SMS_selfies` (caught by debugging the new content). Changed some parts of the telefon selfie system that did not need to be dynamic code.
  [changed] moved the SMS schedules to their dedicated file on BGK's request
  [changed] moved the `SMS_selfies_popup` to `phone_selfies_popup`. Resulting file remains small (since its called often), but reduces the file count.
  [fixed] Igor crossdressing know
  [added/changed] Implemented the new sms schedule system for the band tour and the nerd game night invites, which moved the schedule from `hourly_events` to `cikl` (and technically `stat`). Made some layout updates. Added a fourth option to the nerd game invite, allowing for the option to skip a week and quit entirely
  ...
Hooded Silence 1 week ago
parent
commit
2004f1970f
89 changed files with 5431 additions and 2970 deletions
  1. 29 30
      glife.qproj
  2. 2 1
      locations/Katlake.qsrc
  3. 3 3
      locations/Komp.qsrc
  4. 0 1
      locations/LakeBoyZ.qsrc
  5. 1 1
      locations/Prostitute.qsrc
  6. 27 0
      locations/SMS_schedules.qsrc
  7. 256 14
      locations/SMS_selfies.qsrc
  8. 0 21
      locations/SMS_selfies_popup.qsrc
  9. 140 1
      locations/SMStext_builder.qsrc
  10. 1 3
      locations/auditions_minor1.qsrc
  11. 5 2
      locations/band_tour_anushka_SMS.qsrc
  12. 416 13
      locations/blackmailer.qsrc
  13. 8 5
      locations/body.qsrc
  14. 141 14
      locations/booty_call.qsrc
  15. 503 96
      locations/booty_call_sms.qsrc
  16. 167 107
      locations/boygirl.qsrc
  17. 228 227
      locations/bus.qsrc
  18. 2 2
      locations/bus_events.qsrc
  19. 49 43
      locations/cikl.qsrc
  20. 1 44
      locations/city_clinic.qsrc
  21. 5 6
      locations/city_industrial_train.qsrc
  22. 2 2
      locations/city_mansion_entrance.qsrc
  23. 4 6
      locations/city_park.qsrc
  24. 4 3
      locations/city_train.qsrc
  25. 3 0
      locations/core_library.qsrc
  26. 1 1
      locations/crossfit_north_girlmeet.qsrc
  27. 2 2
      locations/dachi.qsrc
  28. 2 7
      locations/dateF.qsrc
  29. 1 7
      locations/dateM.qsrc
  30. 7 7
      locations/din_bad.qsrc
  31. 2 2
      locations/din_pav.qsrc
  32. 1 1
      locations/femcyc.qsrc
  33. 14 25
      locations/gadforest.qsrc
  34. 2 2
      locations/gadukino.qsrc
  35. 0 337
      locations/girl.qsrc
  36. 3 2
      locations/graveyard.qsrc
  37. 0 45
      locations/hourly_events.qsrc
  38. 1 2
      locations/igorev.qsrc
  39. 1 1
      locations/igorhome.qsrc
  40. 27 0
      locations/journal_quests.qsrc
  41. 13 13
      locations/katja_pantyquest.qsrc
  42. 19 0
      locations/korrPar.qsrc
  43. 5 4
      locations/lover.qsrc
  44. 69 0
      locations/medical_din.qsrc
  45. 29 40
      locations/mother.qsrc
  46. 1 0
      locations/mother_chats.qsrc
  47. 28 6
      locations/nastja.qsrc
  48. 8 0
      locations/natbel_chat.qsrc
  49. 117 87
      locations/nerd_game_night.qsrc
  50. 4 4
      locations/npcstatic4.qsrc
  51. 46 14
      locations/npcstatic6.qsrc
  52. 2 2
      locations/parkM.qsrc
  53. 2 7
      locations/park_walkevents.qsrc
  54. 0 80
      locations/parks.qsrc
  55. 2 45
      locations/pav_clinic.qsrc
  56. 2 4
      locations/pav_disco_sex.qsrc
  57. 1 3
      locations/pav_lake.qsrc
  58. 2 2
      locations/pav_market.qsrc
  59. 3 4
      locations/pav_park.qsrc
  60. 2 2
      locations/pav_pharmacy.qsrc
  61. 2 2
      locations/pav_pool.qsrc
  62. 4 3
      locations/pav_train_hall.qsrc
  63. 18 1
      locations/phone_selfies_popup.qsrc
  64. 232 224
      locations/praiders_garage_chat.qsrc
  65. 203 186
      locations/praiders_garage_events.qsrc
  66. 15 12
      locations/praiders_garageev1.qsrc
  67. 1 1
      locations/pushkin.qsrc
  68. 128 51
      locations/pushkin_parks.qsrc
  69. 4 4
      locations/pushkin_sq.qsrc
  70. 1 1
      locations/qwBarEncounters.qsrc
  71. 1 1
      locations/restoran.qsrc
  72. 2 2
      locations/saveg.qsrc
  73. 98 11
      locations/saveupdater.qsrc
  74. 1 6
      locations/sex_ev_leave.qsrc
  75. 10 9
      locations/soniadisco.qsrc
  76. 4 3
      locations/stat.qsrc
  77. 3 3
      locations/street_event.qsrc
  78. 1 1
      locations/succubus.qsrc
  79. 952 476
      locations/telefon.qsrc
  80. 140 140
      locations/train.qsrc
  81. 15 17
      locations/train_events.qsrc
  82. 123 283
      locations/transport_functions.qsrc
  83. 1 1
      locations/treeCircle.qsrc
  84. 422 73
      locations/uni_dorm.qsrc
  85. 558 0
      locations/uni_dorm_events.qsrc
  86. 44 28
      locations/vladimirQW_loc.qsrc
  87. 25 25
      locations/vladimirQW_meet.qsrc
  88. 4 3
      locations/worksalon.qsrc
  89. 3 0
      tools/Parser/parser.bat

+ 29 - 30
glife.qproj

@@ -246,7 +246,7 @@
 		<Location name="phone_selfies_popup"/>
 		<Location name="SMStext_builder"/>
 		<Location name="SMS_selfies"/>
-		<Location name="SMS_selfies_popup"/>
+		<Location name="SMS_schedules"/>
 	</Folder>
 	<Folder name="Prostitution">
 		<Location name="street_walker"/>
@@ -627,8 +627,8 @@
 		<Location name="fbDormD"/>
 		<Location name="fbGar"/>
 		<Location name="zsoft_gopskverGorSlut"/>
-        <Location name="pav_park_meet_event"/>
-        <Location name="pav_park_meet_kol_event"/>
+		<Location name="pav_park_meet_event"/>
+		<Location name="pav_park_meet_kol_event"/>
 	</Folder>
 	<Folder name="Employment Systems">
 		<Location name="emp_functions"/>
@@ -835,6 +835,7 @@
 		<Location name="podezdM"/>
 		<Location name="sexm"/>
 		<Location name="dateM"/>
+		<Location name="dateF"/>
 		<Location name="kinoM"/>
 		<Location name="parkM"/>
 		<Location name="kafeM"/>
@@ -845,6 +846,24 @@
 		<Location name="brosok"/>
 		<Location name="gossips"/>
 	</Folder>
+	<Folder name="Boys">
+		<Location name="BDman"/>
+		<Location name="BDsex"/>
+		<Location name="boyfrend"/>
+		<Location name="boylove"/>
+	</Folder>
+	<Folder name="Lover">
+		<Location name="boygirl"/>
+		<Location name="girlfriend"/>
+		<Location name="lover"/>
+		<Location name="lover_change"/>
+		<Location name="lover_likes"/>
+		<Location name="lover_love"/>
+		<Location name="lover_meet"/>
+		<Location name="lover_pref"/>
+		<Location name="lover_pronouns"/>
+		<Location name="pronouns"/>
+	</Folder>
 	<Folder name="Salon">
 		<Location name="salon"/>
 		<Location name="masseuse_work"/>
@@ -888,36 +907,16 @@
 		<Location name="pornhist"/>
 		<Location name="pornschedule"/>
 	</Folder>
-	<Folder name="Boys">
-		<Location name="BDman"/>
-		<Location name="BDsex"/>
-		<Location name="boy"/>
-		<Location name="boyfrend"/>
-		<Location name="boylove"/>
-	</Folder>
 	<Folder name="music">
 		<Location name="music_actions"/>
 		<Location name="music_bedroompractice"/>
 		<Location name="music_onlinemusic"/>
- 		<Location name="music_gigstarts"/>
-   		<Location name="music_guitarlesson"/>
-   		<Location name="music_buskingevents"/>
+		<Location name="music_gigstarts"/>
+		<Location name="music_guitarlesson"/>
+		<Location name="music_buskingevents"/>
 		<Location name="music_delparco"/>
 		<Location name="music_checks"/>
 	</Folder>
-	<Folder name="Lover">
-		<Location name="girl"/>
-		<Location name="girlfriend"/>
-		<Location name="dateF"/>
-		<Location name="lover"/>
-		<Location name="lover_change"/>
-		<Location name="lover_likes"/>
-		<Location name="lover_love"/>
-		<Location name="lover_meet"/>
-		<Location name="lover_pref"/>
-		<Location name="lover_pronouns"/>
-		<Location name="pronouns"/>
-	</Folder>
 	<Folder name="City Center">
 		<Location name="city_center"/>
 		<Location name="city_train"/>
@@ -1050,6 +1049,7 @@
 	<Folder name="University">
 		<Location name="uni_grounds"/>
 		<Location name="uni_dorm"/>
+		<Location name="uni_dorm_events"/>
 		<Location name="uni_admin"/>
 		<Location name="uni_cafe"/>
 		<Location name="uni_library"/>
@@ -1235,8 +1235,8 @@
 	</Folder>
 	<Folder name="Quest">
 		<Location name="qwIzoldaApp"/>
-		<Location name="qwloc"/>
-		<Location name="qwmeet"/>
+		<Location name="vladimirQW_loc"/>
+		<Location name="vladimirQW_meet"/>
 	</Folder>
 	<Folder name="Game Menu">
 		<Location name="$menu_setting"/>
@@ -1342,8 +1342,7 @@
 		<Location name="rasputin_show_var"/>
 		<Location name="exhibitionistshop"/>
 		<Location name="kseniyaQW"/>
-		<Location name="parks"/>
-		<Location name="lug"/>
+		<Location name="pushkin_parks"/>
 		<Location name="dibodi"/>
 		<Location name="city_suburbs"/>
 		<Location name="din_pav"/>

+ 2 - 1
locations/Katlake.qsrc

@@ -38,7 +38,8 @@ if $ARGS[0] = 'znakomstvo':
 		clr
 		katday = daystart
 		telkat += 1
-		gs 'telefon', 'AddContact', 'A219', 'icon_kat',"$telsob = 'Kate' & gt 'telefon', 'mobilaraz'","hour >= 8 and hour <= 20","",""
+		gs 'telefon', 'AddContact', 'A219', 'icon_kat', 0
+		gs 'telefon', 'SetCallSchedule', 'A219', "$telsob = 'Kate' & gt 'telefon', 'mobilaraz'", "hour >= 8 and hour <= 20", "", "0"
 		kat = 1
 		npc_rel['A219'] += 1
 		minut += 30

+ 3 - 3
locations/Komp.qsrc

@@ -365,7 +365,7 @@ if $ARGS[0] = 'znak':
 		if pcs_lover < 3:
 			act 'Look for a kind man':
 				cla
-				gs 'boy'
+				gs 'boygirl', 0
 				gs 'boyfrend', 'start'
 				haraklover[lover_number] = 0
 				'You find a guy named <<$loverdesc[lover_number]>> and send him your number after checking out his profile. You hope he''ll call you!'
@@ -375,7 +375,7 @@ if $ARGS[0] = 'znak':
 
 			act 'Look for a normal guy':
 				cla
-				gs 'boy'
+				gs 'boygirl', 0
 				gs 'boyfrend', 'start'
 				haraklover[lover_number] = 1
 				'You find a guy named <<$loverdesc[lover_number]>> and send him your number after checking out his profile. You hope he''ll call you!'
@@ -385,7 +385,7 @@ if $ARGS[0] = 'znak':
 
 			act 'Look for a strong man':
 				cla
-				gs 'boy'
+				gs 'boygirl', 0
 				gs 'boyfrend', 'start'
 				haraklover[lover_number] = 2
 				'You find a guy named <<$loverdesc[lover_number]>> and send him your number after checking out his profile. You hope he''ll call you!'

+ 0 - 1
locations/LakeBoyZ.qsrc

@@ -24,7 +24,6 @@ $gL_boy_z = {
 			act 'Give him your phone number':
 				*clr & cla
 				pcs_mood += 10
-				gs 'boy', 'details'
 				if rand(0,2) = 0: gs 'boyfrend','start'
 				minut += 5
 				bmFrend[Tboynum] = 1

+ 1 - 1
locations/Prostitute.qsrc

@@ -295,7 +295,7 @@ if $ARGS[0] = 'work2':
 		*clr
 		gs 'npcgeneratec', 0, '"John"', rand(18,45)
 		gs 'boyStat', $npclastgenerated
-		!! gs 'boy', 'details'    & !! does not seem to be needed for "Johns"
+		!! gs 'boygirl', 'details'    & !! does not seem to be needed for "Johns"
 		guy += 1
 		if pcs_throat < dick: pcs_throat += 1
 

+ 27 - 0
locations/SMS_schedules.qsrc

@@ -0,0 +1,27 @@
+# SMS_schedules
+
+if $ARGS[0] = 'cikl':
+	if nerd_game['invite_day'] < daystart and week = 1:
+		if nerd_game['first_SMS_received'] = 0: if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'icon_na', 1
+		gs 'telefon', 'SetSMSSchedule', 'A152', "", "0", "gs 'nerd_game_night', 'game_invite_sms_switch'", "totminut > <<totminut + (11 - hour) * 60 + rand(20, 280) - minut>>"
+	end
+
+	if year = 2017 and month = 6 and gopnikbandQW['on_tour'] = 0:
+		gopnikbandQW['on_tour'] = 1
+		if npc_rel['A144'] >= 50 and arrpos('$contact', 'A144') < 0: gs 'telefon', 'AddContact', 'A144', 'icon_na', 1
+	elseif gopnikbandQW['on_tour'] = 1 and year = 2017 and month = 8 and day => 19:
+		gopnikbandQW['on_tour'] = 0
+	end
+
+	if gopnikbandQW['on_tour'] = 1 and npc_rel['A144'] >= 50 and anushkaQW['tour_SMS_send'] < daystart and anushkaQW['num_tour_SMS_send'] < 11:
+		if anushkaQW['num_tour_SMS_send'] <= 9 and week = 6:
+			gs 'telefon', 'SetSMSSchedule', 'A144', "", "0", "gs 'band_tour_anushka_SMS', 'start'", "totminut > <<totminut + (12 - hour) * 60 + rand(20, 100) - minut>>"
+
+		elseif anushkaQW['num_tour_SMS_send'] = 10 and week = 2:
+			gs 'telefon', 'SetSMSSchedule', 'A144', "", "0", "gs 'band_tour_anushka_SMS', 'start'", "totminut > <<totminut + (19 - hour) * 60 + rand(20, 100) - minut>>"
+		end
+	end
+end
+
+
+--- SMS_schedules ------------------------------------------

+ 256 - 14
locations/SMS_selfies.qsrc

@@ -54,6 +54,16 @@ if $ARGS[0] = 'exit':
 	gs 'telefon', 'show_sms', ARGS[1]
 end
 
+
+
+
+	!!===========================================================!!
+	!!                                                           !!
+	!!                     RETREIVE A SELFIE                     !!
+	!!                                                           !!
+	!!===========================================================!!
+
+
 ! $ARGS[1] = control string
 !  ARGS[2] = telefon['SMSid']
 ! $ARGS[3] -> onward = return string
@@ -82,8 +92,8 @@ if $ARGS[0] = 'selfie_menu':
 		temp_locationCnt += 1
 	if temp_locationCnt < arrsize('$selfieLoc'): jump 'LocationLoop'
 
-	$temp_SMS_selfietext += '<a href="exec: gs ''SMS_selfies'', ''exit''">Exit</a></td></tr></table>'
-	gs 'SMS_selfies', 'show_sms', ARGS[3]
+	$temp_SMS_selfietext += '<a href="exec: gs ''SMS_selfies'', ''exit'', <<ARGS[2]>>">Exit</a></td></tr></table>'
+	gs 'SMS_selfies', 'show_sms', ARGS[2]
 
 	killvar 'temp_locationCnt'
 	killvar '$temp_return_string'
@@ -113,10 +123,10 @@ if $ARGS[0] = 'showlocation':
 
 	gs 'SMS_selfies', 'listretrieve', ARGS[1], $selfieLoc[ARGS[1]], $ARGS[2], ARGS[3], $temp_return_string
 
-	$temp_SMS_selfietext += '<tr><td colspan=3><a href="exec: gs ''SMS_selfies'', ''selfie_menu'', ''<<$ARGS[2]>>'', ''<<ARGS[3]>>'', <<$temp_return_string>>">Go Back</a></td></tr>'
-	$temp_SMS_selfietext += '<tr><td colspan=3><a href="exec: gs ''SMS_selfies'', ''exit''">Exit</a></td></tr></table>'
+	$temp_SMS_selfietext += '<tr><td colspan=3><a href="exec: gs ''SMS_selfies'', ''selfie_menu'', ''<<$ARGS[2]>>'', <<ARGS[3]>>, <<$temp_return_string>>">Go Back</a></td></tr>'
+	$temp_SMS_selfietext += '<tr><td colspan=3><a href="exec: gs ''SMS_selfies'', ''exit'', <<ARGS[3]>>">Exit</a></td></tr></table>'
 
-	gs 'SMS_selfies', 'show_sms', ARGS[4]
+	gs 'SMS_selfies', 'show_sms', ARGS[3]
 
 	killvar '$temp_return_string'
 	killvar 'sms_s_i'
@@ -158,7 +168,7 @@ if $ARGS[0] = 'retrieve_clothed_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 3: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'clothed', ARGS[1], temp_clocnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'clothed', ARGS[1], temp_clocnt) + '</td>'
 			end
 			temp_clocnt += 1
 		if temp_clocnt <= selfieClotot[ARGS[1]]: jump 'temp_loop'
@@ -182,7 +192,7 @@ elseif $ARGS[0] = 'retrieve_swim_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'bikini', ARGS[1], temp_swicnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'bikini', ARGS[1], temp_swicnt) + '</td>'
 			end
 			temp_swicnt += 1
 		if temp_swicnt <= selfieClotot[ARGS[1]]: jump 'temp_loop1'
@@ -204,7 +214,7 @@ elseif $ARGS[0] = 'retrieve_underwear_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'underwear', ARGS[1], temp_undcnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'underwear', ARGS[1], temp_undcnt) + '</td>'
 			end
 			temp_undcnt += 1
 		if temp_undcnt <= selfieUndtot[ARGS[1]]: jump 'temp_loop2'
@@ -227,7 +237,7 @@ elseif $ARGS[0] = 'retrieve_nude_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'nude', ARGS[1], temp_nudcnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'nude', ARGS[1], temp_nudcnt) + '</td>'
 			end
 			temp_nudcnt += 1
 		if temp_nudcnt <= selfieNudtot[ARGS[1]]: jump 'temp_loop3'
@@ -250,7 +260,7 @@ elseif $ARGS[0] = 'retrieve_bath_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'bath', ARGS[1], temp_bathcnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'bath', ARGS[1], temp_bathcnt) + '</td>'
 			end
 			temp_bathcnt += 1
 		if temp_bathcnt <= selfieBathtot[ARGS[1]]: jump 'temp_loop4'
@@ -273,7 +283,7 @@ elseif $ARGS[0] = 'retrieve_shower_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'shower', ARGS[1], temp_showercnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'shower', ARGS[1], temp_showercnt) + '</td>'
 			end
 			temp_showercnt += 1
 		if temp_showercnt <= selfieShowertot[ARGS[1]]: jump 'temp_loop5'
@@ -296,7 +306,7 @@ elseif $ARGS[0] = 'retrieve_titflash_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'titflash', ARGS[1], temp_flashtitscnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'titflash', ARGS[1], temp_flashtitscnt) + '</td>'
 			end
 			temp_flashtitscnt += 1
 		if temp_flashtitscnt <= selfieTitflash[ARGS[1]]: jump 'temp_loop6'
@@ -319,7 +329,7 @@ elseif $ARGS[0] = 'retrieve_assflash_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'assflash', ARGS[1], temp_flashasscnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'assflash', ARGS[1], temp_flashasscnt) + '</td>'
 			end
 			temp_flashasscnt += 1
 		if temp_flashasscnt <= selfieAssflash[ARGS[1]]: jump 'temp_loop7'
@@ -342,7 +352,7 @@ elseif $ARGS[0] = 'retrieve_pussyflash_selfies':
 			if phone_locval = 1:
 				if temp_cnum = 2: $temp_SMS_selfietext += '</tr><tr>' & temp_cnum = 0
 				temp_cnum += 1
-				$temp_SMS_selfietext += '<td width="33%">' + func('SMS_selfies_popup', 'set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'pussyflash', ARGS[1], temp_flashpussycnt) + '</td>'
+				$temp_SMS_selfietext += '<td width="33%">' + func('phone_selfies_popup', 'SMS_set_selfie', $ARGS[3], ARGS[4], $ARGS[2], 'pussyflash', ARGS[1], temp_flashpussycnt) + '</td>'
 			end
 			temp_flashpussycnt += 1
 		if temp_flashpussycnt <= selfiePussyflash[ARGS[1]]: jump 'temp_loop8'
@@ -356,4 +366,236 @@ end
 
 
 
+
+	!!===========================================================!!
+	!!                                                           !!
+	!!                       TAKE A SELFIE                       !!
+	!!                                                           !!
+	!!===========================================================!!
+
+!{
+if $ARGS[0] = 'take_selfie_menu':
+	gs 'phone_selfies', 'Phone_selfie_totals'
+	if $locclass = 'bedr':
+		$phone_loc = 'bedroom'
+	elseif $locclass = 'kitr':
+		$phone_loc = 'kitchen'
+	elseif $locclass = 'livingr':
+		$phone_loc = 'livingroom'
+	elseif $locclass = 'changingroom':
+		$phone_loc = 'changingroom'
+	elseif $locclass = 'city_park':
+		$phone_loc = 'park'
+	elseif $locclass = 'locker':
+		$phone_loc = 'locker'
+	elseif $locclass = 'beach':
+		$phone_loc = 'beach'
+	elseif $locclass = 'classroom':
+		$phone_loc = 'classroom'
+	elseif $locclass = 'school_bathroom':
+		$phone_loc = 'school_bathroom'
+	elseif $locclass = 'restroom':
+		$phone_loc = 'restroom'
+	elseif $location_type = 'bathroom':
+		$phone_loc = 'bathroom'
+	else
+		$phone_loc = ''
+	end
+
+	!! Create the return string
+	$temp_return_string = ''
+	sms_s_n_args = arrsize('$ARGS')
+	sms_s_i = 3
+	:add_rest_ARGS_loop
+	if sms_s_i < sms_s_n_args:
+		$temp_return_string += '''<<$ARGS[sms_s_i]>>'', '
+		sms_s_i += 1
+		jump 'add_rest_ARGS_loop'
+	end
+	$temp_return_string = mid($temp_return_string, 1, len($temp_return_string)-2)
+
+
+	$temp_SMS_selfietext = '<table width=80%><th>Camera</th><tr><td>'
+	if $phone_loc ! '' or strpos($ARGS[1], 'c') > 0:
+		$temp_SMS_selfietext += '<a href="exec:gs ''exp_gain'', ''photoskl'', 1 & gs ''SMS_selfies'', ''Phone_camera_selfie'', ''<<$phone_loc>>'', '''', ''<<$ARGS[1]>>'', ARGS[2], <<$temp_return_string>>"><b>Take a selfie</b></a>'
+		$temp_SMS_selfietext += '</tr></td><tr><td>'
+	end
+	!! Flashing selfie
+	if $clothingworntype ! 'nude' and $phone_loc <> '':
+		if Enable_Android = 1:
+			locIndex = arrpos('$selfieLoc', $phone_loc, 1)
+		else
+			locIndex = arrpos(1, '$selfieLoc', $phone_loc)
+		end
+		if strpos($ARGS[1], 'ft') > 0 and (pcs_inhib >= 35 or exhibitionist_lvl > 0 or $phone_loc = 'bedroom') and selfieTitflash[locIndex] > 0:
+			$temp_SMS_selfietext += '<a href="exec:gs ''exp_gain'', ''photoskl'', 1 & gs ''SMS_selfies'', ''Phone_camera_selfie'', ''<<$phone_loc>>'', ''tits'', ''<<$ARGS[1]>>'', ARGS[2], <<$temp_return_string>> "><b>Flash your tits for a selfie</b></a><br>'
+			$temp_SMS_selfietext += '</tr></td><tr><td>'
+		end
+		if strpos($ARGS[1], 'fa') > 0 and (exhibitionist_lvl > 0 or $phone_loc = 'bedroom') and selfieAssflash[locIndex] > 0:
+			$temp_SMS_selfietext += '<a href="exec:gs ''exp_gain'', ''photoskl'', 1 & gs ''SMS_selfies'', ''Phone_camera_selfie'', ''<<$phone_loc>>'', ''ass'', ''<<$ARGS[1]>>'', ARGS[2], <<$temp_return_string>> "><b>Flash your ass for a selfie</b></a><br>'
+			$temp_SMS_selfietext += '</tr></td><tr><td>'
+		end
+		if strpos($ARGS[1], 'fp') > 0 and (exhibitionist_lvl > 1 or $phone_loc = 'bedroom') and selfiePussyflash[locIndex] > 0:
+			$temp_SMS_selfietext += '<a href="exec:gs ''exp_gain'', ''photoskl'', 1 & gs ''SMS_selfies'', ''Phone_camera_selfie'', ''<<$phone_loc>>'', ''pussy'', ''<<$ARGS[1]>>'', ARGS[2], <<$temp_return_string>> "><b>Flash your pussy for a selfie</b></a><br>'
+			$temp_SMS_selfietext += '</tr></td><tr><td>'
+		end
+	end
+
+	$temp_SMS_selfietext += '<a href="exec: gs ''SMS_selfies'', ''exit'', <<ARGS[2]>>">Exit</a></td></tr></table>'
+	gs 'SMS_selfies', 'show_sms', ARGS[3]
+end
+
+if $ARGS[0] = 'Phone_camera_selfie':
+	$temp_return_string = ''
+	sms_s_n_args = arrsize('$ARGS')
+	sms_s_i = 5
+	:add_rest_ARGS_loop2
+	if sms_s_i < sms_s_n_args:
+		$temp_return_string += '''<<$ARGS[sms_s_i]>>'', '
+		sms_s_i += 1
+		jump 'add_rest_ARGS_loop2'
+	end
+	$temp_return_string = mid($temp_return_string, 1, len($temp_return_string)-2)
+
+
+	if $ARGS[1] ! '':
+		if Enable_Android = 1:
+			temp_pos = arrpos('$selfieLoc', $ARGS[1], 1)
+		else
+			temp_pos = arrpos(1, '$selfieLoc', $ARGS[1])
+		end
+		dynamic 'gs ''SMS_selfies'', ''Phone_selfie_image'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', <<temp_pos>>, ''<<$ARGS[3]>>'', <<ARGS[4]>>, <<$temp_return_string>>'
+		killvar 'temp_pos'
+	else
+		phone_rand = rand(1, selfieClotot[0])
+		dynamic '<<$selfieLoc[0]>>_closelfie[<<phone_rand>>] = 1'
+		gs 'stat'
+		$temp_imloc = 'images/pc/activities/phone/selfies/<<$selfieLoc[0]>>/clothed/<<$selfieFilePrefix[0]>><<phone_rand>>.jpg'
+		dynamic 'gs <<$temp_return_string>>, <<ARGS[4]>>, ''<<$temp_imloc>>'', ''<<$selfieLoc[0]>>'', ''clothed'', 0, <<phone_rand>>'
+		killvar 'phone_rand'
+		killvar 'temp_imloc'
+	end
+	!if cumsumbod-cumsumvag-cumsumass > 0: phone_rand = RAND (m,n) - for SELF in the semen
+	!if photo_event_pic = x: phone_rand = RAND (x,y) - for photos during the events (by heart)
+	!msg '<img src="images/system/phone/phone_selfie<<phone_rand>>.jpg">'
+end
+
+if $ARGS[0] = 'Phone_selfie_image':
+	$temp_return_string = ''
+	sms_s_n_args = arrsize('$ARGS')
+	sms_s_i = 6
+	:add_rest_ARGS_loop2
+	if sms_s_i < sms_s_n_args:
+		$temp_return_string += '''<<$ARGS[sms_s_i]>>'', '
+		sms_s_i += 1
+		jump 'add_rest_ARGS_loop2'
+	end
+	$temp_return_string = mid($temp_return_string, 1, len($temp_return_string)-2)
+
+
+	if $ARGS[2] = '':
+		if PCloswimwear = 1:
+			!!changing to and unmixed variable so the rng will work
+			
+			temp_swim = selfieSwimtot[ARGS[3]]
+			if temp_swim > 0:
+				phone_rand = rand(1, temp_swim)
+				!!Setting the image owned flag to 1
+				dynamic '<<$ARGS[1]>>_swim[<<phone_rand>>] = 1'
+				gs 'stat'
+				$temp_imloc = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/bikini/<<$selfieFilePrefix[ARGS[3]]>><<phone_rand>>.jpg'
+				dynamic 'gs <<$temp_return_string>>, <<ARGS[5]>>, ''<<$temp_imloc>>'', ''<<$ARGS[1]>>'', ''bikini'', <<ARGS[3]>>, <<phone_rand>>'
+				killvar 'phone_rand'
+				killvar 'temp_imloc'
+			end
+			killvar 'temp_swim'
+
+		elseif $clothingworntype ! 'nude':
+			!!changing to and unmixed variable so the rng will work
+			temp_clotot = selfieClotot[ARGS[3]]
+			if temp_clotot > 0:
+				phone_rand = rand(1, temp_clotot)
+				!!Setting the image owned flag to 1
+				dynamic '<<$ARGS[1]>>_closelfie[<<phone_rand>>] = 1'
+				gs 'stat'
+				$temp_imloc = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/clothed/<<$selfieFilePrefix[ARGS[3]]>><<phone_rand>>.jpg'
+				dynamic 'gs <<$temp_return_string>>, <<ARGS[5]>>, ''<<$temp_imloc>>'', ''<<$ARGS[1]>>'', ''clothed'', <<ARGS[3]>>, <<phone_rand>>'
+				killvar 'phone_rand'
+				killvar 'temp_imloc'
+			end
+			killvar 'temp_clotot'
+
+		elseif $pantyworntype ! 'none':
+			temp_undtot = selfieUndtot[ARGS[3]]
+			if temp_undtot > 0:
+				phone_rand = rand(1, temp_undtot)
+				dynamic '<<$ARGS[1]>>_undselfie[<<phone_rand>>] = 1'
+				gs 'stat'
+				$temp_imloc = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/underwear/<<$selfieFilePrefix[ARGS[3]]>><<phone_rand>>.jpg'
+				dynamic 'gs <<$temp_return_string>>, <<ARGS[5]>>, ''<<$temp_imloc>>'', ''<<$ARGS[1]>>'', ''underwear'', <<ARGS[3]>>, <<phone_rand>>'
+				killvar 'phone_rand'
+				killvar 'temp_imloc'
+			end
+			killvar 'temp_undtot'
+
+		else
+			temp_nudtot = selfieNudtot[ARGS[3]]
+			if temp_nudtot > 0:
+				phone_rand = rand(1, temp_nudtot)
+				dynamic '<<$ARGS[1]>>_nudselfie[<<phone_rand>>] = 1'
+				gs 'stat'
+				$temp_imloc = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/nude/<<$selfieFilePrefix[ARGS[3]]>><<phone_rand>>.jpg'
+				dynamic 'gs <<$temp_return_string>>, <<ARGS[5]>>, ''<<$temp_imloc>>'', ''<<$ARGS[1]>>'', ''nude'', <<ARGS[3]>>, <<phone_rand>>'
+				killvar 'phone_rand'
+				killvar 'temp_imloc'
+			end
+			killvar 'temp_nudtot'
+		end
+	else
+		if $ARGS[2] = 'tits':
+			temp_titflash = selfieTitflash[ARGS[3]]
+			if temp_titflash > 0:
+				phone_rand = rand(1, temp_titflash)
+				dynamic '<<$ARGS[1]>>_titflash[<<phone_rand>>] = 1'
+				gs 'stat'
+				$temp_imloc = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/titflash/<<$selfieFilePrefix[ARGS[3]]>><<phone_rand>>.jpg'
+				dynamic 'gs <<$temp_return_string>>, <<ARGS[5]>>, ''<<$temp_imloc>>'', ''<<$ARGS[1]>>'', ''titflash'', <<ARGS[3]>>, <<phone_rand>>'
+				killvar 'phone_rand'
+				killvar 'temp_imloc'
+			end
+			killvar 'temp_titflash'
+
+		elseif $ARGS[2] = 'ass':
+			temp_assflash = selfieAssflash[ARGS[3]]
+			if temp_assflash > 0:
+				phone_rand = rand(1, temp_assflash)
+				dynamic '<<$ARGS[1]>>_assflash[<<phone_rand>>] = 1'
+				gs 'stat'
+				if usePopUps = 1:
+					msg '<img src="images/pc/activities/phone/selfies/<<$ARGS[1]>>/assflash/<<phone_rand>>.jpg">'
+				else
+					view 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/assflash/<<phone_rand>>.jpg'
+				end
+			end
+		elseif $ARGS[2] = 'pussy':
+			if Enable_Android = 1:
+				temp_pussyflash = selfiePussyflash[arrpos('$selfieLoc', $ARGS[1], 1)]
+			else
+				temp_pussyflash = selfiePussyflash[arrpos(1, '$selfieLoc', $ARGS[1])]
+			end
+			if temp_pussyflash > 0:
+				phone_rand = rand(1, temp_pussyflash)
+				dynamic '<<$ARGS[1]>>_pussyflash[<<phone_rand>>] = 1'
+				gs 'stat'
+				if usePopUps = 1:
+					msg '<img src="images/pc/activities/phone/selfies/<<$ARGS[1]>>/pussyflash/<<phone_rand>>.jpg">'
+				else
+					view 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/pussyflash/<<phone_rand>>.jpg'
+				end
+			end
+		end
+	end
+end
+}
+
 --- SMS_selfies ---------------------------------

+ 0 - 21
locations/SMS_selfies_popup.qsrc

@@ -1,21 +0,0 @@
-# SMS_selfies_popup
-
-
-!	$ARGS[1] = Return string
-!	$ARGS[2] = telefon['SMSid']
-!!	$ARGS[3] = Location where the selfie is taken
-!!	$ARGS[4] = State of dress in the selfie
-!!	 ARGS[5] = is the index of the location in $selfieLoc[] and $selfieFilePrefix
-!!	 ARGS[6] = the selfie number
-if $ARGS[0] = 'set_selfie':
-	$temp_imloc = func('SMS_selfies_popup', 'get_imloc', $ARGS[3], $ARGS[4], ARGS[5], ARGS[6])
-	$result = '<a href="exec: gs <<$ARGS[1]>>, <<ARGS[2]>>, ''<<$temp_imloc>>'', ''<<$ARGS[3]>>'', ''<<$ARGS[4]>>'', <<ARGS[5]>>, <<ARGS[6]>>"><img src="<<$temp_imloc>>" style="horizontal-align:center; max-height:90%; max-width:90%"></a>'
-	killvar '$temp_imloc'
-end
-
-if $ARGS[0] = 'get_imloc':
-	$result = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/<<$ARGS[2]>>/<<$selfieFilePrefix[ARGS[3]]>><<ARGS[4]>>.jpg'
-end
-
-
---- SMS_selfies_popup ---------------------------------

+ 140 - 1
locations/SMStext_builder.qsrc

@@ -30,7 +30,7 @@
 !				So if you are used:
 !					gs 'SMStext_builder', 'add_reply', [$text], [$file_name], [$file_args0], [$file_args1].
 !				Then you would pass ARGS[2] (since you used $ARGS[0] and $ARGS[1]):
-!				gs 'SMStext_builder', 'add_sms', ARGS[2]
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
 !	
 !	Finally after the player has made a choice, everything but the replies are stored.
 !	If you want to reset the text (but not the end images), use gs 'SMStext_builder', 'reset'
@@ -39,6 +39,114 @@
 !		gs 'SMStext_builder', 'end'
 
 
+	!!=====================================================!!
+	!!                                                     !!
+	!!                      Examples                       !!
+	!!                                                     !!
+	!!=====================================================!!
+
+!	This example is in a non-existing file called "lukaqw". Here luka has npc code A6969
+
+!	if $ARGS[0] = 'SMS1':
+!		if $ARGS[1] = 'start':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'receive', '"hey Sveta", it''s Luka!'
+!				gs 'SMStext_builder', 'receive', '"how are you doing?"'
+!				gs 'SMStext_builder', 'add_reply', 'im good, you?', 'lukaqw', 'SMS1', '1'
+!				gs 'SMStext_builder', 'add_sms', 'A6969'
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = '1':
+!			!! The replies are removed, but the rest is not. We first send the reply text, wait, then 
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'im good, you?'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'could you send me a picture?'
+!				gs 'SMStext_builder', 'add_reply', 'sure!', 'lukaqw', 'SMS1', 'send_pic'
+!				gs 'SMStext_builder', 'add_reply', 'you first', 'lukaqw', 'SMS1', 'receive_pic'
+!				gs 'SMStext_builder', 'add_reply', 'no', 'lukaqw', 'SMS1', 'no'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = 'send_pic':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'sure!'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'better make it sexy :))!'
+!				gs 'SMStext_builder', 'send_selfie', 'c|u|n|b|sh|ft', 'lukaqw', 'SMS1', 'Selfie_send'
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = 'Selfie_send':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send_img', $ARGS[3]
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				!$ARGS[5] is the state of dress:
+!				if $ARGS[5] = 'clothed':
+!					gs 'SMStext_builder', 'receive', 'disapointing, but better than nothin i sup'
+!				elseif $ARGS[5] = 'nude' or $ARGS[5] = 'pussyflash':
+!					gs 'SMStext_builder', 'receive', 'DAMN!'
+!				else
+!					gs 'SMStext_builder', 'receive', 'nice'
+!				end
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = 'receive_pic':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'you first'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive_img', 'image/characters/pavlovsk/resident/luka/selfies/sexy3.jpg'
+!				gs 'SMStext_builder', 'receive', 'now you'
+!				gs 'SMStext_builder', 'add_reply', 'sure!', 'lukaqw', 'SMS1', 'send_pic'
+!				gs 'SMStext_builder', 'add_reply', 'no', 'lukaqw', 'SMS1', 'no2'
+!			gs 'SMStext_builder', end
+!		end
+!
+!		if $ARGS[1] = 'no':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'no'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'sad'
+!			gs 'SMStext_builder', end
+!		end
+!
+!		if $ARGS[1] = 'no2':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'no'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'what? but i send you mine?!'
+!				gs 'SMStext_builder', 'add_reply', 'get blackmailed noob', 'lukaqw', 'SMS1', 'blackmail'
+!				gs 'SMStext_builder', 'add_reply', 'that time of month, sorry', 'lukaqw', 'SMS1', 'excuses'
+!			gs 'SMStext_builder', end
+!		end
+!		...
+!		...
+!	end
+
+
+
+
+
+	!!=====================================================!!
+	!!                                                     !!
+	!!                        CODE                         !!
+	!!                                                     !!
+	!!=====================================================!!
 
 
 if $ARGS[0] = 'start':
@@ -213,5 +321,36 @@ if $ARGS[0] = 'send_selfie':
 end
 
 
+!!	Might add directly taking a selfie in the future.
+!{
+! $ARGS[1] = displayed text
+! $ARGS[2] = control string = 'c|sw|u|n|b|sh|ft|fa|fp'
+!		c: clothed | sw: bikini | u: underwear
+!		n: nude | b: bath | sh: shower
+!		ft: titflash | fa: assflash | fp: pussyflash
+! $ARGS[3] -> onward = the return location.
+! gs 'SMStext_builder', 'take_selfie', 'Send a sexy selfie', 'c|b|ft', 'band_tour_anushka_SMS', 'Week8', 'Choice_a'
+if $ARGS[0] = 'take_selfie':
+	$temp_reply_str = '[Selfie] <a href="exec: gs ''SMS_selfies'', ''take_selfie_menu'', ''<<lcase($ARGS[2])>>'', telefon[''SMSid'']'
+
+	stb_n_args = arrsize('$ARGS')
+	stb_i = 3
+	:SMS_build_send_selfie_loop
+	if stb_i < stb_n_args:
+		$temp_reply_str += ', ''<<$ARGS[stb_i]>>'''
+		stb_i += 1
+		jump 'SMS_build_send_selfie_loop'
+	end
+
+	$temp_reply_str += '"><<$ARGS[1]>></a>'
+	$temp_SMSreplies[] = $temp_reply_str
+
+	killvar 'temp_reply_str'
+	killvar 'stb_i'
+	killvar 'stb_n_args'
+end
+}
+
+
 
 --- SMStext_builder ---------------------------------

+ 1 - 3
locations/auditions_minor1.qsrc

@@ -3,9 +3,7 @@
 
 if $ARGS[0] = 'general_dialogue':
 	if audition['requirement'] = 0 or audition['requirement'] = '':audition['requirement'] = rand(40,70)
-	gs 'npcgeneratec', 0, 'A Male', rand(30,50)
-	gs 'boyStat', $npclastgenerated
-	gs 'boy', 'details'
+	gs 'boygirl', 0, 'A Male', rand(30,50)
 	cla & *clr
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/aurora/auditions/room.jpg"></center>'
 	'You enter the room and see a man sitting at a desk with papers in front of him.'

+ 5 - 2
locations/band_tour_anushka_SMS.qsrc

@@ -76,8 +76,9 @@ if $ARGS[0] = 'start':
 
 	elseif anushkaQW['num_tour_SMS_send'] = 11:
 		gs 'band_tour_anushka_SMS', 'Week11', 'Add SMS'
-
+		gopnikbandQW['on_tour'] = 0
 	end
+	gs 'telefon', 'SetSMSSchedule', 'A144', "", "0", "", "0"
 end
 
 
@@ -109,7 +110,9 @@ if $ARGS[0] = 'Week1':
 	elseif $ARGS[1] = 'Choice_a':
 		!! Add Anushka to the contact list if she isn''t in it yet.
 		!! Is here to add it after reading the text.
-		if arrpos('$contact', 'A144') = -1: gs 'telefon', 'AddContact', 'A144', 'images/characters/shared/headshots_main/big144.jpg', "", "1 = 0", "", "", 0
+		temp_pos = arrpos('$contact', 'A144')
+		if temp_pos = -1 or contactAnon[temp_pos] = 1: gs 'telefon', 'AddContact', 'A144', 'images/characters/shared/headshots_main/big144.jpg', 0
+		killvar 'temp_pos'
 
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['a1']

+ 416 - 13
locations/blackmailer.qsrc

@@ -3,7 +3,7 @@
 if $ARGS[0] = 'init_check':
 	if blackmailQW['day'] ! 0: exit
 	if ($ARGS[2] = 'inside' or $ARGS[2] = 'indoors'):
-		if strpos($loc, 'church') < 0: exit
+		if strpos($loc, 'church') <= 0: exit
 	end
 
 
@@ -25,7 +25,7 @@ if $ARGS[0] = 'init_check':
 		temp_prob_chance -= 100
 	end
 
-	if rand(0, temp_prob_chance) >= 5: exit
+	if rand(0, temp_prob_chance) >= 5: killvar 'temp_prob_chance' & exit
 	killvar 'temp_prob_chance'
 
 	gs 'blackmailer', 'init_blackmail', $ARGS[1]
@@ -47,17 +47,19 @@ if $ARGS[0] = 'init_blackmail':
 		$blackmailQW['init_flashaction'] = $ARGS[1]
 	end
 
-	$blackmailQW['init_flashimage'] = $flash_image
+	$blackmailQW['init_flashimage'] = $flash_image + '.jpg'
 	$blackmailQW['init_flashloc'] = $loc
 	$blackmailQW['init_flashloc_arg'] = $loc_arg
+	$blackmailQW['init_flashregion'] = $region
+	blackmailQW['total_material'] = 1
 
-	if strpos($loc, 'park') > -1:
+	if strpos($loc, 'park') > 0:
 		$blackmailQW['init_flashloc_desc'] = 'in a park'
 		'A flash of light briefly brightens the surrounding trees and you see a shadow darting between the trees. The light of the camera flash prickling on your exposed skin.'
-	elseif strpos($loc, 'church') > -1:
-		$blackmailQW['init_flashloc_desc'] = 'in a park'
+	elseif strpos($loc, 'church') > 0:
+		$blackmailQW['init_flashloc_desc'] = 'in a church'
 		'The flash of a camera illuminates the inside of the church, but the source eludes you.'
-	elseif strpos($loc, 'zaprF') > -1:
+	elseif strpos($loc, 'zaprF') > 0:
 		$blackmailQW['init_flashloc_desc'] = 'while washing cars'
 		'You briefly think a car turned on their headlights, before you realise it was the flash of a camera, the source of which already gone.'
 	else
@@ -70,6 +72,67 @@ if $ARGS[0] = 'init_blackmail':
 	end
 end
 
+if $ARGS[0] = 'add_blackmail_selfie':
+	temp_i = 0
+	if blackmailQW['total_material'] <= 10:
+		:add_blackmail_loop
+		if $blackmailQW['selfie_image_<<temp_i>>'] ! '':
+			temp_i += 1
+			if temp_i < 10: jump 'add_blackmail_loop'
+
+			temp_i = rand(0, 9)
+		end
+	else
+		temp_i = rand(0, 9)
+	end
+
+	$blackmailQW['selfie_image_<<temp_i>>']		= $ARGS[1]
+	$blackmailQW['selfie_location_<<temp_i>>']	= $ARGS[2]
+	$blackmailQW['selfie_dress_<<temp_i>>']		= $ARGS[3]
+	 blackmailQW['selfie_LocIndex_<<temp_i>>']	=  ARGS[4]
+	 blackmailQW['selfie_number_<<temp_i>>']	=  ARGS[5]
+	killvar 'temp_i'
+end
+
+if $ARGS[0] = 'choose_blackmail_image':
+	if rand(0, 10) > 0:
+		$result = $blackmailQW['selfie_image_<<rand(0, 9)>>']
+		if $result = '':
+			$result = $blackmailQW['selfie_image_<<rand(0, 8)>>']
+			if $result = '': $result = $blackmailQW['selfie_image_<<rand(0, 7)>>']
+		end
+	end
+	if $result = '': $result = $blackmailQW['init_flashimage']
+end
+
+
+
+
+	!!=============================================!!
+	!!                                             !!
+	!!                    CIKL                     !!
+	!!                                             !!
+	!!=============================================!!
+
+
+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)"
+	end
+end
+
+
 
 
 
@@ -99,14 +162,14 @@ end
 if $ARGS[0] = 'photo_dream1':
 	if blackmailQW['stage'] = 1: blackmailQW['stage'] = 2
 	blackmailQW['dreamday'] = daystart + 3
-	if strpos('panty_pantyrear_bra', $blackmailQW['init_flashaction']):
+	if strpos('panty_pantyrear_bra', $blackmailQW['init_flashaction']) > 0:
 		gs 'arousal', 'flashlite', -5
 	else
 		gs 'arousal', 'flash', -5
 	end
 	gs 'arousal', 'end'
 
-	'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>"></center>'
 	$temp_dream_text = 'You dream about getting caught while flashing your '
 	$temp_dream_text += $blackmailQW['init_flashaction']
 	$temp_dream_text += ' ' + $blackmailQW['init_flashloc_desc']
@@ -117,7 +180,12 @@ if $ARGS[0] = 'photo_dream1':
 	gs 'dream_events', 'event_end'
 
 elseif $ARGS[0] = 'photo_dream2':
-	if blackmailQW['stage'] = 2: blackmailQW['stage'] = 3
+	if blackmailQW['stage'] = 2:
+		blackmailQW['stage'] = 3
+		blackmailQW['smsday'] = daystart + 6
+		gs 'telefon', '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)"
+	end
 	blackmailQW['dreamday'] = daystart + 3
 	gs 'arousal', 'flash', -5
 	gs 'arousal', 'end'
@@ -134,7 +202,7 @@ elseif $ARGS[0] = 'photo_dream2':
 
 			act 'Look at the picture':
 				*clr & cla
-				'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>"></center>'
 				$temp_dream_text = 'You get a clear look at the picture depicting you flashing your '
 				$temp_dream_text += $blackmailQW['init_flashaction']
 				$temp_dream_text += ' ' + $blackmailQW['init_flashloc_desc']
@@ -172,7 +240,7 @@ elseif $ARGS[0] = 'photo_dream2':
 
 		act 'Grab a polaroid':
 			*clr & cla
-			'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>"></center>'
 			$temp_dream_text = 'You grab one of the pictures and see yourself flashing your '
 			$temp_dream_text += $blackmailQW['init_flashaction']
 			$temp_dream_text += ' ' + $blackmailQW['init_flashloc_desc']
@@ -197,7 +265,7 @@ elseif $ARGS[0] = 'photo_dream2':
 			'When you finally arive you see the postmaster, an older man, look at you strangly. Deafening thunder shakes the building, rain drums loudly against the windows as lightning flashes outside.'
 
 			act 'Buy a newspaper':
-				'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$blackmailQW[''init_flashimage'']>>"></center>'
 				$temp_dream_text = 'The postmaster distandly hands you a newspaper, and on the front cover you see a picture of yourself flashing your '
 				$temp_dream_text += $blackmailQW['init_flashaction']
 				$temp_dream_text += ' ' + $blackmailQW['init_flashloc_desc']
@@ -215,4 +283,339 @@ end
 
 
 
+	!!=============================================!!
+	!!                                             !!
+	!!                     SMS                     !!
+	!!                                             !!
+	!!=============================================!!
+
+
+if $ARGS[0] = 'Add_SMS1':
+	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']
+
+	$SMSTree['0'] = 'Hello <<$pcs_firstname>>!'
+
+		if motherKnowWhore = 0 and npc_rel['A29'] > 0:
+			$SMSTree['1'] = 'If you don''t want your mother to see this image you will do exactly as I say'
+		elseif $start_type['loc'] = 'sg' and gruptipe ! 5:
+			$SMSTree['1'] = 'If you don''t want your friends to see this image you will do exactly as I say'
+		else
+			$SMSTree['1'] = 'If you don''t want the world to see this image you will do exactly as I say'
+		end
+
+				$SMSTree['2'] = 'Leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, I know you know which one.'
+					$SMSTree['3'] = 'You have three days'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMSText_builder', 'receive_img', $blackmailQW['blackmail_image_chosen']
+		gs 'SMStext_builder', 'receive', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'receive', $SMSTree['3']
+		gs 'SMStext_builder', 'add_sms', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+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'
+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'
+
+	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
+end
+
+
+
+	!!=============================================!!
+	!!                                             !!
+	!!                    PARK                     !!
+	!!                                             !!
+	!!=============================================!!
+
+if $ARGS[0] = 'set_park_act':
+	if blackmailQW['next_payment'] > 0:
+		act 'Walk to the fourth bench to pay your blackmailer':
+			minut += 3
+			if blackmailQW['stage'] = 4:
+				gt 'blackmailer', 'park1'
+			else
+				gt 'blackmailer', 'park_repeat'
+			end
+		end
+	end
+end
+
+
+if $ARGS[0] = 'park1':
+	menu_off = 1
+	gs 'stat'
+
+	'<center><img src="images/locations/shared/park/bench_6.jpg"></center>'
+	'You spot the bench that your blackmailer is talking about, and take a seat at the edge of it.'
+
+	if money < blackmailQW['next_payment']:
+		act 'Hide the money (<font color="red"><<blackmailQW[''next_payment'']>> <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to do that.</font>'
+	else
+		act 'Hide the money (<<blackmailQW[''next_payment'']>> <b>₽</b>)':
+			*clr & cla
+			money -= blackmailQW['next_payment']
+			blackmailQW['total_payment'] += blackmailQW['next_payment']
+			blackmailQW['next_payment'] = 0
+			blackmailQW['stage'] = 5
+			blackmailQW['smsday'] = 0
+
+			minut += 1
+			gs 'stat'
+
+			'<center><img <<$set_imgh>> src="images/system/image_needed.png" ></center>'
+			'You descretely hide the money near the base of the bench.'
+
+			act 'Quickly walk away': gt $loc, $loc_arg
+		end
+	end
+
+	act 'Walk away': gt $loc, $loc_arg
+end
+
+
+
+
+	!!=============================================!!
+	!!                                             !!
+	!!                  REPEATING                  !!
+	!!                                             !!
+	!!=============================================!!
+
+if $ARGS[0] = 'Add_SMS_repeat':
+	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+	blackmailQW['smsday'] = daystart + 2
+	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')
+
+	$SMSTree['0'] = 'You know what we want'
+
+		if motherKnowWhore = 0 and npc_rel['A29'] > 0:
+			$SMSTree['1'] = 'If you don''t want your mother to see this image you will do exactly as I say'
+		elseif $start_type['loc'] = 'sg' and gruptipe ! 5:
+			$SMSTree['1'] = 'If you don''t want your friends to see this image you will do exactly as I say'
+		else
+			$SMSTree['1'] = 'If you don''t want the world to see this image you will do exactly as I say'
+		end
+
+				$SMSTree['2'] = 'Leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the same park bench.'
+					$SMSTree['3'] = 'You have three days'
+						if rand(0, 1) = 0:
+							$SMSTree['a4'] = 'Why are you doing this to me?'
+						else
+							$SMSTree['a4'] = 'What do you want from me?'
+						end
+						if rand(0, 1) = 0:
+							$SMSTree['b4'] = 'Where am I going to get that much money from?'
+						else
+							$SMSTree['b4'] = 'How much do you want before it stops?'
+						end
+
+
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMSText_builder', 'receive_img', $blackmailQW['blackmail_image_chosen']
+		gs 'SMStext_builder', 'receive', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'receive', $SMSTree['3']
+		if blackmailQW['next_payment'] < 2000 and blackmailQW['total_payment'] < 5000:
+			gs 'SMStext_builder', 'add_reply', $SMSTree['a4'], 'blackmailer', 'sms_repeat_switch1', '1', $SMSTree['a4']
+		else
+			gs 'SMStext_builder', 'add_reply', $SMSTree['b4'], 'blackmailer', 'sms_repeat_switch1', '2', $SMSTree['a4']
+		end
+		gs 'SMStext_builder', 'add_sms', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+if $ARGS[0] = 'sms_repeat_switch1':
+	if $ARGS[1] = '1':
+		$SMSTree['10'] = 'Just drop off the money'
+			$SMSTree['11'] = 'or else'
+	else
+		$SMSTree['10'] = 'Work as a stripper, it''s what you were clearly born to do'
+			$SMSTree['11'] = 'How about this. Send us a picture of your tits and we''ll call it even'
+	end
+
+				$SMSTree['a12'] = 'fuck you'
+				$SMSTree['b12'] = 'Send a selfie from your galleray'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'send', $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree['10']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree['11']
+
+		if $ARGS[1] = '2':
+			gs 'SMStext_builder', 'add_reply', $SMSTree['a12'], 'blackmailer', 'sms_repeat_switch1', '1', $SMSTree['a12']
+			gs 'SMStext_builder', 'send_selfie', $SMSTree['b12'], iif(blackmailQW['stage'] < 6, 'c|sw|u|ft|fa', 'c|sw|u|n|b|sh|ft|fa|fp'), 'blackmailer', 'sms_repeat_switch2'
+		end
+
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+
+!  ARGS[1] = npc_code
+! $ARGS[2] = image
+! $ARGS[3] = location
+! $ARGS[4] = state of dress
+!  ARGS[5] = self loc index
+!  ARGS[6] = selfie code
+if $ARGS[0] = 'sms_repeat_switch2':
+
+	$SMSTree['a20'] = 'WTF! i said a pic of your tits, not this boring shit'
+		$SMSTree['a21'] = 'you better bring an additional 500 <b>₽</b>!'
+
+	$SMSTree['b20'] = 'nice'
+		$SMSTree['b21'] = 'that''s worth about 500 <b>₽</b>'
+
+	$SMSTree['c20'] = 'WOW'
+		$SMSTree['c21'] = 'that''s worth about 1000 <b>₽</b>'
+
+	$SMSTree['d20'] = 'DAMN! you really are a slut aren''t you'
+		$SMSTree['d21'] = 'definitely worth 2000 <b>₽</b>'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'send_img', $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[1]
+
+		wait 250
+
+		if $ARGS[4] = 'clothed':
+			blackmailQW['next_payment'] += 500
+			gs 'SMStext_builder', 'receive', $SMSTree['a20']
+			gs 'SMStext_builder', 'show_sms', ARGS[1]
+			wait 250
+			gs 'SMStext_builder', 'receive', $SMSTree['a21']
+
+		elseif strpos('bikini|underwear', $ARGS[4]) > 0:
+			blackmailQW['next_payment'] -= 500
+			gs 'SMStext_builder', 'receive', $SMSTree['b20']
+			gs 'SMStext_builder', 'show_sms', ARGS[1]
+			wait 250
+			gs 'SMStext_builder', 'receive', $SMSTree['b21']
+
+		elseif strpos('bath|shower|titflash|assflash', $ARGS[4]) > 0:
+			blackmailQW['next_payment'] -= 1000
+			if blackmailQW['stage'] = 5: blackmailQW['stage'] = 6
+			gs 'blackmailer', 'add_blackmail_selfie', $ARGS[2], $ARGS[3], $ARGS[4], ARGS[5], ARGS[6]
+
+			gs 'SMStext_builder', 'receive', $SMSTree['b20']
+			gs 'SMStext_builder', 'show_sms', ARGS[1]
+			wait 250
+			gs 'SMStext_builder', 'receive', $SMSTree['b21']
+		elseif strpos('nude|pussyflash', $ARGS[4]) > 0:
+			blackmailQW['next_payment'] -= 2000
+			if blackmailQW['stage'] = 6: blackmailQW['stage'] = 7
+			gs 'blackmailer', 'add_blackmail_selfie', $ARGS[2], $ARGS[3], $ARGS[4], ARGS[5], ARGS[6]
+
+			gs 'SMStext_builder', 'receive', $SMSTree['b20']
+			gs 'SMStext_builder', 'show_sms', ARGS[1]
+			wait 250
+			gs 'SMStext_builder', 'receive', $SMSTree['b21']
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[1]
+		if blackmailQW['next_payment'] < 0:
+			blackmailQW['next_payment'] = 0
+			blackmailQW['smsday'] = 0
+		end
+
+		wait 250
+
+		if blackmailQW['next_payment'] > 0:
+			$SMSTree['22'] = 'don''t forget to drop ' + blackmailQW['next_payment'] + ' <b>₽</b> of in the park'
+		else
+			$SMSTree['22'] = 'you''re all settled.... for now'
+		end
+	
+		gs 'SMStext_builder', 'receive', $SMSTree['22']
+		gs 'SMStext_builder', 'show_sms', ARGS[1]
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+
+
+if $ARGS[0] = 'park_repeat':
+	menu_off = 1
+	gs 'stat'
+
+	'<center><img src="images/locations/shared/park/bench_6.jpg"></center>'
+	'You walk to the familiar bench and take a seat at the edge of it.'
+
+	if money < blackmailQW['next_payment']:
+		act 'Hide the money (<font color="red"><<blackmailQW[''next_payment'']>> <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to do that.</font>'
+	else
+		act 'Hide the money (<<blackmailQW[''next_payment'']>> <b>₽</b>)':
+			*clr & cla
+			money -= blackmailQW['next_payment']
+			blackmailQW['total_payment'] += blackmailQW['next_payment']
+			blackmailQW['next_payment'] = 0
+
+			minut += 1
+			gs 'stat'
+
+			'<center><img <<$set_imgh>> src="images/system/image_needed.png" ></center>'
+			'You descretely hide the money near the base of the bench.'
+
+			act 'Quickly walk away': gt $loc, $loc_arg
+		end
+	end
+
+	act 'Walk away': gt $loc, $loc_arg
+end
+
+
+
+
 --- blackmailer ---------------------------------

+ 8 - 5
locations/body.qsrc

@@ -332,14 +332,17 @@ if $ARGS[0] = 'Update_Body':
 		if pregChem >= 800 and (pregChem - 800)*(pregChem - 800) >= bodyVars['pchem_next']:
 			pcs_mass['preg'] += 1
 			bodyVars['pchem_next'] += 1166400	& !! 1080 * 1080
-		elseif bodyVars['pchem_next'] > 0 and bodyVars['pchem_next'] - 1166400 >= (pregChem - 800) * (pregChem - 800):
+		elseif pcs_mass['preg'] > 0 and (recovH <= bodyVars['recovH'] and (pregChem < 800 or bodyVars['pchem_next'] - 1166400 >= (pregChem - 800)*(pregChem - 800))):
+			pcs_mass['preg'] -= 1
+			if rand(0, 1) = 0: pcs_mass['body'] += 1
 			if pcs_mass['preg'] > 0:
-				pcs_mass['preg'] -= 1
 				bodyVars['pchem_next'] -= 1166400	& !! 1080 * 1080
-			else
-				pcs_mass['preg'] = 0
-				bodyVars['pchem_next'] = 0
+				bodyVars['recovH_next'] = bodyVars['recovH_next'] * (pcs_mass['preg'] - 1) / pcs_mass['preg']
 			end
+		elseif pcs_mass['preg'] <= 0:
+			pcs_mass['preg'] = 0
+			bodyVars['pchem_next'] = 0
+			bodyVars['recovH_next'] = 0
 		end
 		if pregChem >= 800:
 			if fat > (12 + vitalbuf / 25):

+ 141 - 14
locations/booty_call.qsrc

@@ -6,12 +6,13 @@ if $ARGS[0] = 'scheduler':
 	killvar 'npc_booty_call'
 	killvar 'npc_booty_call_time'
 	i = 0
-	gs 'booty_call', 'scheduler2'
+	gs 'booty_call', 'fuckbuddy_scheduler2'
 end
 
-if $ARGS[0] = 'scheduler2':
+if $ARGS[0] = 'fuckbuddy_scheduler2':
 	if i <= arrsize('$fuckbuddy'):
-		gs 'booty_call', 'npc_stat_update'
+		$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:
 
 !!		temporary removal of npc_rel requirement until boy initiated breakups can occur
@@ -23,24 +24,57 @@ if $ARGS[0] = 'scheduler2':
 				
 			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', 'scheduler3'
+				gs 'booty_call', 'fuckbuddy_scheduler3'
 			else
 				npc_no_booty_call[$FuckBuddy[i]] = daystart
 			end
 		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', 'scheduler3'
+				gs 'booty_call', 'fuckbuddy_scheduler3'
 			else
 				npc_no_booty_call[$FuckBuddy[i]] = daystart
 			end
 		end
 		i += 1
-		gs 'booty_call', 'scheduler2'
+		gs 'booty_call', 'fuckbuddy_scheduler2'
+	else
+		i = 0
+		gs 'booty_call', 'sugar_daddy_scheduler2'
 	end
 end
 
 
-if $ARGS[0] = 'scheduler3':
+if $ARGS[0] = 'sugar_daddy_scheduler2':
+	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
+		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
+		end
+		i += 1
+		gs 'booty_call', 'sugar_daddy_scheduler2'
+	end
+end
+
+if $ARGS[0] = 'fuckbuddy_scheduler3':
 	if npc_booty_call[$FuckBuddy[i]] = daystart:
 		booty_call_time[$FuckBuddy[i]] = ((npc_booty_call_time[$FuckBuddy[i]] * 60) + rand(0,180))
 	elseif week = npc_day_off[$FuckBuddy[i]]:
@@ -52,6 +86,18 @@ if $ARGS[0] = 'scheduler3':
 	end
 end
 
+if $ARGS[0] = 'sugar_daddy_scheduler3':
+	if npc_booty_call[$sugar_daddy[i]] = daystart:
+		booty_call_time[$sugar_daddy[i]] = ((npc_booty_call_time[$sugar_daddy[i]] * 60) + rand(0,180))
+	elseif week = npc_day_off[$sugar_daddy[i]]:
+		booty_call_time[$sugar_daddy[i]] = (600 + rand(0,720))
+	elseif week ! npc_day_off[$sugar_daddy[i]]:
+		booty_call_time[$sugar_daddy[i]] = (rand(npc_start_free_time[$sugar_daddy[i]],(npc_end_free_time[$sugar_daddy[i]] - 1)) * 60) + rand(0,180)
+	else
+		booty_call_time[$sugar_daddy[i]] = 2000
+	end
+end
+
 !!	if npc_start_free_time[$FuckBuddy[i]] = 0 or npc_day_off[$FuckBuddy[i]] = 0 or npc_end_free_time[$FuckBuddy[i]] = 0: 
 !!		$boy = $FuckBuddy[i]
 		
@@ -89,7 +135,7 @@ end
 
 if $ARGS[0] = 'SMS raiser':
 	i = 0
-	:booty_call_sms_raiser_loop
+	:fuckbuddy_sms_raiser_loop
 	if i < arrsize('$FuckBuddy'):
 		if booty_call_time[$FuckBuddy[i]] < ((hour * 60) + minut) and npc_no_booty_call[$FuckBuddy[i]] ! daystart and npc_last_booty_call[$FuckBuddy[i]] ! daystart:
 			gs 'booty_call_sms', 'start', $FuckBuddy[i]
@@ -98,14 +144,27 @@ if $ARGS[0] = 'SMS raiser':
 			booty_call_invite[$FuckBuddy[i]] = daystart
 		end
 		i += 1
-		jump 'booty_call_sms_raiser_loop'
+		jump 'fuckbuddy_sms_raiser_loop'
+	end
+	
+	i = 0
+	:sugar_daddy_sms_raiser_loop
+	if i < arrsize('$sugar_daddy'):
+		if booty_call_time[$sugar_daddy[i]] < ((hour * 60) + minut) and npc_no_booty_call[$sugar_daddy[i]] ! daystart and npc_last_booty_call[$sugar_daddy[i]] ! daystart:
+			gs 'booty_call_sms', 'start', $sugar_daddy[i]
+			booty_call_time[$sugar_daddy[i]] = 2399
+			!! this is a bit superfluous, but it makes the code run faster.
+			booty_call_invite[$sugar_daddy[i]] = daystart
+		end
+		i += 1
+		jump 'sugar_daddy_sms_raiser_loop'
 	end
 end
 
 if $ARGS[0] = 'home_links':
 	i=0
 	*nl
-	:loopBC_homes
+	: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.'' ')
 		!! ''''
@@ -113,20 +172,43 @@ if $ARGS[0] = 'home_links':
 	!!		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 'loopBC_homes'
+	if i < arrsize('$Fuckbuddy') : jump 'loopFB_homes'
+	
+	i=0
+	*nl
+	: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.'' ')
+		!! ''''
+	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
-	:loopBC_hotel
+	: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.'' ')
 		!! ''''
 	end
 	
 	i +=1
-	if i < arrsize('$Fuckbuddy') : jump 'loopBC_hotel'
+	if i < arrsize('$Fuckbuddy') : jump 'loopFB_hotel'
+	
+	i=0
+	*nl
+	: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.'' ')
+		!! ''''
+	end
+	
+	i +=1
+	if i < arrsize('$sugar_daddy') : jump 'loopSD_hotel'
 end
 
 !! booty_call_invite['B0']
@@ -400,7 +482,7 @@ end
 
 !! ------------ NPC Stat Updater ------------------------
 
-if $ARGS[0] = 'npc_stat_update':
+if $ARGS[0] = 'fb_npc_stat_update':
 	if npc_start_free_time[$FuckBuddy[i]] = 0 or npc_day_off[$FuckBuddy[i]] = 0:
 		if npc_finance[$FuckBuddy[i]] = 0:
 			if rand(1,3) = 1:
@@ -445,6 +527,51 @@ if $ARGS[0] = 'npc_stat_update':
 	end
 end
 
+if $ARGS[0] = 'sd_npc_stat_update':
+	if npc_start_free_time[$sugar_daddy[i]] = 0 or npc_day_off[$sugar_daddy[i]] = 0:
+		if npc_finance[$sugar_daddy[i]] = 0:
+			if rand(1,3) = 1:
+				npc_start_free_time[$sugar_daddy[i]] = 9
+				npc_end_free_time[$sugar_daddy[i]] = 12
+			elseif rand(1,2) = 1:
+				npc_start_free_time[$sugar_daddy[i]] = 16
+				npc_end_free_time[$sugar_daddy[i]] = 20
+			else
+				npc_start_free_time[$sugar_daddy[i]] = 20
+				npc_end_free_time[$sugar_daddy[i]] = 23
+			end
+		elseif npc_finance[$sugar_daddy[i]] = 1:
+			if rand(1,2) = 1:
+				npc_start_free_time[$sugar_daddy[i]] = 9
+				npc_end_free_time[$sugar_daddy[i]] = 12
+			else
+				npc_start_free_time[$sugar_daddy[i]] = 20
+				npc_end_free_time[$sugar_daddy[i]] = 23
+			end
+		elseif npc_finance[$sugar_daddy[i]] = 2:
+			if rand(1,2) = 1:
+				npc_start_free_time[$npclastgenerated] = 8
+				npc_end_free_time[$npclastgenerated] = 12
+				
+				npc_work_start[$npclastgenerated] = 13
+				npc_work_end[$npclastgenerated] = 21
+			else
+				npc_start_free_time[$npclastgenerated] = 18
+				npc_end_free_time[$npclastgenerated] = 22
+				
+				npc_work_start[$npclastgenerated] = 9
+				npc_work_end[$npclastgenerated] = 17
+			end
+			npc_apt_type[$sugar_daddy[i]] = 5
+			!!npc_apt_type[$npclastgenerated] = rand(5,6)
+			!! apt_type 6 is disabled until pictures are added
+			npc_occupation[$sugar_daddy[i]] = rand(14,18)
+			npc_car[$sugar_daddy[i]] = rand(0,1)
+		end
+		npc_day_off[$sugar_daddy[i]] = rand(1,7)
+	end
+end
+
 !! ------------ Legacy Backup ------------------------
 
 if $ARGS[0] = 'draw':

+ 503 - 96
locations/booty_call_sms.qsrc

@@ -34,13 +34,25 @@ if $ARGS[0] = 'start':
 		gs 'booty_call_sms', 'Add SMS2', 'pre_planned_booty_call', $ARGS[1]
 	elseif sugar_daddy_call[$ARGS[1]] = 1:
 		gs 'booty_call_sms', 'Add SMS', 'sugar_daddy_booty_call', $ARGS[1]
+		!gs 'booty_call_sms', 'Add SMS3', 'new_booty_call', $ARGS[1]
 	elseif npc_std_test[$ARGS[1]] = 1:
 		gs 'booty_call_sms', 'Add SMS', 'std_free', $ARGS[1]
 	else
 		gs 'booty_call_sms', 'Add SMS', 'default_booty_call', $ARGS[1]
+		!gs 'booty_call_sms', 'Add SMS3', 'new_booty_call', $ARGS[1]
 	end
 end
 
+
+
+
+	!!===============================================================!!
+	!!                                                               !!
+	!!                            SMSTREE                            !!
+	!!                                                               !!
+	!!===============================================================!!
+
+
 if $ARGS[0] = 'default_booty_call':
 !!	Structure:
 !!		0: boy
@@ -370,6 +382,207 @@ if $ARGS[0] = 'sugar_daddy_booty_call':
 end
 
 
+if $ARGS[0] = 'new_booty_call':
+!!	Structure:
+!!		0: boy
+!!			1: player
+!!				2: player
+!!					3: player
+!!
+!!
+
+
+	!!==============   PART 1   ==============!!
+
+	$SMSTree['0'] = 'hey <<$pcs_nickname>>'
+		$SMSTree['1'] = 'hey <<$npc_nickname[$ARGS[1]]>>'
+			$SMSTree['a2'] = 'what''s up?'
+			$SMSTree['b2'] = 'hey sexy'
+
+			!! hour > 20 or hour < 4
+			$SMSTree['c2'] = 'its late. but ive always got time for you :)'
+			$SMSTree['d2'] = 'its late. what do you want?'
+			$SMSTree['e2'] = 'its late. text me earlier next time.'
+
+			!! hour - message_received_hour >= 3
+			$SMSTree['f2'] = 'sorry'
+				$SMSTree['fa3'] = 'didn''t see your message until now'
+					$SMSTree['fa4'] = 'whatsup?'
+				$SMSTree['fb3'] = 'i was doing something'
+					$SMSTree['fb4'] = $SMSTree['fa3']
+				$SMSTree['fc3'] = 'i was at the gym'
+					$SMSTree['fc4'] = $SMSTree['fa3']
+				$SMSTree['fd3'] = 'i was in class'
+					$SMSTree['fd4'] = $SMSTree['fa3']
+
+
+	!!==============   PART 2   ==============!!
+
+	if 0:
+		! Date invite
+
+	elseif $npc_rel_type[$ARGS[1]] = 'sugar_daddy':
+		$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':
+		$SMSTree['10'] = 'ive been thinking about you'
+				!! player response 1 option 1
+			$SMSTree['a11'] = 'what were you thinking about?'
+					!! boy response 1
+				if npc_finance[$ARGS[1]] = 2 and func('homes_properties_attr', 'get_property_attribute', '$town', $home['current']) ! 'city' and npc_residence[$ARGS[1]] >= 3:
+					$SMSTree['a12'] = 'i booked a hotel room in Pav. why dont you come by?'
+				else
+					if $npc_fav_pos[$ARGS[1]] = 'blowjob' and rand(0, 2) = 0:
+						$SMSTree['a12'] = 'your mouth around my cock'
+					elseif npc_know_virgin[$ARGS[1]] ! 1:
+						if $npc_cum_pref[$ARGS[1]] = 'creampie' and (npc_condom_conscious[$ARGS[1]] = 0 or npc_bareback[$ARGS[1]] = 1) and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'your pussy filled with my cum'
+						elseif npc_sex_speed[$ARGS[1]] = 3 and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'fucking you bowlegged'
+						elseif $npc_cum_pref[$ARGS[1]] = 'facial' and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'your pretty face covered in my cum'
+						elseif $npc_cum_pref[$ARGS[1]] = 'mouth' and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'watching you swallow my cum'
+						elseif $npc_cum_pref[$ARGS[1]] = 'tits' and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'my cum all over your tits'
+						elseif $npc_fav_pos[$ARGS[1]] = 'doggy' and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'pounding you on all fours'
+						elseif $npc_fav_pos[$ARGS[1]] = 'cowgirl' and rand(0, 2) = 0:
+							$SMSTree['a12'] = 'you riding my cock like crazy'
+						else
+							if rand(0, 1) = 0:
+								$SMSTree['a12'] = 'you naked on my bed'
+							else
+								$SMSTree['a12'] = 'want to come over and have some fun?'
+							end
+						end
+					end
+				end
+
+				!! player response 1 option 2
+			$SMSTree['b11'] = 'me too'
+					!! boy response 2
+				if npc_finance[$ARGS[1]] = 2 and func('homes_properties_attr', 'get_property_attribute', '$town', $home['current']) ! 'city' and npc_residence[$ARGS[1]] >= 3: 
+					$SMSTree['b12'] = 'i booked a hotel room in Pav. why dont you come by?'
+				else
+					if $npc_fav_pos[$ARGS[1]] = 'blowjob' and rand(0, 2) = 0:
+						$SMSTree['b12'] = 'i want to feel your mouth around my cock'
+					elseif npc_know_virgin[$ARGS[1]] ! 1:
+						if $npc_cum_pref[$ARGS[1]] = 'creampie' and (npc_condom_conscious[$ARGS[1]] = 0 or npc_bareback[$ARGS[1]] = 1) and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'i want to pump you full of cum'
+						elseif npc_sex_speed[$ARGS[1]] = 3 and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'come over i want to hear you screaming my name'
+						elseif $npc_cum_pref[$ARGS[1]] = 'facial' and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'i want to cum all over your face'
+						elseif $npc_cum_pref[$ARGS[1]] = 'mouth' and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'i want to watch you swallow my cum'
+						elseif $npc_cum_pref[$ARGS[1]] = 'tits' and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'let me glaze your tits with my cum'
+						elseif $npc_fav_pos[$ARGS[1]] = 'doggy' and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'i want to pound you on all fours'
+						elseif $npc_fav_pos[$ARGS[1]] = 'cowgirl' and rand(0, 2) = 0:
+							$SMSTree['b12'] = 'i want you to ride my cock like theres no tomorrow'
+						else
+							if rand(0, 1) = 0:
+								$SMSTree['b12'] = 'lets fuck like bunnies today'
+							else
+							end
+						end
+					end
+				end
+
+	elseif strpos('boyfriend|girlfriend|husband|wife', $npc_rel_type[$ARGS[1]]) > 0:
+		if 0:
+			!living with husband/wife
+			if npc_dirty_lover[$ARGS[1]] = 1:
+				$SMSTree['10'] = 'come home'
+					$SMSTree['11'] = 'i want to fuck you senseless'
+			elseif npc_sensual_lover[$ARGS[1]] = 1:
+				$SMSTree['10'] = 'are you coming home soon'
+					$SMSTree['11'] = 'lets make love'
+			else
+				$SMSTree['10'] = 'are you coming home soon'
+					$SMSTree['11'] = 'lets get naughty'
+			end
+		else
+			if npc_dirty_lover[$ARGS[1]] = 1:
+				$SMSTree['10'] = 'come over'
+					$SMSTree['11'] = 'i want to fuck you senseless'
+			elseif npc_sensual_lover[$ARGS[1]] = 1:
+				$SMSTree['10'] = 'i want to see you'
+					$SMSTree['11'] = 'lets make love'
+			else
+				$SMSTree['10'] = 'you should come over'
+					$SMSTree['11'] = 'lets get naughty'
+			end
+		end
+	end
+
+
+
+	!!==============   PART 3   ==============!!
+
+	!! Final Choice
+			!! player response 2 option 1
+	if hour < 21:
+		$SMSTree['a20'] = 'sorry, i cant. i have stuff to do'
+	else
+		$SMSTree['a20'] = 'its late. text me sooner if you want me to come over.'
+	end
+				!! boy response 2 option 1
+			$SMSTree['a21'] = 'shit, maybe next time then'
+
+			!! player response 2 option 2
+		$SMSTree['b20'] = 'ill come right now ;)'
+				!! boy response 2 option 1
+			if npc_humor[$ARGS[1]] <= 1 and rand(0, 1) = 0:
+				$SMSTRee['b21'] = 'im already hard'
+			elseif npc_humor[$ARGS[1]] = 2 and rand(0, 1) = 0:
+				if rand(0, 1) = 0:
+					$SMSTRee['b21'] = 'in the street?? damn! keep it in your pants till you get here!'
+				else
+					$SMSTRee['b21'] = 'as long as you make me cum later'
+				end
+			elseif npc_humor[$ARGS[1]] = 3 and rand(0, 1) = 0:
+				$SMSTRee['b21'] = 'phrasing'
+			else
+				$SMSTRee['b21'] = 'cant wait'
+			end
+	
+	$SMSTree['c20'] = 'its kind of late'
+		$SMSTree['c21'] = 'sorry'
+			$SMSTree['c22'] = 'maybe another time?'
+end
+
+if $ARGS[0] = 'new_sexting':
+	$SMSTree['0'] = 'send me a pic then?'
+		$SMSTree['a1'] = 'refuse'
+			$SMSTree['a2'] = 'no'
+		$SMSTree['b1'] = 'next time tiger'
+		$SMSTree['c1'] = 'im not at home!'
+			if npc_dirty_lover[$ARGS[1]] = 1:
+				if rand(0, 1) = 0:
+					$SMSTree['c2'] = 'hot'
+				else
+					$SMSTree['c2'] = 'so?'
+				end
+			else
+				$SMSTree['c2'] = 'ill use my imagination then'
+			end
+		$SMSTree['s1'] = 'Send a selfie from your gallery'
+end
+
+
+
+
+	!!===============================================================!!
+	!!                                                               !!
+	!!                           BUILD SMS                           !!
+	!!                                                               !!
+	!!===============================================================!!
+
+
 !Does not work with pre-planned?
 if $ARGS[0] = 'Add SMS':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
@@ -387,183 +600,283 @@ if $ARGS[0] = 'SMS_Base':
 	gs 'SMStext_builder', 'start'
 		gs 'SMStext_builder', 'send', $SMSTree['1']
 		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
+
+		wait 250
 
 		gs 'SMStext_builder', 'receive', $SMSTree['2']
-		gs 'SMStext_builder', 'add_reply', $SMSTree['a3'], 'booty_call_sms', 'Choice_a', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'add_reply', $SMSTree['b3'], 'booty_call_sms', 'Choice_b', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['a3'], 'booty_call_sms', 'bc_choice1', $ARGS[1], $ARGS[2], 'a'
+		gs 'SMStext_builder', 'add_reply', $SMSTree['b3'], 'booty_call_sms', 'bc_choice1', $ARGS[1], $ARGS[2], 'b'
 		gs 'SMStext_builder', 'show_sms', ARGS[3]
 	gs 'SMStext_builder', 'end'
 end
 
-
-if $ARGS[0] = 'Choice_a':
+if $ARGS[0] = 'bc_choice1':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['a3']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
-
-		gs 'SMStext_builder', 'receive', $SMSTree['a4']
-		gs 'SMStext_builder', 'add_reply', $SMSTree['aa5'], 'booty_call_sms', 'Choice_aa', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'add_reply', $SMSTree['ab5'], 'booty_call_sms', 'Choice_ab', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-	gs 'SMStext_builder', 'end'
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3] + '3']
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
 
+		wait 250
 
-elseif $ARGS[0] = 'Choice_aa':
-	!! booty call is declined
+		gs 'SMStext_builder', 'receive', $SMSTree[$ARGS[3] + '4']
+		gs 'SMStext_builder', 'add_reply', $SMSTree[$ARGS[3] + 'a5'], 'booty_call_sms', 'bc_choice2', $ARGS[1], $ARGS[2], $ARGS[3] + 'a', 'decline_booty_call'
+		gs 'SMStext_builder', 'add_reply', $SMSTree[$ARGS[3] + 'b5'], 'booty_call_sms', 'bc_choice2', $ARGS[1], $ARGS[2], $ARGS[3] + 'b', 'accept_booty_call'
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
+	gs 'SMStext_builder', 'end'
 
+elseif $ARGS[0] = 'bc_choice2':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['aa5']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3] + '5']
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
 
-		gs 'SMStext_builder', 'receive', $SMSTree['aa6']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree[$ARGS[3] + '6']
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
 	gs 'SMStext_builder', 'end'
 
-	gs 'booty_call_sms', 'decline_booty_call', $ARGS[2]
+	gs 'booty_call_sms', $ARGS[4], $ARGS[2], ARGS[5]
+end
 
-elseif $ARGS[0] = 'Choice_ab':
-	!! booty call is accepted
 
-	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
-	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['ab5']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
-		wait 500
 
-		gs 'SMStext_builder', 'receive', $SMSTree['ab6']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-	gs 'SMStext_builder', 'end'
 
-	gs 'booty_call_sms', 'accept_booty_call', $ARGS[2]
+! For pre-planned
+if $ARGS[0] = 'Add SMS2':
+	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['a1'], 'booty_call_sms', 'Choice2_a', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['b1'], 'booty_call_sms', 'Choice2_b', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_sms', $ARGS[2]
+	gs 'SMStext_builder', 'end'
 end
 
 
-
-if $ARGS[0] = 'Choice_b':
+if $ARGS[0] = 'Choice2_a':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['b3']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
-
-		gs 'SMStext_builder', 'receive', $SMSTree['b4']
-		gs 'SMStext_builder', 'add_reply', $SMSTree['ba5'], 'booty_call_sms', 'Choice_ba', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'add_reply', $SMSTree['bb5'], 'booty_call_sms', 'Choice_bb', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'send', $SMSTree['a1']
 		gs 'SMStext_builder', 'show_sms', ARGS[3]
 	gs 'SMStext_builder', 'end'
+end
 
 
-elseif $ARGS[0] = 'Choice_ba':
-	!! booty call is declined
 
+if $ARGS[0] = 'Choice2_b':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['ba5']
+		gs 'SMStext_builder', 'send', $SMSTree['b1']
 		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
 
-		gs 'SMStext_builder', 'receive', $SMSTree['ba6']
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree['b2']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['ba3'], 'booty_call_sms', 'Choice2_b2', $ARGS[1], $ARGS[2], 'ba', 'decline_booty_call'
+		gs 'SMStext_builder', 'add_reply', $SMSTree['bb3'], 'booty_call_sms', 'Choice2_b2', $ARGS[1], $ARGS[2], 'bb', 'accept_booty_call'
 		gs 'SMStext_builder', 'show_sms', ARGS[3]
 	gs 'SMStext_builder', 'end'
 
-	gs 'booty_call_sms', 'decline_booty_call', $ARGS[2]
-
-elseif $ARGS[0] = 'Choice_bb':
-	!! booty call is accepted
+elseif $ARGS[0] = 'Choice2_b2':
+	!! booty call is declined
 
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['bb5']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3] + '3']
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
 
-		gs 'SMStext_builder', 'receive', $SMSTree['bb6']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree[$ARGS[3] + '4']
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
 	gs 'SMStext_builder', 'end'
 
-	gs 'booty_call_sms', 'accept_booty_call', $ARGS[2]
+	gs 'booty_call_sms', $ARGS[4], $ARGS[2], ARGS[5]
 end
 
 
 
 
-! For pre-planned
-if $ARGS[0] = 'Add SMS2':
+	!!=====================================================================!!
+	!!                                                                     !!
+	!!                           NEW BOOTY CALLS                           !!
+	!!                                                                     !!
+	!!=====================================================================!!
+
+
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+if $ARGS[0] = 'Add SMS3':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
 		gs 'SMStext_builder', 'receive', $SMSTree['0']
-		gs 'SMStext_builder', 'add_reply', $SMSTree['a1'], 'booty_call_sms', 'Choice2_a', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'add_reply', $SMSTree['b1'], 'booty_call_sms', 'Choice2_b', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['1'], 'booty_call_sms', 'new_routing1', $ARGS[1], $ARGS[2], '<<totminut>>'
 		gs 'SMStext_builder', 'add_sms', $ARGS[2]
 	gs 'SMStext_builder', 'end'
 end
 
-
-if $ARGS[0] = 'Choice2_a':
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+! $ARGS[3] = totminut string
+!  ARGS[4] = smsID
+if $ARGS[0] = 'new_routing1':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['a1']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		if totminut >= val($ARGS[3]) + 180:
+			gs 'SMStext_builder', 'add_reply', $SMSTree['f2'], 'booty_call_sms', 'new_delayed', '1', $ARGS[1], $ARGS[2]
+		elseif hour > 20 or hour < 4:
+			gs 'SMStext_builder', 'add_reply', $SMSTree['c2'], 'booty_call_sms', 'new_routing2', $ARGS[1], $ARGS[2], 'c2', 'npc_rel[''''<<$ARGS[2]>>''''] += 1'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['d2'], 'booty_call_sms', 'new_routing2', $ARGS[1], $ARGS[2], 'd2', 'npc_rel[''''<<$ARGS[2]>>''''] -= 2'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['e2'], 'booty_call_sms', 'end', $ARGS[1], $ARGS[2], 'e2', 'decline_booty_call', ''
+		else
+			gs 'SMStext_builder', 'add_reply', $SMSTree['a2'], 'booty_call_sms', 'new_routing2', $ARGS[1], $ARGS[2], 'a2', ''
+			gs 'SMStext_builder', 'add_reply', $SMSTree['b2'], 'booty_call_sms', 'new_routing2', $ARGS[1], $ARGS[2], 'b2', ''
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
 	gs 'SMStext_builder', 'end'
 end
 
+! $ARGS[1] = '1' or '2'
+! $ARGS[2] = SMSTree argloc
+! $ARGS[3] = npc_code
+!  ARGS[4] = smsID
+if $ARGS[0] = 'new_delayed':
+	gs 'booty_call_sms', $ARGS[2], $ARGS[3]
+	gs 'SMStext_builder', 'start'
+		if $ARGS[1] = '1':
+			gs 'SMStext_builder', 'send', $SMSTree['f2']
+			gs 'SMStext_builder', 'add_reply', $SMSTree['f3'], 'booty_call_sms', 'new_delayed', '2', $ARGS[2], $ARGS[3]
+		elseif $ARGS[2] = '2':
+			gs 'SMStext_builder', 'send', $SMSTree['f3']
+			gs 'SMStext_builder', 'add_reply', $SMSTree['fa4'], 'booty_call_sms', 'new_routing2', $ARGS[2], $ARGS[3], 'fa4', ''
+			gs 'SMStext_builder', 'add_reply', $SMSTree['fb4'], 'booty_call_sms', 'new_routing2', $ARGS[2], $ARGS[3], 'fb4', ''
+			gs 'SMStext_builder', 'add_reply', $SMSTree['fc4'], 'booty_call_sms', 'new_routing2', $ARGS[2], $ARGS[3], 'fc4', ''
+			gs 'SMStext_builder', 'add_reply', $SMSTree['fd4'], 'booty_call_sms', 'new_routing2', $ARGS[2], $ARGS[3], 'fd4', ''
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
+	gs 'SMStext_builder', 'end'
+end
 
-
-if $ARGS[0] = 'Choice2_b':
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+! $ARGS[3] = code reply send
+! $ARGS[4] = dynamic code to be executed
+!  ARGS[5] = smsID
+if $ARGS[0] = 'new_routing2':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	dynamic $ARGS[4]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['b1']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3]]
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
 
-		gs 'SMStext_builder', 'receive', $SMSTree['b2']
-		gs 'SMStext_builder', 'add_reply', $SMSTree['ba3'], 'booty_call_sms', 'Choice2_ba', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'add_reply', $SMSTree['bb3'], 'booty_call_sms', 'Choice2_bb', $ARGS[1], $ARGS[2]
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-	gs 'SMStext_builder', 'end'
+		wait 250
 
+		gs 'SMStext_builder', 'receive', $SMSTree['10']
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
 
-elseif $ARGS[0] = 'Choice2_ba':
-	!! booty call is declined
+		if $npc_rel_type[$ARGS[2]] = 'casual_date' or $npc_rel_type[$ARGS[2]] = 'fuckbuddy':
+			gs 'SMStext_builder', 'add_reply', $SMSTree['a11'], 'booty_call_sms', 'new_bootycall', $ARGS[1], $ARGS[2], 'a'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['b11'], 'booty_call_sms', 'new_bootycall', $ARGS[1], $ARGS[2], 'b'
+		else
+			wait 250
+			gs 'SMStext_builder', 'receive', $SMSTree['11']
+
+			if 1:
+				! not living together
+				! sugar daddy, or boy/girlfriend, or husband/wife (not living together) or date invite
+				gs 'SMStext_builder', 'add_reply', $SMSTree['a20'], 'booty_call_sms', 'new_routing3', $ARGS[1], $ARGS[2], 'a', 'decline_booty_call', 'npc_rel[''''<<$ARGS[2]>>''''] -= 2'
+				gs 'SMStext_builder', 'add_reply', $SMSTree['b20'], 'booty_call_sms', 'new_routing3', $ARGS[1], $ARGS[2], 'b', 'accept_booty_call', ''
+				if hour > 20 or hour <= 4: gs 'SMStext_builder', 'add_reply', $SMSTree['c20'], 'booty_call_sms', 'late_apology', '1', $ARGS[1], $ARGS[2], 'c20'
+			end
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
+	gs 'SMStext_builder', 'end'
+	if 0:
+		! living together
+		if rand(0, 1) = 0: wait 250 & gs 'booty_call_sms', 'sexting1', 'new_sexting', $ARGS[1], ARGS[2]
+	end
+end
 
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+! $ARGS[3] = code reply send
+!  ARGS[4] = smsID
+if $ARGS[0] = 'new_bootycall':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['ba3']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3] + '11']
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
 
-		gs 'SMStext_builder', 'receive', $SMSTree['ba4']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree[$ARGS[3] + '12']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['a20'], 'booty_call_sms', 'new_routing3', $ARGS[1], $ARGS[2], 'a', 'decline_booty_call', ''
+		gs 'SMStext_builder', 'add_reply', $SMSTree['b20'], 'booty_call_sms', 'new_routing3', $ARGS[1], $ARGS[2], 'b', 'accept_booty_call', ''
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
 	gs 'SMStext_builder', 'end'
+end
 
-	gs 'booty_call_sms', 'decline_booty_call', $ARGS[2]
+! $ARGS[1] = '1' or '2'
+! $ARGS[2] = SMSTree argloc
+! $ARGS[3] = npc_code
+! $ARGS[4] = code reply send
+!  ARGS[5] = smsID
+if $ARGS[0] = 'late apology':
+	gs 'booty_call_sms', $ARGS[2], $ARGS[3]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[4]]
 
-elseif $ARGS[0] = 'Choice2_bb':
-	!! booty call is accepted
+		if $ARGS[1] = '1':
+			gs 'SMStext_builder', 'add_reply', $SMSTree['c22'], 'booty_call_sms', 'late_apology', '2', $ARGS[2], $ARGS[3], 'c22'
+		elseif $ARGS[1] = '2':
+			gs 'SMStext_builder', 'add_reply', $SMSTree['c23'], 'booty_call_sms', 'new_routing3', $ARGS[2], $ARGS[3], 'c23'
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[5]
+	gs 'SMStext_builder', 'end'
+end
 
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+! $ARGS[3] = code reply send
+! $ARGS[4] = 'accept_booty_call' or 'decline_booty_call'
+! $ARGS[5] = dynamic code to be executed
+!  ARGS[6] = smsID
+if $ARGS[0] = 'new_routing3':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
-
+	dynamic $ARGS[5]
 	gs 'SMStext_builder', 'start'
-		gs 'SMStext_builder', 'send', $SMSTree['bb3']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-		wait 500
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3] + '20']
+		gs 'SMStext_builder', 'show_sms', ARGS[6]
 
-		gs 'SMStext_builder', 'receive', $SMSTree['bb4']
-		gs 'SMStext_builder', 'show_sms', ARGS[3]
-	gs 'SMStext_builder', 'end'
+		wait 250
 
-	gs 'booty_call_sms', 'accept_booty_call', $ARGS[2]
+		gs 'SMStext_builder', 'receive', $SMSTree[$ARGS[3] + '21']
+		gs 'SMStext_builder', 'show_sms', ARGS[6]
+	gs 'SMStext_builder', 'end'
+	gs 'booty_call_sms', $ARGS[4], $ARGS[2], ARGS[6]
 end
 
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+! $ARGS[3] = code reply send
+! $ARGS[4] = 'accept_booty_call' or 'decline_booty_call'
+! $ARGS[5] = dynamic code to be executed
+!  ARGS[6] = smsID
+if $ARGS[0] = 'end':
+	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	dynamic $ARGS[5]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'send', $SMSTree[$ARGS[3]]
+		gs 'SMStext_builder', 'show_sms', ARGS[6]
+	gs 'SMStext_builder', 'end'
+	gs 'booty_call_sms', $ARGS[4], $ARGS[2], ARGS[6]
+end
 
-
-
+! $ARGS[1] = npc_code
+!  ARGS[2] = smsID
 if $ARGS[0] = 'accept_booty_call':
 	booty_call_invite[$ARGS[1]] = daystart
 	if npc_finance[$ARGS[1]] = 2 and npc_residence[$ARGS[1]] >= 3:
@@ -574,15 +887,109 @@ if $ARGS[0] = 'accept_booty_call':
 		end
 	end
 
+! $ARGS[1] = npc_code
+!  ARGS[2] = smsID
 elseif $ARGS[0] = 'decline_booty_call':
 	if sugar_daddy_call[$ARGS[1]] = 1:
 		npc_rel[$ARGS[1]] -= 2
 		sugar_daddy_call[$ARGS[1]] = 0
 	end
+
+	if rand(0, 1) = 0: wait 250 & gs 'booty_call_sms', 'sexting1', 'new_sexting', $ARGS[1], ARGS[2]
+end
+
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+!  ARGS[3] = smsID
+if $ARGS[0] = 'sexting1':
+	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['a1'], 'booty_call_sms', 'sexting_refuse', $ARGS[1], $ARGS[2], 'refuse'
+		gs 'SMStext_builder', 'add_reply', $SMSTree['b1'], 'booty_call_sms', 'sexting_refuse', $ARGS[1], $ARGS[2], 'next'
+		if strpos($location_type, 'outdoors') > 0 or strpos($location_type, 'public') > 0:
+			gs 'SMStext_builder', 'add_reply', $SMSTree['c1'], 'booty_call_sms', 'sexting_public', $ARGS[1], $ARGS[2]
+		end
+		gs 'SMStext_builder', 'send_selfie', $SMSTree['s1'], 'n|b|sh|ft|fa|fp', 'booty_call_sms', 'sexting_send', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
+end
+
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+!  ARGS[3] = smsID
+if $ARGS[0] = 'sexting_public':
+	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'send', $SMSTree['c1']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+
+		wait 250
+
+		gs 'SMStext_builder', 'receive', $SMSTree['c2']
+		if npc_dirty_lover[$ARGS[2]] = 1:
+			gs 'SMStext_builder', 'add_reply', $SMSTree['a1'], 'booty_call_sms', 'sexting_refuse', $ARGS[1], $ARGS[2], 'refuse'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['b1'], 'booty_call_sms', 'sexting_refuse', $ARGS[1], $ARGS[2], 'next'
+			gs 'SMStext_builder', 'send_selfie', $SMSTree['s1'], 'n|b|sh|ft|fa|fp', 'booty_call_sms', 'sexting_send', $ARGS[1], $ARGS[2]
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 end
 
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+! $ARGS[3] = 'refuse' or 'next'
+!  ARGS[4] = smsID
+if $ARGS[0] = 'sexting_refuse':
+	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	gs 'SMStext_builder', 'start'
+		if $ARGS[3] = 'refuse':
+			gs 'SMStext_builder', 'send', $SMSTree['a2']
+			npc_rel[$ARGS[2]] -= 1
+		else
+			gs 'SMStext_builder', 'send', $SMSTree['b1']
+		end
+		gs 'SMStext_builder', 'show_sms', ARGS[4]
+	gs 'SMStext_builder', 'end'
+end
+
+! $ARGS[1] = SMSTree argloc
+! $ARGS[2] = npc_code
+!  ARGS[3] = smsID
+! $ARGS[4] = image path
+! $ARGS[5] = location
+! $ARGS[6] = state of dress (clothed, nude, etc)
+!  ARGS[7] = is the index of the location in $selfieLoc[] and $selfieFilePrefix
+!  ARGS[8] = the selfie number
+if $ARGS[0] = 'sexting_send':
+	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'send_img', $ARGS[4]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+
+		wait 250
+
+		gs 'SMStext_builder', 'receive', 'damn!!'
+		npc_rel[$ARGS[2]] += 3
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+
+		wait 250
+
+		gs 'SMStext_builder', 'send', ':)'
+		! Add responses based on the result??
+		!{
+		if $ARGS[6] = 'clothed':
+		elseif $ARGS[6] = 'nude' or $ARGS[6] = 'pussyflash':
+		end
+		}
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
+end
+
+
+
 
-if $ARGS[0] ! 'default_booty_call' and $ARGS[0] ! 'pre_planned_booty_call' and $ARGS[0] ! 'std_free' and $ARGS[0] ! 'sugar_daddy_booty_call':
+if $ARGS[0] ! 'default_booty_call' and $ARGS[0] ! 'pre_planned_booty_call' and $ARGS[0] ! 'std_free' and $ARGS[0] ! 'sugar_daddy_booty_call' and $ARGS[0] ! 'new_booty_call' and $ARGS[0] ! 'new_sexting':
 	killvar '$SMSTree'
 end
 

+ 167 - 107
locations/boy.qsrc → locations/boygirl.qsrc

@@ -1,91 +1,133 @@
-# boy
+# boygirl
 
 !!'<<$boydesc>> <<$boybody>> <<$boybod>> <<$boyface>>. <<$boydesc>> <<$boyClo>>'
+
+!! For a boy:	gs 'boygirl', 0, 'A Male',  age, region
+!! For a girl:	gs 'boygirl', 1, 'A Woman', age, region
 if $ARGS[0] = '':
-	!randomly age
-	boyage = rand(18,35)
+	!! Random age
+	if ARGS[2] = 0: ARGS[2] = rand(18, 35)
+
+	!! Random Name
+	if $ARGS[1] = '':
+		if ARGS[2] <= 25:
+			$ARGS[1] = iif(ARGS[0] = 0, 'A Male', 'A Girl')
+		else
+			$ARGS[1] = iif(ARGS[0] = 0, 'A Male', 'A Woman')
+		end
+	end
+
+	!! Determine region
+	if ARGS[3] = 0:
+		if $region = 'pav':
+			ARGS[3] = 1
+		elseif $region = 'city':
+			ARGS[3] = rand(3, 4)
+		end
+	end
 
 	!! {The NPC generator is now the primary system of creating new characters.}
-	gs 'npcgeneratec', 0, 'A Male', boyage
+	gs 'npcgeneratec', ARGS[0], $ARGS[1], ARGS[2], ARGS[3]
 	gs 'boyStat', $npclastgenerated
-	gs 'boy', 'details'
+	gs 'boygirl', 'details'
+end
+
+if $ARGS[0] = 'boy' or $ARGS[0] = 'm':
+	gs 'boygirl', 0, $ARGS[1], ARGS[2], ARGS[3]
+elseif $ARGS[0] = 'girl' or $ARGS[0] = 'f':
+	gs 'boygirl', 1, $ARGS[1], ARGS[2], ARGS[3]
 end
 
 if $ARGS[0] = 'details':
 	!Select Photos
-
 	loverGenderTmp = npc_gender[$npclastgenerated]
 	silaVag = npc_sexskill[$npclastgenerated]
 	$npc_usedname[$npclastgenerated] = $npc_firstname[$npclastgenerated]
 	$boydesc = $npc_usedname[$npclastgenerated]
-
 	hairBoy = npc_haircol[$npclastgenerated]
 	titBoy = npc_bust[$npclastgenerated]
 	vneshBoy = npc_apprnc[$npclastgenerated]
-
 	!!appearance
-	gs 'boy', 'set_boybody'
+	gs 'boygirl', 'set_boybody'
 
 	!!Variables responsible for any features like
 	!!security, is responsible for the money and requirements
-	gs 'boy', 'set_finance'
-
-	gs 'boy', 'set_preferences'
-end
+	gs 'boygirl', 'set_finance'
 
-! set_unique_pic is depricated
-if $ARGS[0] = 'set_unique_pic':
-	!! boys 1-30, girlfriends 31-60
-	:boydetailsloop
-		lover_picrand[$npclastgenerated] =  rand(1, 30)
-	if lover_picrand[$npclastgenerated] = lover_picture[0] or lover_picrand[$npclastgenerated] = lover_picture[1] or lover_picrand[$npclastgenerated] = lover_picture[2]: jump 'boydetailsloop'
+	gs 'boygirl', 'set_preferences'
 end
 
 
 if $ARGS[0] = 'set_boybody':
 	boybodyrand = rand(1, 3)
-
-	if boybodyrand = 1: 
-		$boybody = 'tall'
-		$boybody_pref = 'a tall'
-	elseif boybodyrand = 2: 
-		$boybody = 'average'
-		$boybody_pref = 'an average'
-	elseif boybodyrand = 3: 
+	if boybodyrand = 1:
 		$boybody = 'short'
 		$boybody_pref = 'a short'
+	elseif boybodyrand = 2:
+		$boybody = 'average'
+		$boybody_pref = 'an average'
+	else
+		$boybody = 'tall'
+		$boybody_pref = 'a tall'
 	end
 
 	boybodrand = rand(1, 4)
-
-	if boybodrand = 1: 
-		$boybod = 'thin'
-		$boybod_pref = 'a thin'
-	elseif boybodrand = 2: 
-		$boybod = 'athletic'
-		$boybod_pref = 'an athletic'
-	elseif boybodrand = 3: 
-		$boybod = 'chunky'
-		$boybod_pref = 'a chunky'
-	elseif boybodrand = 4: 
-		$boybod = 'fat'
-		$boybod_pref = 'a fat'
-	end
-	
 	boyfacerand = rand(1, 3)
-	if boyfacerand = 1: 
-		$boyface = 'black'
-	elseif boyfacerand = 2:
-		$boyface = 'brown'
-	else 
-		$boyface = 'blond'
+
+	if npc_gender[$npclastgenerated] = 0:
+		if boybodrand = 1:
+			$boybod = 'thin'
+			$boybod_pref = 'a thin'
+		elseif boybodrand = 2:
+			$boybod = 'athletic'
+			$boybod_pref = 'an athletic'
+		elseif boybodrand = 3:
+			$boybod = 'chunky'
+			$boybod_pref = 'a chunky'
+		else
+			$boybod = 'fat'
+			$boybod_pref = 'a fat'
+		end
+
+		if boyfacerand = 1: 
+			$boyface = 'black'
+		elseif boyfacerand = 2:
+			$boyface = 'brown'
+		else 
+			$boyface = 'blond'
+		end
+
+	else
+		if boybodrand = 1 and boybodyrand = 1:
+			$boybod = 'petite'
+			$boybod_pref = 'a petite'
+		elseif boybodrand = 1 and boybodyrand = 2:
+			$boybod = 'slender'
+			$boybod_pref = 'a slender'
+		elseif boybodrand = 2:
+			$boybod = 'toned'
+			$boybod_pref = 'a toned'
+		elseif boybodrand = 3:
+			$boybod = 'average'
+			$boybod_pref = 'an average'
+		else
+			$boybod = 'chubby'
+			$boybod_pref = 'a chubby'
+		end
+
+		if boyfacerand = 1: 
+			$boyface = 'black'
+		elseif boyfacerand = 2:
+			$boyface = 'brunette'
+		else 
+			$boyface = 'blond'
+		end
 	end
 end
 
 if $ARGS[0] = 'set_finance':
 	harakBoy = rand(0, 2)
 	finance = npc_finance[$npclastgenerated]
-
 	if npc_finance[$npclastgenerated] = 0:
 		!!Gopnik beggar or a hard worker
 		!!check in appearance Primary
@@ -109,7 +151,7 @@ if $ARGS[0] = 'set_finance':
 			npc_apprnc[$npclastgenerated] = rand(0, 32)
 		end
 
-		$boyClo = 'wearing jeans and a sweater.'
+		$boyClo = iif(npc_gender[$npclastgenerated] = 0, 'wearing jeans and a sweater.', 'wearing jeans and a blouse.')
 	elseif npc_finance[$npclastgenerated] = 2:
 		!!middle_peasant
 		!!check in appearance
@@ -121,67 +163,71 @@ if $ARGS[0] = 'set_finance':
 			npc_apprnc[$npclastgenerated] = rand(32, 40)
 		end
 
-		$boyClo = 'wearing an expensive suit.'
+		$boyClo = iif(npc_gender[$npclastgenerated] = 0, 'wearing an expensive suit.', 'wearing an expensive dress.')
 	end
 end
 
 
+
 if $ARGS[0] = 'set_preferences':
 	!!requirements of the figure, chest size, hair color.
 	!!0 - ass less 80, 1 back from 80 prior_to 100, 2 ass over 100
 	figurBoy = rand(0, 2)
 
 	!character 0 - soft, 1 - norm,  2 - aggressor
-	if rand(0, 100) < 80:
+	temp_rand = rand(0, 100)
+	if temp_rand < 80:
+		izvrat = 0
+	elseif temp_rand < 90 and npc_gender[$npclastgenerated] = 1:
 		izvrat = 0
 	else
 		izvrat = 1
 	end
 
-	!! trying to make the preference section 
+	!! trying to make the preference section
 	!! Variables here are clotTypePrefTmp, clotQualPrefTmp, clotTopPrefTmp, bottShorPrefTmp, clotThinPrefTmp, bimbPrefTmp, pierPrefTmp, tattPrefTmp, lipsPrefTmp, bodyPrefTmp, makePrefTmp, IQPrefTmp.
 
-
 	!!This is for clothing type preference
 	!! If you notice how rare it is to get a preference that is intentional
 	!!0 - none, 1 - cheap, 2 - average, 3 - formal, 4 - fetish.
 	clotTypePrefTmp = 0
 	if rand(0, 4) = 4:
-		if npc_finance[$npclastgenerated] = 0:
-			clotTypePrefTmp = rand(1,2)
-			if rand(0, 1) = 1 and izvrat = 1: clotTypePrefTmp = 4
+		if izvrat = 1 and rand(0, 1 + npc_finance[$npclastgenerated] mod 2) = 0:
+			clotTypePrefTmp = 4
+		elseif npc_finance[$npclastgenerated] = 0:
+			clotTypePrefTmp = rand(1, 2)
 		elseif npc_finance[$npclastgenerated] = 1:
-			clotTypePrefTmp = rand(1,3)
-			if rand(0, 2) = 2 and izvrat = 1: clotTypePrefTmp = 4
+			clotTypePrefTmp = rand(1, 3)
 		elseif npc_finance[$npclastgenerated] = 2:
-			clotTypePrefTmp = rand(2,3)
-			if rand(0, 1) = 1 and izvrat = 1: clotTypePrefTmp = 4
+			clotTypePrefTmp = rand(2, 3)
 		end
 	end
 
 
+
 	!!This is for the quality of clothing
 	!! 0 - no preference, 1 - 1 to 4 units cheap to average (Locked if formal chosen), 2 - 5 to 7 units expensive to ballroom quality (Locked if fetish is chosen)
 	clotQualPrefTmp = 0
-	if rand(0, 5) = 5:
+	if rand(0, 5) = 0:
 		if npc_finance[$npclastgenerated] = 0:
 			clotQualPrefTmp = 1
 		elseif npc_finance[$npclastgenerated] = 1:
 			clotQualPrefTmp = rand(1, 2)
-			randchan = rand(0, 1)
-			if randchan = 0 and clotTypePrefTmp ! 3:
+			temp_rand = rand(0, 1)
+			if temp_rand = 0 and clotTypePrefTmp ! 3:
 				clotQualPrefTmp = 1
-			elseif randchan = 1 and clotTypePrefTmp ! 1:
+			elseif temp_rand = 1 and clotTypePrefTmp ! 1:
 				clotQualPrefTmp = 2
 			end
 		elseif npc_finance[$npclastgenerated] = 2:
-			randchan = rand(0, 2)
-			if randchan = 2 and clotTypePrefTmp ! 1:
+			temp_rand = rand(0, 2)
+			if temp_rand = 2 and clotTypePrefTmp ! 1:
 				clotQualPrefTmp = 2
 			end
 		end
 	end
 
+
 	!!This is for the clothing top cut for the clothing
 
 
@@ -194,56 +240,59 @@ if $ARGS[0] = 'set_preferences':
 	!! It doesn''t matter if your poor or rich, everyone loves tits.
 
 	slutConstant = 0
-	if rand(0, 1) = 1 and izvrat = 1: slutConstant = 1
-
+	if izvrat = 1 and rand(0, 1 + npc_gender[$npclastgenerated]) = 0: slutConstant = 1
 
 	clotTopPrefTmp = 0
-	if rand(0, 2) = 2:
-		randchan = rand(0, 2)
-		if randchan = 0 and clotTypePrefTmp ! 4:
+	if rand(0, 2) = 0:
+		temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
+		if temp_rand < 2 and clotTypePrefTmp ! 4:
 			clotTopPrefTmp = 1 + slutConstant
-		elseif randchan = 1 and clotTypePrefTmp ! 4:
+		elseif temp_rand < 4 and clotTypePrefTmp ! 4:
 			clotTopPrefTmp = 2 + slutConstant
-		elseif randchan = 2 and clotTypePrefTmp ! 3:
+		elseif temp_rand >= 4 and clotTypePrefTmp ! 3:
 			clotTopPrefTmp = 3
 		end
-		if clotTopPrefTmp ! 0 and titnpc_bust[$npclastgenerated] = 2:
+
+		if clotTopPrefTmp ! 0 and npc_bust[$npclastgenerated] = 2:
 			if clotPref ! 3:
 				clotTopPrefTmp += 1
 			end
 		end
 	end
 
+
 	!! This is for pants and skirt shortness and will be grouped together as such.
 	!! 0 - no preference, 1 - 1 to 2 units or ankle to calf length, 2 - 3 to 4 units or knee to miniskirt, 3 - 5 units to 6 or slut to hoe.
 
 	bottShorPrefTmp = 0
-	if rand(0, 2) = 2:
-		randchan = rand(0, 2)
-		if randchan = 0 and clotTypePrefTmp ! 4:
-			bottShorPrefTmp = 1 
-		elseif randchan = 1:
-			bottShorPrefTmp = 2 
-		elseif randchan = 2:
+	if rand(0, 2) = 0:
+		temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
+		if temp_rand < 2 and clotTypePrefTmp ! 4:
+			bottShorPrefTmp = 1
+		elseif temp_rand < 4:
+			bottShorPrefTmp = 2
+		elseif temp_rand >= 4:
 			bottShorPrefTmp = 3
 		end
-		if slutConstant = 1 and rand(0, 1) = 1 and clotTypePrefTmp = 4:
+
+		if slutConstant = 1 and rand(0, 1) = 0 and clotTypePrefTmp = 4:
 			bottShorPrefTmp = 3
 		end
 	end
 
+
 	!! This is for clothes thinness.
 	!! 0 - no preference, 1 - 0 to 2 (Conservative), 2 - 3 to 4 (Moderate), 3 - 4 to 6 (really thin)
 	!! I see the moderate to really thin overlapping. Its intentional.
 
 	clotThinPrefTmp = 0
 	if rand(0, 2) = 2:
-		randchan = rand(0, 2)
-		if randchan = 0:
+		temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
+		if temp_rand < 2:
 			clotThinPrefTmp = 1 + slutConstant
-		elseif randchan = 1:
+		elseif temp_rand < 4:
 			clotThinPrefTmp = 2 + slutConstant
-		elseif randchan = 2 and clotTypePrefTmp ! 3:
+		elseif temp_rand > 4 and clotTypePrefTmp ! 3:
 			clotThinPrefTmp = 3
 		end
 	end
@@ -253,19 +302,20 @@ if $ARGS[0] = 'set_preferences':
 	!! 0 - no preference, 1 - Prefers bimbo clothing.
 
 	bimbPrefTmp = 0
-	if rand(0, 2) = 2 and clotTypePrefTmp ! 3:bimbPrefTmp = 1
+	if rand(0, 2 + 8 * npc_gender[$npclastgenerated]) = 0 and clotTypePrefTmp ! 3: bimbPrefTmp = 1
+
 
 	!!This is to find out if they want you to wear piercings.
 	!! 0 - no preference, 1 - 0 to 2 piercings, 2 - 3 to 5 piercings, 3 - 6 or more piercings.
 
 	pierPrefTmp = 0
 	if rand(0, 3) = 3:
-		randchan = rand(0, 2)
-		if randchan = 0:
+		temp_rand = rand(0, 2)
+		if temp_rand = 0:
 			pierPrefTmp = 1 + slutConstant
-		elseif randchan = 1:
+		elseif temp_rand = 1:
 			pierPrefTmp = 2 + slutConstant
-		elseif randchan = 2:
+		elseif temp_rand = 2:
 			pierPrefTmp = 3
 		end
 	end
@@ -275,41 +325,44 @@ if $ARGS[0] = 'set_preferences':
 	!! 0 - no preference, 1 - 0 to 2 tattoos, 2 - 3 to 5 tattoos, 3 - 6 or more tattoos.
 
 	tattPrefTmp = 0
-	if rand(0, 3) = 3:tattPrefTmp =  rand(1, 3)
+	if rand(0, 3) = 0: tattPrefTmp = rand(1, 3)
+
 
 	!!This is to find out how big they want your lips.
 	!! 0 - no preference, 1 - 2 to 3 units (average) , 2 - 4 units (THIC lips)
 
 	lipsPrefTmp = 0
-	if rand(0, 2) = 2:
-		randchan = rand(0, 2)
-		if randchan = 0:
+	if rand(0, 2 + npc_gender[$npclastgenerated]) = 0:
+		temp_rand = rand(0, 2)
+		if temp_rand = 0:
 			lipsPrefTmp = 1 + slutConstant
-		elseif randchan = 2:
+		elseif temp_rand = 2:
 			lipsPrefTmp = 2
 		end
 	end
 
+
 	!!This is to find out how big they want YOU.
 	!! 0 - no preference, 1 - 1 to 3 units (Skinny) , 2 - 3 to 6 units (Average), 3 - 6 + units (THIC)
 	!! Notice how this one overlaps. I believe that it should because changing ones weight is very hard.
 
 	bodyPrefTmp = 0
-	if rand(0, 3) = 3:bodyPrefTmp = rand(1, 3) 
+	if rand(0, 3) = 0: bodyPrefTmp = rand(1, 3)
+
 
 	!!This is to find out how much makeup they want you to wear.
 	!! 0 - no preference, 1 - 1 (light makeup) , 2 - 2 (moderate makeup), 3 - 3(heavy makeup)
 	!! Plan to make a way for you to set what you makeup you want to wear at your bedside and giving into his wishes would automatically change the automated setting.
 
 	makePrefTmp = 0
-	if rand(0, 1) = 1:
-		randchan = rand(0, 2)
-		if randchan = 0:
+	if rand(0, 1) = 0:
+		temp_rand = rand(0, 5) - npc_gender[$npclastgenerated]
+		if temp_rand < 2:
 			makePrefTmp = 1 + slutConstant 
-		elseif randchan = 1:
+		elseif temp_rand < 4:
 			makePrefTmp = 2 + slutConstant
-		elseif randchan = 2 and clotTypePrefTmp ! 3:
-			makePrefTmp = 3 
+		elseif temp_rand >= 4 and clotTypePrefTmp ! 3:
+			makePrefTmp = 3
 		end
 	end
 
@@ -318,11 +371,18 @@ if $ARGS[0] = 'set_preferences':
 	!!0 - no preference, 1 - 1 to 30 intelligence, 2 - 30 to 85 intelligence, 3 - 85 + intelligence. 
 
 	IQPrefTmp = 0
-	if rand(0, 4) = 4: IQPrefTmp = rand(1, 3)
+	if rand(0, 4) = 0:
+		if npc_gender[$npclastgenerated] = 0:
+			IQPrefTmp = rand(1, 3)
+		else
+			!! IQPrefTmp is capped at 3. With old code: rand(1, 2) + rand(1, 2) + rand(0,1) => 1/8 chance for 2 else 3 (or more)
+			IQPrefTmp = min(rand(2, 9), 3)
+		end
+	end
 
-	killvar 'randchan'
+	killvar 'temp_rand'
 end
 
 
---- boy ---------------------------------
+--- boygirl ---------------------------------
 

File diff suppressed because it is too large
+ 228 - 227
locations/bus.qsrc


+ 2 - 2
locations/bus_events.qsrc

@@ -4,8 +4,8 @@
 transportVars['bus_event_day'] = daystart
 
 if $ARGS[0] = 'events':
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 100:
+	temp_transportVars['rand'] = rand(0, 99)
+	if temp_transportVars['rand'] < 100:
 		gt 'bus_events', 'placeholder'
 	end
 end

+ 49 - 43
locations/cikl.qsrc

@@ -124,7 +124,7 @@ end
 !! terminate tour gide job when its off season
 if emp_job_status[1] = 1 and month < 6 and month > 8:
 	if work = 1: work = 0
-	emp_job_status[1]  = 4
+	emp_job_status[1] = 4
 end
 
 dynamic $hypnoDaychange
@@ -234,7 +234,7 @@ if bimbo >= 40: bimbo = 40
 
 !!Bimbo levels. They use custom variables so they won''t permanently change character stats
 if bimbolevel = 0: supnatvnesh = 0 & bimbostupidity = 0
-if  CheatBimbo2 = 0:
+if CheatBimbo2 = 0:
 	if bimbolevel = 1: supnatvnesh = 2 & bimbostupidity = (pcs_intel / 6)
 	if bimbolevel = 2: supnatvnesh = 2 & bimbostupidity = (pcs_intel / 4)
 	if bimbolevel = 3: supnatvnesh = 4 & bimbostupidity = (pcs_intel / 3)
@@ -420,8 +420,8 @@ else
 	isprok_lastday = 0
 end
 
-if Enable_auto_tampons =  0 and isprok = 1: isprok = 0 & 'You threw away your used tampon.'
-if Enable_auto_tampons =  0 and isprokp = 1:isprokp = 0 & 'You threw away your used sanitary pad.'
+if Enable_auto_tampons = 0 and isprok = 1:  isprok  = 0 & 'You threw away your used tampon.'
+if Enable_auto_tampons = 0 and isprokp = 1: isprokp = 0 & 'You threw away your used sanitary pad.'
 
 if lactation['nipgrowth'] > 0:
 	tmp = rand(0,2)
@@ -632,7 +632,7 @@ if GspravkaT = 1:Gspravka -= 1
 if BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] > 0 and BurgerQW['IlyQWPoliceDayCount'] < 30: 
 	BurgerQW['IlyQWPoliceDayCount'] += 1
 elseif BurgerQW['IlyQW'] = 2 and BurgerQW['IlyQWPoliceDayCount'] = 30: 
-	BurgerQW['IlyQW']  = 3
+	BurgerQW['IlyQW'] = 3
 end
 
 !!Remove degradation for inhibition
@@ -798,7 +798,7 @@ if mid($start_type, 1, 2) = 'sg':
 			killvar 'first_time_outside_in_cold_weather'
 			killvar 'first_time_doing_basketball'
 			killvar 'first_time_spring_football_match'
-!! end inc  
+!! end inc
 		elseif month = 10 and day >= 29:
 			$holyday = '<b>Autumn Break starts in <<35-day>> days.</b>'
 		elseif month = 11:
@@ -952,12 +952,15 @@ if natholi = 1:
 end
 
 
-!! Anushka''s band is on tour from Thursday 01-06 until Saturday 19-08. Blame Nutluck
-if year = 2017 and ( month = 6 or month = 7 or (month = 8 and day < 19) ):
-	gopnikbandQW['on_tour'] = 1
-else
-	gopnikbandQW['on_tour'] = 0
-end
+
+
+	!!====================================================================!!
+	!!                                                                    !!
+	!!                      Setting story SMS times                       !!
+	!!                                                                    !!
+	!!====================================================================!!
+
+gs 'SMS_schedules', 'cikl'
 
 
 
@@ -1051,7 +1054,7 @@ end
 !!------------------------------------------------------------------------------------------------------------
 
 !!---------- School related schedule -------------------------------------------------------------------------
-starlets_on     = iif( ( (week = 5 and odd_week = 0) or (week = 1 or week = 3 or week >= 6) ) and natholi = 0,1,0)
+starlets_on		= iif( ( (week = 5 and odd_week = 0) or (week = 1 or week = 3 or week >= 6) ) and natholi = 0,1,0)
 cheerleaders_on = iif( ( (week = 5 and odd_week = 1) or (week = 2 or week = 4) ) and (natholi = 0 and (month >9 or month <6)) ,1,0)
 
 if starlets['late_message'] = 1: starlets['late_message'] = 0
@@ -1069,7 +1072,7 @@ end
 
 if month = 9 and day = 16 and AlbinaQW['ParkRally'] = 0: AlbinaQW['ParkRally'] = 1
 if month = 10 and day = 16 and AlbinaQW['ParkRally'] = 1: AlbinaQW['ParkRally'] = 2
-if month  = 11 and day = 19 and (AlbinaQW['StarletsJoined'] <= 0 or (AlbinaQW['StarletsJoined'] = 1 and npc_pregtalk['A23'] = 1)) and AlbinaQW['StarletsShutDown'] = 0: AlbinaQW['StarletsShutDown'] = 1
+if month = 11 and day = 19 and (AlbinaQW['StarletsJoined'] <= 0 or (AlbinaQW['StarletsJoined'] = 1 and npc_pregtalk['A23'] = 1)) and AlbinaQW['StarletsShutDown'] = 0: AlbinaQW['StarletsShutDown'] = 1
 
 !!------------------------------------------------------------------------------------------------------------
 
@@ -1098,9 +1101,9 @@ end
 if ml_onlinesongcount > 0:
 	i = 0
 	j = -1
-    
-	:looponlinesongs        
-!!      this so every song counts only every 7 days and only for a limited number of weeks 
+
+	:looponlinesongs
+!!		this so every song counts only every 7 days and only for a limited number of weeks 
 		if ml_onlinesong_freshness[i] > 0:		
 			j += 1
 			ml_tempsong_freshness[j] = ml_onlinesong_freshness[i]
@@ -1186,7 +1189,7 @@ if $lib_book_loaned ! '': lib_debt += 50
 !!------------- Preliminary npc_uni_eduTipe  ------------------------------------------
 !! 
 !!npc_uni_eduType = '', 'professor', 'teaching_studies', 'business_studies', 'science_studies', 'fashion_studies'
-!!                  'nursing_studies', 'psychology_studies', 'programming_studies', 'other_studies'
+!!				'nursing_studies', 'psychology_studies', 'programming_studies', 'other_studies'
 !!
 !!Will eventually need to be moved to the npcstatic and npcstaticdefault files for eternal uni npcs
 !!To specific event checks for pav_uni npcs
@@ -1253,31 +1256,31 @@ if will_counter >= 20: will_counter -= 20 & willpowermax += 1
 
 !!-----------------webcam follower loss due to inactivity ------------------------------------------
 if camwhore = 1:
-    if cam_daystart < daystart:
-        engagementFactor = 1 + (CamBonus / 100)
-        popularityFactor = webpopular / 1000
-
-        if regviewReset < 3:
-            if regview >= 500:
-                FollowersLost = rand(regview / (100 * engagementFactor), regview / (50 * engagementFactor)) + popularityFactor
-            else
-                FollowersLost = rand(1, 3) + popularityFactor
-            end
-            cam_daystart = daystart + max(1, 3 - (CamBonus / 50))
-        else
-            if regview >= 300:
-                FollowersLost = rand(regview / (80 * engagementFactor), regview / (40 * engagementFactor)) + popularityFactor
-            else
-                FollowersLost = rand(2, 6) + popularityFactor
-            end
-            cam_daystart = daystart + max(1, 2 - (CamBonus / 50))
-        end
-        regviewReset += 1
-        FollowersLost = func('shortgs', 'clamp', FollowersLost, 0, regview)
-        totFollowersLost += FollowersLost
-        regview -= FollowersLost
-        killvar 'FollowersLost'
-    end
+	if cam_daystart < daystart:
+		engagementFactor = 1 + (CamBonus / 100)
+		popularityFactor = webpopular / 1000
+
+		if regviewReset < 3:
+			if regview >= 500:
+				FollowersLost = rand(regview / (100 * engagementFactor), regview / (50 * engagementFactor)) + popularityFactor
+			else
+				FollowersLost = rand(1, 3) + popularityFactor
+			end
+			cam_daystart = daystart + max(1, 3 - (CamBonus / 50))
+		else
+			if regview >= 300:
+				FollowersLost = rand(regview / (80 * engagementFactor), regview / (40 * engagementFactor)) + popularityFactor
+			else
+				FollowersLost = rand(2, 6) + popularityFactor
+			end
+			cam_daystart = daystart + max(1, 2 - (CamBonus / 50))
+		end
+		regviewReset += 1
+		FollowersLost = func('shortgs', 'clamp', FollowersLost, 0, regview)
+		totFollowersLost += FollowersLost
+		regview -= FollowersLost
+		killvar 'FollowersLost'
+	end
 end
 
 
@@ -1320,5 +1323,8 @@ if arrsize('policeQW_courthearing_dates') > 1:
 	gs 'shortgs', 'coupled_array_sort', 'policeQW_courthearing_dates', '$policeQW_courthearing_subjects'
 end
 
+if blackmailQW['stage'] > 0: gs 'blackmailer', 'cikl'
+
+
 --- cikl ---------------------------------
 

+ 1 - 44
locations/city_clinic.qsrc

@@ -116,50 +116,7 @@ if $ARGS[0] = 'start':
 
 	if preg = 2:
 		act 'Give birth':
-			*clr & cla
-			menu_off = 1
-			if kid > 0:minut += rand(300,660) else minut += rand(120,480)
-			'<center><img <<$set_imgh>> src="images/locations/shared/clinic/birthing.jpg"></center>'
-			'You lay on the bed and your feet are put in stirrups. Your contractions get closer and closer, and after some time and a lot of swearing, you finally give birth.'
-			:multikidloop
-				minut += rand(30,90)
-				sterilewb += 1
-				nextbaby = arrpos('$kidname', 'unborn')
-				kid += 1
-				BabyEmbryo -= 1
-				daykid[nextbaby] = day
-				monthkid[nextbaby] = month
-				yearkid[nextbaby] = year
-				if polkid[nextbaby] = 0:$polreb[nextbaby] = 'girl' & '"Congratulations, it''s a girl! What is her name?"'
-				if polkid[nextbaby] = 1:$polreb[nextbaby] = 'boy' & '"Congratulations, it''s a boy! What is his name?"'
-				
-				wait 350
-				$kidname[nextbaby] = input("Enter your <<$polreb[nextbaby]>>''s name")
-				'The doctors clean up <<$kidname[nextbaby]>>.'
-				if $kidname[nextbaby] = '':
-					if polkid[nextbaby] = 0:$kidname[nextbaby] = 'Masha'
-					if polkid[nextbaby] = 1:$kidname[nextbaby] = 'Misha'
-				end
-			if BabyEmbryo > 0: 'You do not have much time to look at your <<$polreb[nextbaby]>>, because you''re having another contraction. Your next baby is coming!' & jump 'multikidloop'
-			preg = 0
-			!! RecovH has a decay of 1.1/hour or ~ 27/day, the recovery period is ~6-10 weeks
-			RecovH = rand(1175,1875)
-			pregbirthdate = daystart
-			thinkpreg = 0
-			knowpreg = 0
-			knowpregrecover = 1
-			vidage += 1
-			pregtalk = 0
-			pcs_pregtalk = 0
-			pregTalkFamily = 0
-			npc_pregtalk['A16'] = 0
-			npc_pregtalk['A34'] = 0
-			npc_pregtalk['A29'] = 0
-			pregchem = 0
-			cycle = 4
-			gs 'cum_cleanup', 'reset'
-			dynamic $d_cycreport_choice
-			gs 'stat'
+			gs 'medical_din', 'give_birth'
 			act 'Return to the entrance': gt 'city_clinic', 'start'
 		end
 	end

+ 5 - 6
locations/city_industrial_train.qsrc

@@ -74,8 +74,8 @@ if $ARGS[0] = 'platform':
 	'When you arrive at the platform, you can''t help but notice it bustling with activity. Lots of passengers are coming and going, all carrying large bags. It feels like it is always busy here, no matter at what time of the day you are here.'
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'ind'
-	'The next train in the direction of the city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of the city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Return to the station': minut += 5 & gt 'city_industrial_train', 'inside'
 	
@@ -106,8 +106,8 @@ if $ARGS[0] = 'ticket':
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/trainstation/ticketoffice.jpg"></center>'
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'ind'
-	'The next train in the direction of the city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of the city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Leave the ticket office':minut += 1 & gt 'city_industrial_train', 'inside'
 	
@@ -170,7 +170,6 @@ if $ARGS[0] = 'toilet':
 	dynamic $publicpan
 end
 
-
+killvar 'temp_transportVars'
 
 --- city_industrial_train ---------------------------------
-

+ 2 - 2
locations/city_mansion_entrance.qsrc

@@ -32,8 +32,8 @@ if $ARGS[0] = '':
 	end
 
 	if func('homes_properties', 'is_current_home'):
-		if vladimirday = daystart and vladimirQW = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''2''">There''s an Audi parked in front of your mansion, and standing beside it, you notice Vladimir</a>.'
-		if vladimirday = daystart and vladimirQW = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''3''">There''s an Audi parked in front of your mansion, and standing beside it, you notice Vladimir</a>.'
+		if vladimirQW['day'] = daystart and vladimirQW['stage'] = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''2''">There''s an Audi parked in front of your mansion, and standing beside it, you notice Vladimir</a>.'
+		if vladimirQW['day'] = daystart and vladimirQW['stage'] = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''3''">There''s an Audi parked in front of your mansion, and standing beside it, you notice Vladimir</a>.'
 
 		if hour = meethour[0]:
 			if svidanie[0] = 1:'<b><a href="exec:lover_number = 0 & gt ''lover_meet'', ''start''"><<$loverdesc[0]>></a> is waiting at the entrance to your mansion.</b>'

+ 4 - 6
locations/city_park.qsrc

@@ -4,12 +4,8 @@ $location_type = 'public_outdoors'
 
 if $ARGS[0] = 'start':
 	CLOSE ALL
-
-	$loc_arg = 'start'
-	$loc = 'city_park'
+	gs 'shortgs', 'setloc', 'city_park', 'start'
 	$region = 'city'
-	$menu_loc = 'city_park'
-	$menu_arg = 'start'
 	$locclass = 'city_park'
 	menu_off = 0
 	if sound = 0:
@@ -250,6 +246,8 @@ if $ARGS[0] = 'start':
 			act 'Continue': gt 'city_park', 'start'
 		end
 	end
+
+	gs 'blackmailer', 'set_park_act'
 end
 
 if $ARGS[0] = 'luna':
@@ -266,7 +264,7 @@ if $ARGS[0] = 'luna':
 	*nl
 	'Opening hours are 9:00 to 21:00'
 
-	if vladimirQW = 0 and hour >= 9 and hour <= 20 and week > 5 and pcs_apprnc > 40:'<a href="exec:gt ''qwloc''">There''s a strong looking man staring at you from the fences.</a>.'
+	if vladimirQW['stage'] = 0 and hour >= 9 and hour <= 20 and week > 5 and pcs_apprnc > 40:'<a href="exec:gt ''vladimirQW_loc''">There''s a strong looking man staring at you from the fences.</a>.'
 
 	act 'Go back to the park':gt 'city_park', 'start'
 	

+ 4 - 3
locations/city_train.qsrc

@@ -37,7 +37,7 @@ if $ARGS[0] = 'tickets':
 
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'center'
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Leave the ticket office': minut += 1 & gt 'city_train', 'start'
 	
@@ -75,7 +75,7 @@ if $ARGS[0] = 'platform':
 	'When you arrive at the platform, you can''t help but notice it bustling with activity. Lots of passengers are coming and going, all carrying shopping bags. It feels like it is always busy here, no matter at what time of the day it is.'
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'center'
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
 	
 	act 'Return to the station hall': gt 'city_train', 'start'
 
@@ -91,5 +91,6 @@ if $ARGS[0] = 'platform':
 	act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''pavlovsk'')>>)': gt 'train', 'center_pavlovsk'
 end
 
---- city_train ---------------------------------
+killvar 'temp_transportVars'
 
+--- city_train ---------------------------------

+ 3 - 0
locations/core_library.qsrc

@@ -81,6 +81,9 @@ end
 !! clothing_status - fnct to determine clothing status
 
 if $ARGS[0] = 'clothing_status':
+	$apparel['panty'] = ''
+	$apparel['bra'] = ''
+	$apparel['status'] = ''
     if $pantyworntype = 'none': $apparel['panty'] = 'pantyless'
     if $braworntype = 'none': $apparel['bra'] = 'braless'
     if $clothingworntype =  'nude': $apparel['status'] = 'nude'

+ 1 - 1
locations/crossfit_north_girlmeet.qsrc

@@ -3,7 +3,7 @@
 if $ARGS[0] = 'start':
 	menu_off = 1
 	!! generate a girlfriend
-	gs 'girl'
+	gs 'boygirl', 1
 	$boydesc = $previous_record_holder
 	$boyClo = 'wearing workout clothes'
 	killvar '$previous_record_holder'

+ 2 - 2
locations/dachi.qsrc

@@ -36,8 +36,8 @@ if func('homes_properties', 'has_access','village_cottage'):
 end
 
 if  func('homes_properties', 'is_current_home', 'village_cottage'):
-	if vladimirday = daystart and vladimirQW = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''2''">There''s an Audi parked in front of your cottage, and standing beside it, you notice Vladimir</a>.'
-	if vladimirday = daystart and vladimirQW = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''3''">There''s an Audi parked in front of your cottage, and standing beside it, you notice Vladimir</a>.'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''2''">There''s an Audi parked in front of your cottage, and standing beside it, you notice Vladimir</a>.'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''3''">There''s an Audi parked in front of your cottage, and standing beside it, you notice Vladimir</a>.'
 
 	if hour = meethour[0]:
 		if svidanie[0] = 1:'<b><a href="exec:lover_number = 0 & gt ''lover_meet'', ''start''"><<$loverdesc[0]>></a> is waiting at the entrance to your yard.</b>'

+ 2 - 7
locations/dateF.qsrc

@@ -18,13 +18,8 @@ if $ARGS[0] = 'start':
 	$location_type = 'event_outdoors'
 	*clr & cla
 	!! generate a girl
-	if $region = 'pav':
-		gs 'npcgeneratec', 1, '', rand(18,45), 1
-	elseif $region = 'city':
-		gs 'npcgeneratec', 1, '', rand(18,45), rand(3,4)
-	end
-	gs 'boyStat', $npclastgenerated
-	gs 'girl', 'details'
+	gs 'boygirl', 1, '', rand(18, 35)
+
 
 	act 'Ignore her and hurry away':gt $loc, $loc_arg
 	!!1) Sveta in a school uniform

+ 1 - 7
locations/dateM.qsrc

@@ -17,13 +17,7 @@ if $ARGS[0] = 'start':
 	$location_type = 'event_outdoors'
 	*clr & cla
 	!! generate a boy
-	if $region = 'pav':
-		gs 'npcgeneratec', 0, '', rand(18,45), 1
-	elseif $region = 'city':
-		gs 'npcgeneratec', 0, '', rand(18,45), rand(3,4)
-	end
-	gs 'boyStat', $npclastgenerated
-	gs 'boy', 'details'
+	gs 'boygirl', 0, '', rand(18, 35)
 
 	act 'Ignore him and hurry away':gt $loc, $loc_arg
 !!1) Sveta in a school uniform

+ 7 - 7
locations/din_bad.qsrc

@@ -3,25 +3,25 @@
 $mobile_check = {
 	if menu_off = 0:
 		gs 'stat'
-		if vladimirday ! daystart and hour >= 15 and hour <= 17:
-			if vladimirQW = 20:
+		if vladimirQW['day'] ! daystart and hour >= 15 and hour <= 17:
+			if vladimirQW['stage'] = 20:
 				'<b><font color="red">Your phone is ringing</font></b>'
 				$caller = 'Vladimir'
 				$callerid = 'images/characters/city/vladimir/001.jpg'
 				gs 'telefon','phone_ring'
-				pl'<center><a href="exec:gt ''qwloc'',''2''"><img src="images/system/phone/call_accept.png"></a>		<a href="exec:vladimirday = daystart & gt $loc, $loc_arg"><img src="images/system/phone/decline.png"></a></center>'
-			elseif vladimirQW = 25 and week = 6:
+				pl'<center><a href="exec:gt ''vladimirQW_loc'',''2''"><img src="images/system/phone/call_accept.png"></a>		<a href="exec:vladimirQW[''day''] = daystart & gt $loc, $loc_arg"><img src="images/system/phone/decline.png"></a></center>'
+			elseif vladimirQW['stage'] = 25 and week = 6:
 				'<b><font color="red">Your phone is ringing</font></b>'
 				$caller = 'Vladimir'
 				$callerid = 'images/characters/city/vladimir/001.jpg'
 				gs 'telefon','phone_ring'
-				pl'<center><a href="exec:gt ''qwloc'',''3''"><img src="images/system/phone/call_accept.png"></a>		<a href="exec:vladimirday = daystart & gt $loc, $loc_arg"><img src="images/system/phone/decline.png"></a></center>'
-			elseif vladimirQW = 35 and week = 6:
+				pl'<center><a href="exec:gt ''vladimirQW_loc'',''3''"><img src="images/system/phone/call_accept.png"></a>		<a href="exec:vladimirQW[''day''] = daystart & gt $loc, $loc_arg"><img src="images/system/phone/decline.png"></a></center>'
+			elseif vladimirQW['stage'] = 35 and week = 6:
 				'<b><font color="red">Your phone is ringing</font></b>'
 				$caller = 'Vladimir'
 				$callerid = 'images/characters/city/vladimir/001.jpg'
 				gs 'telefon','phone_ring'
-				pl'<center><a href="exec:gt ''qwloc'',''4''"><img src="images/system/phone/call_accept.png"></a>		<a href="exec:vladimirday = daystart & gt $loc, $loc_arg"><img src="images/system/phone/decline.png"></a></center>'
+				pl'<center><a href="exec:gt ''vladimirQW_loc'',''4''"><img src="images/system/phone/call_accept.png"></a>		<a href="exec:vladimirQW[''day''] = daystart & gt $loc, $loc_arg"><img src="images/system/phone/decline.png"></a></center>'
 			end
 		end
 

+ 2 - 2
locations/din_pav.qsrc

@@ -7,8 +7,8 @@ $pavserjil = {
 	
 	set pavserhom = 1
 	'<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil2.jpg" ></center>'
-    'It is not clear why you you are drawn to him, but you can barely take you eyes off him.'
-	act 'Overnutsya':gt'lug', 'start'
+	'It is not clear why you you are drawn to him, but you can barely take you eyes off him.'
+	act 'Overnutsya': gt 'pushkin_parks', 'lug'
 }
 
 $koncepodos = {

+ 1 - 1
locations/femcyc.qsrc

@@ -628,7 +628,7 @@ if $ARGS[0] = 'cyc2':
 		cfw_idx = 0
 		cfw_sz = arrsize('wombAmount')
 		:FathLottoLoop
-		if cfw_idx < cfw_sz:
+		if cfw_idx < cfw_sz and cum_total > 0:
 			cfl_ct = (wombAmount[cfw_idx] * 100) / cum_total
 			if cfl_ct < 1: cfl_ct = 1
 			cfl_idx = arrsize('$cumfathlotto')

+ 14 - 25
locations/gadforest.qsrc

@@ -3,23 +3,18 @@
 
 if $ARGS[0] = 'forest_edge':
 	*clr & cla
+	gs 'shortgs', 'setloc', 'gadforest', 'forest_edge'
+	$region = 'gad'
+	$location_type = 'secluded'
+	$forest_args1 = 'forest_edge'
 
 	! force Mira to stay here if Sveta brought Mira here by choice - temporarily overrides Miras schedule to not annoy the player
 	Mira_Stay = iif($loc ! 'Miroslava', 1 , 0)
 
 	clothesAtLocation = FUNC('lost_clothes_here','forest_edge')
 
-	$loc = 'gadforest'
-	$loc_arg = 'forest_edge'
-	$region = 'gad'
-	$location_type = 'secluded'
-	
-	$menu_loc = 'gadforest'
-	$menu_arg = 'forest_edge'
 	menu_off = 0
 
-	$forest_args1 = 'forest_edge'
-
 	CLOSE ALL
 	gs 'gadukino_event', 'sound'
 	gs 'stat'
@@ -342,23 +337,21 @@ if $ARGS[0] = 'forest_edge':
 
 	gs 'gadforest', 'picking'
 	gs 'camera', 'check_location'
+
+	gs 'blackmailer', 'set_park_act'
 end
 
 if $ARGS[0] = 'forest_outskirts':
 	*clr & cla
+	gs 'shortgs', 'setloc', 'gadforest', 'forest_outskirts'
+	$location_type = 'secluded'
+	$region = 'gad_forest'
+	$forest_args1 = 'forest_outskirts'
 
 	clothesAtLocation = FUNC('lost_clothes_here','forest_outskirts')
 
-	$loc = 'gadforest'
-	$loc_arg = 'forest_outskirts'
-	$location_type = 'secluded'
-	$region = 'gad_forest'
-	$menu_loc = 'gadforest'
-	$menu_arg = 'forest_outskirts'
 	menu_off = 0
 
-	$forest_args1 = 'forest_outskirts'
-
 	CLOSE ALL
 	gs 'gadukino_event', 'sound'
 	gs 'stat'
@@ -426,19 +419,15 @@ end
 
 if $ARGS[0] = 'forest_center':
 	*clr & cla
+	gs 'shortgs', 'setloc', 'gadforest', 'forest_center'
+	$region = 'gad_forest'
+	$location_type = 'secluded'
+	$forest_args1 = 'forest_center'
 
 	clothesAtLocation = FUNC('lost_clothes_here','forest_center')
 
-	$loc = 'gadforest'
-	$loc_arg = 'forest_center'
-	$region = 'gad_forest'
-	$location_type = 'secluded'
-	$menu_loc = 'gadforest'
-	$menu_arg = 'forest_center'
 	menu_off = 0
 
-	$forest_args1 = 'forest_center'
-
 	CLOSE ALL
 	gs 'gadukino_event', 'sound'
 	gs 'stat'

+ 2 - 2
locations/gadukino.qsrc

@@ -94,8 +94,8 @@ if $ARGS[0] = '':
 		'Several small farms are scattered around the outskirts of the village, one of which belongs to <a href="exec:minut += 5 & gt ''gaddvor''">your grandparents</a>.'
 		act 'Go to your grandparent''s house': minut += 5 & gt 'gaddvor'
 		if $home['current'] = 'hunters_lodge' or $home['current'] = 'grandparents_house':
-			if vladimirday = daystart and vladimirQW = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''2''">There''s an Audi parked in the street, and standing beside it, you notice Vladimir</a>.'
-			if vladimirday = daystart and vladimirQW = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''3''">There''s an Audi parked in the street, and standing beside it, you notice Vladimir</a>.'
+			if vladimirQW['day'] = daystart and vladimirQW['stage'] = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''2''">There''s an Audi parked in the street, and standing beside it, you notice Vladimir</a>.'
+			if vladimirQW['day'] = daystart and vladimirQW['stage'] = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''3''">There''s an Audi parked in the street, and standing beside it, you notice Vladimir</a>.'
 
 			if hour = meethour[0]:
 				if svidanie[0] = 1:'<b><a href="exec:lover_number = 0 & gt ''lover_meet'', ''start''"><<$loverdesc[0]>></a> is waiting in the street.</b>'

+ 0 - 337
locations/girl.qsrc

@@ -1,337 +0,0 @@
-# girl
-
-!!'<<$girldesc>> <<$girlbody>> <<$girlbod>> <<$girlface>>. <<$girldesc>> <<$girlClo>>'
-if $ARGS[0] = '':
-	!randomly age
-	girlage = rand(18,35)
-
-	!! {The NPC generator is now the primary system of creating new characters.}
-	if girlage <= 25:
-		gs 'npcgeneratec', 1, 'A Girl', girlage
-	else
-		gs 'npcgeneratec', 1, 'A Woman', girlage
-	end
-	gs 'boyStat', $npclastgenerated
-	gs 'girl', 'details'
-end
-
-if $ARGS[0] = 'details':
-	!Select Photos
-
-	loverGenderTmp = npc_gender[$npclastgenerated]
-	silaVag = npc_sexskill[$npclastgenerated]
-	$npc_usedname[$npclastgenerated] = $npc_firstname[$npclastgenerated]
-	$boydesc = $npc_usedname[$npclastgenerated]
-
-	hairboy = npc_haircol[$npclastgenerated]
-	titboy = npc_bust[$npclastgenerated]
-	vneshboy = npc_apprnc[$npclastgenerated]
-
-	!!appearance
-	gs 'girl', 'set_boybody'
-
-	!!Variables responsible for any features like
-	!!security, is responsible for the money and requirements
-	gs 'girl', 'set_finance'
-
-	gs 'girl', 'set_preferences'
-end
-
-! set_unique_pic is depricated
-if $ARGS[0] = 'set_unique_pic':
-	!! boys 1-30, girlfriends 31-60
-	:girldetailsloop
-		lover_picrand[$npclastgenerated] =  rand(31,60)
-	if lover_picrand[$npclastgenerated] = lover_picture[0] or lover_picrand[$npclastgenerated] = lover_picture[1] or lover_picrand[$npclastgenerated] = lover_picture[2]: jump 'girldetailsloop'
-end
-
-if $ARGS[0] = 'set_boybody':
-	boybodyrand = rand(1, 3)
-
-	if boybodyrand = 1: 
-		$boybody = 'short'
-		$boybody_pref = 'a short'
-	elseif boybodyrand = 2: 
-		$boybody = 'average'
-		$boybody_pref = 'an average'
-	elseif boybodyrand = 3: 
-		$boybody = 'tall'
-		$boybody_pref = 'a tall'
-	end
-
-	boybodrand = rand(1, 4)
-
-	if boybodrand = 1 and boybodyrand = 1: 
-		$boybod = 'petite'
-		$boybod_pref = 'a petite'
-	elseif boybodrand = 1 and boybodyrand = 2: 
-		$boybod = 'slender'
-		$boybod_pref = 'a slender'
-	elseif boybodrand = 2: 
-		$boybod = 'toned'
-		$boybod_pref = 'a toned'
-	elseif boybodrand = 3: 
-		$boybod = 'average'
-		$boybod_pref = 'an average'
-	else
-		$boybod = 'chubby'
-		$boybod_pref = 'a chubby'
-	end
-	
-	boyfacerand = rand(1, 3)
-	if boyfacerand = 1: 
-		$boyface = 'black'
-	elseif boyfacerand = 2:
-		$boyface = 'brunette'
-	else 
-		$boyface = 'blond'
-	end
-end
-
-if $ARGS[0] = 'set_finance':
-	harakBoy = rand(0, 2)
-	finance = npc_finance[$npclastgenerated]
-
-	if npc_finance[$npclastgenerated] = 0:
-		!!Gopnik beggar or a hard worker
-		!!check in appearance Primary
-		if harakBoy = 0:
-			npc_apprnc[$npclastgenerated] = rand(0, 8)
-		elseif harakBoy = 1:
-			npc_apprnc[$npclastgenerated] = rand(0, 16)
-		else 
-			npc_apprnc[$npclastgenerated] = rand(0, 32)
-		end
-
-		$boyClo = 'wearing a tracksuit.'
-	elseif npc_finance[$npclastgenerated] = 1:
-		!!middle_peasant
-		!!check in appearance
-		if harakBoy = 0:
-			npc_apprnc[$npclastgenerated] = rand(0, 16)
-		elseif harakBoy = 1:
-			npc_apprnc[$npclastgenerated] = rand(0, 24)
-		else
-			npc_apprnc[$npclastgenerated] = rand(0, 32)
-		end
-
-		$boyClo = 'wearing jeans and a blouse.'
-	elseif npc_finance[$npclastgenerated] = 2:
-		!!middle_peasant
-		!!check in appearance
-		if harakBoy = 0:
-			npc_apprnc[$npclastgenerated] = rand(16, 32)
-		elseif harakBoy = 1:
-			npc_apprnc[$npclastgenerated] = rand(24, 32)
-		else
-			npc_apprnc[$npclastgenerated] = rand(32, 40)
-		end
-
-		$boyClo = 'wearing an expensive dress.'
-	end
-end
-
-if $ARGS[0] = 'set_preferences':
-	!!requirements of the figure, chest size, hair color.
-	!!0 - ass less 80, 1 back from 80 prior_to 100, 2 ass over 100
-	figurboy = rand(0, 2)
-
-
-	!!character 0 - soft, 1 -norm 2 - aggressor
-	if rand(0, 100) < 90:
-		izvrat = 0
-	else
-		izvrat = 1
-	end
-
-	!! trying to make the preference section 
-	!! Variables here are clotTypePrefTmp, clotQualPrefTmp, clotTopPrefTmp, bottShorPrefTmp, clotThinPrefTmp, bimbPrefTmp, pierPrefTmp, tattPrefTmp, lipsPrefTmp, bodyPrefTmp, makePrefTmp, IQPrefTmp.
-
-
-	!!This is for clothing type preference
-	!! If you notice how rare it is to get a preference that is intentional
-	!!0 - none, 1 - cheap, 2 - average, 3 - formal, 4 - fetish.
-	clotTypePrefTmp = 0
-	if rand(0, 4) = 4:
-		if npc_finance[$npclastgenerated] = 0:
-			clotTypePrefTmp = rand(1,2)
-			if rand(0, 1) = 1 and izvrat = 1:clotTypePrefTmp = 4
-		elseif npc_finance[$npclastgenerated] = 1:
-			clotTypePrefTmp = rand(1,3)
-			if rand(0, 2) = 2 and izvrat = 1:clotTypePrefTmp = 4
-		elseif npc_finance[$npclastgenerated] = 2:
-			clotTypePrefTmp = rand(2,3)
-			if rand(0, 1) = 1 and izvrat = 1:clotTypePrefTmp = 4
-		end
-	end
-
-
-	!!This is for the quality of clothing
-	!! 0 - no preference, 1 - 1 to 4 units cheap to average (Locked if formal chosen), 2 - 5 to 7 units expensive to ballroom quality (Locked if fetish is chosen)
-	clotQualPrefTmp = 0
-	if rand(0, 5) = 5:
-		if npc_finance[$npclastgenerated] = 0:
-			clotQualPrefTmp = 1
-		elseif npc_finance[$npclastgenerated] = 1:
-			clotQualPrefTmp = rand(1, 2)
-			randchan = rand(0, 1)
-			if randchan = 0 and clotTypePrefTmp ! 3:
-				clotQualPrefTmp = 1
-			elseif randchan = 1 and clotTypePrefTmp ! 1:
-				clotQualPrefTmp = 2
-			end
-		elseif npc_finance[$npclastgenerated] = 2:
-			randchan = rand(0, 2)
-			if randchan = 2 and clotTypePrefTmp ! 1:
-				clotQualPrefTmp = 2
-			end
-		end
-	end
-
-	!!This is for the clothing top cut for the clothing
-
-
-	!!Need to add modifiers based on breast size, where larger breasts end up forcing the player to show more cleavage than those with smaller breasts.
-	!! 0 - no preference, 1 - 1 to 2 or neckline to moderate, 2 - 3 to 4 or heavy to severe, 3 - 5 to 7 or buldging to outpouring 
-	!! The breast size must be adjusted either when the action is being calculeted or we can base it on their ideal breast size :titboy + 0/3 depending on the players breast size
-
-
-	!!0 - no preference, 1 - 1 neckline , 2 - 2 or moderate, 3 - 3 to 4 or heavy to severe
-	!! It doesn''t matter if your poor or rich, everyone loves tits.
-
-	slutConstant = 0
-	if rand(0, 2) = 2 and izvrat = 1:slutConstant = 1
-
-
-	clotTopPrefTmp = 0
-	if rand(0, 2) = 2:
-		randchan = rand(0, 5)
-		if randchan < 3 and clotTypePrefTmp ! 4:
-			clotTopPrefTmp = 1 + slutConstant
-		elseif randchan < 5 and clotTypePrefTmp ! 4:
-			clotTopPrefTmp = 2 + slutConstant
-		elseif randchan = 5 and clotTypePrefTmp ! 3:
-			clotTopPrefTmp = 3
-		end
-		if clotTopPrefTmp ! 0 and titboy = 2:
-			if clotPref ! 3:
-				clotTopPrefTmp += 1
-			end
-		end
-	end
-
-	!! This is for pants and skirt shortness and will be grouped together as such.
-	!! 0 - no preference, 1 - 1 to 2 units or ankle to calf length, 2 - 3 to 4 units or knee to miniskirt, 3 - 5 units to 6 or slut to hoe.
-
-	bottShorPrefTmp = 0
-	if rand(0, 2) = 2:
-		randchan = rand(0, 5)
-		if randchan < 3 and clotTypePrefTmp ! 4:
-			bottShorPrefTmp = 1 
-		elseif randchan < 5:
-			bottShorPrefTmp = 2 
-		elseif randchan = 5:
-			bottShorPrefTmp = 3
-		end
-		randchan = rand(0, 1)
-		if slutConstant = 1 and randchan = 1 and clotTypePrefTmp = 4:
-			bottShorPrefTmp = 3
-		end
-	end
-
-	!! This is for clothes thinness.
-	!! 0 - no preference, 1 - 0 to 2 (Conservative), 2 - 3 to 4 (Moderate), 3 - 4 to 6 (really thin)
-	!! I see the moderate to really thin overlapping. Its intentional.
-
-	clotThinPrefTmp = 0
-	if rand(0, 2) = 2:
-		randchan = rand(0, 5)
-		if randchan < 3:
-			clotThinPrefTmp = 1 + slutConstant
-		elseif randchan < 5:
-			clotThinPrefTmp = 2 + slutConstant
-		elseif randchan = 5 and clotTypePrefTmp ! 3:
-			clotThinPrefTmp = 3
-		end
-	end
-
-
-	!!This is to find out if they want you to wear bimbo clothing
-	!! 0 - no preference, 1 - Prefers bimbo clothing.
-
-	bimbPrefTmp = 0
-	if rand(0, 10) = 0 and clotTypePrefTmp ! 3:bimbPrefTmp = 1
-
-	!!This is to find out if they want you to wear piercings.
-	!! 0 - no preference, 1 - 0 to 2 piercings, 2 - 3 to 5 piercings, 3 - 6 or more piercings.
-
-	pierPrefTmp = 0
-	if rand(0, 3) = 3:
-		randchan = rand(0, 2)
-		if randchan = 0:
-			pierPrefTmp = 1 + slutConstant
-		elseif randchan = 1:
-			pierPrefTmp = 2 + slutConstant
-		elseif randchan = 2:
-			pierPrefTmp = 3
-		end
-	end
-
-
-	!!This is to find out if they want you to have tattoos.
-	!! 0 - no preference, 1 - 0 to 2 tattoos, 2 - 3 to 5 tattoos, 3 - 6 or more tattoos.
-
-	tattPrefTmp = 0
-	if rand(0, 3) = 3:tattPrefTmp =  rand(1, 3)
-
-	!!This is to find out how big they want your lips.
-	!! 0 - no preference, 1 - 2 to 3 units (average) , 2 - 4 units (THIC lips)
-
-	lipsPrefTmp = 0
-	if rand(0, 3) = 3:
-		randchan = rand(0, 2)
-		if randchan = 0:
-			lipsPrefTmp = 1 + slutConstant
-		elseif randchan = 2:
-			lipsPrefTmp = 2
-		end
-	end
-
-	!!This is to find out how big they want YOU.
-	!! 0 - no preference, 1 - 1 to 3 units (Skinny) , 2 - 3 to 6 units (Average), 3 - 6 + units (THIC)
-	!! Notice how this one overlaps. I believe that it should because changing ones weight is very hard.
-
-	bodyPrefTmp = 0
-	if rand(0, 3) = 3:bodyPrefTmp = rand(1, 3) 
-
-	!!This is to find out how much makeup they want you to wear.
-	!! 0 - no preference, 1 - 1 (light makeup) , 2 - 2 (moderate makeup), 3 - 3(heavy makeup)
-	!! Plan to make a way for you to set what you makeup you want to wear at your bedside and giving into their wishes would automatically change the automated setting.
-
-	makePrefTmp = 0
-	if rand(0, 1) = 1:
-		randchan = rand(0, 5)
-		if randchan < 3:
-			makePrefTmp = 1 + slutConstant 
-		elseif randchan < 5:
-			makePrefTmp = 2 + slutConstant
-		elseif randchan = 5 and clotTypePrefTmp ! 3:
-			makePrefTmp = 3 
-		end
-	end
-
-
-	!! This is to see if they like a ditz, average, or a smartypants
-	!!0 - no preference, 1 - 1 to 30 intelligence, 2 - 30 to 85 intelligence, 3 - 85 + intelligence. 
-
-	IQPrefTmp = 0
-	!! IQPrefTmp is capped at 3. With old code: rand(1, 2) + rand(1, 2) + rand(0,1) => 1/8 chance for 2 else 3 (or more)
-	if rand(0, 4) = 4:IQPrefTmp = iif(rand(1,8) = 1, 2, 3)
-
-	killvar 'randchan'
-end
-
-
-
---- girl ---------------------------------
-

+ 3 - 2
locations/graveyard.qsrc

@@ -11,7 +11,8 @@ gs 'stat'
 '<center><img <<$set_imgh>> src="images/locations/graveyard/graveyard.jpg"></center>'
 'A very peaceful place immersed in the silence of circumferential philosophical thoughts about the impermanence of life.'
 'At the far end of the cemetery you can see the dilapidated building, which used to be whether the crypt, or chapel.'
-act 'Exit the highway':minut += 15 & nroad = 3 & gt 'road'
+act 'Exit to the highway': minut += 15 & nroad = 3 & gt 'road'
+act 'Walk to the busstation': minut += 15 & gt 'bus', 'graveyard'
 
 act 'Go to the crypt':
 	cls
@@ -20,7 +21,7 @@ act 'Go to the crypt':
 	'<center><img <<$set_imgh>> src="images/locations/graveyard/graveyard2.jpg"></center>'
 	'Barred windows protect windows covered with dust all around the bushes.'
 
-	act 'Exit the highway':minut += 15 & gt $curloc
+	act 'Exit the highway': minut += 15 & nroad = 3 & gt 'road'
 end
 
 --- graveyard ---------------------------------

+ 0 - 45
locations/hourly_events.qsrc

@@ -321,49 +321,4 @@ gs 'katja_procedural', 'hourly'
 
 if (hour mod 2) = 0: gs 'outdoors', 'weather'
 
-
-
-
-
-!!===========================================================================!!
-!!                                                                           !!
-!!                             ?Story triggers?                              !!
-!!                                                                           !!
-!!===========================================================================!!
-
-
-!! I do not think that this should be here, but I put it here temporaly - rachels
-!! generate SMS for nerd games
-if nerd_game['invite_day'] < daystart and week = 1 and hour >= 11 and hour <= 15:
-	if yearstart = 1 and (grupTipe = 3 or nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95):
-		!! hour = 15 forces SMS if it hasn''t triggered yet.
-		if rand(0, 2) = 0 or hour = 15: 
-			gs 'nerd_game_night', 'summer_invite_sms', 'Add SMS'
-		end
-
-	elseif yearstart > 1 and nerd_game['fixed_uni_day'] = 0 and (nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95):
-		!! hour = 15 forces SMS if it hasn''t triggered yet.
-		if rand(0, 2) = 0 or hour = 15: 
-			gs 'nerd_game_night', 'summer2_invite_sms', 'Add SMS'
-		end
-	end
-end
-
-
-!! Generate SMS for anushka''s band tour. Blame Nutluck
-if gopnikbandQW['on_tour'] = 1 and npc_rel['A144'] >= 50 and anushkaQW['tour_SMS_send'] < daystart and anushkaQW['num_tour_SMS_send'] < 11:
-	if anushkaQW['num_tour_SMS_send'] <= 9 and week = 6 and (hour = 12 or hour = 13):
-		if rand(0, 1) = 0 or hour = 13:
-			gs 'band_tour_anushka_SMS', 'start'
-		end
-
-	elseif anushkaQW['num_tour_SMS_send'] = 10 and week = 2 and (hour = 19 or hour = 20):
-		if rand(0, 1) = 0 or hour = 20:
-			gopnikbandQW['on_tour'] = 0
-			gs 'band_tour_anushka_SMS', 'start'
-		end
-	end
-end
-
 --- hourly_events ---------------------------------
-

+ 1 - 2
locations/igorev.qsrc

@@ -730,7 +730,6 @@ if $ARGS[0] = 'din_sisterkom':
 							*clr & cla
 							igor_eqwtday = daystart
 							minut += 15
-							igor_krossdress = 1
 							gs 'stat'
 							'<center><b><font color = maroon>Igor''s sister''s room</font></b></center>'
 							'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/igor/crossdress/ystala.jpg"></center>'
@@ -863,7 +862,7 @@ if $ARGS[0] = 'din_sisterkom_krossdress':
 													gs 'stat'
 													act 'Finish':
 														*clr & cla
-														igor_krossdresssex = 1
+														igor_krossdresssex += 1
 														igor_eqwtday = daystart
 														gs 'stat'
 														'<center><b><font color = maroon>Igor''s sister''s room</font></b></center>'

+ 1 - 1
locations/igorhome.qsrc

@@ -217,7 +217,7 @@ if $ARGS[0] = 'chat':
 	act 'Keep talking': gt 'igorhome', 'chat'
 	act 'Excuse yourself': gt 'igorhome', 'hallway'
 	!!this is extra options that show up only if certain things have happened.
-	if sisunlock = 1 and igor_krossdress < 1:
+	if sisunlock = 1 and igor_eqwtday ! daystart:
 		act 'Clothes':
 			*clr & cla
 			'"So your sister has that many clothes?" you ask Igor.'

+ 27 - 0
locations/journal_quests.qsrc

@@ -528,6 +528,33 @@ if $ARGS[0] = 'start':
 			end
 		end
 	end
+	if pcs_inhib >= 35:
+		'<center><h3>Blackmailer</h3></center>'
+		if blackmailQW['stage'] = 0:
+			'It would be rather unfortunate if somebody caught you while you were flashing.'
+			'<it>There is a small, small, chance of getting caught while flashing in a park, in a church, and while washing cards.</it>'
+		elseif blackmailQW['stage'] < 0:
+			'You have refused the blackmailer once too many times.'
+		elseif blackmailQW['stage'] > 0 and blackmailQW['stage'] <= 3:
+			'You got caught while flashing! Who knows what could happen in the future?'
+		elseif blackmailQW['stage'] >= 4:
+			if blackmailQW['next_payment'] = 0:
+				'You have paid your blackmailer, but how long will that keep them quiet?'
+			else
+				'Your blackmailer has demanded you to leave <<blackmailQW[''next_payment'']>> <b>₽</b> in the nearest park.'
+				if daystart < blackmailQW['smsday'] - 1:
+					'You have <<blackmailQW[''smsday''] - daystart>> days left'
+				elseif daystart = blackmailQW['smsday'] - 1:
+					'You have until tomorrow.'
+				elseif daystart = blackmailQW['smsday']:
+					'You have until tonight!'
+				else
+					'You were too late!!'
+				end
+				'<it>You can leave the cash in the city, pav, and pushkin parks, and the gadukino forest.</it>'
+			end
+		end
+	end
 end
 
 if yearstart > 1 and university['enrolled_in_semester'] > university['semester_passed']:

+ 13 - 13
locations/katja_pantyquest.qsrc

@@ -16,7 +16,7 @@ if $ARGS[0] = 'kitchen':
 	if (katjaQW['pantiesQWstage'] < 3 or (katjaQW['pantiesQWstage'] = 3 and katjaQW['slut'] < 65)) and katjaQW['take_of_panties_day'] ! daystart:
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/pantyquest/kitchen_sitting1.jpg"></center>'
 		'You find Katja sitting alone in a chair. "Hi '+iif( katjaQW['couple'] = 0, '<<pcs_nickname>>', 'my love')+' what are you doing here?" Katja asks when she sees you.'
-		'"I came looking for you, what are you doing?" you ask back. "I''m just waiting for my meal to finish cooking," she answers and points at the oven where some food is cooking.'
+		'"I '+iif($ARGS[1] = 'from_room', 'came looking for you', 'I was just looking around')+' , what are you doing?" you ask back. "I''m just waiting for my meal to finish cooking," she answers and points at the oven where some food is cooking.'
 		if pcs_traits['commando_lvl'] > 0 and $pantyworntype = 'none' and npc_sex['A14'] > 0 and katjaQW['no_panties_day'] ! daystart:
 			act 'Show her you are not wearing panties':
 				*clr & cla
@@ -83,14 +83,14 @@ if $ARGS[0] = 'kitchen':
 							'"See, I''m wearing panties. Happy now?" She smiles slyly before closing her legs and pulling her skirt down again.'
 						end
 					end
-					act 'leave': gt 'uni_dorm', 'second_floor'
+					act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 				end
 			end
 		end
 	elseif katjaQW['pantiesQWstage'] < 5 and katjaQW['take_of_panties_day'] ! daystart:
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/pantyquest/kitchen_sitting2.jpg"></center>'
 		'You find Katja sitting alone at the dinner table. "Hi '+iif( katjaQW['couple'] = 0, '<<pcs_nickname>>', 'my love')+' what are you doing here?" Katja asks when she sees you.'
-		'"I came looking for you, what are you doing?" you ask back. "I''m just waiting for my meal to finish cooking," she answers, pointing at the oven where some food is cooking.'
+		'"I '+iif($ARGS[1] = 'from_room', 'came looking for you', 'I was just looking around')+', what are you doing?" you ask back. "I''m just waiting for my meal to finish cooking," she answers, pointing at the oven where some food is cooking.'
 		if pcs_traits['commando_lvl'] > 0 and $pantyworntype = 'none' and npc_sex['A14'] > 0 and katjaQW['no_panties_day'] ! daystart:
 			act 'Show her you are not wearing panties':
 				*clr & cla
@@ -148,7 +148,7 @@ if $ARGS[0] = 'kitchen':
 								'She then gets up, turns her butt towards you, and slowly takes off her panties, pausing to look back at you just before her pussy is visible.'
 								'Then, she hands you her panties. "Here '+iif(lazarQW['your_prize_panties_katja'] = 0, 'you can have them', 'another pair for your collection')+' since you insist that I have to be a slut, I don''t need them anymore."'								
 							end
-							act 'leave': gt 'uni_dorm', 'second_floor'
+							act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 						end
 					else
 						gs 'arousal', 'erotic', -2
@@ -180,7 +180,7 @@ if $ARGS[0] = 'kitchen':
 								'"Happy now?" she says when the panties are completely off.'
 								'"Yes! This is going to be so much fun. Think about how thrilling it will to be careful so you don''t give '+iif(katjaQW['boy_block'] = 1, 'other girls', 'boys')+' a peek of your pussy!" you enthusiastically chirp.'
 								'"I''m already regretting this..." Katja groans. But she does not look upset, nor does she make any move to put her panties back on.'
-								act 'leave': gt 'uni_dorm', 'second_floor'
+								act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 							end
 						end
 					end
@@ -191,12 +191,12 @@ if $ARGS[0] = 'kitchen':
 		if week < 4 and (katjaQW['slut'] < 100 or hour < 18): 
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/pantyquest/kitchen_standing1.jpg"></center>'
 			'You find Katja standing at the kitchen table. "Hi '+iif( katjaQW['couple'] = 0, '<<pcs_nickname>>', 'my love')+' what are you doing here?" Katja ask when she sees you.'
-			'"I came looking for you, what are you doing?" you ask back. "I''m staring to cook my dinner," she answers.'
+			'"I '+iif($ARGS[1] = 'from_room', 'came looking for you', 'I was just looking around')+', what are you doing?" you ask back. "I''m staring to cook my dinner," she answers.'
 		else
 			katjaQW['drinks'] += 2
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/pantyquest/kitchen_standing_with_drink.jpg"></center>'
 			'You find Katja standing at the kitchen table drinking a glass of white wine. "Hi '+iif( katjaQW['couple'] = 0, '<<pcs_nickname>>', 'my love')+' what are you doing here?" Katja ask when she sees you.'
-			'"I came looking for you, what are you doing?" you ask back. "I''m just having a glass of wine before I start to cook my dinner," she answers.'
+			'"I '+iif($ARGS[1] = 'from_room', 'came looking for you', 'I was just looking around')+', what are you doing?" you ask back. "I''m just having a glass of wine before I start to cook my dinner," she answers.'
 			if katjaQW['QWstage'] > 1:
 				'"Why don''t you have a glass with me?" she asks and looks for another glass.'
 				act 'Drink a glass with Katja':
@@ -238,10 +238,10 @@ if $ARGS[0] = 'kitchen':
 							'So you try to discreetly bend down to see up her skirt when she has her back to you.'
 							'But she notices you. "No, I did not put on my panties, just as you asked me. This is what you want to see, isn''t it, you pervert?" she says mockingly as she pulls up her skirt to show you her naked behind.'
 							'After a moment, she lets her skirt fall down and says, "That is enough for voyeurs like you." Then, she continues with her cooking.'
-							act 'Say thanks for the wine and leave': gt 'uni_dorm', 'second_floor'
+							act 'Say thanks for the wine and leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 						end
 					end
-					act 'Say thanks for the wine and leave': gt 'uni_dorm', 'second_floor'
+					act 'Say thanks for the wine and leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 				end
 			end
 		end
@@ -278,12 +278,12 @@ if $ARGS[0] = 'kitchen':
 				'So you try to discreetly bend down to see up her skirt when she has her back to you.'
 				'But she notices you. "No, I did not put on my panties, just as you asked. This is what you want to see, isn''t it, you pervert," she says mockingly as she pulls up her skirt to show you her naked behind.'
 				'After a moment, she lets her skirt fall down and says, "That''s enough for voyeurs like you." Then, she continues with her cooking.'
-				act 'leave': gt 'uni_dorm', 'second_floor'
+				act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 			end
 		end
-		act 'leave': gt 'uni_dorm', 'second_floor'
+		act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 	end
-	act 'leave': gt 'uni_dorm', 'second_floor'
+	act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 end
 
 if $ARGS[0] = 'kitchen_show_pussy':
@@ -298,7 +298,7 @@ if $ARGS[0] = 'kitchen_show_pussy':
 	'But she does hike up her skirt and shows you her smoothly shaved pussy, not hidden by any panties.'
 	'"I do trust you, it''s just that--" you start saying but are promptly cut off. "You are a pervert that gets off on ogling innocent girls'' naked private parts," she says with a naughty glint in her eyes.'
 	'She then lets her skirt fall and turns back to her cooking.'
-	act 'leave': gt 'uni_dorm', 'second_floor'
+	act 'leave': gt 'uni_dorm', 'dorm_kitchen', 'second_floor'
 end
 
 

+ 19 - 0
locations/korrPar.qsrc

@@ -45,15 +45,34 @@ act '<b>Leave and go to the stairwell</b>':
 		msg'<b><font color = red>You need to get dressed.</font></b>'
 		gt 'korrPar'
 	end
+<<<<<<< HEAD
 end
 
 act '<b>Leave and go to the courtyard</b>':
 	if $clothingworntype ! 'nude':
 		if hour < 5 and motherWorry = 0 and age < 18 and locat['Fam_inGad'] = 0:
+=======
+else
+	act '<b>Leave and go to the stairwell</b>':
+		killvar '$default_img_path' 
+		killvar '$mother_img_path'
+		minut += 5
+		gt'pod_ezd','etaj_2'
+	end
+	act '<b>Leave and go to the courtyard</b>':
+		if hour < 5 and motherWorry = 0 and age < 18 and locat['Fam_inGad'] = 0:
+			*nl
+>>>>>>> 78f561e5220e67114c661442038e69470332640e
 			'<font color=red>Are you sure? Your mother will worry.</b></font>'
 			cla
 			act '<font color=red><b>Yes, go outside</b></font>': 
 				minut += 5 
+<<<<<<< HEAD
+=======
+				!! Reset vars - temp until other parts of game migrated
+				killvar '$default_img_path'
+				killvar '$mother_img_path'
+>>>>>>> 78f561e5220e67114c661442038e69470332640e
 				gt'pav_complex', 'start'
 			end
 			act 'No, stay inside':gt 'korrPar'

+ 5 - 4
locations/lover.qsrc

@@ -148,7 +148,7 @@ if $ARGS[0] = 'remove':
 end
 
 if $ARGS[0] = 'add_fuckbuddy':
-	if mid($ARGS[1],1,1) = 'C' :
+	if mid($ARGS[1],1,1) = 'C':
 		gs 'npcpreservec', $ARGS[1]
 		gs 'boyStat', $npclastsaved
 	else
@@ -158,7 +158,8 @@ if $ARGS[0] = 'add_fuckbuddy':
 	if arrpos('$fuckbuddy',$boy) = -1:
 		$fuckbuddy[] = $boy
 		$npc_rel_type[$boy] = 'fuckbuddy'
-		gs 'telefon', 'AddContact', $boy, $npc_pic[$boy],'',"hour >= 8 and hour <= 22",'', "hour >= 8 and hour <= 22", 0
+		gs 'telefon', 'AddContact', $boy, $npc_pic[$boy], 0
+		gs 'telefon', 'SetCallSchedule', $boy, "", "hour >= 8 and hour <= 22", "", "hour >= 8 and hour <= 22"
 	end
 end
 
@@ -173,7 +174,8 @@ if $ARGS[0] = 'add_sugar_daddy':
 	if arrpos('$sugar_daddy',$boy) = -1:
 		$sugar_daddy[] = $boy
 		$npc_rel_type[$boy] = 'sugar_daddy'
-		gs 'telefon', 'AddContact', $boy, $npc_pic[$boy],'',"hour >= 8 and hour <= 22",'', "hour >= 8 and hour <= 22", 0
+		gs 'telefon', 'AddContact', $boy, $npc_pic[$boy], 0
+		gs 'telefon', 'SetCallSchedule', $boy, "", "hour >= 8 and hour <= 22", "", "hour >= 8 and hour <= 22"
 	end
 end
 
@@ -214,7 +216,6 @@ if $ARGS[0] = 'clear_all':
 		gs 'lover', 'remove_sugar_daddy', $sugar_daddy[0]
 		jump 'clear_sd_loop'
 	end
-	
 end
 
 

+ 69 - 0
locations/medical_din.qsrc

@@ -301,4 +301,73 @@ if $ARGS[0] = 'morning_after_pill':
 	end
 end
 
+if $ARGS[0] = 'give_birth':
+	*clr & cla
+	menu_off = 1
+	if kid > 0:
+		minut += rand(300,660)
+	else
+		minut += rand(120,480)
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/shared/clinic/birthing.jpg"></center>'
+	'You lay on the bed and your feet are put in stirrups. Your contractions get closer and closer, and after some time and a lot of swearing, you finally give birth.'
+
+	:multikidloop
+		minut += rand(30, 90)
+		sterilewb += 1
+		nextbaby = arrpos('$kidname', 'unborn')
+		kid += 1
+		BabyEmbryo -= 1
+		daykid[nextbaby] = day
+		monthkid[nextbaby] = month
+		yearkid[nextbaby] = year
+
+		if polkid[nextbaby] = 0:
+			$polreb[nextbaby] = 'girl'
+			'"Congratulations, it''s a girl! What is her name?"'
+		else
+			$polreb[nextbaby] = 'boy'
+			'"Congratulations, it''s a boy! What is his name?"'
+		end
+		wait 350
+		$kidname[nextbaby] = input("Enter your <<$polreb[nextbaby]>>''s name")
+		if $kidname[nextbaby] = '':
+			if polkid[nextbaby] = 0:
+				$kidname[nextbaby] = 'Masha'
+			else
+				$kidname[nextbaby] = 'Misha'
+			end
+		end
+
+		'The doctors clean up <<$kidname[nextbaby]>>.'
+
+	if BabyEmbryo > 0:
+		'You don''t have much time to look at your <<$polreb[nextbaby]>> because you''re having an another contraction. Your next baby is coming!'
+		jump 'multikidloop'
+	end
+
+	preg = 0
+	!! RecovH has a decay of 1.1/hour or ~ 27/day, the recovery period is ~6-10 weeks
+	RecovH = rand(1175, 1875)
+	pregbirthdate = daystart
+	thinkpreg = 0
+	knowpreg = 0
+	knowpregrecover = 1
+	vidage += 1
+	pregtalk = 0
+	pcs_pregtalk = 0
+	pregTalkFamily = 0
+	npc_pregtalk['A16'] = 0
+	npc_pregtalk['A34'] = 0
+	npc_pregtalk['A29'] = 0
+	pregchem = 0
+	pcs_mass['preg'] = pcs_mass['preg'] / 2
+	if pcs_mass['preg'] > 0: bodyVars['RecovH_next'] = (RecovH * (pcs_mass['preg']-1)) / pcs_mass['preg']
+	cycle = 4
+	gs 'cum_cleanup', 'reset'
+	dynamic $d_cycreport_choice
+	gs 'stat'
+end
+
 --- medical_din ---------------------------------

+ 29 - 40
locations/mother.qsrc

@@ -112,22 +112,17 @@ if $ARGS[0] = '':
 
 	$mother_clothes[2] = {
 		if motherKnowWhore = 0 and motherKnowSpravka = 0 and npc_QW['A29'] = 0:
-			if momslut < 2:
-				'Your <<$npc_nickname[''A29'']>> looks at you, her eyes open wide in shock.'
-				'"<<$pcs_nickname>>, people live here! Aren''t you ashamed, walking around naked like that? Get dressed right now!"'
-			else
-				'Your <<$npc_nickname[''A29'']>> shakes her head.'
-				'"You could at least dress while at home, <<$pcs_nickname>>! Do you want the whole family to know that you''re a whore?"'
-			end
-		elseif (motherKnowWhore > 0 or motherKnowSpravka > 0) and npc_QW['A29'] = 1:
-			if momslut < 2:
+			'Your <<$npc_nickname[''A29'']>> looks at you, her eyes open wide in shock.'
+			'"<<$pcs_nickname>>, people live here! Aren''t you ashamed, walking around naked like that? Get dressed right now!"'
+		elseif (motherKnowWhore > 0 or (motherKnowSpravka > 0 and rape_day = 0)) and npc_QW['A29'] = 1:
+			if motherKnowWhore > 0:
 				'Your <<$npc_nickname[''A29'']>> looks angrily at you.'
 				'"Even at home, my whore of a daughter doesn''t have the decency to get dressed when people are around! You better get dressed right <i>now</i>! I never want to see this again!"'
 			else
 				'Your <<$npc_nickname[''A29'']>> shakes her head.'
-				'"You could at least dress at home, <<$pcs_nickname>>! Do you want the whole family to know that you''re a whore?"'
+				'"You could at least dress while at home, <<$pcs_nickname>>! Do you want the whole family to know that you''re a whore?"'
 			end
-		elseif npc_QW['A29'] >= 2:
+		else
 			'Your <<$npc_nickname[''A29'']>> looks at you sternly.'
 			'"<<$pcs_nickname>>, could you at least put some clothes on while you''re at home? If you want to impress some fancy man, go do it at his place."'
 		end
@@ -288,7 +283,7 @@ if $ARGS[0] = '':
 		end
       
 		!!Tell mother that you were raped and skip mother being angry at you for being sexualy active event
-		if rape_count > 0 and rape_day+7 > daystart:
+		if rape_count > 0 and rape_day+7 > daystart and rape_talk_mom ! rape_count:
 			act 'Tell her about your rape':
 				gt 'mother_chats', 'rape_talk'
 			end
@@ -1155,9 +1150,10 @@ if $ARGS[0] = 'pregreact1':
 					act 'Continue': gt 'mother'
 				end
 			end
-			if rape[2] > daystart - 30:
+			if rape_day+30 > daystart and rape_talk_mom ! rape_count:
 				act'I was raped':
 					cla & *nl
+					rape_talk_mom = rape_count
 					'"I... I don''t actually know. I was..." you stammer as you struggle to get the next word out. "I was raped..."'
 					'"What?! Are you okay?! Why did''t you tell me sooner?!"'
 					'"I was scared and ashamed and I didn''t know how you would react..." Your lip quivers as tears begin to flow down your face. "I''m sorry. I should have said something."'
@@ -1981,41 +1977,34 @@ if $ARGS[0] = 'dildo_find':
 			gs 'npc_relationship', 'modify', 'A29', 'dislike'
 			'I don''t know, I wanted to experiment. I read on the internet about it and that''s how I got it," you try to explain...'
 			'Your <<$npc_nickname[''A29'']>> walks up to you and starts brushing your hair. "You''re aware this is for adults only, right? It''s not something that you should be owning. You''re still too young for this..."'
-			act 'But':
-				*clr & cla
-				gs 'stat'
-				'"I think I''m old enough..." you argue back.'
-				'Your <<$npc_nickname[''A29'']>> starts laughing. "If you say so, honey."'
-				!! If Sveta has several dildos
-				if mc_inventory['dildo_small'] + mc_inventory['dildo_normal'] + mc_inventory['dildo_big'] + mc_inventory['dildo_large'] + mc_inventory['dildo_huge'] + mc_inventory['dildo_enormous'] + mc_inventory['dildo_gigantic'] > 1:
-					'"You''ve already built up a collection of them..." your <<$npc_nickname[''A29'']>> says while looking at you for an answer.'
-					'"You never know which one you might need..." you try to explain.'
-					'"Oh honey, you need to find the correct one for you and use that, not have lots of them laying around. What if we have guests over and they stumble across one? I would be so ashamed..."'
-					'"Don''t let them enter my room then! This is getting too awkward and I don''t want to talk about it anymore..." you reply.'
-					'"Fine, fine... I still don''t understand why you need so many of them..." she comments as she leaves the room.'
-				elseif mc_inventory['dildo_small'] = 1 or mc_inventory['dildo_normal'] = 1:
-					'"I''ll give you this at least, you picked a perfect starting dildo. The size should fit someone unexperienced..."'
-					'You quickly yank the dildo out of her hand. "I don''t want to talk with you about this! This is so awkward!" you yell as you start blushing.'
-					'"Okay, okay. Just so you know I''m not too fond of you owning a dildo, but it''s better than having you running around having sex with boys."'
-					'"<<$npc_nickname[''A29'']>>! Leave! Now!" you shout.'
+		end
+		act 'But':
+			*clr & cla
+			gs 'stat'
+			'"I think I''m old enough..." you argue back.'
+			'Your <<$npc_nickname[''A29'']>> starts laughing. "If you say so, honey."'
+			!! If Sveta has several dildos
+			if mc_inventory['dildo_small'] + mc_inventory['dildo_normal'] + mc_inventory['dildo_big'] + mc_inventory['dildo_large'] + mc_inventory['dildo_huge'] + mc_inventory['dildo_enormous'] + mc_inventory['dildo_gigantic'] > 1:
+				'"You''ve already built up a collection of them..." your <<$npc_nickname[''A29'']>> says while looking at you for an answer.'
+				'"You never know which one you might need..." you try to explain.'
+				'"Oh honey, you need to find the correct one for you and use that, not have lots of them laying around. What if we have guests over and they stumble across one? I would be so ashamed..."'
+				'"Don''t let them enter my room then! This is getting too awkward and I don''t want to talk about it anymore..." you reply.'
+				'"Fine, fine... I still don''t understand why you need so many of them..." she comments as she leaves the room.'
+			else
+				if mc_inventory['dildo_small'] = 1 or mc_inventory['dildo_normal'] = 1:
+					'"I''ll give you this at least, you picked a perfect starting dildo. The size should fit someone inexperienced..."'
 				elseif mc_inventory['dildo_big'] = 1 or mc_inventory['dildo_large'] = 1:
 					'"Isn''t this a bit too big for you? It''s... a bit bigger than I expected to find if I were ever to find something like this..."'
-					'You quickly yank the dildo out of her hand. "I don''t want to talk with you about this! This is so awkward!" you yell as you start blushing.'
-					'"Okay, okay. Just so you know I''m not too fond of you owning a dildo, but it''s better than having you running around having sex with boys."'
-					'"<<$npc_nickname[''A29'']>>! Leave! Now!" you shout.'
 				elseif mc_inventory['dildo_huge'] = 1 or mc_inventory['dildo_enormous'] = 1:
 					'<<$npc_nickname[''A29'']>> starts laughing, "Well, you certainly didn''t buy the correct. There is now way this will fit-"'
-					'You quickly yank the dildo out of her hand. "I don''t want to talk with you about this! This is so awkward!" you yell as you start blushing.'
-					'"Okay, okay. Just so you know I''m not too fond of you owning a dildo, but it''s better than having you running around having sex with boys."'
-					'"<<$npc_nickname[''A29'']>>! Leave! Now!" you shout.'
 				else
 					'"What were you thinking, <<$pcs_nickname>>?! This would ruin you forever! I forbid you from even trying using this!"'
-					'You quickly yank the dildo out of her hand. "I don''t want to talk with you about this! This is so awkward!" you yell as you start blushing.'
-					'"Okay, okay. Just so you know I''m not too fond of you owning a dildo, but it''s better than having you running around having sex with boys."'
-					'"<<$npc_nickname[''A29'']>>! Leave! Now!" you shout.'
 				end
-				act 'Put away the dildo'+iif(mc_inventory['dildo_small'] + mc_inventory['dildo_normal'] + mc_inventory['dildo_big'] + mc_inventory['dildo_large'] + mc_inventory['dildo_huge'] + mc_inventory['dildo_enormous'] + mc_inventory['dildo_gigantic'] > 1, 's',''): gt 'bedrPar'
+				'You quickly yank the dildo out of her hand. "I don''t want to talk with you about this! This is so awkward!" you yell as you start blushing.'
+				'"Okay, okay. Just so you know I''m not too fond of you owning a dildo, but it''s better than having you running around having sex with boys."'
+				'"<<$npc_nickname[''A29'']>>! Leave! Now!" you shout.'
 			end
+			act 'Put away the dildo'+iif(mc_inventory['dildo_small'] + mc_inventory['dildo_normal'] + mc_inventory['dildo_big'] + mc_inventory['dildo_large'] + mc_inventory['dildo_huge'] + mc_inventory['dildo_enormous'] + mc_inventory['dildo_gigantic'] > 1, 's',''): gt 'bedrPar'
 		end
 	end
 	act 'I got it from somewhere...':

+ 1 - 0
locations/mother_chats.qsrc

@@ -3,6 +3,7 @@
 if $ARGS[0] = 'rape_talk':
 	*clr & cla
 	minut += 5
+	rape_talk_mom = rape_count
 	if motherKnowSpravka = 0: motherKnowSpravka = 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/hug_sad1.jpg"></center>'

+ 28 - 6
locations/nastja.qsrc

@@ -2,6 +2,27 @@
 
 menu_off = 1
 
+if $ARGS[0] = 'start':
+	gs 'stat'
+	gs 'telefon','phone_call_receive'
+
+	if npc_QW['A192'] = 1 and week = 6 and pcs_apprnc > 80:
+		gt 'nastja', 'pos4'
+	elseif npc_QW['A192'] = 2 and week ! 6 and mc_inventory['tech_camera'] ! 0 and nastjaday ! daystart:
+		gt 'nastja', 'pos13'
+	elseif hour >= 8 and hour <= 20 and npc_QW['A192'] = 2 and week = 6 and pcs_apprnc > 80 and nastjaday ! daystart:
+		gt 'nastja', 'pos12'
+	elseif npc_QW['A192'] = 5 and week = 6 and nastjaday ! daystart:
+		gt 'nastja', 'pos22'
+	elseif npc_QW['A192'] = 6 and nastjaday ! daystart:
+		gt 'nastja', 'pos31'
+	else
+		$callerid = 'images/system/phone/icons/icon_nastja.png'
+		gs 'telefon','phone_call_reject'
+	end
+end
+
+
 if $ARGS[0] = 'pos1':
 	cla
 	*clr
@@ -23,7 +44,8 @@ if $ARGS[0] = 'pos1':
 			cla
 			*clr
 			npc_QW['A192'] = 1
-			gs 'telefon', 'AddContact', 'A192', 'icon_nastja',"gs 'telefon', 'start'", "hour >= 8 and hour < 20", "", ""
+			gs 'telefon', 'AddContact', 'A192', 'icon_nastja', 0
+			gs 'telefon', 'SetCallSchedule', 'A192', "gs 'nastja', 'start'", "hour >= 8 and hour < 20", "", "0"
 			minut += 60
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/city/anastasia/nastja.jpg"></center>'
@@ -61,7 +83,7 @@ if $ARGS[0] = 'pos5':
 	*clr
 	minut += 60
 	npc_QW['A192'] = 2
-	gs 'telefon', 'AddContact', 'A192', 'icon_nastja',"gs 'telefon', 'start'", "hour >= 8 and hour < 20", "", ""
+	gs 'telefon', 'SetCallSchedule', 'A192', "gs 'nastja', 'start'", "hour >= 8 and hour < 20", "", "0"
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/anastasia/1party0.jpg"></center>'
 	'You arrive at a karaoke cafe called "Mast".'
@@ -315,7 +337,7 @@ if $ARGS[0] = 'pos12':
 	minut += 10
 	pcs_mood += 40
 	npc_QW['A192'] = 3
-	gs 'telefon', 'AddContact', 'A192', 'icon_nastja',"gs 'telefon', 'start'", "hour >= 8 and hour < 20", "", ""
+	gs 'telefon', 'SetCallSchedule', 'A192', "gs 'nastja', 'start'", "hour >= 8 and hour < 20", "", "0"
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/anastasia/tel_talk.jpg"></center>'
 	'It rings two, three, four times before Anastasia picks up.'
@@ -466,7 +488,7 @@ if $ARGS[0] = 'pos21':
 	*clr
 	minut += 20
 	npc_QW['A192'] = 5
-	gs 'telefon', 'AddContact', 'A192', 'icon_nastja',"gs 'telefon', 'start'", "hour >= 8 and hour < 20", "", ""
+	gs 'telefon', 'SetCallSchedule', 'A192', "gs 'nastja', 'start'", "hour >= 8 and hour < 20", "", "0"
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/anastasia/2bslp.jpg"></center>'
 	'After running and jumping around like that in everybody''s plain view, sitting down and lying back topless isn''t enough to make you feel shy and neither you nor Nastya have any qualms about spreading your arms and showing off your bodies to everyone as you sunbathe once again.'
@@ -485,7 +507,7 @@ if $ARGS[0] = 'pos22':
 	minut += 10
 	pcs_mood += 50
 	npc_QW['A192'] = 6
-	gs 'telefon', 'AddContact', 'A192', 'icon_nastja',"gs 'telefon', 'start'", "hour >= 8 and hour < 20", "", ""
+	gs 'telefon', 'SetCallSchedule', 'A192', "gs 'nastja', 'start'", "hour >= 8 and hour < 20", "", "0"
 	gs 'stat'
 
 	'<center><img <<$set_imgh>> src="images/characters/city/anastasia/tel_talk.jpg"></center>'
@@ -665,7 +687,7 @@ if $ARGS[0] = 'pos31':
 	minut += 10
 	pcs_mood += 50
 	npc_QW['A192'] = 7
-	gs 'telefon', 'AddContact', 'A192', 'icon_nastja',"gs 'telefon', 'start'","hour >= 8 and hour <= 20","",""
+	gs 'telefon', 'SetCallSchedule', 'A192', "gs 'nastja', 'start'", "hour >= 8 and hour <= 20", "", "0"
 	gs 'stat'
 
 	'<center><img <<$set_imgh>> src="images/characters/city/anastasia/tel_talk.jpg"></center>'

+ 8 - 0
locations/natbel_chat.qsrc

@@ -727,18 +727,24 @@ if $ARGS[0] = 'job_questions_runner':
 					'You both head to the bathroom and undress. Natasha turns the shower on pausing for a passionate kiss before getting in and lathering each other.'
 
 					act 'Escalation':
+						*clr & cla
+						minut += 5
 						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/natasha/events/kissing_games/natasha37.jpg"></center>'
 						'Unable to keep your hands off each other the kissing quickly escalates.'
 						'Natasha''s hand is soon between your legs as her fingers begin to work their magic.'
 						'You, in turn, push your leg between Natasha''s as she starts to ride your leg.'
 
 						act 'Grind':
+							*clr & cla
+							minut += 5
 							'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/natasha/events/kissing_games/natasha38.jpg"></center>'
 							'It''s not long before you lean forward and push your arse back into Natasha''s pussy and start grinding on her.'
 							'Oh! Fuck! <<$pcs_nickname>>! I''m going to..."'
 							'You decide to pull back at the last second...'
 
 							act 'Licking':
+								*clr & cla
+								minut += 5
 								'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/natasha/events/kissing_games/natasha39.jpg"></center>'
 								'You push Natasha''s head down to your pussy and hold it there'
 								'Your legs start to feel like jelly so you sit on the small ledge.'
@@ -885,6 +891,8 @@ if $ARGS[0] = 'job_questions_natbel_returns':
 
 			killvar 'temp_city_work'
 			killvar 'temp_pav_work'
+			natbelQW['StP_trip_daystart'] = daystart + 14 + (13-week) mod 7		& ! Saturday 2 weeks from now
+			natbelQW['FriendLover'] = 9
 			act 'Keep talking': gt 'natbel_chat', 'chat'
 			act 'Stop talking': gt 'natbelapt', 'natroom'
 		end

+ 117 - 87
locations/nerd_game_night.qsrc

@@ -1467,8 +1467,24 @@ if $ARGS[0] = 'zinaida':
 end
 
 
-if $ARGS[0] = 'summer_invite_sms':
+if $ARGS[0] = 'game_invite_sms_switch':
+	if $start_type['loc'] = 'sg' and (grupTipe = 3 or nerd_game['stage'] > 0 or rand(80, npc_rel['A152']) > 95):
+		gs 'nerd_game_night', 'summer_invite_sms', 'Add SMS'
+	elseif ($start_type['loc'] = 'uni' or $start_type['loc'] = 'city') and nerd_game['fixed_uni_day'] = 0 and (nerd_game['stage'] > 0 or rand(80, npc_rel['A152']) > 95):
+		gs 'nerd_game_night', 'summer2_invite_sms', 'Add SMS'
+	end
+	gs 'telefon', 'SetSMSSchedule', 'A152', "", "0", "", "0"
+end
+
+if $ARGS[0] = 'first_text':
+	temp_pos = arrpos('$contact', 'A152')
+	if temp_pos = -1 or contactAnon[temp_pos] = 1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', 0
+	killvar 'temp_pos'
+	nerd_game['first_SMS_received'] = 1
+end
 
+
+if $ARGS[0] = 'summer_invite_sms':
 	if $ARGS[1] = 'Add SMS':
 		nerd_game['lot'] = func('shortgs', 'rand_pick', '', 12, 13, 14, 23, 24, 34)
 	end
@@ -1480,17 +1496,22 @@ if $ARGS[0] = 'summer_invite_sms':
 		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>>, would you like to join us for our weekly game night? We have a few nights free this week and were wondering which one works best for you. We can do it either on <<$week[val(mid(nerd_game[''lot''],1,1))]>> or <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
 	end
 
-		$SMSTree['ca1'] = 'Not interested'
-			$SMSTree['a1'] = 'Sorry, but I''m just not interested in stuff like that. Thanks for the invite though.'
-				$SMSTree['a2'] = ':-( Oh... okay yeah I get it. Guess we''ll see you around.'
+		$SMSTree['ca1'] = '<<$week[val(mid(nerd_game[''lot''],1,1))]>>'
+			$SMSTree['a1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],1,1))]>>.'
+				$SMSTree['a2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],1,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+
+		$SMSTree['cb1'] = '<<$week[val(mid(nerd_game[''lot''],2,1))]>>'
+			$SMSTree['b1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
+				$SMSTree['b2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],2,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
-		$SMSTree['cb1'] = '<<$week[val(mid(nerd_game[''lot''],1,1))]>>'
-			$SMSTree['b1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],1,1))]>>.'
-				$SMSTree['b2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],1,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+		$SMSTree['cc1'] = 'Not this week'
+			$SMSTree['c1'] = 'Sorry I don''t have time this week, but next week I should be able too.'
+				$SMSTree['c2'] = ':-( Oh... okay yeah I get it. Guess we''ll see you next week.'
 
-		$SMSTree['cc1'] = '<<$week[val(mid(nerd_game[''lot''],2,1))]>>'
-			$SMSTree['c1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
-				$SMSTree['c2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],2,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+		$SMSTree['cd1'] = 'Not interested'
+			$SMSTree['cd2'] = '<font color="red">This ends the D&D Campaign - Forever</font>'
+				$SMSTree['d2'] = 'Sorry, but I''m just not interested in stuff like that. Thanks for the invite though.'
+					$SMSTree['d3'] = ':-( Oh... okay yeah I get it. Guess we''ll see you around.'
 
 
 	if $ARGS[1] = 'Add SMS':
@@ -1502,103 +1523,102 @@ if $ARGS[0] = 'summer_invite_sms':
 			gs 'SMStext_builder', 'add_reply', $SMSTree['ca1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_a'
 			gs 'SMStext_builder', 'add_reply', $SMSTree['cb1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_b'
 			gs 'SMStext_builder', 'add_reply', $SMSTree['cc1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_c'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cd1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_d'
 
 			gs 'SMStext_builder', 'add_sms', 'A152'
 		gs 'SMStext_builder', 'end'
-	
-	elseif $ARGS[1] = 'Choice_a':
+	else
 		!! Add Feofan to the contact list if he isn''t in it yet.
 		!! Is here to add it after reading the text.
 		if nerd_game['first_SMS_received'] = 0:
-			if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', "", "1 = 0", "", "", 0
-			nerd_game['first_SMS_received'] = 1
+			gs 'nerd_game_night', 'first_text'
 		end
+	end
 
+	if $ARGS[1] = 'Choice_a':
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['a1']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
-			wait 1000
+			nerd_game['game_day'] = daystart - week + val(mid(nerd_game['lot'], 1, 1))
+
+			wait 250
 
 			gs 'SMStext_builder', 'receive', $SMSTree['a2']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
 		gs 'SMStext_builder', 'end'
-!!		nerd_game['invite_day'] = 2147483647 & ! block the event
-	
-	elseif $ARGS[1] = 'Choice_b':
-		!! Add Feofan to the contact list if he isn''t in it yet.
-		!! Is here to add it after reading the text.
-		if nerd_game['first_SMS_received'] = 0:
-			if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', "", "1 = 0", "", "", 0
-			nerd_game['first_SMS_received'] = 1
-		end
-
-		nerd_game['game_day'] = daystart - week + val(mid(nerd_game['lot'],1,1))
 
+	elseif $ARGS[1] = 'Choice_b':
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['b1']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
-			wait 1000
+			nerd_game['game_day'] = daystart - week + val(mid(nerd_game['lot'], 2, 1))
+
+			wait 250
 
 			gs 'SMStext_builder', 'receive', $SMSTree['b2']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
 		gs 'SMStext_builder', 'end'
 
 	elseif $ARGS[1] = 'Choice_c':
-		!! Add Feofan to the contact list if he isn''t in it yet.
-		!! Is here to add it after reading the text.
-		if nerd_game['first_SMS_received'] = 0:
-			if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', "", "1 = 0", "", "", 0
-			nerd_game['first_SMS_received'] = 1
-		end
-
-		nerd_game['game_day'] = daystart - week + val(mid(nerd_game['lot'],2,1))
-
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['c1']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
-			wait 1000
+
+			wait 250
 
 			gs 'SMStext_builder', 'receive', $SMSTree['c2']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
 		gs 'SMStext_builder', 'end'
-	end
 
-	killvar '$SMSTree'
-end
+	elseif $ARGS[1] = 'Choice_d':
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['ca1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_a'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cb1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_b'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cc1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_c'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cd2'], 'nerd_game_night', 'summer_invite_sms', 'Choice_d1'
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 
-if $ARGS[0] = 'summer2_invite_sms':
-	$SMS_open_receiving = '<table width=80%><tr><td collspan=2 bgcolor="#D4CEF9"><font color=black>'
-	$SMS_close_receiving = '</font></td><td width=10%></td></tr></table>'
+	elseif $ARGS[1] = 'Choice_d1':
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'send', $SMSTree['d2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			nerd_game['invite_day'] += 7305		& ! Next campaign in 20 years.
 
-	!! Open and close sending text
-	$SMS_open_sending = '<table width=80%><tr><td width=10%></td><td collspan=2 bgcolor=pink><font color=black>'
-	$SMS_close_sending = '</font></td></tr></table>'
+			wait 250
 
-	!! Start reply
-	$SMS_open_replies = '<table><tr><th> Reply</th></tr><tr><td>'
-	$SMS_next_reply = '</td></tr><tr><td>'
-	$SMS_close_replies = '</td></tr></table>'
-	
-	$temp_SMStext = ''
+			gs 'SMStext_builder', 'receive', $SMSTree['d3']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
+	end
 
+	killvar '$SMSTree'
+end
 
+if $ARGS[0] = 'summer2_invite_sms':
 	if nerd_game['first_SMS_received'] = 0:
 		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>> this is Feofan. We are doing our weekly game night at the Coffee Hole, coffee shop now. We will mostly be playing Dungeons and Dragons and board games. I was talking to the others and we were wondering if you was going to keep playing with us? We have a few nights free this week and were wondering which night works best for you. We can do it either on Tuesday or Thursday.'
 	else
 		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>>, would you like to join us for our weekly game night at the Coffee Hole? We have a few nights free this week and were wondering which night works best for you. We can do it either on Tuesday or Thursday.'
 	end
 
-		$SMSTree['ca1'] = 'Not interested'
-			$SMSTree['a1']  = 'Sorry, but I''m just not interested in stuff like that anymore. Thanks for the invite though.'
-				$SMSTree['a2'] = ':-( Oh... Okay, yeah I get it. Guess we''ll see you around.'
+		$SMSTree['ca1'] = 'Tuesday'
+			$SMSTree['a1'] = 'Sure, I can make it on Tuesday.'
+				$SMSTree['a2'] = ':-) Great! I''ll see you on Tuesday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+
+		$SMSTree['cb1'] = 'Thursday'
+			$SMSTree['b1'] = 'Sure, I can make it on Thursday.'
+				$SMSTree['b2'] = ':-) Great! I''ll see you on Thursday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
-		$SMSTree['cb1'] = 'Tuesday'
-			$SMSTree['b1'] = 'Sure, I can make it on Tuesday.'
-				$SMSTree['b2'] = ':-) Great! I''ll see you on Tuesday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+		$SMSTree['cc1'] = 'Not this week'
+			$SMSTree['c1']  = 'Sorry I don''t have time this week, but next week I should be able too.'
+				$SMSTree['c2'] = ':-( Oh... Okay, yeah I get it. Guess we''ll see you next week.'
+
+		$SMSTree['cd1'] = 'Not interested'
+			$SMSTree['cd2'] = '<font color="red">This ends the D&D Campaign - Forever</font>'
+				$SMSTree['d2'] = 'Sorry, but I''m just not interested in stuff like that. Thanks for the invite though.'
+					$SMSTree['d3'] = ':-( Oh... okay yeah I get it. Guess we''ll see you around.'
 
-		$SMSTree['cc1'] = 'Thursday'
-			$SMSTree['c1'] = 'Sure, I can make it on Thursday.'
-				$SMSTree['c2'] = ':-) Great! I''ll see you on Thursday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
 	if $ARGS[1] = 'Add SMS':
 		nerd_game['invite_day'] = daystart
@@ -1609,67 +1629,77 @@ if $ARGS[0] = 'summer2_invite_sms':
 			gs 'SMStext_builder', 'add_reply', $SMSTree['ca1'], 'nerd_game_night', 'summer2_invite_sms', 'Choice_a'
 			gs 'SMStext_builder', 'add_reply', $SMSTree['cb1'], 'nerd_game_night', 'summer2_invite_sms', 'Choice_b'
 			gs 'SMStext_builder', 'add_reply', $SMSTree['cc1'], 'nerd_game_night', 'summer2_invite_sms', 'Choice_c'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cd1'], 'nerd_game_night', 'summer2_invite_sms', 'Choice_d'
 
 			gs 'SMStext_builder', 'add_sms', 'A152'
 		gs 'SMStext_builder', 'end'
-
-	elseif $ARGS[1] = 'Choice_a':
+	else
 		!! Add Feofan to the contact list if he isn''t in it yet.
 		!! Is here to add it after reading the text.
 		if nerd_game['first_SMS_received'] = 0:
-			if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', "", "1 = 0", "", "", 0
-			nerd_game['first_SMS_received'] = 1
+			gs 'nerd_game_night', 'first_text'
 		end
+	end
+
 
+	if $ARGS[1] = 'Choice_a':
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['a1']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
-			wait 1000
+			nerd_game['fixed_uni_day'] = 2
+
+			wait 250
 
 			gs 'SMStext_builder', 'receive', $SMSTree['a2']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
 		gs 'SMStext_builder', 'end'
-!!		nerd_game['invite_day'] = 2147483647 & ! block the event
 
 	elseif $ARGS[1] = 'Choice_b':
-		!! Add Feofan to the contact list if he isn''t in it yet.
-		!! Is here to add it after reading the text.
-		if nerd_game['first_SMS_received'] = 0:
-			if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', "", "1 = 0", "", "", 0
-			nerd_game['first_SMS_received'] = 1
-		end
-
-		nerd_game['fixed_uni_day'] = 2
-		
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['b1']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
-			wait 1000
+			nerd_game['fixed_uni_day'] = 4
+
+			wait 250
 
 			gs 'SMStext_builder', 'receive', $SMSTree['b2']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
 		gs 'SMStext_builder', 'end'
 
 	elseif $ARGS[1] = 'Choice_c':
-		!! Add Feofan to the contact list if he isn''t in it yet.
-		!! Is here to add it after reading the text.
-		if nerd_game['first_SMS_received'] = 0:
-			if arrpos('$contact', 'A152') = -1: gs 'telefon', 'AddContact', 'A152', 'images/characters/shared/headshots_main/big152.jpg', "", "1 = 0", "", "", 0
-			nerd_game['first_SMS_received'] = 1
-		end
-
-		nerd_game['fixed_uni_day'] = 4
-		
 		gs 'SMStext_builder', 'start'
 			gs 'SMStext_builder', 'send', $SMSTree['c1']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
-			wait 1000
+
+			wait 250
 
 			gs 'SMStext_builder', 'receive', $SMSTree['c2']
 			gs 'SMStext_builder', 'show_sms', ARGS[2]
 		gs 'SMStext_builder', 'end'
+
+		elseif $ARGS[1] = 'Choice_d':
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['ca1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_a'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cb1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_b'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cc1'], 'nerd_game_night', 'summer_invite_sms', 'Choice_c'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cd2'], 'nerd_game_night', 'summer_invite_sms', 'Choice_d1'
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
+
+	elseif $ARGS[1] = 'Choice_d1':
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'send', $SMSTree['d2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			nerd_game['invite_day'] += 7305		& ! Next campaign in 20 years.
+
+			wait 250
+
+			gs 'SMStext_builder', 'receive', $SMSTree['d3']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 	end
 
+
 	killvar '$SMSTree'
 end
 

+ 4 - 4
locations/npcstatic4.qsrc

@@ -927,10 +927,10 @@ npc_gender['A<<npctemp>>'] = 0
 gs 'npcstaticdefaults', 'defaults'
 
 $npc_thdick['A<<npctemp>>'] = 'well proportioned'
-npc_dick['A<<npctemp>>'] = 16
+npc_dick['A<<npctemp>>'] = 18
 npc_sexskill['A<<npctemp>>'] = 2
 npc_haircol['A<<npctemp>>'] = 1
-
+npc_spermpot['A<<npctemp>>'] = 10000
 
 
 
@@ -940,14 +940,14 @@ $npc_firstname['A<<npctemp>>'] = 'Egor'
 $npc_nickname['A<<npctemp>>'] = 'Egori'
 $npc_lastname['A<<npctemp>>'] = 'Klyuyev'
 $npc_usedname['A<<npctemp>>'] = 'Porn actor Egor Klyuyev'
-$npc_notes['A<<npctemp>>'] = 'In his early 50s, Egor is the oldest actor at the porn studio. He''s living a dream life of being paid to fuck hot girls all day long, a fact he likes to proudly boast about to anyone who listens.'
+$npc_notes['A<<npctemp>>'] = 'In his early 50s, Egor is the oldest and most experienced actor at the porn studio. He''s living a dream life of being paid to fuck hot girls all day long, a fact he likes to proudly boast about to anyone who listens.'
 npc_dob['A<<npctemp>>'] = 19630311
 npc_gender['A<<npctemp>>'] = 0
 
 gs 'npcstaticdefaults', 'defaults'
 
 $npc_thdick['A<<npctemp>>'] = 'slim'
-npc_dick['A<<npctemp>>'] = 18
+npc_dick['A<<npctemp>>'] = 16
 npc_sexskill['A<<npctemp>>'] = 1
 npc_haircol['A<<npctemp>>'] = 1
 npc_spermpot['A<<npctemp>>'] = 8000

+ 46 - 14
locations/npcstatic6.qsrc

@@ -27,7 +27,6 @@ npc_haircol['A<<npctemp>>'] = 1
 
 
 
-
 npctemp = 251
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -51,7 +50,6 @@ npc_haircol['A<<npctemp>>'] = 1
 
 
 
-
 npctemp = 252
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -75,7 +73,6 @@ npc_haircol['A<<npctemp>>'] = 1
 
 
 
-
 npctemp = 253
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -98,7 +95,6 @@ npc_intel['A<<npctemp>>'] = 82
 
 
 
-
 npctemp = 254
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -127,7 +123,6 @@ gs 'npc_standard_preferences', 'A<<npctemp>>'
 
 
 
-
 npctemp = 255
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -156,7 +151,6 @@ gs 'npc_standard_preferences', 'A<<npctemp>>'
 
 
 
-
 npctemp = 256
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -186,7 +180,6 @@ gs 'npc_standard_preferences', 'A<<npctemp>>'
 
 
 
-
 npctemp = 257
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -210,7 +203,6 @@ hotcat_rating['A<<npctemp>>'] = 7
 
 
 
-
 npctemp = 258
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -234,7 +226,6 @@ hotcat_rating['A<<npctemp>>'] = 6
 
 
 
-
 npctemp = 259
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -257,7 +248,6 @@ npc_intel['A<<npctemp>>'] = 20
 
 
 
-
 npctemp = 260
 !! Missing DNA & Last name
 $npc_dna['A<<npctemp>>'] = '0'
@@ -280,7 +270,6 @@ hotcat_rating['A<<npctemp>>'] = 7
 
 
 
-
 npctemp = 261
 !! Missing DNA & Last name
 $npc_dna['A<<npctemp>>'] = '0'
@@ -301,7 +290,6 @@ hotcat_rating['A<<npctemp>>'] = 8
 
 
 
-
 npctemp = 262
 !! Missing DNA
 $npc_dna['A<<npctemp>>'] = '0'
@@ -320,7 +308,6 @@ hotcat_rating['A<<npctemp>>'] = 7
 
 
 
-
 npctemp = 263
 $npc_dna['A<<npctemp>>'] = '1594378993 1607632682 1428796224 1448474566 1775134737 1909315069 1882255348'
 $npc_firstname['A<<npctemp>>'] = 'Ksenya'
@@ -344,7 +331,6 @@ $npc_occupation['A<<npctemp>>'] = 'Exhibitionist Store Owner'
 
 
 
-
 npctemp = 264
 $npc_dna['A<<npctemp>>'] = '1290130369 1043654233 5049908515 3153411713 0721993774 2486220839 0288719745'
 $npc_firstname['A<<npctemp>>'] = 'Yakov'
@@ -532,6 +518,52 @@ gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
 gs 'npc_standard_preferences', 'A<<npctemp>>'
 
 
+
+npctemp = 272
+!! Missing DNA
+$npc_dna['A<<npctemp>>'] = '0'
+$npc_firstname['A<<npctemp>>'] = 'Rostislav'
+$npc_nickname['A<<npctemp>>'] = 'Rostislav'
+$npc_lastname['A<<npctemp>>'] = 'Popov'
+$npc_usedname['A<<npctemp>>'] = 'Rostislav'
+$npc_notes['A<<npctemp>>'] = 'Radomir''s father, he is a fit attractive man in his early forties. He has a attitude that women only exist to provide sexual pleasure to men and that no man should ever be tied to a single woman. He believe it is natural for men to cheat on their wives or girlfriends and has passed his view down to his two sons. He works at one of the factories in the city.'
+npc_dob['A<<npctemp>>'] = 19741225
+npc_gender['A<<npctemp>>'] = 0
+
+gs 'npcstaticdefaults', 'defaults'
+
+$npc_thdick['A<<npctemp>>'] = 'thicker than average'
+npc_dick['A<<npctemp>>'] = 18
+npc_sexskill['A<<npctemp>>'] = 2
+npc_intel['A<<npctemp>>'] = 65
+npc_spermpot['A<<npctemp>>'] = 11000
+hotcat_rating['A<<npctemp>>'] = 7
+npc_haircol['A<<npctemp>>'] = 1
+
+
+
+npctemp = 273
+!! Missing DNA
+$npc_dna['A<<npctemp>>'] = '0'
+$npc_firstname['A<<npctemp>>'] = 'Radislav'
+$npc_nickname['A<<npctemp>>'] = 'slava'
+$npc_lastname['A<<npctemp>>'] = 'Popov'
+$npc_usedname['A<<npctemp>>'] = 'Radislav'
+$npc_notes['A<<npctemp>>'] = 'Radomir''s older brother, he is a fit attractive young man in his early to mid twenties. When he attended Pavlovsk school he was the captain of the football team and the top athlete, he won several awards. Afterwards he went to the University where he screwed around and flunked out, after that he moved back home and got a job in the same factor as his father.'
+npc_dob['A<<npctemp>>'] = 19940303
+npc_gender['A<<npctemp>>'] = 0
+
+gs 'npcstaticdefaults', 'defaults'
+
+$npc_thdick['A<<npctemp>>'] = 'thicker than average'
+npc_dick['A<<npctemp>>'] = 22
+npc_sexskill['A<<npctemp>>'] = 2
+npc_intel['A<<npctemp>>'] = 45
+npc_spermpot['A<<npctemp>>'] = 11000
+hotcat_rating['A<<npctemp>>'] = 8
+npc_haircol['A<<npctemp>>'] = 1
+
+
 !! {Keep this at the end of file of the npcstatics.}
 aarraynumber = npctemp
 

+ 2 - 2
locations/parkM.qsrc

@@ -152,7 +152,7 @@ if $ARGS[0] = 'sexrand3':
 		if $home['town'] = 'pavlovsk':
 			gt 'pav_park', 'start'
 		elseif $home['town'] = 'oldtown':
-			gt 'parks', 'start'
+			gt 'pushkin_parks', 'start'
 		else
 			gt 'city_park', 'start'
 		end
@@ -174,7 +174,7 @@ if $ARGS[0] = 'sexrand4':
 		if $home['town'] = 'pavlovsk':
 			gt 'pav_park', 'start'
 		elseif $home['town'] = 'oldtown':
-			gt 'parks', 'start'
+			gt 'pushkin_parks', 'start'
 		else
 			gt 'city_park', 'start'
 		end

+ 2 - 7
locations/park_walkevents.qsrc

@@ -782,7 +782,7 @@ if $ARGS[0] = '8':
 
 	if pcs_lover < 3 and vnerand <= pcs_apprnc:
 		*clr & cla
-		gs 'boy'
+		gs 'boygirl', 0
 		'A guy with <<$boybody_pref>>, <<$boybod>> body and <<$boyface>> hair approaches you. He''s wearing <<$boyClo>>.'
 		'The guy introduces himself as <<$boydesc>> and asks for your number.'
 
@@ -921,12 +921,7 @@ if $ARGS[0] = 'run':
 						'About halfway through your run, you hear a whistle pierce the air.'
 						act'Turn':
 							cla & *clr
-							if $region = 'city':
-								gs 'npcgeneratec', 0, '', rand(18,45), rand(3,4)
-							elseif $region = 'pav':
-								gs 'npcgeneratec', 0, '', rand(18,45), 1
-							end
-							gs 'boy', 'details'
+							gs 'boygirl', 0, '', rand(18, 45)
 							'<center><img <<$set_imgh>> src="images/characters/shared/headshots_generic/<<lover_picrand[$boy]>>.jpg"></center>'
 							temp['catcall'] = rand(1,3)
 							'Turning your head instinctively at the sound, you see a guy lowering his fingers from his mouth, a wide grin on his face.'

+ 0 - 80
locations/parks.qsrc

@@ -1,80 +0,0 @@
-# parks
-!!2021/05/12
-
-if $ARGS[0] = 'start':
-	*clr & cla
-	$location_type = 'public_outdoors'
-	$loc_arg = 'start'
-	$loc = 'parks'
-	$menu_loc = 'parks'
-	$menu_arg = 'start'
-	$locclass = 'city_park'
-	menu_off = 0
-	gs'stat'
-	'<center><B>Pushkin Town Park</B></center>'
-	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/parkus.jpg" ></center>'
-	'The gardens of the old palace have been sculpted over many years into a wonder landscape with a tranquil atmosphere.'
-	'The Pushkin Park is a must-see for tourists and servers as the main attraction of Pushkin.'
-
-	'Wander deeper into the <a href="exec:gt ''lug'',''start''">park</a>.'
-
-
-	act 'Go to Okhlopkov Square (0:05)': minut += 5 &  gt 'pushkin_sq'
-
-	act 'Go to Town Center (0:10)': minut += 10 & gt 'pushkin'
-
-	act 'Walk around the park (1 hour)':
-		if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1', 1
-		cla
-		minut += 60
-		pcs_mood += 10
-		gs'stat'
-		'You leisurely stroll through Pushkin Park, breathing in the fresh air, and reflecting on the vicissitudes of fate.'
-
-		act 'Complete outing.':gt 'parks','start'
-	end
-
-	gs 'park_walkevents', 'run'
-
-	if hour >= 20 or hour < 6 :
-		if func('homes_properties', 'has_access', 'old_town_apartment') = 0 :
-			!nowhere to live in town
-			'It''s quite dark now, and you have no where to stay nearby. Maybe you should try to sleep on a bench?'
-		else
-			'It''s quite dark now, and you don''t feel like walking. Maybe you should try sleeping on a bench?'
-		end
-		act 'Sleep on a bench': gt'placer_sex','sleeping_park_bench'
-	end
-
-	act 'Sit down on the bench':gs 'placer_sex', 'sitting_park_bench'
-	
-	if mc_inventory['joints'] > 0 and drugVars['weed_high'] = 0: act 'Smoke a joint': minut += 10 & gs 'drugs', 'joint' & gt $loc, $loc_arg
-
-	if pcs_inhib >= 35 or exhibitionist_lvl > 0:
-		act 'Flash your tits':
-			menu_off = 1
-			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
-			*clr & cla
-			inhib_exp += rand(1,3)
-			gs 'flash', 'tits', 'outdoors', 5
-			gs 'stat'
-
-			act 'Continue': gt 'parks', 'start'
-		end
-	end
-
-	if exhibitionist_lvl > 1:
-		act 'Flash your pussy':
-			menu_off = 1
-			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
-			*clr & cla
-			gs 'flash', 'pussy', 'outdoors', 5
-			gs 'stat'
-
-			act 'Continue': gt 'parks', 'start'
-		end
-	end
-end
-
---- parks ---------------------------------
-

+ 2 - 45
locations/pav_clinic.qsrc

@@ -22,51 +22,8 @@ if $ARGS[0] = '':
 
 	if preg = 2:
 		act 'Give birth':
-			*clr & cla
-			menu_off = 1
-			if kid > 0: minut += rand(300,660) else minut += rand(120,480)
-			'<center><img <<$set_imgh>> src="images/locations/shared/clinic/birthing.jpg"></center>'
-			'You lay on the bed and your feet are put in stirrups. Your contractions get closer and closer, and after some time and a lot of swearing, you finally give birth.'
-			:multikidloop
-				minut += rand(30,90)
-				sterilewb += 1
-				nextbaby = arrpos('$kidname', 'unborn')
-				kid += 1
-				BabyEmbryo -= 1
-				daykid[nextbaby] = day
-				monthkid[nextbaby] = month
-				yearkid[nextbaby] = year
-				if polkid[nextbaby] = 0:$polreb[nextbaby] = 'girl' & '"Congratulations, it''s a girl! What is her name?"'
-				if polkid[nextbaby] = 1:$polreb[nextbaby] = 'boy' & '"Congratulations, it''s a boy! What is his name?"'
-
-				wait 350
-				$kidname[nextbaby] = input("Enter your <<$polreb[nextbaby]>>''s name")
-				'The doctors clean up <<$kidname[nextbaby]>>.'
-				if $kidname[nextbaby] = '':
-					if polkid[nextbaby] = 0:$kidname[nextbaby] = 'Masha'
-					if polkid[nextbaby] = 1:$kidname[nextbaby] = 'Misha'
-				end
-			if BabyEmbryo > 0: 'You don''t have much time to look at your <<$polreb[nextbaby]>> because you''re having an another contraction. Your next baby is coming!' & jump 'multikidloop'
-			preg = 0
-			!! RecovH has a decay of 1.1/hour or ~ 27/day, the recovery period is ~6-10 weeks
-			RecovH = rand(1175,1875)
-			pregbirthdate = daystart
-			thinkpreg = 0
-			knowpreg = 0
-			knowpregrecover = 1
-			vidage += 1
-			pregtalk = 0
-			pcs_pregtalk = 0
-			pregTalkFamily = 0
-			npc_pregtalk['A16'] = 0
-			npc_pregtalk['A34'] = 0
-			npc_pregtalk['A29'] = 0
-			pregchem = 0
-			cycle = 4
-			gs 'cum_cleanup', 'reset'
-			dynamic $d_cycreport_choice
-			gs 'stat'
-			act 'Leave':gt $curloc
+			gs 'medical_din', 'give_birth'
+			act 'Leave': gt 'pav_clinic'
 		end
 	end
 

+ 2 - 4
locations/pav_disco_sex.qsrc

@@ -47,9 +47,8 @@ if $ARGS[0] = 'outside':
 							*clr & cla
 							pcs_mood += 10
 							minut += 30
-							gs 'boy', 'details'
+							gs 'boygirl', 0
 							bmFrend[Tboynum] = 1
-							gs 'boy'
 							gs 'boyfrend', 'start'
 							gs 'stat'
 							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/disco/outside_talk.jpg"></center>'
@@ -196,10 +195,9 @@ if $ARGS[0] = 'outside':
 						act 'Give him your number':
 							*clr & cla
 							pcs_mood += 10
-							gs 'boy', 'details'
+							gs 'boygirl', 0
 							minut += 30
 							bmFrend[Tboynum] = 1
-							gs 'boy'
 							gs 'boyfrend', 'start'
 							gs 'stat'
 							'You smile and give him your number, which he diligently adds to his phone.'

+ 1 - 3
locations/pav_lake.qsrc

@@ -460,9 +460,7 @@ if $ARGS[0] = 'sunbathe':
 		elseif tipelakeboyrand <= 80:
 			i = age - 5
 			if i < 16: i = 16
-			gs 'npcgeneratec', 0, 'Guy', rand((i),(age + 5))
-			gs 'boyStat', $npclastgenerated
-			$boydesc = $npc_firstname[$npclastgenerated]
+			gs 'boygirl', 0, 'Guy', rand(max(16, age-5), age + 5)
 			gs'LakeBoyZ'
 			'A rather cute looking guy sits down next to you as you sunbathe.'
 			'"Hey there beautiful, I''m <<$boydesc>>. What''s your name?" he asks in an attempt to chat you up.'

+ 2 - 2
locations/pav_market.qsrc

@@ -57,8 +57,8 @@ end
 
 
 if $home['current'] = 'pavlovsk_hotel':
-	if vladimirday = daystart and vladimirQW = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''2''">There''s an Audi parked in front of the hotel, and standing beside it, you notice Vladimir</a>.'
-	if vladimirday = daystart and vladimirQW = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''3''">There''s an Audi parked in front of the hotel, and standing beside it, you notice Vladimir</a>.'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''2''">There''s an Audi parked in front of the hotel, and standing beside it, you notice Vladimir</a>.'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''3''">There''s an Audi parked in front of the hotel, and standing beside it, you notice Vladimir</a>.'
 
 	if hour = meethour[0]:
 		if svidanie[0] = 1:'<b><a href="exec:lover_number = 0 & gt ''lover_meet'', ''start''"><<$loverdesc[0]>></a> is waiting in front of the hotel.</b>'

+ 3 - 4
locations/pav_park.qsrc

@@ -34,12 +34,9 @@ end
 
 if $ARGS[0] = 'start':
 	*clr & cla
-	$loc = 'pav_park'
+	gs 'shortgs', 'setloc', 'pav_park', 'start'
 	$region = 'pav'
-	$loc_arg = 'start'
 	$location_type = 'public_outdoors'
-	$menu_loc = 'pav_park'
-	$menu_arg = 'start'
 	$locclass = 'city_park'
 	menu_off = 0
 	gs 'stat'
@@ -312,6 +309,8 @@ if $ARGS[0] = 'start':
 	gs 'prostitution_functions', 'check_solicitation_event'
 
 	gs 'camera', 'check_location'
+
+	gs 'blackmailer', 'set_park_act'
 end
 
 ! Albina Starlets events.

+ 2 - 2
locations/pav_pharmacy.qsrc

@@ -629,7 +629,7 @@ if $ARGS[0] = 'buy_preg_test':
 			'"<<$pcs_nickname>>! What happened??"'
 			'"I know, Aunt," you say, deeply embarrassed. "I just... made a mistake..."'
 			'"I guess we all make those," she sighs, taking a small box off the shelf. "Goodness knows, your sister''s living proof of that. Literally."'
-	!!		if rape[2] > (daystart - 3):
+	!!		if rape_day+3 > daystart:
 	!!			act'I was raped':gt 'pav_pharmacy', 'buy_morning_after_raped'
 	!!		end
 		end
@@ -762,7 +762,7 @@ if $ARGS[0] = 'buy_morning_after':
 		if birth_control['condom_stealth'] >= daystart - 3:
 			act'I got stealthed':gs 'pav_pharmacy', 'morning_after_stealth_meek'
 		end
-!!		if rape[2] > (daystart - 3):
+!!		if rape_day+3 > daystart:
 !!			act'I was raped':gt 'pav_pharmacy', 'buy_morning_after_raped'
 !!		end
 	end

+ 2 - 2
locations/pav_pool.qsrc

@@ -266,7 +266,7 @@ if $ARGS[0] = 'mirror':
 	end
 
 	act 'Go back to the changing room': gt 'pav_pool', 'lockerfemale'
-	if cumloc[11] = 1 or cumloc[12] or cumloc[16] = 1:
+	if cumloc[11]+cumloc[12]+cumloc[16] > 0:
 		act 'Clean the cum from your face':
 			*clr & cla
 			menu_off = 1
@@ -283,7 +283,7 @@ if $ARGS[0] = 'mirror':
 			act 'Finish': gt 'pav_pool', 'mirror'
 		end
 	end
-	if pcs_makeup >= 2:
+	if pcs_makeup <> 1 and cosmetic_tattoo = 0:
 		act 'Wash your make-up off':
 			*clr & cla
 			minut += 5

+ 4 - 3
locations/pav_train_hall.qsrc

@@ -156,7 +156,7 @@ if $ARGS[0] = 'platform':
 	'Because Pavlovsk is a place that attracts a fair amount of tourists, the station can be quite busy at times. The busiest times on the platforms are between 11:00 and 11:30, and between 18:00 and 18:30 when the long-distance trains are ready for boarding.'
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'pavlovsk'
-	'The next train in the direction of St. Petersburg city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of St. Petersburg city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
 	*nl
 	if week >= 6 and hour >= 9 and hour <= 10:'You notice <a href="exec:gt ''gschool_socialchg1'', ''tBella''">Bella</a> standing at the train station platform, looking at the time table.'
 
@@ -190,7 +190,7 @@ if $ARGS[0] = 'ticket':
 
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'pavlovsk'
-	'The next train in the direction of St. Petersburg city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of St. Petersburg city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
 
 	act 'Leave the ticket office':minut += 1 & gt 'pav_train_hall'
 
@@ -353,5 +353,6 @@ if $ARGS[0] = 'male':
 	dynamic $basin
 end
 
---- pav_train_hall ---------------------------------
+killvar 'temp_transportVars'
 
+--- pav_train_hall ---------------------------------

+ 18 - 1
locations/phone_selfies_popup.qsrc

@@ -44,5 +44,22 @@ end
 
 
 
---- phone_selfies_popup ---------------------------------
 
+!	$ARGS[1] = Return string
+!	 ARGS[2] = telefon['SMSid']
+!!	$ARGS[3] = Location where the selfie is taken
+!!	$ARGS[4] = State of dress in the selfie
+!!	 ARGS[5] = is the index of the location in $selfieLoc[] and $selfieFilePrefix
+!!	 ARGS[6] = the selfie number
+if $ARGS[0] = 'SMS_set_selfie':
+	$temp_imloc = func('phone_selfies_popup', 'SMS_get_imloc', $ARGS[3], $ARGS[4], ARGS[5], ARGS[6])
+	$result = '<a href="exec: gs <<$ARGS[1]>>, <<ARGS[2]>>, ''<<$temp_imloc>>'', ''<<$ARGS[3]>>'', ''<<$ARGS[4]>>'', <<ARGS[5]>>, <<ARGS[6]>>"><img src="<<$temp_imloc>>" style="horizontal-align:center; max-height:90%; max-width:90%"></a>'
+	killvar '$temp_imloc'
+end
+
+if $ARGS[0] = 'SMS_get_imloc':
+	$result = 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/<<$ARGS[2]>>/<<$selfieFilePrefix[ARGS[3]]>><<ARGS[4]>>.jpg'
+end
+
+
+--- phone_selfies_popup ---------------------------------

File diff suppressed because it is too large
+ 232 - 224
locations/praiders_garage_chat.qsrc


+ 203 - 186
locations/praiders_garage_events.qsrc

@@ -11,20 +11,20 @@ if $ARGS[0] = 'roman_fight':
 	menu_off = 0
 	*clr & cla
 	'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfight1.jpg"></center>'
-	'As everyone sits around talking and enjoying themselves, you notice Roman chatting to some girl you don''t know. She doesn''t seem to be enjoying his attention all that much. When she gets up, he grabs her by the arm. She tries to pull away but he won''t let go and stands up, as he does another guy stands up as well. "Let her go asshole!" With that Roman lets the girl go and turns towards the guy that is several inches taller and about ten kilograms heavier and smiles. As he does you hear someone say. "Oh shit." You think it might have been Valentin. Before you can figure out for sure who said it, Roman suddenly head butts the guy without warning. Blood spurts from his nose as the guy recoils, Roman is all over him. Not giving him a chance to recover as he just keeps hitting the guy. Then a couple of the guys friends jump on Roman.'
-	*nl
-	'Most people scatter trying to avoid the fight as it starts to turn into a brawl, some head for the exit. Radomir takes the girl next to him and heads for the exit loudly saying though most people don''t seem to pay any attention to him. "Mind the instruments." While Arkadi jumps one of the other guys now pounding on Roman. Valentin moves in to try and break up the fight before it gets out of control, while Anushka jumps over the coffee table to start grabbing the instruments and place them out of the way.'
+	'As everyone sits around talking and enjoying themselves, you notice Roman chatting to some girl you don''t know. She doesn''t seem to be enjoying his attention that much, but when she gets up, he grabs her by the arm. She tries to pull away, but he won''t let go and stands up. As he does, another guy stands up as well. "Let her go, asshole!"' 
+	'With that, Roman lets the girl go and turns towards the guy that is several inches taller and about ten kilograms heavier and smiles before he suddenly headbutts the guy without warning. Blood spurts from his nose as the guy recoils, but Roman is all over him, not giving him a chance to recover as he just keeps hitting the guy.' 
+	'Some of the guy''s friends jump on Roman and most people scatter, trying to avoid the fight as it turns into a brawl. Radomir takes the girl next to him and heads for the exit, loudly telling everyone to mind the instruments, though most people don''t seem to pay any attention to him. Arkadi jumps in to help Roman while Valentin moves in to try and break up the fight before it gets out of control. Anushka jumps over the coffee table to start grabbing the instruments and placing them out of the way.'
 	*nl
 	if gopnikbandQW['alyona_present'] = 1:
-		'Alyona joins in helping Anushka move the bands instruments out of the way.'
+		'Alyona helps Anushka move the band''s instruments out of the way.'
 	end
 	if gopnikbandQW['lena_lara_present'] = 1 and gopnikbandQW['niko_present'] = 1:
-		'Lena & Lera get up, and move out of the way, before watching the fight go on, clearly enjoying the sight of the boys beating on each other, while Niko grabs a beer off a table, before sitting on a table across from the girls, enjoying the chaos as well. Suddenly a bunch of girls that arrived with the outsiders charge toward the guys fighting, clearly intending to join in, before receiving a deathly stare from Lena & Lera, promising to jump them if they try.'
+		'Lena and Lera move out of the way before watching the fight, clearly enjoying the sight of the boys beating on each other while Niko grabs a beer off a table before sitting on a table across from the girls, enjoying the chaos as well. A group of girls that arrived with the outsiders charge toward the guys fighting, clearly intending to join in, but receive a deathly stare from Lena and Lera, promising to jump them if they try.'
 	elseif gopnikbandQW['lena_lara_present'] = 1:
-		'Lena and Lera get up and move out of the way but watch, they seem to enjoy watching the boys beat on each other. When it looks like a couple of the girls that was with the outsiders are about the join in, they get a look from Lena and Lera promising them they will jump them, if they do.'
+		'Lena and Lera move out of the way before watching the fight, clearly enjoying the sight of the boys beating on each other. When it looks like some of the girls that were with the outsiders are about the join in, they get a look from Lena and Lera promising them they will jump them if they do.'
 	end
 	if gopnikbandQW['lavrenti_present'] = 1:
-		'Meanwhile Lavrenti gets into a shoving match with another guy. Neither of them seem like they really want to throw down, they both seem more interested in keeping each other form joining the main fight.'
+		'Meanwhile, Lavrenti gets into a shoving match with another guy. Neither of them seem like they really want to throw down, but instead keep each other form joining the main fight.'
 	end
 	act 'Try and make your way out':
 		*clr & cla
@@ -34,8 +34,8 @@ if $ARGS[0] = 'roman_fight':
 		gs 'npc_relationship', 'modify', 'A144', 'dislike'
 		grupvalue[4] -= 5
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfight2.jpg"></center>'
-		'Not wanting to get involved you do your best to avoid them. You have to climb over a chair just barely being missed by Akradi wrestling a guy to the ground. Valentin for his efforts to stop the fight, ends up getting hit in the face, which causes him to stop trying to stop the fight and instead join in. Roman is now on top of the guy he head butted and just beating him to a pulp, it seems almost everyone is now fighting or trying to get out. Just before you make it to the door Radomir, while pulling some girl makes it out the door. You go out the door next, just in time to see Anushka jump on the back of some guy that was hitting Valentin. Once outside the sounds of the fight continue, but nothing you need to worry about now.'
-		act 'Leave':gt 'pav_complex', 'garages'
+		'Not wanting to get involved, you do your best to avoid them, just barely being missed by Arkadi wrestling a guy to the ground. Valentin ends up getting hit in the face, which causes him to join in as Roman gets on top of the guy he headbutted and starts beating him to a pulp. You get out the door, just in time to see Anushka jump on the back of some guy that was hitting Valentin. Once outside, the sounds of the fight continue, but nothing you need to worry about now.'
+		act 'Leave': gt 'pav_complex', 'garages'
 	end
 	act 'Just watch the fight':
 		*clr & cla
@@ -45,21 +45,21 @@ if $ARGS[0] = 'roman_fight':
 		grupvalue[4] -= 3
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfight2.jpg"></center>'
 		if gopnikbandQW['alyona_present'] = 1:
-			'Not wanting to get involved, but wanting to see this, you stay seated and watch them fight. Valentin for his efforts to stop the fight, ends up getting hit in the face, which causes him to stop trying to stop the fight and instead join in. Roman is now on top of the guy he head butted and just beating him to a pulp, it seems almost everyone is now fighting or trying to get out. Radomir makes it to the door, while pulling some girl along and makes it out the door. You have to get up and leap out of your seat, just as Arkadi and some guy come crashing into where you was just sitting. You turn just in time to see Anushka grab two beer bottles, one in each hand and bust them, on each side of a guys head that was hitting Valentin. While Alyona grabs a hub cap off the wall and bashes the guy in the head as well, he crumples to the ground from the girls hitting him in the head.'
+			'Not wanting to get involved, but wanting to see this, you stay seated and watch them fight. Valentin ends up getting hit in the face, which causes him join in as Roman gets on top of the guy he headbutted and starts beating him to a pulp. You see Radomir pulling some girl along and making it out, but have to leap out of your seat as Arkadi and some guy come crashing through before you turn to see Anushka grab two beer bottles and bust them on each side of a guy''s head for hitting Valentin while Alyona grabs a hub cap off the wall and bashes the guy on the head as well, causing him to crumple to the ground.'
 		else
-			'Not wanting to get involved, but wanting to see this, you stay seated and watch them fight. Valentin for his efforts to stop the fight, ends up getting hit in the face, which causes him to stop trying to stop the fight and instead join in. Roman is now on top of the guy he head butted and just beating him to a pulp, it seems almost everyone is now fighting or trying to get out. Radomir makes it to the door, while pulling some girl along and makes it out the door. You have to get up and leap out of your seat, just as Arkadi and some guy come crashing into where you was just sitting. You turn just in time to see Anushka grab two beer bottles, one in each hand and bust them, on each side of a guys head that was hitting Valentin. Which makes the guy stagger and lets Valentin easily get the upper hand and take the guy to the ground.'
+			' Not wanting to get involved, but wanting to see this, you stay seated and watch them fight. Valentin ends up getting hit in the face, which causes him join in as Roman gets on top of the guy he headbutted and starts beating him to a pulp. You see Radomir pulling some girl along and making it out, but have to leap out of your seat as Arkadi and some guy come crashing through before you turn to see Anushka grab two beer bottles and bust them on each side of a guy''s head for hitting Valentin, which makes the guy stagger and lets Valentin easily get the upper hand and take the guy to the ground.'
 		end
-		act 'Move out of the way.':
+		act 'Move out of the way':
 			*clr & cla
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfight3.jpg"></center>'
 			if gopnikbandQW['alyona_present'] = 1:
-				'You move over near the homemade stage out of the way. The fight is winding down, Roman is still beating one guy who seems to be unconscious laying on his back on the floor. Another is laying on the floor holding his head and bleeding where the beer bottles cut him, while Anushka and Alyona are kicking the guy in the ribs they helped take down, with that guy down for the count Valentin rushes over to help Arkadi who seems to be winning on his own anyways. But soon all three of the guys are down. Then everyone seems to notice Roman not stopping.'
+				'You move over near the homemade stage out of the way as the fight winds down. Roman is still beating one guy who seems to be unconscious on the floor, another is laying on the floor holding his head and bleeding where the beer bottles cut him. Anushka and Alyona are kicking him in the ribs as Valentin rushes over to help Arkadi, who seems to be winning on his own. Everyone then notices that Roman isn''t stopping...'
 			else
-				'You move over near the homemade stage out of the way. The fight is winding down, Roman is still beating one guy who seems to be unconscious laying on his back on the floor. Another is laying on the floor holding his head and bleeding where the beer bottles cut him, while Anushka kicks him several times in the ribs, with that guy down for the count Valentin rushes over to help Arkadi who seems to be winning on his own anyways. But soon all three of the guys are down. Then everyone seems to notice Roman not stopping.'
+				'You move over near the homemade stage out of the way as the fight winds down. Roman is still beating one guy who seems to be unconscious on the floor, another is laying on the floor holding his head and bleeding where the beer bottles cut him as Anushka kicks him several times in the ribs and Valentin rushes over to help Arkadi, who seems to be winning on his own. Everyone then notices that Roman isn''t stopping...'
 			end
 			*nl
-			'"Fuck help me pull him off." Valentin says to Arkadi and they both rush over and pull Roman off the guy, they wrestle a bit with Roman but finally get him to calm down. With that Arkadi turns to look at the few people that stayed to watch. "Alright, out, lets go, it''s over." He ushers everyone out, while Roman kicks the guy in the ribs he was beating on as he walks out. Valentin and Anushka go to check on their gear after she moved it out of the way. You have no choice but to leave as Arkadi ushers you out as well.'
-			act 'Leave':gt 'pav_complex', 'garages'
+			'Valentin and Arkadi both rush over and pull Roman off the guy, wrestling with him a little until he finally calms down. With that sorted, Arkadi turns to look at the few people that stayed to watch. "Alright, out! Let''s go, it''s over!" He ushers everyone out, Roman kicking the guy in the ribs as he walks out as Valentin and Anushka go to check on their gear. You have no choice but to leave as Arkadi ushers you out as well.'
+			act 'Leave': gt 'pav_complex', 'garages'
 		end
 	end
 	act 'Help Anushka':
@@ -71,25 +71,23 @@ if $ARGS[0] = 'roman_fight':
 		gs 'npc_relationship', 'modify', 'A144', 'like'
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfightbottle.jpg"></center>'
 		if gopnikbandQW['alyona_present'] = 1:
-			'Seeing Anushka and Alyona trying to move the bands instruments, speakers and other gear into a corner where it is semi safe, you jump up and help them start moving the stuff. Anushka gives you a thankful smile when she see''s you helping. Once everything is pulled as far into the corner as the two of you can get it, you turn back to see the fight. Arkadi and one of the guys is wrestling on the couch trading blows, Roman is sitting on the guy chest he had head butted and just raining down blows on him. Valentin is trading blows but accidentally backs into the cooler and almost goes down. Dropping his guard the other guy gets the upper hand.'
-			*nl
-			'Anushka rushes over, grabbing up a beer bottle in each hand and comes up behind the guy on Valentin and smashes the bottles on each side of the guys head. Which dazes him a moment and makes him turn towards her, but before he can fully turn. Alyona grabs a old metal hub cap off the wall and smashes him in the head, causing him to crash to the ground, as Valentin says. "Thanks girls!" Anushka just grins at him and starts kicking the guy on the ground in the ribs now, while Alyona joins in on kicking the guy in the ribs.'
+			'Seeing Anushka and Alyona trying to move the band''s instruments, speakers and other gear into a corner where it''s semi safe, you jump up and help them start moving the stuff. Anushka gives you a thankful smile when she sees you helping. Once everything is pulled as far into the corner as you can get it, you turn back to watch the fight. Arkadi and one of the guys are wrestling on the couch trading blows, Roman is sitting on the chest of the guy he headbutted and is beating him to a pulp while Valentin is trading blows, but accidentally backs into the cooler and almost goes down. Dropping his guard, the other guy gets the upper hand.'
+			'Anushka rushes over, grabbing a beer bottle in each hand before walking up behind the guy and smashing the bottles on each side of his head, which dazes him, allowing Alyona to grab a hub cap off the wall and smash him in the head with it, causing him to crash to the ground. Anushka just grins at Valentin before she and Alyona start kicking the guy in the ribs.'
 		else
-			'Seeing Anushka trying to move their instruments, speakers and other gear into a corner where it is semi safe, you jump up and help her start moving the stuff. She gives you a thankful smile when she see''s you helping. Once everything is pilled as far into the corner as the two of you can get it, you turn back to see the fight. Arkadi and one of the guys is wrestling on the couch trading blows, Roman is sitting on the guy chest he had head butted and just raining down blows on him. Valentin is trading blows but accidentally backs into the cooler and almost goes down. Dropping his guard the other guy gets the upper hand.'
-			*nl
-			'Anushka rushes over, grabbing up a beer bottle in each hand and comes up behind the guy on Valentin and smashes the bottles on each side of the guys head. Which dazes him a moment and makes him turn towards her, but before he can fully turn. Valentin grabs a old metal hub cap off the wall and smashes him in the head, causing him to crash to the ground, as Valentin says. "Thanks Nush!" Anushka just grins at him and starts kicking the guy on the ground in the ribs now.'
+			'Seeing Anushka trying to move their instruments, speakers and other gear into a corner where it''s semi safe, you jump up and help her start moving the stuff. She gives you a thankful smile when she sees you helping. Once everything is piled as far into the corner as you can get it, you turn back to watch the fight.  Arkadi and one of the guys are wrestling on the couch trading blows, Roman is sitting on the chest of the guy he headbutted and is beating him to a pulp while Valentin is trading blows, but accidentally backs into the cooler and almost goes down. Dropping his guard, the other guy gets the upper hand.'
+			'Anushka rushes over, grabbing a beer bottle in each hand before walking up behind the guy and smashing the bottles on each side of his head, which dazes him and allows Valentin to grab a hub cap off the wall and smash him in the head with it, causing him to crash to the ground. Anushka just grins at Valentin before she starts kicking the guy in the ribs.'
 		end
 		act 'Watch':
 			*clr & cla
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfightkick.jpg"></center>'
 			if gopnikbandQW['alyona_present'] = 1:
-				'You just stand back near the stage and watch. The fight is winding down, Roman is still beating one guy who seems to be unconscious laying on his back on the floor. Another is laying on the floor holding his head and bleeding where the beer bottles cut him, while Anushka and Alyona keep kicking the guy on the floor in the ribs over and over, while Valentin rushes over to help Arkadi who seems to be winning on his own anyways. But soon all three of the guys are down. Then everyone seems to notice Roman not stopping. "Fuck help me pull him off." Valentin says to Arkadi and they both rush over and pull Roman off the guy, they wrestle a bit with Roman but finally get him to calm down.'
+				'You move back near the stage out of the way as the fight winds down. Roman is still beating one guy who seems to be unconscious on the floor, another is laying on the floor holding his head and bleeding where the beer bottles cut him. Anushka and Alyona are kicking him in the ribs as Valentin rushes over to help Arkadi, who seems to be winning on his own. Everyone then notices that Roman isn''t stopping...'
 			else
-				'You just stand back near the stage and watch. The fight is winding down, Roman is still beating one guy who seems to be unconscious laying on his back on the floor. Another is laying on the floor holding his head and bleeding where the beer bottles cut him, while Anushka kicks him several times in the ribs, while Valentin rushes over to help Arkadi who seems to be winning on his own anyways. But soon all three of the guys are down. Then everyone seems to notice Roman not stopping. "Fuck help me pull him off." Valentin says to Arkadi and they both rush over and pull Roman off the guy, they wrestle a bit with Roman but finally get him to calm down.'
+				'You move back near the stage out of the way as the fight winds down. Roman is still beating one guy who seems to be unconscious on the floor, another is laying on the floor holding his head and bleeding where the beer bottles cut him as Anushka kicks him several times in the ribs and Valentin rushes over to help Arkadi, who seems to be winning on his own. Everyone then notices that Roman isn''t stopping...'
 			end
 			*nl
-			'With that Arkadi turns to look at the few people that stayed to watch. "Alright, out, lets go, it''s over." He ushers everyone out, while Roman kicks the guy in the ribs he was beating on as he walks out. Valentin and Anushka go to check on their gear after she moved it out of the way. You have no choice but to leave as Arkadi ushers you out as well. Just as you are about to walk out the door Arkadi says. "Hey thanks, with helping Nush move our stuff, she told me you helped." He smiles to you just as the door closes behind you.'
-			act 'Leave':gt 'pav_complex', 'garages'
+			'Valentin and Arkadi both rush over and pull Roman off the guy, wrestling with him a little until he finally calms down. With that sorted, Arkadi turns to look at the few people that stayed to watch. "Alright, out! Let''s go, it''s over!" He ushers everyone out, Roman kicking the guy in the ribs as he walks out as Valentin and Anushka go to check on their gear. You have no choice but to leave as Arkadi ushers you out as well, but just as you''re about to walk out the door, he stops you. "Hey. Thanks for helping Nush move our stuff." He smiles at you just as the door closes behind you.'
+			act 'Leave': gt 'pav_complex', 'garages'
 		end
 		act 'Join Anushka in kicking the guy':
 			*clr & cla
@@ -99,29 +97,35 @@ if $ARGS[0] = 'roman_fight':
 			gs 'npc_relationship', 'modify', 'A144', 'like'
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfightkick.jpg"></center>'
 			if gopnikbandQW['alyona_present'] = 1:
-				'You join Anushka and Alyona standing next to Anushka, the three of you keep kicking the guy in the ribs, who just curls up in a effort to protect himself. The rest of the fight is winding down, Roman is still beating one guy who seems to be unconscious laying on his back on the floor. With you and Anushka keeping this guy down, Valentin rushes over to help Arkadi who seems to be winning on his own anyways, soon all three of the guys are down. Then everyone seems to notice Roman not stopping. "Fuck help me pull him off." Valentin says to Arkadi and they both rush over and pull Roman off the guy, they wrestle a bit with Roman but finally get him to calm down.'
+				'You join Anushka and Alyona and the three of you keep kicking the guy in the ribs, who just curls up in an effort to protect himself as the rest of the fight winds down. Roman is still beating one guy who seems to be unconscious on the floor. With you, Anushka and Alyona keeping this guy down, Valentin rushes over to help Arkadi, who seems to be winning on his own. Everyone then notices that Roman isn''t stopping and Valentin and Arkadi both rush over and pull Roman off the guy. They wrestle with him a little until he finally calms down.'
 			else
-				'You join Anushka standing on the other side of the guy, you take turns kicking him in the ribs. The rest of the fight is winding down, Roman is still beating one guy who seems to be unconscious laying on his back on the floor. With you and Anushka keeping this guy down, Valentin rushes over to help Arkadi who seems to be winning on his own anyways, soon all three of the guys are down. Then everyone seems to notice Roman not stopping. "Fuck help me pull him off." Valentin says to Arkadi and they both rush over and pull Roman off the guy, they wrestle a bit with Roman but finally get him to calm down.'
+				'You join Anushka and take turns kicking him in the ribs as the rest of the fight winds down. Roman is still beating one guy who seems to be unconscious on the floor. With you and Anushka keeping this guy down, Valentin rushes over to help Arkadi, who seems to be winning on his own. Everyone then notices that Roman isn''t stopping and Valentin and Arkadi both rush over and pull Roman off the guy. They wrestle with him a little until he finally calms down.'
 			end	
 			*nl
 			if gopnikbandQW['niko_present'] = 1:
 				*nl
-				'As you are holding the guy down, you hear Niko holler, "Good job ladies! Great show!" Anushka turns to Niko and sarcastically says, "Yeah, thanks for the help... Asshole!" Niko chuckles before replying, "If I joined in then it would have been too easy. That guy was a chump." You then hear Arkadi shout at the few people that stayed to watch. "Alright, out, lets go, it''s over. He ushers everyone else out, while Roman kicks the guy; that he was beating on, in the ribs, before he walking out.' 
+				'As you''re holding the guy down, you hear Niko hollering. "Good job ladies! Great show!"' 
+				'Anushka turns to him. "Yeah, thanks for the help... Asshole!" she sarcastically replies.'
+				'Niko chuckles. "If I joined in, then it would have been too easy. That guy was a chump."'
+				'You then hear Arkadi shout at the few people that stayed to watch. "Alright, out, lets go, it''s over. He ushers everyone else out, while Roman kicks the guy; that he was beating on, in the ribs, before he walking out.'
+				*nl
 				'Valentin and Anushka go to check on their gear, which she carefully moved it out of the way. Arkadi tells the guys to get out while they can, the one Arkadi was fighting, helps up his friend; the one that Roman was beating on, while the one you helped kick in the ribs, manages to limp out of the garage. With the way he is moving, he likely has some broken ribs. Once everyone else is gone, Anushka begins checking on the boys to see if they are hurt while avoiding Niko, clearly upset at him for not helping, and his mocking tone after the fight was done.'
 			else
-				'With that Arkadi turns to look at the few people that stayed to watch. "Alright, out, lets go, it''s over. He ushers everyone else out, while Roman kicks the guy in the ribs he was beating on as he walks out. Valentin and Anushka go to check on their gear after she moved it out of the way. Arkadi tells the guys to get out while they can, the one Arkadi was fighting helps his friend Roman was on, while the one you helped kick in the ribs manages to barely leave on his own, likely has some broken ribs. Once everyone else is gone, Anushka starts to check on the boys to see if they are hurt.'
+				'With that sorted, Arkadi turns to look at the few people that stayed to watch. "Alright, out! Let''s go, it''s over!" He ushers everyone else out, Roman kicking the guy in the ribs as he walks out while Valentin and Anushka go to check on their gear. Arkadi then tells the guys to get out while they can. Once everyone else is gone, Anushka starts checking on the boys to see if they''re hurt.'
 			end
-			act 'Leave':gt 'pav_complex', 'garages'
+			act 'Leave': gt 'pav_complex', 'garages'
 			act 'Stay':
 				*clr & cla
 				'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfightafter.jpg"></center>'
-				'After checking Valentin and not finding anything but some bruises Anushka checks on Arkadi, who tries to pull away. But Anushka grabs him by the chin to hold him still. "Hold still." Arkadi grumbles but holds still while Valentin starts cleaning up the place, you help him clean up, which gets a nod and a smile from him. Anushka grabs a towel and starts to clean the small cut next to Arkadi''s eye which elicits a "Owe." out of him. "Oh shush, stop being a pussy." Anushka says to him which cause you and Valentin to smile.'
+				'After checking Valentin, Anushka then checks on Arkadi, who tries to pull away, but she grabs him by the chin to hold him still. Arkadi grumbles, but holds still while you help Valentin start cleaning the place up, which gets a nod and a smile from him. Anushka grabs a towel and starts cleaning the small cut next to Arkadi''s eye, which elicits a small cry of pain from him.'
+				'"Oh, stop being such a pussy!" Anushka says in reponse, which causes you and Valentin to smile.'
 				if gopnikbandQW['alyona_present'] = 1:
-					'Alyona grabs and beer and starts drinking again as she sits down on the couch to just watch what''s going on.'
+					'Alyona grabs a beer and starts drinking again as she sits down on the couch to just watch what''s going on.'
 				end
 				*nl
-				'Arkadi tries to pull away but Anushka just keeps crowding him working on the cut. "I would if you stopped trying to stick your finger in the cut, it''s fine, leave it alone."'
-				'Anushka doesn''t stop, until she cleaned the cut well. "Oh please you cry more than Timofey and he is only eleven." Which gets Valentin to laugh out loud which gets him a dirty look from Arkadi. Soon all the wounds are tended and the garage cleaned up as best as possible and the instruments all put back in place. The four of you head for the door, once outside Arkadi puts the padlock on the door, with a few farewells everyone splits up to go their own way.'
+				'Arkadi tries to pull away, but Anushka just keeps crowding him, working on the cut. "I would if you stopped trying to stick your finger in the cut! It''s fine, just leave it alone!" he says.'
+				'Anushka doesn''t stop until she''s cleaned the cut well. "You cry more than Timofey, and he''s only eleven!" Valentin laughs out loud, which earns him a dirty look from Arkadi.'
+				'The wounds are soon all tended, the garage cleaned up as best as possible and the instruments all put back in place. The four of you head for the exit and Arkadi puts the padlock on the door before everyone splits up to go their own way.'
 				act 'Leave': gt 'pav_complex', 'garages'
 			end
 		end
@@ -132,54 +136,56 @@ if $ARGS[0] = 'radnush_love':
 	menu_off = 0
 	*clr & cla
 	'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/hangout4.jpg"></center>'
-	'You move around the hangout to mingle a bit after talking to one person for so long. Everyone is sitting around talking and enjoying themselves, you notice both Radomir and Anushka get up and happen to meet by the beer cooler together, which isn''t strange in and of it''s self. What is different is they start talking, then Anushka giggles at something Radomir says and it becomes real obvious real fast they are flirting hard and acting like a couple of love birds. "Aw fuck, I thought we was past this." Valentin says.'
-	'Arkadi shakes his head. "Not this shit again." It seems everyone is paying attention to them and have a variety of reactions to it, mostly negative it seems. As people watch the two of them move over to the corner of the stage so they are away from everyone else, after Radomir grabs a bottle of alcohol.'
+	'You move around the hangout to mingle a bit after talking to one person for so long. Everyone is sitting around talking and enjoying themselves, but you notice both Radomir and Anushka get up and happen to meet by the beer cooler together, where it soon becomes obvious that they''re flirting hard and acting like a couple of love birds.' 
+	'"Fuck, I thought we were past this!" Valentin says.'
+	'Arkadi shakes his head. "Not this shit again."' 
+	'It seems everyone is paying attention to them and have a variety of reactions to it, mostly negative it seems as they move over to the corner of the stage so they''re away from everyone else.'
 	act 'See what happens next':
 		*clr & cla
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/radnush1.jpg"></center>'
-		'Radomir sits down in the corner next to his guitar and a lot of mostly empty bottles. Then he pulls Anushka down into his lap, she only half heartedly resists and giggles a bit when she ends up in his lap, she has a smile on her face and looks genuinely happy, actually both of them do. Radomir pulls over his guitar to strum on it, placing it between her legs, making her spread them. They alternate holding and drinking from the bottle of alcohol. You can hear both Arkadi and Valentin complaining about what is happening.'
+		'Radomir sits in the corner next to his guitar and a lot of mostly empty bottles before he pulls Anushka into his lap. She only half heartedly resists and giggles a little when she ends up in his lap; she has a smile on her face and looks genuinely happy as Radomir pulls over his guitar to strum on it, placing it between her legs and making her spread them. You can hear both Arkadi and Valentin complaining about what''s happening.'
 		if gopnikbandQW['alyona_present'] = 1:
-			'Alyona shakes her head, obviously not happy. Then goes over to grab a beer out of the cooler and then just walks out of the garage.'
+			'Alyona shakes her head, clearly not happy as she grabs a beer out of the cooler before walking out of the garage.'
 		end
 		if gopnikbandQW['lavrenti_present'] = 1:
-			'Lavrenti, like you, is watching and he smiles a bit. "They look legit happy, pity it never lasts."'
+			'Lavrenti, like you, is watching and he smiles. "They look happy. Pity it never lasts."'
 		end
 		gs 'arousal', 'voyeur', 2
 		gs 'stat'
 		act 'Leave': gt 'pav_complex', 'garages'
-		act 'Keep a eye on them':
+		act 'Keep an eye on them':
 			*clr & cla
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/radnush2.jpg"></center>'
-			'The rest of the hangout goes on, most people stop paying attention to the love birds and go back to their own thing. You and a few others though occasionally glance there way and each time you do they seem to be acting more and more lovey dovey together.'
+			'Most people stop paying attention to the love birds and go back to their own thing, but you and a few others occasionally glance their way to see them acting more and more lovey dovey together.'
 			gs 'arousal', 'voyeur', 2
 			gs 'stat'
 			act 'Leave': gt 'pav_complex', 'garages'
 			act 'Keep watching':
 				*clr & cla
 				'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/radnush3.jpg"></center>'
-				'You are enjoying yourself talking to others and then you hear Valentin muttering. "For fucks sake." When you look at him he is looking towards the stage you can guess what he is looking at, as you turn and look, Radomir and Anushka are kissing and starting to get really frisky with each other, acting like a couple of love sick teenagers. Then Valentin gets up. "Alright had enough of this, I''m out, see you guys later." He says to everyone collectively.'
+				'You''re enjoying yourself talking to others when you hear Valentin muttering. When you look at him, he''s looking towards the stage and you turn to see Radomir and Anushka kissing and starting to get really frisky with each other, acting like a couple of love sick teenagers as Valentin gets up. "Alright, I''ve had enough of this. See you guys later," he says to everyone collectively.'
 				*nl
 				if gopnikbandQW['lena_lara_present'] = 1 and gopnikbandQW['niko_present'] = 1 and NikoVolkovQW['lena_lara_flirt'] = 0:
-					'Lena grins while leaning over to say to Lera, "Looks like Someone is getting some, tonight, wish it was me..."'
-					'Niko smugly leans over and says, "Well I could make your wish come true."'
-					'Lena replies. "You really think you could handle me?"'
-					'Leaning in closer, with a seductive grin on his face, Niko says, "Oh yeah, I can bring you to the height of ecstasy, and safely back in soft bed."'
-					'Lena snorts. "I didn''t ask for all that, I''m just looking for a quick fuck, not a date."'
-					'Lera rolls her eyes before adding. "Niko wouldn''t be very good at that. He''ll just talk your ear off for hours."'
+					'Lena grins while leaning over to Lera. "Looks like someone is getting some tonight. Wish it was me..."'
+					'Niko smugly leans over. "Well I could make your wish come true."'
+					'"You really think you could handle me?" Lena replies.'
+					'Niko leans in closer, with a seductive grin on his face. "Oh yeah, I can bring you to the height of ecstasy, and safely back in a soft bed."'
+					'Lena snorts. "I didn''t ask for that. I''m just looking for a quick fuck, not a date."'
+					'Lera rolls her eyes. "Niko wouldn''t be very good at that. He''ll just talk your ear off for hours."'
 					*nl
-					'Niko sits down next to Lena. "I can do more than talk. A little time with me, will get you a long way. So? What do you think, my sexy vixen?"'
-					'Lena sighs, obviously not wanting to seem eager, as she replies, "Get us some drinks, and we will see what happens."'
-					'Niko nods, before responding. "Right away milady."'
-					'Lera grunts in disgust. "Don''t call me that, I''m not your fucking damsel in distress! Now get us those drinks, before I get it myself."'
-					'Niko eagerly gets up then heads out to get beers for Lena & Lera, as they slouch back in their seat chatting.'
+					'Niko sits next to Lena. "I can do more than talk. A little time with me will get you a long way. So? What do you think, my sexy vixen?"'
+					'Lena sighs, obviously not wanting to seem eager. "Get us some drinks and we''ll see what happens."'
+					'Niko nods. "Right away."'
+					'Lera grunts in disgust. "Don''t call me that, I''m not your fucking damsel in distress! Now get us those drinks before I get them myself!"'
+					'Niko eagerly gets up then heads out to get beers for Lena and Lera, as they slouch back in their seat chatting.'
 					if NikoVolkovQW >= 5: 					
-						act 'Confront Niko': gt 'praiders_garage_events', 'Niko Confront'
+						act 'Confront Niko': gt 'praiders_garage_events', 'niko_confront'
 					end
 				elseif gopnikbandQW['lena_lara_present'] = 1:
-					'Lena grins a bit. "Some one is going to get some tonight, wish it was me."'
+					'Lena grins a little. "Someone is going to get some tonight. Wish it was me."'
 					'Lera looks at her. "You want Rad to fuck you?"'
-					'Lena rolls her eyes. "I meant I wanted some dick, but..." she gives Radomir a lusty look. "If he wasn''t already busy..."'
-					'Lera just rolls her eyes now at that. Not to long after this the two of them get up and leave as well.'
+					'Lena rolls her eyes. "I meant I wanted some dick, but..." She gives Radomir a lusty look. "If he wasn''t already busy..."'
+					'Lera just rolls her eyes. Not too long after this, the two of them get up and leave as well.'
 				end			
 				gs 'arousal', 'voyeur', 2
 				gs 'stat'
@@ -187,15 +193,15 @@ if $ARGS[0] = 'radnush_love':
 				act 'Watch some more':
 					*clr & cla
 					'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/radnush4.jpg"></center>'
-					'You try to go back to talking to others but more and more people seem to be watching Radomir and Anushka, when you turn to watch some more yourself, you notice they have gone beyond making out. Now Radomir is rubbing her breasts and crotch, pulling at her shirt nearly showing off his tits more than once. Eventually his hand goes up her shirt to play with her boobs and finally his hand slides down the front of her shorts down to her crotch, which causes Anushka to moan and arch her back. By now most people are starting to leave, seeming to know what the couple is going to be doing soon.'
+					'You try to go back to talking to others, but more and more people seem to be watching Radomir and Anushka. When you turn to watch some more yourself, you notice they''ve gone beyond making out. Radomir is rubbing her breasts and crotch while pulling at her shirt, nearly showing off her breasts more than once. Eventually, one of his hands goes up her shirt to play with her breasts while the other slides down the front of her shorts, which causes Anushka to moan and arch her back. By now, most people are starting to leave, seemingly knowing what the couple is going to be doing soon.'
 					if gopnikbandQW['lavrenti_present'] = 1:
-						'Lavrenti glances to you and smiles. "Well I think this is my cue, see you later." With that he gets up and leaves with most of the rest.'
+						'Lavrenti glances to you and smiles. "Well, I think this is my cue. See you later," he says as he gets up and leaves with a few people.'
 					end
 					if gopnikbandQW['roman_present'] = 1:
-						'Roman watches the couple for a moment and then when a younger girl gets up and heads for the door, he watches her with hungry eyes and then gets up and follows her out.'
+						'Roman watches the couple for a moment until a younger girl gets up and heads for the door. He watches her with hungry eyes before he gets up and follows her out.'
 					end
 					if gopnikbandQW['niko_present'] = 1:
-						'With everyone now mostly leaving Niko gets up, stretches then heads out as well.'
+						'With everyone now mostly leaving, Niko gets up and heads out as well.'
 					end
 					gs 'arousal', 'voyeur', 2
 					gs 'stat'
@@ -203,12 +209,13 @@ if $ARGS[0] = 'radnush_love':
 					act 'Keep being a perv':
 						*clr & cla
 						'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/radnush5.jpg"></center>'
-						'As you keep watching eventually she turns to sit in his lap with her legs to each of his sides, they makeout more and more and it seems like any moment the clothes are going to start flying and they are going to start fucking, with out a care in the world on who might be watching. "Ok lets go pervert." Arkadi''s voice draws your attention, when you turn back to look you notice he and you are the only ones left. His tone is slightly joking but you can''t help but blush a little when you realize you was watching the couple so much you didn''t notice everyone else leave. "Lets go."'
-						*nl
-						'You get up and get ushered to the door by Arkadi, with a finally glance back you now see Anushka topless as they are making out hot and heavy now. Arkadi walks you out and then closes and locks the door behind him. "Just what we fucking need." He mutters.'
-						'You look at him. "What the two of them?"'
+						'As you keep watching, she turns to sit in his lap with her legs on each side of him as they make out. It seems like they''re going to start fucking without a care in the world on who might be watching. "Okay, let''s go pervert."' 
+						'Arkadi''s voice draws your attention. When you turn back to look, you notice he and you are the only ones left. His tone is slightly joking, but you can''t help but blush a little when you realize you were watching the couple so much you didn''t notice everyone else left. "Let''s go," he repeats.'
 						*nl
-						'He nods. "Yeah now for the next few days maybe a week tops they will be like that, then they will have a big fight like always and then the drama will fucking start all over again, I am so fucking sick of it." Then he just sighs. "Anyways I need to get going." With that he does just that walks off leaving you alone outside the band garage, a few moment later you hear a loud feminine moan, you can guess by the sound of it, that they are now fucking, with nothing more to do you head off as well.'
+						'You get up and are ushered to the door by Arkadi, who closes and locks the door behind him. "Just what we fucking need," He mutters.'
+						'You look at him. "What, the two of them?"'
+						'He nods. "Yeah. They''ll be like that for the next few days, maybe a week tops, then they''ll have a big fight like always and then the drama will fucking start all over again. I''m so fucking sick of it!" He then sighs. "Anyway, I need to get going."' 
+						'He walks away, leaving you alone outside the garage as you hear a loud feminine moan coming from within. With nothing more to do, you head off as well.'
 						gs 'arousal', 'voyeur', 2
 						gs 'arousal', 'end'
 						gs 'stat'
@@ -220,18 +227,19 @@ if $ARGS[0] = 'radnush_love':
 	end
 end
 
-if $ARGS[0] = 'Niko Confront':
+if $ARGS[0] = 'niko_confront':
 	menu_off = 0
 	NikoVolkovQW['lena_lara_flirt'] = 1
 	*clr & cla
-	'<center><b><h4><font color=#E400FF><<"Nikolai [Niko] Volkov">></font></h4></b></center>'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/niko/nikoev/charmer2.jpg"></center>'
-	'As Niko is leaving, you quickly walk in front of him, cutting him off, before saying, "Niko? What the fuck is this? Are you hitting on other girls?" Niko seems completely caught off guard, before saying, "No! It''s nothing like that. We were just harmlessly flirting. Listen <<pcs_nickname>>, Don''t tell anyone, but I heard that Lena just broke up with a guy recently, a jerk that called her ugly, so I wanted to cheer her up, by making her feel pretty. It is just what a good friend does. I would never cheat on my perfect princess. You know that right?"'
+	'As Niko is leaving, you quickly walk in front of him, cutting him off. "Niko? What the fuck is this? Are you hitting on other girls?"' 
+	'He seems completely caught off guard. "No! It''s nothing like that! We were just harmlessly flirting. Listen. Don''t tell anyone, but I heard that Lena just broke up with a guy recently, a jerk that called her ugly, so I wanted to cheer her up by making her feel pretty. It''s just what a good friend does. I would never cheat on my perfect princess. You know that, right?"'
 	*nl
-	'Niko''s sincerity, seems to be genuine, so you lower your shoulders and say, "Alright, but please don''t just flirt with girls like that. You know I really value our relationship right?" Niko places his hands on your hands, bringing them to his face, before giving them a soft kiss. "I will always be true to my princess. I am your noble knight, and guardian. I will always keep you safe from all threats. You are the only one for me."'
+	'His sincerity seems to be genuine, so you lower your shoulders. "Alright, but please don''t just flirt with girls like that. You know I really value our relationship, right?"' 
+	'He places his hands on your hands, bringing them to his face before giving them a soft kiss. "I''ll always be true to my princess. I''m your noble knight and guardian who will always keep you safe from all threats. You''re the only one for me."'
 	*nl
-	'Niko then leans forward, before gently placing his lips on yours, sharing a soft and loving kiss, which seems to make the moments fade away, as his lips rub against yours, and his arms wrap around you embracing you firmly, but gently. After a few more seconds of kissing, Niko slowly releases you and says, "You''re the perfect girl <<pcs_firstname>>, i am so lucky to have such a precious treasure in my life. Now I should get going. I need to plan out some things for us to do later. I''ll see you then."'
-	'Niko slowly backs away, before walking out of the garage.'
+	'He then leans forward before gently placing his lips on yours, sharing a soft and loving kiss, which seems to make the moments fade away as his lips rub against yours and his arms wrap around you, embracing you firmly but gently.' 
+	'After a few more seconds of kissing, he slowly releases you. "You''re the perfect girl, <<pcs_firstname>> and I''m so lucky to have such a precious treasure in my life. I should get going. I need to plan out some things for us to do later. I''ll see you then." He slowly backs away before walking out of the garage.'
 	gs 'arousal', 'kiss', 1
 	gs 'arousal', 'end'
 	gs 'stat'
@@ -243,14 +251,16 @@ if $ARGS[0] = 'alyona_dad':
 	*clr & cla
 	minut + 15
 	'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/hangout4.jpg"></center>'
-	'Everyone is scattered around the garage, enjoying themselves as they drink and hangout. The atmosphere is relaxed and easy going, slowly people start to head out as it gets late. Before long everyone has left but Anushka, Valentin, Alyona, and yourself. This is when Valentin announces. "Ok girls lets pack it up for the night, unless..." He remarks with a lewd smile on his face, his unless is obviously a foursome with him. Anushka snorts and says. "In your dreams." While Alyona rolls her eyes slightly. With that everyone heads outside and Valentin locks the garage up. The three of them start walking back to the apartments talking, you could go with them of course or call it a night and head home.'
+	'Everyone is scattered around the garage, enjoying themselves as they drink and hang out. The atmosphere is relaxed and easy going, but people slowly start to head out as it gets late. Before long but Anushka, Valentin, Alyona and yourself have left. "Okay girls, let''s pack it up for the night, unless..." Valentin says.'
+	'He has a lewd smile on his face as Anushka snorts. "In your dreams." Alyona just rolls her eyes slightly before everyone heads outside and Valentin locks the garage up. The three of them start walking back to the apartments. You could go with them or call it a night and head home.'
 	act 'Leave': gt 'pav_complex', 'garages'
-	act 'Leave with them.':
+	act 'Leave with them':
 		*clr & cla
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/zoykov.jpg"></center>'
-		'You decided to go with them, the four of you are still talking and laughing as you walk. Before you make it far though a man comes out of the darkness of the courtyard, he is older, at a guess a bit older than your step dad. He is fairly tall with thick meaty arms, and a bit of a beer gut on him. Everyone stops talking at once, you can feel the tense ratchet up as well. "Where the fuck have you been you little slut?" The man says as he closes in on the group heading right for Alyona.'
-		*nl
-		'Alyona takes a step back as the man walks right up to her face. "I was just hanging out with my friends, chill out." The words barely leave her mouth before the man backhands her hard and sends he sprawling to the ground. Anushka yells out. "What the fuck?" Then goes to Alyona, while Valentin steps up to put himself between Alyona and the man. The man starts to step around Valentin, who just steps in his way. "You better get the fuck out of my face, you little piece of shit." Followed by him shoving Valentin hard enough to force him back, causing him to stumble a bit.'
+		'You decide to go with them and the four of you talk and laugh as you walk. Before you make it far though, a man comes out of the darkness of the courtyard. He''s older and fairly tall with thick meaty arms, and a bit of a beer gut on him. Everyone stops talking as you feel the tension set in. "Where the fuck have you been, you little slut?" the man says as he closes in, heading right for Alyona.'
+		'Alyona takes a step back as the man walks right up to her face. "I was just hanging out with my friends. Chill out." The words barely leave her mouth before the man backhands her hard and sends he sprawling to the ground.' 
+		'"What the fuck?!" Anushka yells before rushing over to Alyona while Valentin steps up to put himself between Alyona and the man. The man starts to step around Valentin, who just steps in his way.' 
+		'"You better get the fuck out of my face, you little piece of shit!" the man snarls before shoving Valentin hard enough to force him back, causing him to stumble a little.'
 		act 'Go to Alyona':
 			*clr & cla
 			gs 'npc_relationship', 'modify', 'A143', 'like'
@@ -258,10 +268,9 @@ if $ARGS[0] = 'alyona_dad':
 			grupvalue[4] += 3
 			gs 'stat'
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/alyona_slapped.jpg"></center>'
-			'You rush over to Alyona, with Anushka on her other side, you both check to be sure she is ok. Even in the dim light you can see a bruise forming on her face and her mouth is bleeding from a split lip. This is the first time you have ever seen Alyona afraid, but there is no mistake how wide her eyes are and how she is staring straight at the man. She doesn''t seem to even register you or Anushka checking on her.'
-			*nl
-			'While this is going on, Valentin steps back blocking the man again and shoves him, though he barely makes the man move a step back as he stays. "Bad move punk!" Then punches Valentin in the face who partially blocked it but the man is obviously strong as he blow still went through Valentin''s. Valentin takes a swing at the man catching him in the chin. Soon the two are trading blows, but it is obvious quickly the man is much stronger and tougher than Valentin. What he lacks in youth and speed he more than seems to make up for with experience, as he quickly gets the upper hand. As you watch this all unfold, you notice the light on still from Edwards garage, Anushka''s dad, he might still be in his garage, you could go get help maybe.'
-			act 'Go get Ed': gt 'praiders_garage_events', 'edward_garage'
+			'You rush over to Alyona with Anushka and you both check if she''s okay. Even in the dim light, you can see a bruise forming on her face and her mouth is bleeding from a split lip. This is the first time you''ve ever seen Alyona afraid, but there''s no mistake with how hard she''s staring at the man. She doesn''t seem to even register you or Anushka checking on her.'
+			'While this is going on, Valentin starts blocking the man again and shoves him, though he barely flinches. "Bad move, punk!" he says and punches Valentin in the face, who partially blocks it and takes a swing at the man, catching him in the chin. The two are soon trading blows, but it''s obvious the man is much stronger and tougher than Valentin. What he lacks in speed he more than makes up for with experience, as he quickly gets the upper hand. As you watch all this unfold, you notice the light in Edward''s garage is on.'
+			act 'Get Ed': gt 'praiders_garage_events', 'edward_garage'
 			act 'Try to stop him':
 				*clr & cla
 				gs 'npc_relationship', 'modify', 'A144', 'like'
@@ -269,17 +278,17 @@ if $ARGS[0] = 'alyona_dad':
 				grupvalue[4] += 3
 				gs 'stat'
 				'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/zoykov.jpg"></center>'
-				'The man gets Valentin on the ground and starts really pounding on him, Valentin does his best to cover up. Alyona finally seems to snap out of it a bit as she screams. "Dad! Leave him alone!" Yet she doesn''t get off the ground even as Anushka jumps on Alyona''s dad back in a effort to get him to stop beating on Valentin. He only pauses hitting on Valentin long enough to grab Anushka and fling her off him, causing her to crash into the door of one of the garages, before he goes back to beating on Valentin. You step in to try and help as well, but suffer the same fate, the man is very strong as he easily tosses you aside. You get up to launch back in and maybe do more than just try and pull him off this time. But before you can, you see someone running up from down the alleyway.'
-				act 'Ed arrives': gt 'praiders_garage_events', 'edward_arrives'
+				'The man gets Valentin on the ground and starts really pounding on him. Valentin does his best to cover up as Alyona finally seems to snap out of it. "Dad! Leave him alone!" She doesn''t get off the ground though, even as Anushka jumps on her dad''s back. He only pauses hitting Valentin long enough to grab Anushka and fling her off him, causing her to crash into the door of one of the garages before he goes back to beating on Valentin.'
+				'You step in to try and help as well, but suffer the same fate. The man is very strong and easily tosses you aside. Before you can get back up, you see someone running up the alleyway.'
+				act 'Continue': gt 'praiders_garage_events', 'edward_arrives'
 			end
 		end
 		act 'Tell him to stop':
 			*clr & cla
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/alyona_slapped.jpg"></center>'
-			'You rush over to Alyona, with Anushka on her other side, you both check to be sure she is ok. Even in the dim light you can see a bruise forming on her face and her mouth is bleeding from a split lip. This is the first time you have ever seen Alyona afraid, but there is no mistake how wide her eyes are and how she is staring straight at the man. She doesn''t seem to even register you or Anushka checking on her.'
-			*nl
-			'While this is going on, Valentin steps back blocking the man again and shoves him, though he barely makes the man move a step back as he stays. "Bad move punk!" Then punches Valentin in the face who partially blocked it but the man is obviously strong as he blow still went through Valentin''s. Valentin takes a swing at the man catching him in the chin. Soon the two are trading blows, but it is obvious quickly the man is much stronger and tougher than Valentin. What he lacks in youth and speed he more than seems to make up for with experience, as he quickly gets the upper hand. As you watch this all unfold, you notice the light on still from Edwards garage, Anushka''s dad, he might still be in his garage, you could go get help maybe.'
-			act 'Go get Ed': gt 'praiders_garage_events', 'edward_garage'
+			'You rush over to Alyona with Anushka and you both check she''s okay. Even in the dim light, you can see a bruise forming on her face and her mouth is bleeding from a split lip. This is the first time you''ve ever seen Alyona afraid, but there''s no mistake with how hard she''s staring straight at the man. She doesn''t seem to even register you or Anushka checking on her.'
+			'While this is going on, Valentin starts blocking the man again and shoves him, though he barely flinches. "Bad move, punk!" he says and punches Valentin in the face, who partially blocks it and takes a swing at the man, catching him in the chin. The two are soon trading blows, but it''s obvious the man is much stronger and tougher than Valentin. What he lacks in speed he more than makes up for with experience, as he quickly gets the upper hand. As you watch all this unfold, you notice the light in Edward''s garage is on.'
+			act 'Get Ed': gt 'praiders_garage_events', 'edward_garage'
 			act 'Try to stop him':
 				*clr & cla
 				gs 'npc_relationship', 'modify', 'A144', 'like'
@@ -287,8 +296,9 @@ if $ARGS[0] = 'alyona_dad':
 				grupvalue[4] += 3
 				gs 'stat'
 				'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/zoykov.jpg"></center>'
-				'The man gets Valentin on the ground and starts really pounding on him, Valentin does his best to cover up. Alyona finally seems to snap out of it a bit as she screams. "Dad! Leave him alone!" Yet she doesn''t get off the ground even as Anushka jumps on Alyona''s dad back in a effort to get him to stop beating on Valentin. He only pauses hitting on Valentin long enough to grab Anushka and fling her off him, causing her to crash into the door of one of the garages, before he goes back to beating on Valentin. You step in to try and help as well, but suffer the same fate, the man is very strong as he easily tosses you aside. You get up to launch back in and maybe do more than just try and pull him off this time. But before you can, you see someone running up from down the alleyway.'
-				act 'Ed arrives': gt 'praiders_garage_events', 'edward_arrives'
+				'The man gets Valentin on the ground and starts really pounding on him. Valentin does his best to cover up as Alyona finally seems to snap out of it. "Dad! Leave him alone!" She doesn''t get off the ground though, even as Anushka jumps on her dad''s back. He only pauses hitting Valentin long enough to grab Anushka and fling her off him, causing her to crash into the door of one of the garages before he goes back to beating on Valentin.'
+				'You step in to try and help as well, but suffer the same fate. The man is very strong and easily tosses you aside. Before you can get back up, you see someone running up the alleyway.'
+				act 'Continue': gt 'praiders_garage_events', 'edward_arrives'
 			end
 		end
 	end
@@ -300,37 +310,38 @@ if $ARGS[0] = 'edward_garage':
 	minut + 15
 	gs 'stat'
 	'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/ed/ed2.jpg"></center>'
-	'You rush down to Edward''s garage, as you do you hear Alyona screaming "Dad! Leave him alone!" So apparently the man is her father, as you reach the garage, you jerk open the door and sure enough Edward is inside working on his bike, he looks up at you in surprise at the way you burst in, he opens his mouth to say something, but you beat him to it and in a rush tell him. "Alyona''s dad hit her and when Val tried to stop him he starting beating the shit out of Val."'
-	'Edwards eyes darken. "Mother fucker, you ok?" When you nod and he gives you a quick look he rushes out, as he does he says. "Stay here." Then he is out of the garage at a flat out run.'
-	act 'Wait like you was told.':
+	'You rush down to Edward''s garage as you hear Alyona screaming "Dad! Leave him alone!" As you reach the garage, you jerk open the door and find Edward inside working on his bike. He looks up at you in surprise and opens his mouth to say something, but you beat him to it. "Alyona''s dad hit her and when Val tried to stop him, he starting beating the shit out of Val!"'
+	'Edwards eyes darken. "You okay?" When you nod, he gives you a quick look over before he rushes out.'
+	act 'Wait':
 		*clr & cla
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/ed/ed6.jpg"></center>'
-		'You take a seat and just wait, it takes awhile but finally the door opens and it is Edward standing there. His hands are bloodied you notice and he has a grim look on his face like he wants to beat someone, behind him is Valentin who''s face is all bloodied and bruised and next to him Anushka has her arm wrapped around Alyona protectively. "Alright lets go." His tone is hard and angry but you can tell he isn''t angry at you, after a moment he forces a smile to his face and his tone lightens a bit, he is obviously trying to not come off as scary to you, but really that ship has sailed. "Come on." As you walk out he turns off the lights and locks the garage.'
-		*nl
-		'Then the five of you walk towards the apartments. The only one talking is Edward who is talking to Valentin, telling him what a good job he did and stuff like that. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. First he walks you to his building, stopping at the door. "Ok you girls go on up to your room, I''ll be back shortly." He says to Anushka, who gives him a grateful smile. "Ok dad." Edward, Valentin, and you walk to your building next. "Ok it''s getting late, you should get home." Edward says to you, he won''t take no for a answer, so you go inside giving him a friendly smile. Once inside your building you give it a moment and then open the door to peek out, you see Edward walking with Valentin with his arm over the younger man''s shoulder. You let the door close after a moment, Edward is likely right, you probably should go home.'
+		'You take a seat and wait. It takes a while, but Edward finally opens the door. His hands are bloodied and you notice he has a grim look on his face. Behind him is Valentin, whose face is all bloodied and bruised. Anushka has her arm wrapped around Alyona protectively. "Alright, let''s go," Edward says. His tone is hard and angry, but you can tell he isn''t angry at you. After a moment, he forces a smile to his face. As you walk out, he turns off the lights and locks the garage.'
+		'The five of you walk towards the apartments as Edward talks to Valentin, telling him what a good job he did. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. He first walks you to his building, stopping at the door. "Okay, you girls go on up to your room. I''ll be back shortly," he says to Anushka, who gives him a grateful smile.'
+		'Edward and Valentin then walk you to your building next. "You should get home," Edward tells you and won''t take no for a answer, so you head inside after giving him a friendly smile. Once inside, you give it a moment and open the door, peeking out to see Edward walking with his arm over Valentin''s shoulder. You let the door close after a moment.'
 		act 'Let the door close': gt 'pod_ezd', 'etaj_1'
 	end
-	act 'Run after him.':
+	act 'Run after him':
 		*clr & cla
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov1.jpg"></center>'
-		'Once he leaves you decide you don''t want to wait, so you run after him. You try to keep up with Edward but he just runs faster than you, but still you are close enough to see when he arrives he grabs Alyona''s dad off Valentin and flings him to the ground. The man starts to get up as he says. "What the fuck Ed, this isn''t any of your business." Edward responds by punching him in the face. "What the fuck is wrong with you Zoykov, beating on kids." Followed up by another punch. Alyona goes over to check on Anushka who is getting up, you guess she tried to stop Zoykov and got tossed for it, she doesn''t look like she is hurt. Valentin sits up with his back to the garage, his face is all bloodied and bruised.'
+		'You decide you don''t want to wait, so you run after him. You try to keep up with Edward, but he runs faster than you. When he arrives on the scene, he picks Alyona''s dad off Valentin and tosses him to the ground, but the man quickly gets to his feet. "What the fuck? Ed? This isn''t any of your business!"'
+		'Edward responds by punching him in the face. "What the fuck is wrong with you, Zoykov? Beating on fucking kids?" Alyona goes over to check on Anushka, who you guess tried to stop Zoykov and got tossed for it, but she doesn''t look like she''s hurt. Valentin sits up with his back to the garage, his face bloodied and bruised.'
 		act 'Watch them fight':
 			*clr & cla
+			alyonaQW['meet_father'] = 1
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov2.jpg"></center>'
-			'Now you know the man''s name is Zoykov, he lunges at Edward tackling him and they both go down. You just stand there and watch them fight. They trade a few blows but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him over and over, until Zoykov gives up fighting back and just start trying to defend himself. Once Edward is sure the fight is over he gets off Zoykov and looks around at all of you before glaring again at Zoykov. "You touch one of these kids again and I will beat you within a inch of your life."'
-			*nl
-			'He glances over at Anushka who is next to Valentin checking his injuries before looking back at Zoykov again who is still on the ground. "and if you ever so much as look at my daughter again, I swear to you, they will never find your body, we clear?" When Zoykov doesn''t respond at once Edward repeats. "I said are we clear?"'
-			'Zoykov sits up. "Yeah... yeah..."'
+			'Zoykov lunges at Edward and they both go down as you stand there and watch them fight. They trade a few blows, but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him until he gives up fighting back. Once Edward is sure the fight is over, he gets off Zoykov and looks around at all of you before glaring again at Zoykov. "You touch one of these kids again and I''ll beat you within an inch of your sorry life."'
+			'He glances over at Anushka, who is checking on Valentin''s injuries before looking back at Zoykov again. "If you ever so much as look at my daughter again, I swear they''ll never find your body. We clear?" When Zoykov doesn''t respond, Edward repeats himself. "I said ''are we clear''?"'
+			'Zoykov looks up from where he lays. "Yeah... Yeah..."'
 			act 'Aftermath':
 				*clr & cla
 				'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov3.jpg"></center>'
-				'While Zoykov stays laying on the ground, Edwards looks back over at Anushka and Alyona as he says. "Alyona''s going to have a sleep over with Nush tonight." Then looks back to Zoykov. "Got it?"'
-				'Zoykov clenches his jaws but nods. "Yeah, whatever." He gets up and gives a glare at Alyona, apparently blaming her for all this, then walks off muttering to himself and rubbing his jaw.'
-				*nl
-				'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin who he spends the most time with, once he seems to be sure Valentin isn''t injured badly he helps Valentin up. Edward has bloodied knuckles and a few bruises but Zoykov came off far worse.'
-				'"Alright lets go." His tone is hard and angry but you can tell he isn''t angry at any of you, after a moment he forces a smile to his face and his tone lightens a bit, he is obviously trying to not come off as scary to you, but really that ship has sailed. "Come on." As you all start to walk off together Anushka has her arm wrapped around Alyona protectively. You all walk back to his garage where he turns off the lights and locks the garage.'
+				'While Zoykov stays laying on the ground, Edward looks back over at Anushka and Alyona. "Alyona''s going to have a sleepover with Nush tonight. Got it?"'
+				'Zoykov clenches his jaw, but nods. "Yeah, whatever." He gets up and glares at Alyona, apparently blaming her for all this before he walks away muttering to himself and rubbing his jaw.'
+				'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin. Once he seems to be sure Valentin isn''t injured badly, he helps him up.'
 				*nl
-				'Next the five of you walk towards the apartments. The only one talking is Edward who is talking to Valentin, telling him what a good job he did. You can see Valentin straighten his shoulders and even smile at the compliments. First he walks you to his building, stopping at the door. "Ok you girls go on up to your room, I''ll be back shortly." He says to Anushka, who gives him a grateful smile. "Ok dad." Edward, Valentin, and you walk to your building next. "Ok it''s getting late, you should get home." Edward says to you, he won''t take no for a answer, so you go inside giving him a friendly smile. Once inside your building you give it a moment and then open the door to peek out, you see Edward walking with Valentin with his arm over the younger man''s shoulder. You let the door close after a moment, Edward is likely right, you probably should go home.'
+				'"Alright, let''s go." His tone is hard and angry, but you can tell he isn''t angry at any of you. After a moment, he forces a smile to his face. Anushka has her arm wrapped around Alyona protectively as you all walk back to his garage, where he turns off the lights and locks the door.'
+				'The five of you walk towards the apartments as Edward talks to Valentin, telling him what a good job he did. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. He first walks you to his building, stopping at the door. "Okay, you girls go on up to your room. I''ll be back shortly," he says to Anushka, who gives him a grateful smile.'
+				'Edward and Valentin then walk you to your building next. "You should get home," Edward tells you and won''t take no for a answer, so you head inside after giving him a friendly smile. Once inside, you give it a moment and open the door, peeking out to see Edward walking with his arm over Valentin''s shoulder. You let the door close after a moment.'
 				act 'Let the door close': gt 'pod_ezd', 'etaj_1'
 			end
 		end
@@ -339,22 +350,22 @@ if $ARGS[0] = 'edward_garage':
 			gs 'npc_relationship', 'modify', 'A158', 'like'
 			gs 'stat'
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov2.jpg"></center>'
-			'Now you know the mans name is Zoykov, he lunges at Edward tackling him and they both go down. You move over next to Valentin and check on him. "You ok?" You ask him.'
-			'He winces a bit but nods, "Yeah thanks." you check him out and he doesn''t seem to be badly injured, just bruised and a bit bloody. Anushka and Alyona also come over to check on Valentin, who doesn''t seem to mind all the attention he is getting from three girls as he even smiles. "I''m fine girls, it''s nothing." He says trying to act all tough.'
+			'Zoykov lunges at Edward and they both go down as you move over to Valentin and check on him. "You okay?" you ask.'
+			'He winces a bit, but nods. You check him out and he doesn''t seem to be badly injured, just bruised and a bit bloody. Anushka and Alyona also come over to check on him and he doesn''t seem to mind all the attention he''s getting. "I''m fine, girls. It''s nothing," he smiles, trying to act tough.'
 			*nl
-			'You glance over as the two men are trading a few blows but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him over and over, until Zoykov gives up fighting back and just start trying to defend himself. Once Edward is sure the fight is over he gets off Zoykov and looks around at the as he put it you kids and glares again at Zoykov. "You touch one of these kids again and I will beat you within a inch of your life."'
-			'He glances over at Anushka who is next to Valentin checking his injuries before looking back at Zoykov again who is still on the ground. "You fucking touch my daughter again and I swear to you, they will never find your body, we clear?" When Zoykov doesn''t respond at once Edward repeats. "I said are we clear?"'
-			'Zoykov sits up. "Yeah... yeah..."'
+			'You glance over as the two men trade a few blows, but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him until he gives up fighting back. Once Edward is sure the fight is over, he gets off Zoykov and looks around at you and glares again at Zoykov. "You touch one of these kids again and I''ll beat you within an inch of your sorry life."'
+			'He glances over at Anushka, who is checking on Valentin''s injuries before looking back at Zoykov again. "If you ever so much as look at my daughter again, I swear they''ll never find your body. We clear?" When Zoykov doesn''t respond, Edward repeats himself. "I said ''are we clear''?"'
+			'Zoykov looks up from where he lays. "Yeah... Yeah..."'
 			act 'Aftermath':
 				*clr & cla
 				'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov3.jpg"></center>'
-				'While Zoykov stays laying on the ground, Edwards looks back over at Anushka and Alyona as he says. "Alyona''s going to have a sleep over with Nush tonight." Then looks back to Zoykov. "Got it?"'
-				'Zoykov clenches his jaws but nods. "Yeah, what ever." He gets up and gives a glare at Alyona, apparently blaming her for all this, then walks off muttering to himself and rubbing his jaw.'
+				'While Zoykov stays laying on the ground, Edward looks back over at Anushka and Alyona. "Alyona''s going to have a sleepover with Nush tonight. Got it?"'
+				'Zoykov clenches his jaw, but nods. "Yeah, whatever." He gets up and glares at Alyona, apparently blaming her for all this before he walks away muttering to himself and rubbing his jaw.'
+				'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin. Once he seems to be sure Valentin isn''t injured badly, he helps him up.'
 				*nl
-				'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin who he spends the most time with, once he seems to be sure Valentin isn''t injured badly he helps Valentin up. Edward has bloodied knuckles and a few bruises but Zoykov came off far worse.'
-				'"Alright lets go." His tone is hard and angry but you can tell he isn''t angry at any of you, after a moment he forces a smile to his face and his tone lightens a bit, he is obviously trying to not come off as scary to you, but really that ship has sailed. "Come on." As you all start to walk off together Anushka has her arm wrapped around Alyona protectively. You all walk back to his garage where he turns off the lights and locks the garage.'
-				*nl
-				'Next the five of you walk towards the apartments. The only one talking is Edward who is talking to Valentin, telling him what a good job he did and stuff like that. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. First he walks you to his building, stopping at the door. "Ok you girls go on up to your room, I''ll be back shortly." He says to Anushka, who gives him a grateful smile. "Ok dad." Edward, Valentin, and you walk to your building next. "Ok it''s getting late, you should get home." Edward says to you, he won''t take no for a answer, so you go inside giving him a friendly smile. Once inside your building you give it a moment and then open the door to peek out, you see Edward walking with Valentin with his arm over the younger man''s shoulder. You let the door close after a moment, Edward is likely right, you probably should go home.'
+				'"Alright, let''s go." His tone is hard and angry, but you can tell he isn''t angry at any of you. After a moment, he forces a smile to his face. Anushka has her arm wrapped around Alyona protectively as you all walk back to his garage, where he turns off the lights and locks the door.'
+				'The five of you walk towards the apartments as Edward talks to Valentin, telling him what a good job he did. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. He first walks you to his building, stopping at the door. "Okay, you girls go on up to your room. I''ll be back shortly," he says to Anushka, who gives him a grateful smile.'
+				'Edward and Valentin then walk you to your building next. "You should get home," Edward tells you and won''t take no for a answer, so you head inside after giving him a friendly smile. Once inside, you give it a moment and open the door, peeking out to see Edward walking with his arm over Valentin''s shoulder. You let the door close after a moment.'
 				act 'Let the door close': gt 'pod_ezd', 'etaj_1'
 			end
 		end
@@ -365,24 +376,24 @@ if $ARGS[0] = 'edward_arrives':
 	menu_off = 0
 	*clr & cla
 	'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov1.jpg"></center>'
-	'As you watch the coming figure you realize it is Edward, Anushka''s dad, he must have heard the commotion from his garage and came out to investigate. When he arrives he grabs Alyona''s dad off Valentin and flings him to the ground. The man starts to get up as he says. "What the fuck Ed, this isn''t any of your business." Edward responds by punching him in the face. "What the fuck is wrong with you Zoykov, beating on kids." Followed up by another punch.'
+	'As you watch the approaching figure, you realize that it;;s Edward, Anushka''s dad. He must have heard the commotion from his garage and come out to investigate. When he arrives, he picks Alyona''s dad off Valentin and tosses him to the ground, but the man quickly gets to his feet. "What the fuck? Ed? This isn''t any of your business!"'
+	'Edward responds by punching him in the face. "What the fuck is wrong with you, Zoykov? Beating on kids?"'
 	act 'Watch them fight':
 		*clr & cla
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov2.jpg"></center>'
-		'Now you know the mans name is Zoykov, he lunges at Edward tackling him and they both go down. You just stand there and watch them fight. They trade a few blows but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him over and over, until Zoykov gives up fighting back and just start trying to defend himself. Once Edward is sure the fight is over he gets off Zoykov and looks around at the as he put it you kids and glares again at Zoykov. "You touch one of these kids again and I will beat you within a inch of your life."'
-		*nl
-		'He glances over at Anushka who is next to Valentin checking his injuries before looking back at Zoykov again who is still on the ground. "You ever so much as look at my daughter again and I swear to you, they will never find your body, we clear?" When Zoykov doesn''t respond at once Edward repeats. "I said are we clear?"'
-		'Zoykov sits up. "Yeah... yeah..."'
+		'Zoykov lunges at Edward and they both go down as you stand there and watch them fight. They trade a few blows, but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him until he gives up fighting back. Once Edward is sure the fight is over, he gets off Zoykov and looks around at all of you before glaring again at Zoykov. "You touch one of these kids again and I''ll beat you within an inch of your sorry life."'
+		'He glances over at Anushka, who is checking on Valentin''s injuries before looking back at Zoykov again. "If you ever so much as look at my daughter again, I swear they''ll never find your body. We clear?" When Zoykov doesn''t respond, Edward repeats himself. "I said ''are we clear''?"'
+		'Zoykov looks up from where he lays. "Yeah... Yeah..."'
 		act 'Aftermath':
 			*clr & cla
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov3.jpg"></center>'
-			'While Zoykov stays laying on the ground, Edwards looks back over at Anushka and Alyona as he says. "Alyona''s going to have a sleep over with Nush tonight." Then looks back to Zoykov. "Got it?"'
-			'Zoykov clenches his jaws but nods. "Yeah, what ever." He gets up and gives a glare at Alyona, apparently blaming her for all this, then walks off muttering to himself and rubbing his jaw.'
-			*nl
-			'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin who he spends the most time with, once he seems to be sure Valentin isn''t injured badly he helps Valentin up. Edward has bloodied knuckles and a few bruises but Zoykov came off far worse.'
-			'"Alright lets go." His tone is hard and angry but you can tell he isn''t angry at any of you, after a moment he forces a smile to his face and his tone lightens a bit, he is obviously trying to not come off as scary to you, but really that ship has sailed. "Come on." As you all start to walk off together Anushka has her arm wrapped around Alyona protectively. You all walk back to his garage where he turns off the lights and locks the garage.'
+			'While Zoykov stays laying on the ground, Edward looks back over at Anushka and Alyona. "Alyona''s going to have a sleepover with Nush tonight. Got it?"'
+			'Zoykov clenches his jaw, but nods. "Yeah, whatever." He gets up and glares at Alyona, apparently blaming her for all this before he walks away muttering to himself and rubbing his jaw.'
+			'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin. Once he seems to be sure Valentin isn''t injured badly, he helps him up.'
 			*nl
-			'Next the five of you walk towards the apartments. The only one talking is Edward who is talking to Valentin, telling him what a good job he did and stuff like that. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. First he walks you to his building, stopping at the door. "Ok you girls go on up to your room, I''ll be back shortly." He says to Anushka, who gives him a grateful smile. "Ok dad." Edward, Valentin, and you walk to your building next. "Ok it''s getting late, you should get home." Edward says to you, he won''t take no for a answer, so you go inside giving him a friendly smile. Once inside your building you give it a moment and then open the door to peek out, you see Edward walking with Valentin with his arm over the younger man''s shoulder. You let the door close after a moment, Edward is likely right, you probably should go home.'
+			'"Alright, let''s go." His tone is hard and angry, but you can tell he isn''t angry at any of you. After a moment, he forces a smile to his face. Anushka has her arm wrapped around Alyona protectively as you all walk back to his garage, where he turns off the lights and locks the door.'
+			'The five of you walk towards the apartments as Edward talks to Valentin, telling him what a good job he did. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. He first walks you to his building, stopping at the door. "Okay, you girls go on up to your room. I''ll be back shortly," he says to Anushka, who gives him a grateful smile.'
+			'Edward and Valentin then walk you to your building next. "You should get home," Edward tells you and won''t take no for a answer, so you head inside after giving him a friendly smile. Once inside, you give it a moment and open the door, peeking out to see Edward walking with his arm over Valentin''s shoulder. You let the door close after a moment.'
 			act 'Let the door close': gt 'pod_ezd', 'etaj_1'
 		end
 	end
@@ -391,22 +402,22 @@ if $ARGS[0] = 'edward_arrives':
 		gs 'npc_relationship', 'modify', 'A158', 'like'
 		gs 'stat'
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov2.jpg"></center>'
-		'Now you know the mans name is Zoykov, he lunges at Edward tackling him and they both go down. You move over next to Valentin and check on him. "You ok?" You ask him.'
-		'He winces a bit but nods, "Yeah thanks." you check him out and he doesn''t seem to be badly injured, just bruised and a bit bloody. Anushka and Alyona also come over to check on Valentin, who doesn''t seem to mind all the attention he is getting from three girls as he even smiles. "I''m fine girls, it''s nothing." He says trying to act all tough.'
+		'Zoykov lunges at Edward and they both go down as you move over to Valentin and check on him. "You okay?" you ask.'
+		'He winces a bit, but nods. You check him out and he doesn''t seem to be badly injured, just bruised and a bit bloody. Anushka and Alyona also come over to check on him and he doesn''t seem to mind all the attention he''s getting. "I''m fine, girls. It''s nothing," he smiles, trying to act tough.'
 		*nl
-		'You glance over as the two men are trading a few blows but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him over and over, until Zoykov gives up fighting back and just start trying to defend himself. Once Edward is sure the fight is over he gets off Zoykov and looks around at the as he put it you kids and glares again at Zoykov. "You touch one of these kids again and I will beat you within a inch of your life."'
-		'He glances over at Anushka who is next to Valentin checking his injuries before looking back at Zoykov again who is still on the ground. "You fucking touch my daughter again and I swear to you, they will never find your body, we clear?" When Zoykov doesn''t respond at once Edward repeats. "I said are we clear?"'
-		'Zoykov sits up. "Yeah... yeah..."'
+		'You glance over as the two men trade a few blows, but it doesn''t take long for Zoykov to end up pinned to the ground with Edward hitting him until he gives up fighting back. Once Edward is sure the fight is over, he gets off Zoykov and looks around at you and glares again at Zoykov. "You touch one of these kids again and I''ll beat you within an inch of your sorry life."'
+		'He glances over at Anushka, who is checking on Valentin''s injuries before looking back at Zoykov again. "If you ever so much as look at my daughter again, I swear they''ll never find your body. We clear?" When Zoykov doesn''t respond, Edward repeats himself. "I said ''are we clear''?"'
+		'Zoykov looks up from where he lays. "Yeah... Yeah..."'
 		act 'Aftermath':
 			*clr & cla
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/ed_zoykov3.jpg"></center>'
-			'While Zoykov stays laying on the ground, Edwards looks back over at Anushka and Alyona as he says. "Alyona''s going to have a sleep over with Nush tonight." Then looks back to Zoykov. "Got it?"'
-			'Zoykov clenches his jaws but nods. "Yeah, what ever." He gets up and gives a glare at Alyona, apparently blaming her for all this, then walks off muttering to himself and rubbing his jaw.'
+			'While Zoykov stays laying on the ground, Edward looks back over at Anushka and Alyona. "Alyona''s going to have a sleepover with Nush tonight. Got it?"'
+			'Zoykov clenches his jaw, but nods. "Yeah, whatever." He gets up and glares at Alyona, apparently blaming her for all this before he walks away muttering to himself and rubbing his jaw.'
+			'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin. Once he seems to be sure Valentin isn''t injured badly, he helps him up.'
 			*nl
-			'Edward first checks on Anushka, then Alyona and yourself before he finally checks on Valentin who he spends the most time with, once he seems to be sure Valentin isn''t injured badly he helps Valentin up. Edward has bloodied knuckles and a few bruises but Zoykov came off far worse.'
-			'"Alright lets go." His tone is hard and angry but you can tell he isn''t angry at any of you, after a moment he forces a smile to his face and his tone lightens a bit, he is obviously trying to not come off as scary to you, but really that ship has sailed. "Come on." As you all start to walk off together Anushka has her arm wrapped around Alyona protectively. You all walk back to his garage where he turns off the lights and locks the garage.'
-			*nl
-			'Next the five of you walk towards the apartments. The only one talking is Edward who is talking to Valentin, telling him what a good job he did and stuff like that. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. First he walks you to his building, stopping at the door. "Ok you girls go on up to your room, I''ll be back shortly." He says to Anushka, who gives him a grateful smile. "Ok dad." Edward, Valentin, and you walk to your building next. "Ok it''s getting late, you should get home." Edward says to you, he won''t take no for a answer, so you go inside giving him a friendly smile. Once inside your building you give it a moment and then open the door to peek out, you see Edward walking with Valentin with his arm over the younger man''s shoulder. You let the door close after a moment, Edward is likely right, you probably should go home.'
+			'"Alright, let''s go." His tone is hard and angry, but you can tell he isn''t angry at any of you. After a moment, he forces a smile to his face. Anushka has her arm wrapped around Alyona protectively as you all walk back to his garage, where he turns off the lights and locks the door.'
+			'The five of you walk towards the apartments as Edward talks to Valentin, telling him what a good job he did. You can see Valentin react to this and straighten his shoulders and even smile at the compliments. He first walks you to his building, stopping at the door. "Okay, you girls go on up to your room. I''ll be back shortly," he says to Anushka, who gives him a grateful smile.'
+			'Edward and Valentin then walk you to your building next. "You should get home," Edward tells you and won''t take no for a answer, so you head inside after giving him a friendly smile. Once inside, you give it a moment and open the door, peeking out to see Edward walking with his arm over Valentin''s shoulder. You let the door close after a moment.'
 			act 'Let the door close': gt 'pod_ezd', 'etaj_1'
 		end
 	end
@@ -416,25 +427,24 @@ if $ARGS[0] = 'lav_baddrugs':
 	menu_off = 0
 	*clr & cla
 	'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/hangout4.jpg"></center>'
-	'Everyone is scattered around the garage, enjoying themselves as they drink and hangout. The atmosphere is relaxed and easy going until an exchange between Lavrenti and Arkadi catches your interest. You see that Lavrenti is leaning back in his seat, a bored and disinterested look on his face despite Arkadi is glaring as he looms over him.'
-	'"These were shit," Arkadi hisses before forcefully throwing a small baggie of white pills at Lavrenti''s chest. Unflinching, the other gopnik takes a moment to examine the drugs before scoffing.'
+	'Everyone is scattered around the garage, enjoying themselves as they drink and hang out. The atmosphere is relaxed and easy going until an exchange between Lavrenti and Arkadi catches your interest. You see that Lavrenti is leaning back in his seat, a bored and disinterested look on his face despite Arkadi glaring as he looms over him.'
+	'"These were shit!" Arkadi hisses before forcefully throwing a small baggy of white pills at Lavrenti''s chest. Unflinching, the other gopnik takes a moment to examine the drugs before scoffing. "You say they didn''t work, but there''s only two left out of the ten I gave you!" Lavrenti says, his lips curling into an arrogant smirk. "Right. They ''didn''t work''."'
 	*nl
-	'"You say they didn''t work but there''s only two left out of the ten I gave you," Lavrenti says, his lips curling into an arrogant smirk. "Yeah, right they didn''t work."'
-	'For a moment you think Lavrenti is going to toss the drugs back at Arkadi. Instead the baggy is thrown just past him and onto the table behind them, but you don''t think it would have made a difference where it was thrown as you watch Arkadi''s jaw clench and his shoulders tense like he''s about to pounce.'
-	'"That''s ''cus me and this chick ended up eating that shit like candy when nothing was happening. You gave me duds and she ended up leaving before we could do anything! You owe me some better shit."'
+	'For a moment, you think Lavrenti is going to toss the drugs back at Arkadi. Instead the baggy is thrown past him and onto the table behind them, but you don''t think it would have made a difference where it was thrown as you watch Arkadi''s jaw clench and his shoulders tense like he''s about to pounce.'
+	'"That''s ''cuz me and this chick ended up eating that shit like candy when nothing was happening! You gave me duds and she ended up leaving before we could do anything! You owe me some better shit!"'
 	*nl
 	'With a loud sigh, Lavrenti rolls his eyes. "Listen, it ain''t my fault you didn''t get laid," he tells him. "Stop taking so many drugs and, I don''t know, maybe you and the junkie whores you fuck could get high off the normal shit like everyone else?" he asks sarcastically.'
 	'In an instant, Arkadi snatches Lavrenti off the couch by the front of his shirt. "What the fuck did you say?" he spits back as he holds him inches away from his face. "You callin'' me a fucking junkie?!"'
-	'"Get the fuck off me!" Lavrenti snaps as he pushes the other away. "Stop acting so fucking entitled when I gave you that shit for free!" All eyes are on the two of them. You look around the room to see Valentin already standing, ready to break things up if it gets too bad.'
+	'"Get the fuck off me!" Lavrenti snaps as he pushes Arkadi away. "Stop acting so fucking entitled when I gave you that shit for free!" All eyes are on the two of them. You look around the room to see Valentin already standing, ready to break things up if it gets too bad.'
 	act 'Say nothing':
 		*clr & cla
 		'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfight1.jpg"></center>'
-		'You watch in silence as things quickly go from bad to worse. Realizing a fight is about to break out, you move out of the way to avoid getting hurt, but Anushka isn''t so lucky as Arkadi tries to slam Lavrenti to the ground only to send him crashing into her instead and both of them go down into a heap.'
-		'"What the FUCK!" Anushka clutches at her chest as she tries to get out from under Lavrenti. Lavrenti instantly realizes what has happened and gives up on trying to fight. Arkadi on the other hand seems to hesitate, seeing Anushka on the floor.'
+		'You watch in silence as things quickly go from bad to worse. Realizing a fight is about to break out, you move out of the way to avoid getting hurt, but Anushka isn''t so lucky as Arkadi tries to slam Lavrenti to the ground, only to send him crashing into her instead and both of them go down into a heap.'
+		'"What the FUCK?!" Anushka clutches at her chest as she tries to get out from under Lavrenti. Lavrenti instantly realizes what has happened and gives up on trying to fight. Arkadi, on the other hand, seems to hesitate after seeing Anushka on the floor.'
 		*nl
-		'Lavrenti quickly gets off Anushka as he says. "Shit, Nush, are you--" before he can finish Radomir cuts him off.'
+		'Lavrenti quickly gets off Anushka. "Shit! Nush, are you--" Before he can finish, Radomir cuts him off.'
 		'"Get out!" he barks as he rushes over to Anushka''s side. "Both of you get the fuck out!"'
-		'Valentin ushers everyone out including you, he won''t take no for a answer. "Come on lets go parties over." Once outside he takes Lavrenti and Arkadi off, you presume to work things out, having no choice you leave.' 
+		'Valentin ushers everyone out, including you. "Come on, let''s go. The party''s over." Once outside, he takes Lavrenti and Arkadi aside as you leave.' 
 		act 'Leave': gt 'pav_complex', 'garages'
 	end
 	act 'Defend Lavrenti':
@@ -442,20 +452,25 @@ if $ARGS[0] = 'lav_baddrugs':
 		gs 'npc_relationship', 'modify', 'A155', 'like'
 		gs 'npc_relationship', 'modify', 'A156', 'dislike'
 		'<center><img src="images/characters/shared/headshots_main/big155.jpg"></center>'
-		'"Lavrenti has a point," You say while moving to stand beside him. "It''s not like you pay him for the stuff."'
-		'Arkadi glances between him and you before breaking out into a grin. "Are you fucking kidding me? You need a girl to defend your sorry ass?!" Arkadi says with a snorted laugh of amusement.'
-		'"Beggars can''t be choosers, so he doesn''t owe you anything." You tell Arkadi'
+		'"Lavrenti has a point," you say while moving to stand beside him. "It''s not like you pay him for the stuff."'
+		'Arkadi glances between him and you before breaking out into a grin. "Are you fucking kidding me? You need a girl to defend your sorry ass?!" he says with a snorted laugh of amusement.'
+		'"Beggars can''t be choosers. He doesn''t owe you anything," you reply.'
 		*nl
 		if gopnikbandQW['niko_present'] = 1 and NikoVolkovQW >= 5:
-			'Arkadi''s amusement comes to an abrupt end. The way he composes himself so suddenly actually has you frightened. All it takes is one step for him to close the little bit of distance that was between the two of you. "Watch your mouth bitch." Arkadi cocks his head slightly to look beside you where Lavrenti was standing, but he''s not there. Instead, he''s found his way over to Radomir, Valentin and Anushka, who are all watching but waiting to see what you do.'			
+			'Arkadi''s amusement comes to an abrupt end. The way he composes himself so suddenly actually has you frightened. All it takes is one step for him to close the little bit of distance that was between the two of you. "Watch your mouth, bitch."' 
+			'He cocks his head slightly to look beside you where Lavrenti was standing, but he''s not there. Instead, he''s found his way over to Radomir, Valentin and Anushka, who are all watching but waiting to see what you do.'			
 			act 'Back down':
 				*clr & cla
-				'<center><b><h4><font color=#E400FF><<"Nikolai [Niko] Volkov">></font></h4></b></center>'
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/niko/nikoev/smile2.jpg"></center>'
-				'You begin lowering your head, as you feel an arm wrapped around your shoulders. You turn to see Niko with a smile on his face, as he says to Arkadi, "Hey man, chill. You''re not about to attack a girl right? You have thicker skin than that." Arkadi continues his deathly stare, as he says, "I''m not letting this little bitch talk shit to me." Niko chuckles, as he says, "Nah, she is pulling your leg man. Chill out, and have a beer. We''re here to party aren''t we?" Arkadi looks to you, then back at Niko, before saying, "Keep your little bitch on a leash Niko, or she will find out what happens when you poke a bear."'
+				'You begin lowering your head when you feel an arm wrap around your shoulders. You turn to see Niko with a smile on his face. "Hey man, chill. You''re not about to attack a girl, right? You have thicker skin than that."' 
+				'Arkadi continues his deathly stare. "I''m not letting this little bitch talk shit to me!"' 
+				'Niko chuckles. "She''s just pulling your leg, man. Chill out and have a beer. We''re here to party, aren''t we?"'
+				'Arkadi looks to you, then back at Niko. "Keep your little bitch on a leash Niko, or she''ll find out what happens when you poke a bear."'
 				*nl
-				'Niko nods then guides you out of the garage. When you reach the outside, Niko gives you a kiss on your cheek, before saying, "Careful with that one. He may be all brawn and no brains, but a bull is always dangerous." So grateful for Niko standing up for you, you wrap your arms around his waist, and say, "Thank you Niko. I always feel so safe with you." Niko gently rubs the side of his head against yours, as he responds, "And you always will be, because you''re my girl, and I''ll always look out for you. Now get yourself something to drink. I need to head back home. Yurik needs a hand with something, and I promised to help out."'
-				'Niko hands you 200 ruble, then gently rubs on your back, before releasing you, and walking away.'
+				'Niko nods before guiding you out of the garage. When outside, he gives you a kiss on the cheek. "Careful with that one. He may be all brawn and no brains, but a bull is always dangerous."'
+				'Grateful for Niko standing up for you, you wrap your arms around his waist. "Thank you Niko. I always feel so safe with you."'
+				'Niko gently rubs the side of his head against yours. "And you always will be, because you''re my girl, and I''ll always look out for you. Now get yourself something to drink. I need to head back home. Yurik needs a hand with something, and I promised to help out."'
+				'He hands you 200 rubles, then gently rubs your back before releasing you and walking away.'
 				act 'Leave': money += 200 & gt 'pav_complex', 'garages'
 			end
 			gs 'willpower', 'action', 'resist', 'medium'
@@ -464,24 +479,29 @@ if $ARGS[0] = 'lav_baddrugs':
 					*clr & cla
 					gs 'willpower', 'pay', 'resist'
 					gs 'stat'
-					'<center><b><h4><font color=#E400FF><<"Nikolai [Niko] Volkov">></font></h4></b></center>'
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/niko/nikoev/smile2.jpg"></center>'
-					'You return his deathly stare with a stare of your own, when you suddenly feel an arm wrapped around your shoulders. You turn to see Niko with a smile on his face, as he says to Arkadi, "Hey man, chill. You''re not about to attack a girl right? You have thicker skin than that." Arkadi continues his deathly stare, as he says, "I''m not letting this little bitch talk shit to me." Niko chuckles, as he says, "Nah, she is pulling your leg man. Chill out, and have a beer. We''re here to party aren''t we?" Arkadi looks to you, then back at Niko, before saying, "Keep your little bitch on a leash Niko, or she will find out what happens when you poke a bear."'
+					'You return his deathly stare with a stare of your own when you suddenly feel an arm wrap around your shoulders. You turn to see Niko with a smile on his face. "Hey man, chill. You''re not about to attack a girl, right? You have thicker skin than that."' 
+					'Arkadi continues his deathly stare. "I''m not letting this little bitch talk shit to me!"'
+					'Niko chuckles. "She''s just pulling your leg, man. Chill out and have a beer. We''re here to party, aren''t we?"'
+					'Arkadi looks to you, then back at Niko. "Keep your little bitch on a leash Niko, or she''ll find out what happens when you poke a bear."'
 					*nl
-					'Niko nods then guides you out of the garage. When you reach the outside, Niko gives you a kiss on your cheek, before saying, "Careful with that one. He may be all brawn and no brains, but a bull is always dangerous." So grateful for Niko standing up for you, you wrap your arms around his waist, and say, "Thank you Niko. I always feel so safe with you." Niko gently rubs the side of his head against yours, as he responds, "And you always will be, because you''re my girl, and I''ll always look out for you. Now get yourself something to drink. I need to head back home. Yurik needs a hand with something, and I promised to help out."'
-					'Niko hands you 200 ruble, then gently rubs on your back, before releasing you, and walking away.'
+					'Niko nods before guiding you out of the garage. When outside, he gives you a kiss on the cheek. "Careful with that one. He may be all brawn and no brains, but a bull is always dangerous."'
+					'Grateful for Niko standing up for you, you wrap your arms around his waist. "Thank you Niko. I always feel so safe with you."'
+					'Niko gently rubs the side of his head against yours. "And you always will be, because you''re my girl, and I''ll always look out for you. Now get yourself something to drink. I need to head back home. Yurik needs a hand with something, and I promised to help out."'
+					'He hands you 200 rubles, then gently rubs your back before releasing you and walking away.'
 					act 'Leave': money += 200 & gt 'pav_complex', 'garages'
 				end
 			else
 				act 'Stand your ground (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 			end	
 		else
-			'Arkadi''s amusement comes to an abrupt end. The way he composes himself so suddenly actually has you frightened. All it takes is one step for him to close the little bit of distance that was between the two of you. "Watch your mouth bitch." Arkadi cocks his head slightly to look beside you where Lavrenti was standing, but he''s not there. Instead, he''s found his way over to Radomir, Valentin and Anushka, who are all watching but waiting to see what you do.'
+			'Arkadi''s amusement comes to an abrupt end. The way he composes himself so suddenly actually has you frightened. All it takes is one step for him to close the little bit of distance that was between the two of you. "Watch your mouth, bitch."'
+			'He cocks his head slightly to look beside you where Lavrenti was standing, but he''s not there. Instead, he''s found his way over to Radomir, Valentin and Anushka, who are all watching but waiting to see what you do.'
 			act 'Back down':
 				*clr & cla
 				'<center><img src="images/pc/reactions/frightened.jpg"></center>'
-				'"No... nevermind," You quietly reply. Arkadi''s lips curl into a scowl. He looks disappointed that you didn''t stand your ground.'
-				'"That''s what I thought." He shoulders you out of his way as he heads towards Lavrenti. The conversation isn''t as heated now that Radomir and Valentin are there to talk them down. In the end, Lavrenti pulls out another baggy of pills and hands it over to a smiling Arkadi. You guess things have been settled between them. Not long after the hangout is over and everyone heads out, going their own ways.'
+				'You quietly back down and Arkadi''s lips curl into a scowl. "That''s what I thought."' 
+				'He seems disappointed that you didn''t stand your ground as he shoulders you out of his way and heads towards Lavrenti, but the conversation isn''t as heated now that Radomir and Valentin are there to talk them down. In the end, Lavrenti pulls out another baggy of pills and hands it over to a smiling Arkadi. Not long after, the hangout is over and everyone heads out, going their own ways.'
 				act 'Leave': gt 'pav_complex', 'garages'
 			end
 			gs 'willpower', 'action', 'self', 'medium'
@@ -492,10 +512,10 @@ if $ARGS[0] = 'lav_baddrugs':
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
 					'<center><img src="images/pc/reactions/glare.jpg"></center>'
-					'You don''t back down from him as you say. "Be pissed at him or me, it doesn''t change the facts."'
-					'"You got a smart mouth on you bitch. Best keep it in check before someone smacks the shit out of you." Arkadi says as he crowds you a little more, you think for a moment he might actually hit you.'
+					'You don''t back down from him. "Be pissed at him or me, it doesn''t change the facts."'
+					'"You got a smart mouth on you, bitch. Best keep it in check before someone smacks the shit out of you!" Arkadi says as he crowds you a little more. You think he might actually hit you.'
 					*nl
-					'Before you can respond, you hear Anushka bark out. "Arkadi!" He looks past you a moment then glares at you and walks past you, bumping his shoulder into you, causing you to stumble a step as he heads towards Lavrenti. The conversation isn''t as heated now that Radomir and Valentin are there to talk them down. In the end, Lavrenti pulls out another baggy of pills and hands it over to a smiling Arkadi. You guess things have been settled between them. Not long after the hangout is over and everyone heads out, going their own ways.'
+					'Before you can respond, you hear Anushka bark out Arkadi''s name. He glares at you and walks past you, bumping his shoulder into you and causing you to stumble a step as he heads towards Lavrenti. The conversation isn''t as heated now that Radomir and Valentin are there to talk them down. In the end, Lavrenti pulls out another baggy of pills and hands it over to a smiling Arkadi. Not long after, the hangout is over and everyone heads out, going their own ways.'
 					act 'Leave': gt 'pav_complex', 'garages'
 				end
 			else
@@ -508,13 +528,13 @@ if $ARGS[0] = 'lav_baddrugs':
 		gs 'npc_relationship', 'modify', 'A155', 'dislike'
 		gs 'npc_relationship', 'modify', 'A156', 'like'
 		'<center><img src="images/characters/shared/headshots_main/big156.jpg"></center>'
-		'"Just admit you fucked up," You sigh as you stand beside Arkadi. Lavrenti is surprised you''re speaking up, but Arkadi is more than happy to see you on his side.'
-		'"Haha! You see, Lavrenti?" Arkadi wraps an arm around your shoulder and pulls you close, hugging you from behind. You could mistake it as being affectionate, but you know he''s just trying to rub it in. "Stop bitching and whining, you got mommy and daddy''s money to buy some more. Just give me the right stuff and I''ll forget you wasting my fucking time!"'
+		'"Just admit you fucked up!" you say as you stand beside Arkadi. Lavrenti is surprised you''re speaking up, but Arkadi is more than happy to see you on his side.'
+		'"Haha! You see, Lavrenti?" Arkadi wraps an arm around your shoulder and pulls you close, hugging you from behind. You could mistake it as being affectionate, but you know he''s just trying to rub it in. "Stop bitching. You''ve got mommy and daddy''s money to buy some more, so just give me the right stuff and I''ll forget you wasted my fucking time!"'
 		*nl
 		'"Just give him some more, Lavrenti!" Radomir chimes in from his spot near the stage.'
 		'Anushka shakes her head. "It''s not worth pissing him off, dude."'
 		'Suddenly being put on the spot, Lavrenti reluctantly gives in. "Fine, fuck it." He reaches into his pocket and pulls out a new bag. "I hope you overdose on it!"'
-		'With a smirk and a wave, Arkadi watches Lavrenti storm off. "Thanks, <<$pcs_nickname>>," he says as he lets you go but not before giving your ass a light squeeze as you walk away.'
+		'With a smirk and a wave, Arkadi watches Lavrenti storm off. "Thanks <<$pcs_nickname>>," he says as he lets you go, but not before giving your ass a light squeeze as you walk away.'
 		act 'Leave': gt 'pav_complex', 'garages'
 	end
 	gs 'willpower', 'action', 'self', 'medium'
@@ -529,24 +549,21 @@ if $ARGS[0] = 'lav_baddrugs':
 			gs 'willpower', 'pay', 'self'
 			gs 'stat'
 			'<center><img src="images/locations/pavlovsk/resident/apartment/garage/band/event/rfight3.jpg"></center>'
-			'"This is a stupid thing to fight over," You gently interrupt. "Aren''t you guys friends?"'
+			'"This is such a stupid thing to fight over," you gently interrupt. "Aren''t you guys friends?"'
 			'"Friends?!" Arkadi balks before throwing his head back and laughing. "That''s fucking hilarious! We''re not his friends, we keep him around for the money and drugs. Just ask Rad!"'
-			'You look to Radomir, but he simply shrugs his shoulders and throws his hands up dismissively.'
-			'"Fuck you!" Seeing the other boy distracted, Lavrenti swings at him and lands a sucker punch that sends Arkadi stumbling back. Without hesitation, Arkadi slams into Lavrenti, sending them both crashing onto the ground in a tangled mess, both exchanging blows evenly. Lavrenti puts up a good fight but it''s not enough and eventually Arkadi wrestles him into a headlock, much to the enjoyment of everyone.'
+			'You look at Radomir, but he simply shrugs his shoulders and throws his hands up dismissively.'
+			'"Fuck you!" Seeing the other boy distracted, Lavrenti swings at him and lands a sucker punch that sends Arkadi stumbling back. Without hesitation, Arkadi slams into Lavrenti, sending them both crashing onto the ground in a tangled mess. Lavrenti puts up a good fight, but it''s not enough and eventually Arkadi wrestles him into a headlock, much to the enjoyment of everyone.'
 			*nl
 			if gopnikbandQW['niko_present'] = 1:
-				'After what seems like, an eternity; they both become too fatigued to continue fighting, leaning against the wall. As they do Anushka chirps up, "So you girls done wrestling together? I think I seen you both coping a feel." Both the boys in perfect unison; "Fuck you Nush.", along with other obscenities, but with the sounds of the others laughing, you can barely make out what they are saying, though the middle fingers that both boys are flipping at Anushka, leaves no doubt to their feelings on her comment. They both sit back down for a few seconds, until Niko helps up Lavrenti, as the others help up Arkadi. Before too long, everyone seems relaxed, and begin hanging out, as if nothing happened.' 
-				*nl
-				'You can''t help notice by the end of the gathering, that Arkadi and Lavrenti seem to be chatting, and joking, as if they never fought in the first place...'
-				act 'Reflect on what just happened':
-					*clr & cla
-					'<center><b><h4><font color=#FF00FF><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-					*pl '<center><img <<$set_imgh>> src="<<FUNC(''$face_image'')>>"></center>'
-					'So weirded out by what just happened, you can''t help but ponder to yourself, "'+$OpenInnerThought+'What the hell just happened? They were just at each other''s throats, fighting, and now they are hanging out like nothing happened... I will never understand these boys.'+$CloseInnerThought+'" After a few more minutes, of hanging out, everyone begins to wrap things up and leave, as you are ushered out, as well while the band begins locking up the garage. Once outside, everyone seems to go off in small groups or alone, as you leave alone.'
-					act 'Leave': gt 'pav_complex', 'garages'
-				end
+				'After what seems like an eternity; they both become too tired to continue fighting, leaning against the wall. As they do, Anushka chirps up. "You girls done wrestling together? I think I seen you both copping a feel."'
+				'"Fuck you, Nush!" they both reply in unison, along with other obscenities, but with the sounds of the others laughing, you can barely make out what they''re saying. They both sit back down for a few seconds until Niko helps Lavrenti up as the others help Arkadi. Before too long, everyone seems relaxed and hanging out again, as if nothing happened.' 
+				'You notice by the end of the gathering that Arkadi and Lavrenti seem to be chatting and joking, as if they never fought in the first place.'
+				'After a few more minutes, everyone starts wrapping things up and leaving. You''re ushered out while the band begins locking up the garage. Once outside, everyone seems to go off in small groups as you leave alone.'
+				act 'Leave': gt 'pav_complex', 'garages'
 			else
-				'Finally what seems like forever they both get tired and stop. As they do Anushka chirps up, "So you girls done wrestling together? I think I seen you both coping a feel." Both the boys respond at once with fuck you Nush and the like, so much so you can''t really makeout what they are saying over everyone else laughing, though the middle fingers flipped at her from both of them leaves no doubt their feelings on the comment. They both sit back down and a bit more time passes and before long everyone is relaxed and just hanging out. You can''t help notice by the end Arkadi and Lavrenti seems to be talking and acting like nothing happened... boys, you will never fully understand them. Eventually everyone starts to leave and you are ushered out so they can lock the garage up, once outside everyone goes off in small groups or alone.'
+				'After what seems like an eternity, they both get tired and stop. As they do, Anushka chirps up. "You girls done wrestling together? I think I seen you both copping a feel."'
+				'"Fuck you, Nush!" they both reply in unison, along with other obscenities, but with the sounds of the others laughing, you can barely make out what they''re saying. They both sit back down and before long, everyone is relaxed and hanging out again. You notice by the end that Arkadi and Lavrenti seem to be talking and acting like nothing happened.'
+				'Eventually, everyone starts leaving and you''re ushered out so they can lock the garage up. Once outside, everyone goes off in small groups or alone.'
 				act 'Leave': gt 'pav_complex', 'garages'
 			end
 		end

+ 15 - 12
locations/praiders_garageev1.qsrc

@@ -5,14 +5,14 @@ if $ARGS[0] = 'radsex':
 	*clr & cla
 	gs 'fame', 'pav', 'sex', 3
 	'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice1.jpg"></center>'
-	'Once the two of you are alone, he turns the radio back on and sits on an up turned box next to the radio. "Come on, give me a little show."'
+	'Once the two of you are alone, he turns the radio back on and sits on an up turned box next to it. "Come on, give me a little show."'
 	'You dance around and start slowly stripping for him as he quickly pulls out his semi erect cock. "Come over here and wrap those beautiful lips around my dick."'
 	gs 'arousal', 'foreplay', 2
 	gs 'stat'
 	act 'Blow him':
 		*clr & cla
 		'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice2.jpg"></center>'
-		'You dance your way over to him before dropping down to your knees. You take his dick into your mouth, wrapping your lips tightly around it, and start sucking him. You feel his dick quickly get hard in your mouth as you bob your head up and down. "Oh yeah, that''s it. You''ve got skills girl."'
+		'You dance your way over to him before dropping down to your knees. You take his dick into your mouth, wrapping your lips tightly around it, and start sucking him. You feel his dick quickly get hard in your mouth as you bob your head up and down. "Oh yeah, that''s it! You''ve got skills, girl."'
 		gs 'arousal', 'bj', 3
 		gs 'stat'
 		act 'Keep sucking him':
@@ -26,13 +26,13 @@ if $ARGS[0] = 'radsex':
 					*clr & cla
 					gs 'boyStat', 'A154'
 					'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice4.jpg"></center>'
-					'You just nod and he pulls you up and quickly strips you from the waist down. He then turns you around and pulls you into his lap. You feel his <<dick>>cm <<$dick_girth>> dick slide inside your wet pussy.'
+					'You just nod and he pulls you up and quickly strips you from the waist down. He then turns you around and pulls you into his lap before you feel his <<dick>>cm <<$dick_girth>> dick slide inside your wet pussy.'
 					gs 'arousal', 'vaginal', 3
 					gs 'stat'
 					act 'Get fucked':
 						*clr & cla
 						'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice5.jpg"></center>'
-						'He reaches up to play with your tits as you bounce on his lap, thrusting yourself on and off his cock. "Damn, your pussy''s so fucking tight! I can feel my cock stretching it out. Don''t worry, you''ll get use to it soon enough."'
+						'He reaches up to play with your breasts as you bounce on his lap, thrusting yourself on and off his cock. "Damn, your pussy''s so fucking tight! I can feel my cock stretching it out. Don''t worry, you''ll get use to it soon enough."'
 						gs 'arousal', 'vaginal', 3
 						gs 'stat'
 						act 'Get butt fucked':
@@ -40,8 +40,8 @@ if $ARGS[0] = 'radsex':
 							'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice7.jpg"></center>'
 							if mc_inventory['lubricant'] > 0:
 								gs 'arousal', 'auto_lube', 'anal', 'custom'
-								'He suddenly stands up, pulling you up with him. He turns and lowers you to the ground until you''re on your hands and knees. Instead of going back into your pussy, you feel the head of his dick pressing against your asshole. You reach over and quickly grab your purse, pulling out the lube and handing it back to him. "Use this lube first."'
-								'He growls. "Fuck, what is it with you girls and lube? You''re as bad as Anushka." He begrudingly grabs the lube and squirts some on your anus before roughly shoving his dick up your ass. He doesn''t give you time to catch your breath before he starts fucking your ass hard and fast, causing you to groan in pain.'
+								'He suddenly stands up, pulling you up with him before he turns and lowers you to the ground on your hands and knees. Instead of going back into your pussy, you feel the head of his dick pressing against your asshole. You reach over and quickly grab your purse, pulling out the lube and handing it back to him. "Use this lube first."'
+								'He growls. "Fuck, what is it with you girls and lube? You''re as bad as Nush!" He begrudingly grabs the lube and squirts some on your anus before roughly shoving his dick up your ass. He doesn''t give you time to catch your breath before he starts fucking your ass hard and fast, causing you to groan in pain.'
 							else
 								'He suddenly stands up, pulling you up with him. He turns and lowers you to the ground until you''re on your hands and knees. Instead of going back into your pussy, you feel the head of his dick pressing against your asshole. Before you can say anything, he roughly shoves his dick up your ass, not stopping to give you time to catch your breath before he starts fucking your ass hard and fast, causing you to groan in pain.'
 							end
@@ -57,12 +57,13 @@ if $ARGS[0] = 'radsex':
 								act 'Climax':
 									*clr & cla
 									'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice9.jpg"></center>'
-									'You grit your teeth. A part of you is enjoying it, but it would be a lot more enjoyable if he wasn''t so rough. Just as you think it might be getting too much for you, he groans loudly and you feel him filling your ass up with his cum. Once he finishes, he stands up and tucks his dick away before walking over and grabbing a beer while you get dressed. He downs the whole beer before you finish getting dressed. "Come on, let''s go. I need to lock this place up." As soon as you finish getting dressed, he ushers you out of the garage and locks it. He turns and gives you a kiss on the lips. "I had a great time, catch you later."'
+									'You grit your teeth. A part of you is enjoying it, but it would be a lot more enjoyable if he wasn''t so rough. Just as you think it might be getting too much for you, he groans loudly and you feel him filling your ass up with his cum. Once he finishes, he stands up and tucks his dick away before walking over and grabbing a beer while you get dressed. He downs the whole beer before you finish getting dressed. "Come on, let''s go. I need to lock this place up."'
+									'As soon as you finish getting dressed, he ushers you out of the garage and locks it before he turns and gives you a kiss on the lips. "I had a great time. Catch you later."'
 									gs 'arousal', 'anal', 3
 									gs 'cum_call', 'anus', 'A154', 1
 									gs 'arousal', 'end'
 									gs 'stat'
-									act 'Leave':gt 'pav_complex', 'garages'
+									act 'Leave': gt 'pav_complex', 'garages'
 								end
 							end
 						end
@@ -76,7 +77,7 @@ if $ARGS[0] = 'radsex':
 					if mc_inventory['lubricant'] > 0:
 						gs 'arousal', 'auto_lube', 'anal', 'custom'
 						'He suddenly stands up, pulling you up with him. He turns and lowers you to the ground until you''re on your hands and knees. Instead of going back into your pussy, you feel the head of his dick pressing against your asshole. You reach over and quickly grab your purse, pulling out the lube and handing it back to him. "Use this lube first."'
-						'He growls. "Fuck, what is it with you girls and lube? You''re as bad as Anushka." He begrudingly grabs the lube and squirts some on your anus before roughly shoving his dick up your ass. He doesn''t give you time to catch your breath before he starts fucking your ass hard and fast, causing you to groan in pain.'
+						'He growls. "Fuck, what is it with you girls and lube? You''re as bad as Nush!" He begrudingly grabs the lube and squirts some on your anus before roughly shoving his dick up your ass. He doesn''t give you time to catch your breath before he starts fucking your ass hard and fast, causing you to groan in pain.'
 					else
 						'He suddenly stands up, pulling you up with him. He turns and lowers you to the ground until you''re on your hands and knees. Instead of going back into your pussy, you feel the head of his dick pressing against your asshole. Before you can say anything, he roughly shoves his dick up your ass, not stopping to give you time to catch your breath before he starts fucking your ass hard and fast, causing you to groan in pain.'
 					end
@@ -85,7 +86,8 @@ if $ARGS[0] = 'radsex':
 					act 'Get butt fucked':
 						*clr & cla
 						'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice7.jpg"></center>'
-						'He roughly fucks your ass hard and fast. "Fuck you have a tight little ass <<$pcs_nickname>>." Then he laughs. "Don''t worry, we will have it stretched out in no time." Then he pulls nearly all the way out and slams himself back in balls deep, hammering away at you.'
+						'He roughly fucks your ass hard and fast. "Fuck, you have a tight little ass, <<$pcs_nickname>>!" Then he laughs. "Don''t worry, we''ll have it stretched out in no time."'
+						'He then pulls nearly all the way out and slams himself back in balls deep, hammering away at you.'
 						gs 'arousal', 'anal', 3
 						gs 'stat'
 						act 'Not so rough':
@@ -98,12 +100,13 @@ if $ARGS[0] = 'radsex':
 							act 'Climax':
 								*clr & cla
 								'<center><img src="images/characters/pavlovsk/school/boy/radomir/sex/garage/practice9.jpg"></center>'
-								'You grit your teeth. A part of you is enjoying it, but it would be a lot more enjoyable if he wasn''t so rough. Just as you think it might be getting too much for you, he groans loudly and you feel him filling your ass up with his cum. Once he finishes, he stands up and tucks his dick away before walking over and grabbing a beer while you get dressed. He downs the whole beer before you finish getting dressed. "Come on, let''s go. I need to lock this place up." As soon as you finish getting dressed, he ushers you out of the garage and locks it. He turns and gives you a kiss on the lips. "I had a great time, catch you later."'
+								'You grit your teeth. A part of you is enjoying it, but it would be a lot more enjoyable if he wasn''t so rough. Just as you think it might be getting too much for you, he groans loudly and you feel him filling your ass up with his cum. Once he finishes, he stands up and tucks his dick away before walking over and grabbing a beer while you get dressed. He downs the whole beer before you finish getting dressed. "Come on, let''s go. I need to lock this place up."'
+								'As soon as you finish getting dressed, he ushers you out of the garage and locks it before he turns and gives you a kiss on the lips. "I had a great time. Catch you later."'
 								gs 'arousal', 'anal', 3
 								gs 'cum_call', 'anus', 'A154', 1
 								gs 'arousal', 'end'
 								gs 'stat'
-								act 'Leave':gt 'pav_complex', 'garages'
+								act 'Leave': gt 'pav_complex', 'garages'
 							end
 						end
 					end

+ 1 - 1
locations/pushkin.qsrc

@@ -28,7 +28,7 @@ end
 'Not far from here is the <a href="exec:minut += 5 & gt ''pushkin_sq''">Okhlopkov Square</a> with its boutique shops.'
 'Close by is a narrow street leading to a <a href="exec:gt ''dvor'',''start''">vacant house</a>.'
 'You can also see a <a href="exec:gt ''ugol'',''start''">passage</a> between the houses leading to a courtyard.'
-'Ahead you can see the road that leads to the Pushkin Ballet Theatre and it''s <a href="exec:gt ''pushkin_ballet_res'',''warden''">residential acccommodation</a>.'
+'Ahead you can see the road that leads to the Pushkin Ballet Theatre and it''s <a href="exec:gt ''pushkin_ballet_center'',''start''">residential acccommodation</a>.'
 if car > 0 and cardrive = 14:
 	'<a href="exec:gs ''carF'',''start''">Your <<$car>></a> is parked at the curb.'
 end

+ 128 - 51
locations/lug.qsrc → locations/pushkin_parks.qsrc

@@ -1,11 +1,85 @@
-# lug
-!!2021/04/15
+# pushkin_parks
+!!2021/05/12
+
 if $ARGS[0] = 'start':
-	$loc_arg = 'start'
-	$loc = 'lug'
+	*clr & cla
 	$location_type = 'public_outdoors'
-	$menu_loc = 'lug'
-	$menu_arg = 'start'
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'start'
+	$region = 'pushkin'
+	$locclass = 'city_park'
+	menu_off = 0
+	gs'stat'
+	'<center><B>Pushkin Town Park</B></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/parkus.jpg" ></center>'
+	'The gardens of the old palace have been sculpted over many years into a wonder landscape with a tranquil atmosphere.'
+	'The Pushkin Park is a must-see for tourists and servers as the main attraction of Pushkin.'
+
+	'Wander deeper into the <a href="exec:gt ''pushkin_parks'', ''lug''">park</a>.'
+
+
+	act 'Go to Okhlopkov Square (0:05)': minut += 5 & gt 'pushkin_sq'
+
+	act 'Go to Town Center (0:10)': minut += 10 & gt 'pushkin'
+
+	act 'Walk around the park (1 hour)':
+		if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1', 1
+		cla
+		minut += 60
+		pcs_mood += 10
+		gs'stat'
+		'You leisurely stroll through Pushkin Park, breathing in the fresh air, and reflecting on the vicissitudes of fate.'
+
+		act 'Complete outing.':gt 'pushkin_parks','start'
+	end
+
+	gs 'park_walkevents', 'run'
+
+	if hour >= 20 or hour < 6 :
+		if func('homes_properties', 'has_access', 'old_town_apartment') = 0 :
+			!nowhere to live in town
+			'It''s quite dark now, and you have no where to stay nearby. Maybe you should try to sleep on a bench?'
+		else
+			'It''s quite dark now, and you don''t feel like walking. Maybe you should try sleeping on a bench?'
+		end
+		act 'Sleep on a bench': gt'placer_sex','sleeping_park_bench'
+	end
+
+	act 'Sit down on the bench':gs 'placer_sex', 'sitting_park_bench'
+	
+	if mc_inventory['joints'] > 0 and drugVars['weed_high'] = 0: act 'Smoke a joint': minut += 10 & gs 'drugs', 'joint' & gt $loc, $loc_arg
+
+	if pcs_inhib >= 35 or exhibitionist_lvl > 0:
+		act 'Flash your tits':
+			menu_off = 1
+			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
+			*clr & cla
+			inhib_exp += rand(1,3)
+			gs 'flash', 'tits', 'outdoors', 5
+			gs 'stat'
+
+			act 'Continue': gt 'pushkin_parks', 'start'
+		end
+	end
+
+	if exhibitionist_lvl > 1:
+		act 'Flash your pussy':
+			menu_off = 1
+			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
+			*clr & cla
+			gs 'flash', 'pussy', 'outdoors', 5
+			gs 'stat'
+
+			act 'Continue': gt 'pushkin_parks', 'start'
+		end
+	end
+
+	gs 'blackmailer', 'set_park_act'
+end
+
+if $ARGS[0] = 'lug':
+	$location_type = 'public_outdoors'
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'lug'
+	$region = 'pushkin'
 	$locclass = 'city_park'
 	menu_off = 0
 	gs'stat'
@@ -16,16 +90,16 @@ if $ARGS[0] = 'start':
 	if streetrand >= 60 and pcs_lover < 3:
 		vnerand = RAND(0,300)
 		if vnerand <= pcs_apprnc:
-			gs'boy'
+			gs'boygirl', 0
 			'<<$REPLACE($boybody_pref, "a", "A")>>, <<$boybod>>, <<$boyface>> haired guy comes up to you. He is wearing <<$boyClo>>'
 			'The guy introduces himself as <<$boydesc>> and asks for your telephone number.'
 
 			act 'Tell him your number':
 				cla
-				gs'boyfrend', 'start'
+				gs 'boyfrend', 'start'
 				stopboy = 0
 				'<<$boydesc>> thanks you and leaves.'
-				act 'Complete outing':gt'lug', 'start'
+				act 'Complete outing': gt 'pushkin_parks', 'lug'
 			end
 		end
 
@@ -51,7 +125,7 @@ if $ARGS[0] = 'start':
 			gs 'flash', 'tits', 'outdoors', 5
 			gs 'stat'
 
-			act 'Continue': gt 'lug', 'start'
+			act 'Continue': gt 'pushkin_parks', 'lug'
 		end
 	end
 
@@ -62,18 +136,18 @@ if $ARGS[0] = 'start':
 			gs 'flash', 'pussy', 'outdoors', 5
 			gs 'stat'
 
-			act 'Continue': gt 'lug', 'start'
+			act 'Continue': gt 'pushkin_parks', 'lug'
 		end
 	end
 
 	act 'Visit the pond':
 		set minut += 10
-		gt 'lug', 'prut'
+		gt 'pushkin_parks', 'prut'
 	end
 
 	act 'Go toward the park entrance':
 		set minut += 5
-		gt 'parks', 'start'
+		gt 'pushkin_parks', 'start'
 	end
 	
 	gs 'events', 'street_cum'
@@ -81,45 +155,48 @@ end
 
 
 if $ARGS[0] = 'prut':
-    cls
-    gs'stat'
-    $location_type = 'public_outdoors'
+	cls
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'prut'
+	gs 'stat'
+	$location_type = 'public_outdoors'
 
-    '<center><B>Park Pond</B></center>'
-    '<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut.jpg" ></center>'
+	'<center><B>Park Pond</B></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut.jpg" ></center>'
 	'A large and pretty pond near the end of the park, it continues off in to a wooded area.'
 
 
-    act 'Explore the wooded area':
-        set minut += 10
-        gt 'lug', 'prut2'
-    end
+	act 'Explore the wooded area':
+		set minut += 10
+		gt 'pushkin_parks', 'prut2'
+	end
 
-    act 'Return to the small meadow':
-        set minut += 10
-        gt'lug', 'start'
-    end
+	act 'Return to the small meadow':
+		set minut += 10
+		gt'pushkin_parks', 'start'
+	end
 end
 
 if $ARGS[0] = 'prut2':
-    cls
-    gs'stat'
-    $location_type = 'public_outdoors'
+	cls
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'prut2'
+	$region = 'pushkin'
+	gs 'stat'
+	$location_type = 'public_outdoors'
 
-    '<center><B>Woodland Pond</B></center>'
-    '<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut2.jpg" ></center>'
+	'<center><B>Woodland Pond</B></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut2.jpg" ></center>'
 	'The pond is still and beautiful here and the trees offer some privacy, it feels quite magical.'
 	'There is a large field beyond that is hidden from the tourist trail.'
 
-    act 'Go to the field':
-        set minut += 15
-        gt 'lug', 'luzhayka'
-    end
+	act 'Go to the field':
+		set minut += 15
+		gt 'pushkin_parks', 'luzhayka'
+	end
 
-    act 'Follow the pond back out of the woods':
-        set minut += 10
-        gt 'lug', 'prut'
-    end
+	act 'Follow the pond back out of the woods':
+		set minut += 10
+		gt 'pushkin_parks', 'prut'
+	end
 
 	! Setup for teleport circle
 	if tpKnown['PushkinPark'] = 1:
@@ -140,8 +217,7 @@ if $ARGS[0] = 'prut2':
 	if temper >= 15 and month >= 5 and month <= 9 and hour >= 6 and hour <= 20:
 		if pcs_inhib > 30:
 			act 'Strip off and skinny dip (1:00)':
-				cla
-				*clr
+				*clr & cla
 				cumspclnt = 4
 				gs 'cum_cleanup'
 				minut += 60
@@ -156,7 +232,7 @@ if $ARGS[0] = 'prut2':
 					'Once you are naked you play around and have fun in the pond, enjoying the feel of the warm water on your body. The clean pond water refreshes and invigorates you.'
 				elseif pcs_inhib >= 60:
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/secluded_beach/dress/undressnudebeach.jpg"></center>'
-					'Not caring if anyone is looking at you, you slowly take off your clothes.  You peel off each item like a stripper. Soon, you are completely naked.'
+					'Not caring if anyone is looking at you, you slowly take off your clothes. You peel off each item like a stripper. Soon, you are completely naked.'
 					'You play around and have fun in the pond, enjoying the feel of the warm water on your naked body. The clean pond water refreshes and invigorates you.'
 				else
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/secluded_beach/dress/undressnudebeach.jpg"></center>'
@@ -166,7 +242,7 @@ if $ARGS[0] = 'prut2':
 				act'Get out and dressed':
 					gs 'underwear', 'wear'
 					gs 'clothing', 'wear_last_worn'
-					gt 'lug', 'prut2'
+					gt 'pushkin_parks', 'prut2'
 				end
 			end
 		else
@@ -176,17 +252,18 @@ if $ARGS[0] = 'prut2':
 end
 
 if $ARGS[0] = 'luzhayka':
-    cls
-    gs'stat'
+	cls
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'luzhayka'
+	gs'stat'
 
-    '<center><img <<$set_imgh>> src="images/locations/pushkin/park/luzhayka.jpg" ></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/luzhayka.jpg" ></center>'
 	'A quiet hidden field that is well maintained but apart from the occasional grounds keeper you feel like it is all yours.'
 
-    act 'Return to the woodland pond':
-        set minut += 15
-        gt 'lug', 'prut2'
-    end
+	act 'Return to the woodland pond':
+		set minut += 15
+		gt 'pushkin_parks', 'prut2'
+	end
 end
 
---- lug ---------------------------------
+--- pushkin_parks ---------------------------------
 

+ 4 - 4
locations/pushkin_sq.qsrc

@@ -13,7 +13,7 @@ gs'stat'
 'There are many small cafes and shops also a flourishing nightlife and entertainment activities.'
 
 'Another street runs straight back to the <a href="exec:minut += 5 & gt ''pushkin''">Pushkin Town Center</a>.'
-'Okhlopkov Square itself leads to the <a href="exec:minut += 5 & gt ''parks'',''start''">Pushkin Park</a>.'
+'Okhlopkov Square itself leads to the <a href="exec:minut += 5 & gt ''pushkin_parks'',''start''">Pushkin Park</a>.'
 if hour >= 8 and hour <= 20:
 	'A small <a href="exec:gt ''larek'',''start''">grocery store</a> is currently open.'
 else
@@ -73,8 +73,8 @@ if hour >= 8 and hour <= 17 and exhibitionQW = 3: act 'Search for the shop on th
 act 'Wait':gs 'obj_din', 'wait'
 
 if $home['current'] = 'old_town_apartment':
-	if vladimirday = daystart and vladimirQW = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''2''">There''s an Audi parked in front of your apartment, and standing beside it, you notice Vladimir</a>.'
-	if vladimirday = daystart and vladimirQW = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''3''">There''s an Audi parked in front of your apartment, and standing beside it, you notice Vladimir</a>.'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''2''">There''s an Audi parked in front of your apartment, and standing beside it, you notice Vladimir</a>.'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''3''">There''s an Audi parked in front of your apartment, and standing beside it, you notice Vladimir</a>.'
 
 	if hour = meethour[0]:
 		if svidanie[0] = 1:'<b><a href="exec:lover_number = 0 & gt ''lover_meet'', ''start''"><<$loverdesc[0]>></a> is waiting at the entrance to your apartment building.</b>'
@@ -92,7 +92,7 @@ if rand(0,50) = 50 and fame['event_day'] ! daystart and hour > 8 and hour < 21:
 end
 
 if rand(0,100) >= 60 and pcs_lover < 3 and rand(0,1200) <= pcs_apprnc:
-	gs 'boy'
+	gs 'boygirl', 0
 	'You are approached by <<$boybody_pref>>, <<$boybod>> guy with <<$boyface>> hair. He is <<$boyClo>>'
 	'The guy introduced himself as <<$boydesc>> and asks you for your telephone number.'
 

+ 1 - 1
locations/qwBarEncounters.qsrc

@@ -419,7 +419,7 @@ end
 	! 'While you are sitting at the bar, minding your own business, a young man sits next to you.'
 
 	!pcs_lover < 3 (has less than three lovers) or bfa < 1 (has a boyfriend with a dominant personality):      !!! DOESN''T MAKE ANY SENSE HERE - SHOULD BE PLACED AT THE END OF EVENT, WHEN THE GUY ASKS FOR SVETA''S NUMBER !!!
-	! gs 'boy'
+	! gs 'boygirl', 0
 	! 'A <<$boybody>>, <<$boybod>> guy with <<$boyface>> hair walks up to you, he is <<$boyClo>>'
 	!		'The guy introduces himself as <<$boydesc>> and asks for your phone number.'
 	!

+ 1 - 1
locations/restoran.qsrc

@@ -13,7 +13,7 @@ if $ARGS[0] = 'start':
 	! mennolds ev
 	if hour = 21 and minut < 30 and mey_vika['mey_vika_qw'] = 36: gt 'mey_tamara_events', 'wait_qw'
 
-	if vladimirday = daystart and vladimirQW = 21 and hour = 20: gt 'qwmeet'
+	if vladimirQW['day'] = daystart and vladimirQW['stage'] = 21 and hour = 20: gt 'vladimirQW_meet'
 
 	act 'Leave the restaurant': minut += 5 & gt 'city_center'
 

+ 2 - 2
locations/saveg.qsrc

@@ -15,7 +15,7 @@
 
 version_major = 0
 version_minor = 9
-version_revision = 3
-version_patch = 0
+version_revision = 2
+version_patch = 3
 --- saveg ---------------------------------
 

+ 98 - 11
locations/saveupdater.qsrc

@@ -1,13 +1,15 @@
 # saveupdater
 !! This file is for updating save game when one variable have been replaced by another.
+!! The version number is updated for releases and when it is required because we cannot run checks to block repeated updating
 
-!! If you have replaced a variable for another, then you should first go to saveg.gsrc and update the version number as instructed there.
-!! Then at the bottom of this file just after the last end add the following line:
+!! The version number is in saveg.gsrc should only be updated by the person preparing the release, if it needs to be done outside of releases then inform the person in charge of releases to ensure correct number change is made.
+
+!! When updating the version number: at the bottom of this file just after the last end add the following line:
 !! if ((100*version_major +version_minor)*100+version_revision)*100+version_patch  < "new version number":
-!! where "new version number" should be as instructed in the start of saveg.qsrc
-!! Then add you replacement of variables after this line. You can see how this is done by looking through this file.
+!! where "new version number" should either match that in saveg.qsrc or be for the next minor increment
+!! Then add any replacement variables after this line. You can see how this is done by looking through this file.
 
-!! When you do this you should always commit this file and saveg.qsrc at the same time.
+!! When changing version number you must commit this file and saveg.qsrc at the same time.
 
 
 temp_current_save_version = ( (100*version_major + version_minor) * 100 + version_revision ) * 100 + version_patch
@@ -2523,10 +2525,6 @@ if temp_current_save_version < 00090200:
 
 
 	! Transport update
-	if arrsize('transportVars') < 70:
-		killvar 'transportVars'
-		gs 'transport_functions', 'init_all'
-	end
 	if Trainpass_day ! 0:	transportVars['trainpass_day'] = Trainpass_day	& killvar 'Trainpass_day'
 	killvar 'train_event'
 
@@ -2622,9 +2620,9 @@ if temp_current_save_version < 00090202:
 end
 
 
-!!------------------------------------!!Version 0.9.3.0!!-----------------------------------------------!!
+!!------------------------------------!!Version 0.9.2.3!!-----------------------------------------------!!
 
-if temp_current_save_version < 00090300:
+if temp_current_save_version < 00090203:
 	!!updates the exp to the new scale so you don''t go down in stat
 	gs 'stat_sklattrib'
 
@@ -2664,8 +2662,11 @@ if temp_current_save_version < 00090300:
 	i = 0 & x += 1
 	if x < 3: jump 'rstloop'
 	killvar 'i' & killvar 'x'
+end
 
+!!------------------------------------!!Version 0.9.3.0!!-----------------------------------------------!!
 
+if temp_current_save_version < 00090204:
 	!! Drugs variable migration
 	if NarkImmune				> 0:	drugVars['cheat_immune']			= NarkImmune			& killvar 'NarkImmune'
 	if SNarkPriton				> 0:	drugVars['city_drugden']			= SNarkPriton			& killvar 'SNarkPriton'
@@ -2809,7 +2810,93 @@ if temp_current_save_version < 00090300:
 	!! Introduction of lact_ev['poli_totaldonatemoney']
 	if lact_ev['poli_totaldonatemoney'] <= 0 and lact_ev['poli_totalmilkdonated'] >= 5: lact_ev['poli_totaldonatemoney'] = (lact_ev['poli_totalmilkdonated'] / 5) * 10
 
+	if soniaQW[soniafall_block] > 1 and soniaQW[soniafall_block] ! soniaQW['soniafall_block']:
+		soniaQW['soniafall_block'] = soniaQW[soniafall_block]
+		if soniaQW['homeinvite'] > 0: soniaQW['homeinvite'] = 1
+	end
+
+	if vladimirday > 0 or vladimirQW > 0 and vladimirQW['stage'] = 0:
+		temp_var1 = vladimirQW
+		killvar 'vladimirQW'
+		vladimirQW['stage'] = temp_var1
+		if vladimirday > 0:		vladimirQW['day'] = vladimirday
+		killvar 'vladimirday'
+		killvar 'temp_var1'
+	end
+
+	!! Telephone call migration to their correct event locations
+	if arrpos('$contact', 'A108') > -1:
+		temp_pos = arrpos('$contact', 'A108')
+		if strpos($contactICode[temp_pos], 'telefon') > 0:
+			$contactICode[temp_pos] = replace($contactICode[temp_pos], "'telefon', 'vladimir'", "'vladimirQW_loc', 'telephone_call'")
+		end
+		if strpos($contactISche[temp_pos], 'vladimirday') > 0:
+			$contactISche[temp_pos] = replace($contactISche[temp_pos], "vladimirday", "vladimirQW['day']")
+		end
+		killvar 'temp_pos'
+	end
 
+	if arrpos('$contact', 'A192') > -1:
+		temp_pos = arrpos('$contact', 'A192')
+		if strpos($contactOCode[temp_pos], 'telefon') > 0:
+			$contactOCode[temp_pos] = replace($contactOCode[temp_pos], 'telefon', 'nastja')
+		end
+		killvar 'temp_pos'
+	end
+
+	!! sms scheduling added to addcontact in telefon:
+	if arrsize('$contact') > arrsize('contactOSMSCode'):
+		temp_maxi = arrsize('$contact')
+		temp_i = arrsize('contactOSMSCode')
+		:saveupdater_SMSCODE_scheduling_loop
+			$contactOSMSCode[temp_i] = ""
+			$contactOSMSSche[temp_i] = "0"
+			$contactISMSCode[temp_i] = ""
+			$contactISMSSche[temp_i] = "0"
+			temp_i += 1
+		if temp_i < temp_maxi: jump 'saveupdater_SMSCODE_scheduling_loop'
+		killvar 'temp_maxi'
+		killvar 'temp_i'
+	end
+
+
+	!! region added to the blackmailer array:
+	if $blackmailQW['init_flashloc'] ! '' and $blackmailQW['init_flashregion'] = '':
+		if strpos($blackmailQW['init_flashloc'], 'city') > 0:
+			$blackmailQW['init_flashregion'] = 'city'
+		elseif strpos($blackmailQW['init_flashloc'], 'pav') > 0:
+			$blackmailQW['init_flashregion'] = 'pav'
+		elseif strpos($blackmailQW['init_flashloc'], 'gad') > 0:
+			$blackmailQW['init_flashregion'] = 'gad'
+		elseif strpos($blackmailQW['init_flashloc'], 'pushkin') > 0:
+			$blackmailQW['init_flashregion'] = 'pushkin'
+		elseif $start_type['loc'] = 'city':
+			$blackmailQW['init_flashregion'] = 'city'
+		else
+			$blackmailQW['init_flashregion'] = 'pav'
+		end
+
+		blackmailQW['total_material'] = 1
+	end
+	if $blackmailQW['init_flashimage'] ! '' and strpos($blackmailQW['init_flashimage'], '.jpg') = 0:
+		$blackmailQW['init_flashimage'] = $blackmailQW['init_flashimage'] + '.jpg'
+	end
+	if $blackmailQW['blackmail_image_chosen'] = '' and blackmailQW['next_payment'] > 0:
+		$blackmailQW['blackmail_image_chosen'] = $blackmailQW['init_flashimage']
+	end
+
+
+	if igor_krossdress > 0 and igor_eqwtday > 0 and igor_progulkaday = 0: igor_krossdress = 0
+
+	if arrsize('transportVars') > 4:
+		copyarr('temp_transportVars', 'transportVars')
+		killvar 'transportVars'
+		transportVars['trainpass_day']		= temp_transportVars['trainpass_day']
+		transportVars['buspass_day']		= temp_transportVars['buspass_day']
+		transportVars['train_event_day']	= temp_transportVars['train_event_day']
+		transportVars['bus_event_day']		= temp_transportVars['bus_event_day']
+		killvar 'temp_transportVars'
+	end
 end
 
 

+ 1 - 6
locations/sex_ev_leave.qsrc

@@ -123,12 +123,7 @@ if $ARGS[0] = 'fuckbuddy_add':
 end
 
 if $ARGS[0] = 'sugar_daddy_add':
-	if $npc_rel_type[$boy] ! 'fuckbuddy':
-		gs 'lover', 'add_sugar_daddy', $boy
-		npc_fuckbuddy[$boy] = 1
-		npc_no_booty_call[$boy] = daystart
-		sex_ev['sugar_daddy_count'] += 1
-	end
+	gs 'lover', 'add_sugar_daddy', $boy
 	npc_sugar_daddy_price[$boy] = sex_ev['sugar_daddy_offer'] * 100
 	if $npc_rel_type[$boy] ! 'sugar_daddy':
 		$npc_rel_type[$boy] = 'sugar_daddy'

+ 10 - 9
locations/soniadisco.qsrc

@@ -1,7 +1,7 @@
 # soniadisco
 !2021/22/12
 !!I changed Sonia fall to this so their is a total of 7 events so Sonia slowly falls. moved the automatically fall code here from cikl.
-!!We should update Sonia code to work like the rest. I already did it with the new code soniaQW[soniafall_block], but the rest like soniaPS or soniafall should be updated to soniaQW[soniaPS] and soniaQW[soniafall] I didn''t do it because last time I tried I messed some stuff up so I will leave it to one of you coders to update it.
+!!We should update Sonia code to work like the rest. I already did it with the new code soniaQW['soniafall_block'], but the rest like soniaPS or soniafall should be updated to soniaQW['soniaPS'] and soniaQW['soniafall'] I didn''t do it because last time I tried I messed some stuff up so I will leave it to one of you coders to update it.
 
 if $ARGS[0] = 'cikl':
 !!Making Sonia''s fall progress if the player do not see the scenes at the disco, by making it such that if at a Sunday her fall have not advanced this weekend it will automatically advance.
@@ -241,7 +241,7 @@ if $ARGS[0] = 'disco':
 				gt 'soniadisco', 'dance1'
 			end
 		end
-	elseif soniaQW[soniafall_block] >= 4:
+	elseif soniaQW['soniafall_block'] >= 4:
 		'Vitek notices you watching them and frowns. "What the fuck are you looking at, bitch? You had your chance to hang out with us and you blew it, so scram!" Then they all head out. Vasily glances back at you and shakes his head, letting you know not to follow them.'
 		act 'Watch them leave':
 			if soniafall <= 6:
@@ -543,7 +543,7 @@ if $ARGS[0] = 'pressuredforpanties':
 					*clr & cla
 					gs 'willpower', 'pay', 'resist'
 					grupvalue[4] -= 1
-					soniaQW[soniafall_block] += 1
+					soniaQW['soniafall_block'] += 1
 					gs 'npc_relationship', 'modify', 'A9', 'dislike'
 					gs 'npc_relationship', 'modify', 'A10', 'dislike'
 					gs 'npc_relationship', 'modify', 'A11', 'dislike'
@@ -578,7 +578,7 @@ if $ARGS[0] = 'pressuredforpanties':
 							*clr & cla
 							gs 'willpower', 'pay', 'resist'
 							grupvalue[4] -= 1
-							soniaQW[soniafall_block] += 1
+							soniaQW['soniafall_block'] += 1
 							gs 'npc_relationship', 'modify', 'A9', 'dislike'
 							gs 'npc_relationship', 'modify', 'A10', 'dislike'
 							gs 'npc_relationship', 'modify', 'A11', 'dislike'
@@ -675,7 +675,7 @@ if $ARGS[0] = 'pressuredfortits':
 					*clr & cla
 					gs 'willpower', 'pay', 'resist'
 					grupvalue[4] -= 1
-					soniaQW[soniafall_block] += 1
+					soniaQW['soniafall_block'] += 1
 					gs 'npc_relationship', 'modify', 'A9', 'dislike'
 					gs 'npc_relationship', 'modify', 'A10', 'dislike'
 					gs 'npc_relationship', 'modify', 'A11', 'dislike'
@@ -754,7 +754,7 @@ if $ARGS[0] = 'pressuredforpussy':
 					*clr & cla
 					gs 'willpower', 'pay', 'resist'
 					grupvalue[4] -= 1
-					soniaQW[soniafall_block] += 1
+					soniaQW['soniafall_block'] += 1
 					gs 'npc_relationship', 'modify', 'A9', 'dislike'
 					gs 'npc_relationship', 'modify', 'A10', 'dislike'
 					gs 'npc_relationship', 'modify', 'A11', 'dislike'
@@ -820,6 +820,7 @@ if $ARGS[0] = 'pressuredforblowjob':
 	act 'Go back to the disco': gt 'soniadisco', 'dance'
 	act 'Watch':
 		*clr & cla
+		soniaQW['vitek_bj_watched'] = 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/disco/popsicle2.jpg"></center>'
 		'Sonia obediently pulls her hands away and opens her mouth, Vitek slowly puts the popsicle against her lips and tongue. She closes her lips around it and sucks on it, while looking at Vitek seductively.'
 		'Vitek grins and lowers the popsicle, further and further, until it is at the same level as his groin. All this time, Sonia has never taken her mouth off it, and eventually, she gets down on her knees after bending over awkwardly and nearly falling over once or twice. The way she''s sucking and licking the popsicle has definitely made Vitek aroused, and you see his cock straining against the fabric of his pants. Meanwhile, Dan and Vasily are looking at the two of them with their mouths open, somewhat awkwardly hiding their erections.'
@@ -844,7 +845,7 @@ if $ARGS[0] = 'pressuredforblowjob':
 					*clr & cla
 					gs 'willpower', 'pay', 'self'
 					grupvalue[4] -= 20
-					soniaQW[soniafall_block] += 5
+					soniaQW['soniafall_block'] += 5
 					gs 'npc_relationship', 'modify', 'A9', 'loathe'
 					gs 'npc_relationship', 'modify', 'A10', 'loathe'
 					gs 'npc_relationship', 'modify', 'A11', 'loathe'
@@ -903,7 +904,7 @@ if $ARGS[0] = 'pressuredforblowjob':
 										*clr & cla
 										gs 'willpower', 'pay', 'resist'
 										grupvalue[4] -= 1
-										soniaQW[soniafall_block] += 1
+										soniaQW['soniafall_block'] += 1
 										gs 'npc_relationship', 'modify', 'A9', 'dislike'
 										gs 'npc_relationship', 'modify', 'A10', 'loathe'
 										gs 'npc_relationship', 'modify', 'A11', 'dislike'
@@ -1012,7 +1013,7 @@ if $ARGS[0] = 'pressuredforgangbang':
 				*clr & cla
 				gs 'willpower', 'pay', 'self'
 				grupvalue[4] -= 20
-				soniaQW[soniafall_block] += 5
+				soniaQW['soniafall_block'] += 5
 				gs 'npc_relationship', 'modify', 'A9', 'loathe'
 				gs 'npc_relationship', 'modify', 'A10', 'loathe'
 				gs 'npc_relationship', 'modify', 'A11', 'loathe'

+ 4 - 3
locations/stat.qsrc

@@ -263,9 +263,6 @@ end
 ! Execute time based spells
 gs 'spellTimer', prevtotmin, totminut
 
-! Determine Incoming Telephone Calls
-gs 'telefon', 'IncomingCheck', prevtotmin, totminut
-
 !! deodorant
 if deodorant_on = 1 and totminut > deodorant_time: gs 'sweat', 'remove_deo'
 
@@ -434,6 +431,10 @@ end
 
 if hour >= 24: gs 'cikl'
 
+! Determine Incoming Telephone Calls and SMS
+gs 'telefon', 'IncomingCheck', prevtotmin, totminut
+gs 'telefon', 'IncomingSMSCheck'
+
 if minut < 10:
 	$nilmin = '0'
 else

+ 3 - 3
locations/street_event.qsrc

@@ -10,7 +10,7 @@
 		streetev_hijack=1
 		streetev_bf=90
 		shantpopala: 100% if shantpopala>0
-2. home-related events: check if player live here (workDolgDay, vladimirday, pcs_magik >= 1 and mainQW = 0, hour = meethour).
+2. home-related events: check if player live here (workDolgDay, vladimirQW['day'], pcs_magik >= 1 and mainQW = 0, hour = meethour).
 [street]: home_owned[1] > 0 for korr
 [down]:tanwork = 1 for house, func('uniutil', 'student', 'enrolled') for dorm
 [city_industrial]:none for now. use (train station) as position, if no home in city.
@@ -154,8 +154,8 @@ if $ARGS[1] = 'extras':
 	end
 
 	if streetev_home = 1:
-		if vladimirday = daystart and vladimirQW = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''2''">There''s an Audi parked <<$streetev_home>>, and standing beside it, you notice Vladimir</a>.'
-		if vladimirday = daystart and vladimirQW = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''qwmeet'',''3''">There''s an Audi parked <<$streetev_home>>, and standing beside it, you notice Vladimir</a>.'
+		if vladimirQW['day'] = daystart and vladimirQW['stage'] = 30 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''2''">There''s an Audi parked <<$streetev_home>>, and standing beside it, you notice Vladimir</a>.'
+		if vladimirQW['day'] = daystart and vladimirQW['stage'] = 40 and hour >= 16 and week = 6:'<a href="exec:gt ''vladimirQW_meet'',''3''">There''s an Audi parked <<$streetev_home>>, and standing beside it, you notice Vladimir</a>.'
 
 		if hour = meethour[0]:
 			if svidanie[0] = 1:'<b><a href="exec:lover_number = 0 & gt ''lover_meet'', ''start''"><<$loverdesc[0]>></a> is waiting <<$streetev_home>>.</b>'

+ 1 - 1
locations/succubus.qsrc

@@ -1042,7 +1042,7 @@ if $args[0] = 'sucwalkinggo':
 		elseif sucslpzone = 4:
 			if sctemp = 1: $sucgoloc = 'pushkin' & $sucgometka = ''
 			if sctemp = 2: $sucgoloc = 'pushkin_sq' & $sucgometka = ''
-			if sctemp = 3: $sucgoloc = 'parks' & $sucgometka = ''
+			if sctemp = 3: $sucgoloc = 'pushkin_parks' & $sucgometka = ''
 			if sctemp = 4: $sucgoloc = 'pav_market' & $sucgometka = ''
 			if sctemp = 5: $sucgoloc = 'city_industrial' & $sucgometka = ''
 		elseif sucslpzone = 5:

File diff suppressed because it is too large
+ 952 - 476
locations/telefon.qsrc


+ 140 - 140
locations/train.qsrc

@@ -26,8 +26,8 @@ if $ARGS[0] = 'communal':
 	'An old railway platform, it looks like it was abandoned. The sign is no longer legible, but there''s a hand painted sign from the communal cottages not too far away.'
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'communal'
-	'The next train in the direction of St. Petersburg city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of St. Petersburg city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Return to the road': minut += 15 & nroad = 5 & gt 'road'
 
@@ -63,8 +63,8 @@ elseif $ARGS[0] = 'communal_trains':
 	menu_off = 0
 
 	gs 'transport_functions', 'set_train_wait_time', 'pavlovsk'
-	'The next train in the direction of St. Petersburg city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of St. Petersburg city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Leave the platform': gt 'train', 'communal'
 
@@ -105,8 +105,8 @@ if $ARGS[0] = 'gadukino':
 	'A fairly nondescript railway platform. The small village of Gadukino where your grandparents reside is not far from here.'
 	*nl
 	gs 'transport_functions', 'set_train_wait_time', 'gadukino'
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
-	'The next train in the direction of St. Petersburg city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of St. Petersburg city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
 
 	act 'Walk to the road (0:15)': minut += 15 & nroad = 10 & gt 'road'
 
@@ -142,8 +142,8 @@ elseif $ARGS[0] = 'gadukino_trains':
 	menu_off = 0
 
 	gs 'transport_functions', 'set_train_wait_time', 'gadukino'
-	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
-	'The next train in the direction of St. Petersburg city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(temp_transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_pavlovsk'']>> minutes.')
+	'The next train in the direction of St. Petersburg city center ' + iif(temp_transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<temp_transportVars[''train_wait_center'']>> minutes.')
 
 	act 'Leave the platform': gt 'train', 'gadukino'
 
@@ -184,23 +184,23 @@ if $ARGS[0] = 'center_ind':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_center_ind'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'ind') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if tranportVars['rand'] <= 9:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 9:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 23:
+		if temp_transportVars['rand'] <= 23:
 			gt 'train_events', 'private'
-		elseif transportVars['rand'] <= 31:
+		elseif temp_transportVars['rand'] <= 31:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -212,22 +212,22 @@ elseif $ARGS[0] = 'center_communal':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_center_communal'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'communal') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 19:
+		if temp_transportVars['rand'] <= 19:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes you arrive at an old railway platform near the communal village.'
+	'After <<temp_transportVars[''timecost'']>> minutes you arrive at an old railway platform near the communal village.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -239,21 +239,21 @@ elseif $ARGS[0] = 'center_gadukino':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_center_gadukino'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'gadukino') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 19:
+		if temp_transportVars['rand'] <= 19:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -265,25 +265,25 @@ elseif $ARGS[0] = 'center_pavlovsk':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_center_pavlovsk'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'pavlovsk') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 20:
+		if temp_transportVars['rand'] <= 20:
 			gt 'train_events', 'private'
-		elseif transportVars['rand'] <= 45:
+		elseif temp_transportVars['rand'] <= 45:
 			gt 'train_events', 'Gopnik'
-		elseif transportVars['rand'] <= 51:
+		elseif temp_transportVars['rand'] <= 51:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -303,24 +303,24 @@ if $ARGS[0] = 'ind_center':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_ind_center'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'center') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 9:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 9:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 23:
+		if temp_transportVars['rand'] <= 23:
 			gt 'train_events', 'private'
-		elseif transportVars['rand'] <= 31:
+		elseif temp_transportVars['rand'] <= 31:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
 	'You pay for the ticket and board the next train going to the city center.'
-	'After <<transportVars[''timecost'']>> minutes, you see the office blocks and shops at the heart of the city. The train stops at its final destination, the busy station in the city center.'
+	'After <<temp_transportVars[''timecost'']>> minutes, you see the office blocks and shops at the heart of the city. The train stops at its final destination, the busy station in the city center.'
 
 	act 'Get off the train at this station':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
@@ -333,21 +333,21 @@ elseif $ARGS[0] = 'ind_communal':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_ind_communal'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'communal') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 17:
+		if temp_transportVars['rand'] <= 17:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes you arrive at an old railway platform near the communal village.'
+	'After <<temp_transportVars[''timecost'']>> minutes you arrive at an old railway platform near the communal village.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -359,21 +359,21 @@ elseif $ARGS[0] = 'ind_gadukino':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_ind_gadukino'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'gadukino') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 19:
+		if temp_transportVars['rand'] <= 19:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -385,26 +385,26 @@ elseif $ARGS[0] = 'ind_pavlovsk':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_ind_pavlovsk'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'pavlovsk') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 20:
+		if temp_transportVars['rand'] <= 20:
 			gt 'train_events', 'private'
-		elseif transportVars['rand'] <= 45:
+		elseif temp_transportVars['rand'] <= 45:
 			gt 'train_events', 'Gopnik'
-		elseif transportVars['rand'] <= 51:
+		elseif temp_transportVars['rand'] <= 51:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -424,21 +424,21 @@ if $ARGS[0] = 'communal_center':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_communal_center'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'center') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 19:
+		if temp_transportVars['rand'] <= 19:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
 	act 'Get off the train':
 		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -450,21 +450,21 @@ elseif $ARGS[0] = 'communal_ind':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_communal_ind'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'ind') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 16:
+		if temp_transportVars['rand'] <= 16:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -476,21 +476,21 @@ elseif $ARGS[0] = 'communal_gadukino':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_communal_gadukino'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'gadukino') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 16:
+		if temp_transportVars['rand'] <= 16:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -502,21 +502,21 @@ elseif $ARGS[0] = 'communal_pavlovsk':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_communal_pavlovsk'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'pavlovsk') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 20:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 20:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 28:
+		if temp_transportVars['rand'] <= 28:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
 	act 'Get off the train': gt $loc, $loc_arg
 end
 
@@ -533,21 +533,21 @@ if $ARGS[0] = 'gadukino_center':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_gadukino_center'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'gadukino', 'center') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 24:
+		if temp_transportVars['rand'] <= 24:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -559,21 +559,21 @@ elseif $ARGS[0] = 'gadukino_ind':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_gadukino_ind'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'gadukino', 'ind') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 24:
+		if temp_transportVars['rand'] <= 24:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -585,21 +585,21 @@ elseif $ARGS[0] = 'gadukino_communal':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_gadukino_communal'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'gadukino', 'communal') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 16:
+		if temp_transportVars['rand'] <= 16:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, you arrive at an old railway platform near the communal village.'
+	'After <<temp_transportVars[''timecost'']>> minutes, you arrive at an old railway platform near the communal village.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -611,21 +611,21 @@ elseif $ARGS[0] = 'gadukino_pavlovsk':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_gadukino_pavlovsk'] + transportVars['train_wait_pavlovsk']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'gadukino', 'pavlovsk') + temp_transportVars['train_wait_pavlovsk']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 20:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 20:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 28:
+		if temp_transportVars['rand'] <= 28:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -645,27 +645,27 @@ if $ARGS[0] = 'pavlovsk_center':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_pavlovsk_center'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 20:
+		if temp_transportVars['rand'] <= 20:
 			gt 'train_events', 'private'
-		elseif transportVars['rand'] <= 45:
+		elseif temp_transportVars['rand'] <= 45:
 			gt 'train_events', 'Gopnik'
-		elseif tranportVars['rand'] <= 55:
+		elseif temp_transportVars['rand'] <= 55:
 			gt 'train_events', 'weed'
-		elseif transportVars['rand'] <= 61:
+		elseif temp_transportVars['rand'] <= 61:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -677,25 +677,25 @@ elseif $ARGS[0] = 'pavlovsk_ind':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_pavlovsk_ind'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'ind') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 6:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 6:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 20:
+		if temp_transportVars['rand'] <= 20:
 			gt 'train_events', 'private'
-		elseif transportVars['rand'] <= 45:
+		elseif temp_transportVars['rand'] <= 45:
 			gt 'train_events', 'Gopnik'
-		elseif transportVars['rand'] <= 51:
+		elseif temp_transportVars['rand'] <= 51:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -707,21 +707,21 @@ elseif $ARGS[0] = 'pavlovsk_communal':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_pavlovsk_communal'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'communal') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 38:
+		if temp_transportVars['rand'] <= 38:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes you arrive at an old railway platform near the communal village.'
+	'After <<temp_transportVars[''timecost'']>> minutes you arrive at an old railway platform near the communal village.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
@@ -733,28 +733,28 @@ elseif $ARGS[0] = 'pavlovsk_gadukino':
 	$location_type = 'public_indoors'
 	menu_off = 1
 	gs 'transport_functions', 'set_train_wait_time'
-	transportVars['timecost'] = transportVars['train_time_pavlovsk_gadukino'] + transportVars['train_wait_center']
-	minut += transportVars['timecost']
+	temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'gadukino') + temp_transportVars['train_wait_center']
+	minut += temp_transportVars['timecost']
 	gs 'stat'
 
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 10:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 10:
 		gt 'train_incidental', 'events'
 	elseif transportVars['train_event_day'] ! daystart:
-		if transportVars['rand'] <= 19:
+		if temp_transportVars['rand'] <= 19:
 			gt 'train_events', 'events'
 		end
 	end
 
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After <<transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
+	'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
 	act 'Get off the train':
 		if rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt $loc, $loc_arg
 	end
 end
 
-
+killvar 'temp_transportVars'
 
 --- train ---------------------------------
 

+ 15 - 17
locations/train_events.qsrc

@@ -3,14 +3,14 @@
 transportVars['train_event_day'] = daystart
 
 if $ARGS[0] = 'events':
-	transportVars['rand'] = rand(1, 100)
-	if transportVars['rand'] <= 15:
+	temp_transportVars['rand'] = rand(1, 100)
+	if temp_transportVars['rand'] <= 15:
 		gt 'train_events', 'oldman'
-	elseif transportVars['rand'] <= 42:
+	elseif temp_transportVars['rand'] <= 42:
 		gt 'train_events', 'fit'
-	elseif transportVars['rand'] <= 77:
+	elseif temp_transportVars['rand'] <= 77:
 		gt 'train_events', 'young'
-	elseif transportVars['rand'] <= 100:
+	elseif temp_transportVars['rand'] <= 100:
 		gt 'train_events', 'breastfeed'
 	else
 		gt $loc, $loc_arg
@@ -498,7 +498,6 @@ end
 !! This currently never triggers!!
 !!only triggered direct from Pav when going to the city center
 if $ARGS[0] = 'weed':
-	transportVars['train_event_day'] = daystart
 	menu_off = 1
 	$loc = 'city_train'
 	$loc_arg = 'start'
@@ -529,12 +528,12 @@ if $ARGS[0] = 'weed':
 
 			act 'Board the train to the city':
 				*clr & cla
-				transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
-				minut += transportVars['timecost']
+				temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
+				minut += temp_transportVars['timecost']
 				gs 'stat'
 
 				'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-				'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view. This is the train''s final destination.'
+				'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view. This is the train''s final destination.'
 				act 'Get off the train':
 					if rand(1, 100) <= 5: gt 'train_incidental', 'events'
 					gt 'city_train', 'start'
@@ -565,11 +564,11 @@ if $ARGS[0] = 'weed':
 				'It isn''t hard to guess what they were doing to kill time. A part of you wishes you had taken him up on the offer.'
 				act 'Board the train to the city':
 					*clr & cla
-					transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
-					minut += transportVars['timecost']
+					temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
+					minut += temp_transportVars['timecost']
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-					'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view. This is the train''s final destination.'
+					'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view. This is the train''s final destination.'
 					act 'Get off the train':
 						if rand(1, 100) <= 5: gt 'train_incidental', 'events'
 						gt 'city_train', 'start'
@@ -619,13 +618,13 @@ if $ARGS[0] = 'weed':
 							gs 'stat'
 							act 'Board the train to the city':
 								*clr & cla
-								transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
-								minut += transportVars['timecost']
+								temp_transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
+								minut += temp_transportVars['timecost']
 								gs 'stat'
 								'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg"></center>'
 								'Once on the train, you look around but you don''t see the young man. Perhaps he got on a different car? You go looking for him, passing through a few different sections, hoping to continue what you started and deal with your overwhelming horniness, but after checking the entire train without seeing a hint of him, you give up and find a seat.'
 								'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-								'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view. This is the train''s final destination.'
+								'After <<temp_transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view. This is the train''s final destination.'
 								act 'Get off the train':
 									if rand(1, 100) <= 5: gt 'train_incidental', 'events'
 									gt 'city_train', 'start'
@@ -643,7 +642,6 @@ end
 if $ARGS[0] = 'private':
 	*clr & cla
 	minut -= 35
-	transportVars['train_event_day'] = daystart
 	menu_off = 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
@@ -793,7 +791,7 @@ if $ARGS[0] = 'Gopnik':
 
 			act 'Blow him':
 				*clr & cla
-				gs 'boy'
+				gs 'boygirl', 0
 				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikbj.jpg" ></center>'
 				'The back and forth between him being nice and an ass is weird, the place is wide open, you barely know him - literally everything about this should discourage you from going near his crotch, and yet... yet, you find yourself squatting down in front of him and taking his <<dick>>cm <<$dick_girth>> cock into your mouth. Your hand strokes his hard shaft while you roll your tongue around the head of his cock; you jerk his cock in tune with the bobs of your head, back and forth along his length, your <<$pc_desc[''lips'']>> lips lips wrapped tightly around him.' 
 				*nl

+ 123 - 283
locations/transport_functions.qsrc

@@ -1,14 +1,5 @@
 # transport_functions
 
-if $ARGS[0] = 'init_all':
-	gs 'transport_functions', 'init_train_prices'
-	gs 'transport_functions', 'init_train_timecosts'
-	gs 'transport_functions', 'init_bus_prices'
-	gs 'transport_functions', 'init_bus_timecosts'
-end
-
-
-
 	!!=======================================!!
 	!!                                       !!
 	!!                Trains                 !!
@@ -77,7 +68,7 @@ end
 ! $ARGS[2] = destination loc_arg
 ! $ARGS[3] = destination name
 if $ARGS[0] = 'set_train_ticket':
-	temp_price = transportVars['train_price_<<$ARGS[1]>>_<<$ARGS[2]>>']
+	temp_price = func('transport_functions', 'get_train_price', $ARGS[1], $ARGS[2])
 	$temp_time = func('transport_functions', 'display_train_timecost', $ARGS[1], $ARGS[2])
 
 	if mid($temp_time, 1, 1) < 2:
@@ -104,86 +95,86 @@ end
 if $ARGS[0] = 'set_train_wait_time':
 	if $ARGS[1] = 'pavlovsk':
 		if hour = 0:
-			transportVars['train_wait_center']		= (67 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (67 - minut) mod 30
 		elseif hour <= 3:
-			transportVars['train_wait_center']		= (67 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (67 - minut) mod 60
 		elseif hour <= 21:
-			transportVars['train_wait_center']		= (67 - minut) mod 15
+			temp_transportVars['train_wait_center']		= (67 - minut) mod 15
 		else
-			transportVars['train_wait_center']		= (67 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (67 - minut) mod 30
 		end	
 	elseif $ARGS[1] = 'gadukino':
 		if hour = 0:
-			transportVars['train_wait_center']		= (82 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (87 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (82 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (87 - minut) mod 30
 		elseif hour <= 3 or hour = 4 and minut <= 22:
-			transportVars['train_wait_center']		= (82 - minut) mod 60
-			transportVars['train_wait_pavlovsk']	= (87 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (82 - minut) mod 60
+			temp_transportVars['train_wait_pavlovsk']	= (87 - minut) mod 60
 		elseif hour = 4 and minut <= 27:
-			transportVars['train_wait_center']		= (82 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (87 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (82 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (87 - minut) mod 60
 		elseif hour <= 21 or hour = 22 and minut <= 7:
-			transportVars['train_wait_center']		= (82 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (87 - minut) mod 15
+			temp_transportVars['train_wait_center']		= (82 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (87 - minut) mod 15
 		elseif hour = 22 and minut <= 12:
-			transportVars['train_wait_center']		= (82 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (87 - minut) mod 15
+			temp_transportVars['train_wait_center']		= (82 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (87 - minut) mod 15
 		else
-			transportVars['train_wait_center']		= (82 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (87 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (82 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (87 - minut) mod 30
 		end
 	elseif $ARGS[1] = 'communal':
 		if hour = 0 or hour = 1 and minut <= 2:
-			transportVars['train_wait_center']		= (92 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (77 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (92 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (77 - minut) mod 30
 		elseif hour <= 3 or hour = 4 and minut <= 17:
-			transportVars['train_wait_center']		= (92 - minut) mod 60
-			transportVars['train_wait_pavlovsk']	= (77 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (92 - minut) mod 60
+			temp_transportVars['train_wait_pavlovsk']	= (77 - minut) mod 60
 		elseif hour = 4 and minut <= 32:
-			transportVars['train_wait_center']		= (92 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (77 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (92 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (77 - minut) mod 60
 		elseif hour <= 21 or hour = 22 and minut <= 2:
-			transportVars['train_wait_center']		= (92 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (77 - minut) mod 15
+			temp_transportVars['train_wait_center']		= (92 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (77 - minut) mod 15
 		elseif hour = 22 and minut <= 17:
-			transportVars['train_wait_center']		= (92 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (77 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (92 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (77 - minut) mod 30
 		else
-			transportVars['train_wait_center']		= (92 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (77 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (92 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (77 - minut) mod 30
 		end
 	elseif $ARGS[1] = 'ind':
 		if hour = 0:
-			transportVars['train_wait_center']		= (102 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 30
 		elseif hour = 1 and minut <= 12:
-			transportVars['train_wait_center']		= (102 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 60
 		elseif hour <= 3:
-			transportVars['train_wait_center']		= (102 - minut) mod 60
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 60
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 60
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 60
 		elseif hour = 4 and minut <= 42:
-			transportVars['train_wait_center']		= (102 - minut) mod 60
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 15
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 60
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 15
 		elseif hour <= 21:
-			transportVars['train_wait_center']		= (102 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 15
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 15
 		elseif hour = 22 and minut <= 27:
-			transportVars['train_wait_center']		= (102 - minut) mod 15
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 30
 		else
-			transportVars['train_wait_center']		= (102 - minut) mod 30
-			transportVars['train_wait_pavlovsk']	= (67 - minut) mod 30
+			temp_transportVars['train_wait_center']		= (102 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (67 - minut) mod 30
 		end
 	elseif $ARGS[1] = 'center':
 		if hour = 0:
-			transportVars['train_wait_pavlovsk']	= (62 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (62 - minut) mod 30
 		elseif hour <= 3:
-			transportVars['train_wait_pavlovsk']	= (62 - minut) mod 60
+			temp_transportVars['train_wait_pavlovsk']	= (62 - minut) mod 60
 		elseif hour <= 21:
-			transportVars['train_wait_pavlovsk']	= (62 - minut) mod 15
+			temp_transportVars['train_wait_pavlovsk']	= (62 - minut) mod 15
 		else
-			transportVars['train_wait_pavlovsk']	= (62 - minut) mod 30
+			temp_transportVars['train_wait_pavlovsk']	= (62 - minut) mod 30
 		end
 	end
 end
@@ -193,11 +184,11 @@ if $ARGS[0] = 'display_trainpass_time':
 end
 
 if $ARGS[0] = 'display_train_timecost':
-	temp_mins = transportVars['train_time_<<$ARGS[1]>>_<<$ARGS[2]>>']
+	temp_mins = func('transport_functions', 'get_train_timecost', $ARGS[1], $ARGS[2])
 	if $ARGS[1] = 'pavlovsk' or $ARGS[2] = 'center 'or ($ARGS[1] = 'gadukino' and $ARGS[2] ! 'pavlovsk') or ($ARGS[1] = 'communal' and $ARGS[2] = 'ind'):
-		temp_mins += transportVars['train_wait_center']
+		temp_mins += temp_transportVars['train_wait_center']
 	else
-		temp_mins += transportVars['train_wait_pavlovsk']
+		temp_mins += temp_transportVars['train_wait_pavlovsk']
 	end
 	temp_hours = temp_mins / 60
 	temp_mins = temp_mins mod 60
@@ -351,63 +342,6 @@ end
 
 
 
-
-if $ARGS[0] = 'init_train_prices':
-	transportVars['train_price_pavlovsk_gadukino']	= func('transport_functions', 'get_train_price', 'pavlovsk', 'gadukino')
-	transportVars['train_price_pavlovsk_communal']	= func('transport_functions', 'get_train_price', 'pavlovsk', 'communal')
-	transportVars['train_price_pavlovsk_ind']		= func('transport_functions', 'get_train_price', 'pavlovsk', 'ind')
-	transportVars['train_price_pavlovsk_center']	= func('transport_functions', 'get_train_price', 'pavlovsk', 'center')
-
-	transportVars['train_price_gadukino_pavlovsk']	= transportVars['train_price_pavlovsk_gadukino']
-	transportVars['train_price_gadukino_communal']	= func('transport_functions', 'get_train_price', 'gadukino', 'communal')
-	transportVars['train_price_gadukino_ind']		= func('transport_functions', 'get_train_price', 'gadukino', 'ind')
-	transportVars['train_price_gadukino_center']		= func('transport_functions', 'get_train_price', 'gadukino', 'center')
-
-	transportVars['train_price_communal_pavlovsk']	= transportVars['train_price_pavlovsk_communal']
-	transportVars['train_price_communal_gadukino']	= transportVars['train_price_gadukino_communal']
-	transportVars['train_price_communal_ind']		= func('transport_functions', 'get_train_price', 'communal', 'ind')
-	transportVars['train_price_communal_center']	= func('transport_functions', 'get_train_price', 'communal', 'center')
-
-	transportVars['train_price_ind_pavlovsk']		= transportVars['train_price_pavlovsk_ind']
-	transportVars['train_price_ind_gadukino']		= transportVars['train_price_gadukino_ind']
-	transportVars['train_price_ind_communal']		= transportVars['train_price_communal_ind']
-	transportVars['train_price_ind_center']			= func('transport_functions', 'get_train_price', 'ind', 'center')
-
-	transportVars['train_price_center_pavlovsk']	= transportVars['train_price_pavlovsk_center']
-	transportVars['train_price_center_gadukino']		= transportVars['train_price_gadukino_center']
-	transportVars['train_price_center_communal']	= transportVars['train_price_communal_center']
-	transportVars['train_price_center_ind']			= transportVars['train_price_ind_center']
-end
-
-if $ARGS[0] = 'init_train_timecosts':
-	transportVars['train_time_pavlovsk_gadukino']	= func('transport_functions', 'get_train_timecost', 'pavlovsk', 'gadukino')
-	transportVars['train_time_pavlovsk_communal']	= func('transport_functions', 'get_train_timecost', 'pavlovsk', 'communal')
-	transportVars['train_time_pavlovsk_ind']		= func('transport_functions', 'get_train_timecost', 'pavlovsk', 'ind')
-	transportVars['train_time_pavlovsk_center']		= func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
-
-	transportVars['train_time_gadukino_pavlovsk']	= transportVars['train_time_pavlovsk_gadukino']
-	transportVars['train_time_gadukino_communal']	= func('transport_functions', 'get_train_timecost', 'gadukino', 'communal')
-	transportVars['train_time_gadukino_ind']			= func('transport_functions', 'get_train_timecost', 'gadukino', 'ind')
-	transportVars['train_time_gadukino_center']		= func('transport_functions', 'get_train_timecost', 'gadukino', 'center')
-
-	transportVars['train_time_communal_pavlovsk']	= transportVars['train_time_pavlovsk_communal']
-	transportVars['train_time_communal_gadukino']	= transportVars['train_time_gadukino_communal']
-	transportVars['train_time_communal_ind']		= func('transport_functions', 'get_train_timecost', 'communal', 'ind')
-	transportVars['train_time_communal_center']		= func('transport_functions', 'get_train_timecost', 'communal', 'center')
-
-	transportVars['train_time_ind_pavlovsk']		= transportVars['train_time_pavlovsk_ind']
-	transportVars['train_time_ind_gadukino']			= transportVars['train_time_gadukino_ind']
-	transportVars['train_time_ind_communal']		= transportVars['train_time_communal_ind']
-	transportVars['train_time_ind_center']			= func('transport_functions', 'get_train_timecost', 'ind', 'center')
-
-	transportVars['train_time_center_pavlovsk']		= transportVars['train_time_pavlovsk_center']
-	transportVars['train_time_center_gadukino']		= transportVars['train_time_gadukino_center']
-	transportVars['train_time_center_communal']		= transportVars['train_time_communal_center']
-	transportVars['train_time_center_ind']			= transportVars['train_time_ind_center']
-end
-
-
-
 if $ARGS[0] = 'get_train_price':
 	result = func('transport_functions', '_private_train_price', $ARGS[2]) - func('transport_functions', '_private_train_price', $ARGS[1])
 	if result < 0: result *= -1
@@ -553,133 +487,132 @@ end
 if $ARGS[0] = 'set_bus_wait_time':
 	if $ARGS[1] = 'community':
 		if hour <= 4:
-			transportVars['bus_wait_gadukino']	= (313 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (313 - minut - hour * 60)
 		elseif hour >= 5 and hour <= 22 or hour = 22 and minut <= 53:
-			transportVars['bus_wait_gadukino']	= (73 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (73 - minut) mod 20
 		else
-			transportVars['bus_wait_gadukino']	= (433 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_gadukino']	= (433 - minut - (hour-22) * 60)
 		end
 	elseif $ARGS[1] = 'pavstation':
 		if hour <= 4:
-			transportVars['bus_wait_gadukino']	= (315 - minut - hour * 60)
-			transportVars['bus_wait_pavlovsk']	= (361 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (315 - minut - hour * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (361 - minut - hour * 60)
 		elseif hour = 5:
-			transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
-			transportVars['bus_wait_pavlovsk']	= (61 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_pavlovsk']	= (61 - minut)
 		elseif hour >= 6 and hour <= 22 or hour = 22 and minut <= 55:
-			transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
-			transportVars['bus_wait_pavlovsk']	= (61 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_pavlovsk']	= (61 - minut) mod 20
 		elseif hour = 22 or hour = 23 and minut <= 41:
-			transportVars['bus_wait_gadukino']	= (435 - minut - (hour-22) * 60)
-			transportVars['bus_wait_pavlovsk']	= (61 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (435 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (61 - minut) mod 20
 		else
-			transportVars['bus_wait_gadukino']	= (375 - minut)
-			transportVars['bus_wait_pavlovsk']	= (421 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (375 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (421 - minut)
 		end
 	elseif $ARGS[1] = 'pushkin':
 		if hour <= 4:
-			transportVars['bus_wait_gadukino']	= (323 - minut - hour * 60)
-			transportVars['bus_wait_pavlovsk']	= (353 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (323 - minut - hour * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (353 - minut - hour * 60)
 		elseif hour = 5 and minut <= 53:
-			transportVars['bus_wait_gadukino']	= (63 - minut) mod 20
-			transportVars['bus_wait_pavlovsk']	= (53 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (63 - minut) mod 20
+			temp_transportVars['bus_wait_pavlovsk']	= (53 - minut)
 		elseif hour >= 5 and hour <= 22 or hour = 22 and minut <= 55:
-			transportVars['bus_wait_gadukino']	= (63 - minut) mod 20
-			transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (63 - minut) mod 20
+			temp_transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
 		elseif hour = 22 or hour = 23 and minut <= 3:
-			transportVars['bus_wait_gadukino']	= (3 - minut)
-			transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (3 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
 		elseif hour = 22 or hour = 23 and minut <= 33:
-			transportVars['bus_wait_gadukino']	= (435 - minut - (hour-22) * 60)
-			transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (435 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
 		else
-			transportVars['bus_wait_gadukino']	= (383 - minut)
-			transportVars['bus_wait_pavlovsk']	= (413 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (383 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (413 - minut)
 		end
 	elseif $ARGS[1] = 'construction':
 		if hour <= 4:
-			transportVars['bus_wait_gadukino']	= (338 - minut - hour * 60)
-			transportVars['bus_wait_pavlovsk']	= (338 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (338 - minut - hour * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (338 - minut - hour * 60)
 		elseif hour = 5 and minut <= 38:
-			transportVars['bus_wait_gadukino']	= (38 - minut)
-			transportVars['bus_wait_pavlovsk']	= (38 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (38 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (38 - minut)
 		elseif hour >= 5 and hour <= 22:
-			transportVars['bus_wait_gadukino']	= (78 - minut) mod 20
-			transportVars['bus_wait_pavlovsk']	= (78 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (78 - minut) mod 20
+			temp_transportVars['bus_wait_pavlovsk']	= (78 - minut) mod 20
 		elseif hour <= 23 and minut <= 18:
-			transportVars['bus_wait_gadukino']	= (18 - minut)
-			transportVars['bus_wait_pavlovsk']	= (18 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (18 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (18 - minut)
 		else
-			transportVars['bus_wait_gadukino']	= (398 - minut)
-			transportVars['bus_wait_pavlovsk']	= (398 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (398 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (398 - minut)
 		end
 	elseif $ARGS[1] = 'gadukino':
 		if hour <= 4:
-			transportVars['bus_wait_suburbs']	= (315 - minut - hour * 60)
-			transportVars['bus_wait_pavlovsk']	= (313 - minut - hour * 60)
+			temp_transportVars['bus_wait_suburbs']	= (315 - minut - hour * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (313 - minut - hour * 60)
 		elseif hour >= 5 and hour <= 22 or hour = 22 and minut <= 53:
-			transportVars['bus_wait_suburbs']	= (75 - minut) mod 20
-			transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
+			temp_transportVars['bus_wait_suburbs']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_pavlovsk']	= (73 - minut) mod 20
 		elseif hour = 22 and minut <= 55:
-			transportVars['bus_wait_suburbs']	= (55 - minut)
-			transportVars['bus_wait_pavlovsk']	= (433 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_suburbs']	= (55 - minut)
+			temp_transportVars['bus_wait_pavlovsk']	= (433 - minut - (hour-22) * 60)
 		else
-			transportVars['bus_wait_suburbs']	= (435 - minut - (hour-22) * 60)
-			transportVars['bus_wait_pavlovsk']	= (433 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_suburbs']	= (435 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_pavlovsk']	= (433 - minut - (hour-22) * 60)
 
 		end
 	elseif $ARGS[1] = 'communal':
 		if hour <= 4:
-			transportVars['bus_wait_suburbs']	= (335 - minut - hour * 60)
-			transportVars['bus_wait_gadukino']	= (325 - minut - hour * 60)
+			temp_transportVars['bus_wait_suburbs']	= (335 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (325 - minut - hour * 60)
 		elseif hour = 5 and minut <= 25:
-			transportVars['bus_wait_suburbs']	= (35 - minut)
-			transportVars['bus_wait_gadukino']	= (25 - minut)
+			temp_transportVars['bus_wait_suburbs']	= (35 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (25 - minut)
 		elseif hour = 5 and minut <= 35:
-			transportVars['bus_wait_suburbs']	= (75 - minut) mod 20
-			transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
+			temp_transportVars['bus_wait_suburbs']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
 		elseif hour >= 5 and hour <= 22:
-			transportVars['bus_wait_suburbs']	= (75 - minut) mod 20
-			transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
+			temp_transportVars['bus_wait_suburbs']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
 		elseif hour = 23 and minut <= 05:
-			transportVars['bus_wait_suburbs']	= (15 - minut)
-			transportVars['bus_wait_gadukino']	= (05 - minut)
+			temp_transportVars['bus_wait_suburbs']	= (15 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (05 - minut)
 		elseif hour = 23 and minut <= 15:
-			transportVars['bus_wait_suburbs']	= (15 - minut)
-			transportVars['bus_wait_gadukino']	= (385 - minut)
+			temp_transportVars['bus_wait_suburbs']	= (15 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (385 - minut)
 		else
-			transportVars['bus_wait_suburbs']	= (395 - minut)
-			transportVars['bus_wait_gadukino']	= (385 - minut)
+			temp_transportVars['bus_wait_suburbs']	= (395 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (385 - minut)
 		end
 	elseif $ARGS[1] = 'graveyard':
 		if hour <= 4:
-			transportVars['bus_wait_suburbs']	= (345 - minut - hour * 60)
-			transportVars['bus_wait_gadukino']	= (315 - minut - hour * 60)
+			temp_transportVars['bus_wait_suburbs']	= (345 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (315 - minut - hour * 60)
 		elseif hour = 5 and minut <= 15:
-			transportVars['bus_wait_suburbs']	= (45 - minut)
-			transportVars['bus_wait_gadukino']	= (15 - minut)
+			temp_transportVars['bus_wait_suburbs']	= (45 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (15 - minut)
 		elseif hour = 5 and minut <= 45:
-			transportVars['bus_wait_suburbs']	= (45 - minut)
-			transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_suburbs']	= (45 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
 		elseif hour >= 5 and hour <= 21 or hour = 22 and minut <= 55:
-			transportVars['bus_wait_suburbs']	= (65 - minut) mod 20
-			transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
+			temp_transportVars['bus_wait_suburbs']	= (65 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (75 - minut) mod 20
 		elseif hour = 22 or hour = 23 and minut <= 25:
-			transportVars['bus_wait_suburbs']	= (65 - minut) mod 20
-			transportVars['bus_wait_gadukino']	= (435 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_suburbs']	= (65 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (435 - minut - (hour-22) * 60)
 		else
-			transportVars['bus_wait_suburbs']	= (405 - minut)
-			transportVars['bus_wait_gadukino']	= (375 - minut)
+			temp_transportVars['bus_wait_suburbs']	= (405 - minut)
+			temp_transportVars['bus_wait_gadukino']	= (375 - minut)
 		end
 	elseif $ARGS[1] = 'suburbs':
 		if hour <= 4:
-			transportVars['bus_wait_gadukino']	= (305 - minut - hour * 60)
+			temp_transportVars['bus_wait_gadukino']	= (305 - minut - hour * 60)
 		elseif hour >= 5 and hour <= 22 or hour = 22 and minut <= 45:
-			transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
+			temp_transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
 		else
-			transportVars['bus_wait_gadukino']	= (425 - minut - (hour-22) * 60)
+			temp_transportVars['bus_wait_gadukino']	= (425 - minut - (hour-22) * 60)
 		end
-		transportVars['bus_wait_gadukino']	= (65 - minut) mod 20
 	end
 end
 
@@ -688,16 +621,7 @@ if $ARGS[0] = 'display_buspass_time':
 end
 
 if $ARGS[0] = 'display_bus_timecost':
-	temp_mins = transportVars['bus_time_<<$ARGS[1]>>_<<$ARGS[2]>>']
-	if $ARGS[1] = 'community' or ($ARGS[1] = 'pavstation' and $ARGS[2] ! 'community') or ($ARGS[1] = 'pushkin' and ($ARGS[2] = 'construction' or $ARGS[2] = 'gadukino')) or $ARGS[1] = 'construction' and $ARGS[2] = 'gadukino':
-		temp_mins += transportVars['bus_wait_gadukino']
-	elseif ($ARGS[1] = 'pavstation' and $ARGS[2] = 'community') or ($ARGS[1] = 'pushkin' and ($ARGS[2] = 'community' or $ARGS[2] = 'pavstation')) or ($ARGS[1] = 'construction' and $ARGS[2] ! 'gadukino') or ($ARGS[1] = 'gadukino' and ($ARGS[2] ! 'communal' and $ARGS[2] ! 'graveyard' and $ARGS[2] ! 'suburbs')):
-		temp_mins += transportVars['bus_wait_pavlovsk']
-	elseif $ARGS[1] = 'suburbs' or ($ARGS[1] = 'graveyard' and $ARGS[2] ! 'suburbs') or $ARGS[1] = 'communal' and $ARGS[2] = 'gadukino':
-		temp_mins += transportVars['bus_wait_gadukino']
-	else
-		temp_mins += transportVars['bus_wait_suburbs']
-	end
+	temp_mins = func('transport_functions', 'get_bus_timecost', $ARGS[1], $ARGS[2]) + func('transport_functions', 'get_bus_wait_time', $ARGS[1], $ARGS[2])
 
 	temp_hours = temp_mins / 60
 	temp_mins = temp_mins mod 60
@@ -921,90 +845,6 @@ if $ARGS[0] = 'display_bus_schedule':
 end
 
 
-if $ARGS[0] = 'init_bus_prices':
-	transportVars['bus_price_community_pavstation']		= func('transport_functions', 'get_bus_price', 'community', 'pavstation')
-	transportVars['bus_price_community_pushkin']		= func('transport_functions', 'get_bus_price', 'community', 'pushkin')
-	transportVars['bus_price_community_construction']	= func('transport_functions', 'get_bus_price', 'community', 'construction')
-	transportVars['bus_price_community_gadukino']		= func('transport_functions', 'get_bus_price', 'community', 'gadukino')
-
-	transportVars['bus_price_pavstation_community']		= transportVars['bus_price_community_pavstation']
-	transportVars['bus_price_pavstation_pushkin']		= func('transport_functions', 'get_bus_price', 'pavstation', 'pushkin')
-	transportVars['bus_price_pavstation_construction']	= func('transport_functions', 'get_bus_price', 'pavstation', 'construction')
-	transportVars['bus_price_pavstation_gadukino']		= func('transport_functions', 'get_bus_price', 'pavstation', 'gadukino')
-
-	transportVars['bus_price_pushkin_community']		= transportVars['bus_price_community_pushkin']
-	transportVars['bus_price_pushkin_pavstation']		= transportVars['bus_price_pavstation_pushkin']
-	transportVars['bus_price_pushkin_construction']		= func('transport_functions', 'get_bus_price', 'pushkin', 'construction')
-	transportVars['bus_price_pushkin_gadukino']			= func('transport_functions', 'get_bus_price', 'pushkin', 'gadukino')
-
-	transportVars['bus_price_construction_community']	= transportVars['bus_price_community_construction']
-	transportVars['bus_price_construction_pavstation']	= transportVars['bus_price_pavstation_construction']
-	transportVars['bus_price_construction_pushkin']		= transportVars['bus_price_pushkin_construction']
-	transportVars['bus_price_construction_gadukino']	= func('transport_functions', 'get_bus_price', 'construction', 'gadukino')
-
-	transportVars['bus_price_gadukino_community']		= transportVars['bus_price_community_gadukino']
-	transportVars['bus_price_gadukino_pavstation']		= transportVars['bus_price_pavstation_gadukino']
-	transportVars['bus_price_gadukino_pushkin']			= transportVars['bus_price_pushkin_gadukino']
-	transportVars['bus_price_gadukino_construction']	= transportVars['bus_price_gadukino_construction']
-	transportVars['bus_price_gadukino_communal']		= func('transport_functions', 'get_bus_price', 'gadukino', 'communal')
-	transportVars['bus_price_gadukino_graveyard']		= func('transport_functions', 'get_bus_price', 'gadukino', 'graveyard')
-	transportVars['bus_price_gadukino_suburbs']			= func('transport_functions', 'get_bus_price', 'gadukino', 'suburbs')
-
-	transportVars['bus_price_communal_gadukino']		= transportVars['bus_price_gadukino_communal']
-	transportVars['bus_price_communal_graveyard']		= func('transport_functions', 'get_bus_price', 'communal', 'graveyard')
-	transportVars['bus_price_communal_suburbs']			= func('transport_functions', 'get_bus_price', 'communal', 'suburbs')
-
-	transportVars['bus_price_graveyard_gadukino']		= transportVars['bus_price_gadukino_communal']
-	transportVars['bus_price_graveyard_communal']		= transportVars['bus_price_communal_graveyard']
-	transportVars['bus_price_graveyard_suburbs']		= func('transport_functions', 'get_bus_price', 'communal', 'suburbs')
-
-	transportVars['bus_price_suburbs_gadukino']			= transportVars['bus_price_gadukino_communal']
-	transportVars['bus_price_suburbs_communal']			= transportVars['bus_price_communal_graveyard']
-	transportVars['bus_price_suburbs_graveyard']		= transportVars['bus_price_graveyard_suburbs']
-end
-
-if $ARGS[0] = 'init_bus_timecosts':
-	transportVars['bus_time_community_pavstation']		= func('transport_functions', 'get_bus_timecost', 'community', 'pavstation')
-	transportVars['bus_time_community_pushkin']			= func('transport_functions', 'get_bus_timecost', 'community', 'pushkin')
-	transportVars['bus_time_community_construction']	= func('transport_functions', 'get_bus_timecost', 'community', 'construction')
-	transportVars['bus_time_community_gadukino']		= func('transport_functions', 'get_bus_timecost', 'community', 'gadukino')
-
-	transportVars['bus_time_pavstation_community']		= transportVars['bus_time_community_pavstation']
-	transportVars['bus_time_pavstation_pushkin']		= func('transport_functions', 'get_bus_timecost', 'pavstation', 'pushkin')
-	transportVars['bus_time_pavstation_construction']	= func('transport_functions', 'get_bus_timecost', 'pavstation', 'construction')
-	transportVars['bus_time_pavstation_gadukino']		= func('transport_functions', 'get_bus_timecost', 'pavstation', 'gadukino')
-
-	transportVars['bus_time_pushkin_community']			= transportVars['bus_time_community_pushkin']
-	transportVars['bus_time_pushkin_pavstation']		= transportVars['bus_time_pavstation_pushkin']
-	transportVars['bus_time_pushkin_construction']		= func('transport_functions', 'get_bus_timecost', 'pushkin', 'construction')
-	transportVars['bus_time_pushkin_gadukino']			= func('transport_functions', 'get_bus_timecost', 'pushkin', 'gadukino')
-
-	transportVars['bus_time_construction_community']	= transportVars['bus_time_community_construction']
-	transportVars['bus_time_construction_pavstation']	= transportVars['bus_time_pavstation_construction']
-	transportVars['bus_time_construction_pushkin']		= transportVars['bus_time_pushkin_construction']
-	transportVars['bus_time_construction_gadukino']		= func('transport_functions', 'get_bus_timecost', 'construction', 'gadukino')
-
-	transportVars['bus_time_gadukino_community']		= transportVars['bus_time_community_gadukino']
-	transportVars['bus_time_gadukino_pavstation']		= transportVars['bus_time_pavstation_gadukino']
-	transportVars['bus_time_gadukino_pushkin']			= transportVars['bus_time_pushkin_gadukino']
-	transportVars['bus_time_gadukino_construction']		= transportVars['bus_time_gadukino_construction']
-	transportVars['bus_time_gadukino_communal']			= func('transport_functions', 'get_bus_timecost', 'gadukino', 'communal')
-	transportVars['bus_time_gadukino_graveyard']		= func('transport_functions', 'get_bus_timecost', 'gadukino', 'graveyard')
-	transportVars['bus_time_gadukino_suburbs']			= func('transport_functions', 'get_bus_timecost', 'gadukino', 'suburbs')
-
-	transportVars['bus_time_communal_gadukino']			= transportVars['bus_time_gadukino_communal']
-	transportVars['bus_time_communal_graveyard']		= func('transport_functions', 'get_bus_timecost', 'communal', 'graveyard')
-	transportVars['bus_time_communal_suburbs']			= func('transport_functions', 'get_bus_timecost', 'communal', 'suburbs')
-
-	transportVars['bus_time_graveyard_gadukino']		= transportVars['bus_time_gadukino_communal']
-	transportVars['bus_time_graveyard_communal']		= transportVars['bus_time_communal_graveyard']
-	transportVars['bus_time_graveyard_suburbs']			= func('transport_functions', 'get_bus_timecost', 'communal', 'suburbs')
-
-	transportVars['bus_time_suburbs_gadukino']			= transportVars['bus_time_gadukino_communal']
-	transportVars['bus_time_suburbs_communal']			= transportVars['bus_time_communal_graveyard']
-	transportVars['bus_time_suburbs_graveyard']			= transportVars['bus_time_graveyard_suburbs']
-end
-
 
 if $ARGS[0] = 'get_bus_price':
 	result = func('transport_functions', '_private_bus_price', $ARGS[2]) - func('transport_functions', '_private_bus_price', $ARGS[1])

+ 1 - 1
locations/treeCircle.qsrc

@@ -29,7 +29,7 @@ $treeCircLoc['GadForest'] = 'gadforest'
 $treeCircArg['GadForest'] = 'forest_edge'
 !Pushkin Park Location
 $treeCircName['PushkinPark'] = 'Pushkin Park'
-$treeCircLoc['PushkinPark'] = 'lug'
+$treeCircLoc['PushkinPark'] = 'pushkin_parks'
 $treeCircArg['PushkinPark'] = 'prut2'
 !Communal Village Spring Location
 $treeCircName['Village'] = 'Communal Village Spring'

+ 422 - 73
locations/uni_dorm.qsrc

@@ -1,5 +1,5 @@
 # uni_dorm
-!!2022/10/05 - Alaratt
+!!2024/18/03 - Nutluck
 
 if $ARGS[0] = 'start':
 	*clr & cla
@@ -10,11 +10,11 @@ if $ARGS[0] = 'start':
 	gs 'themes', 'indoors'
 	minut += 1
 	gs 'stat'
+	$uni_dorm['floor'] = 'start'
 	*clr & cla
 	'<center><b><font color="maroon">Dormitory</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm.jpg"></center>'
 	'You walk up to the dorm building and head inside. It''s pretty clean and in good shape. An older woman, with a very unpleasant and judgmental look on her face sits in a room just off the main hallway. It has a partially glass wall and a window, splitting it from the main room. She looks up at you as you enter, her look telling you she''s already judging you as her face frowns into a look of disapproval.'
-
 	act 'Head outside':
 		minut += 1
 		killvar 'university_dorm'
@@ -26,13 +26,11 @@ if $ARGS[0] = 'start':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm.jpg"></center>'
 			'As you walk by, you take out your student ID and show it to her. She looks for just a second and nods before going back to what she was doing as you head for the elevators.'
-
 			act 'Take the elevator': gt 'uni_dorm', 'elevator'
 		end
 	else
 		menu_off = 1
 		'Since you''re not attending the university and don''t have a student ID, you won''t be allowed access to the dorms unless you''re on the guest list of a student.'
-
 		if DjibrilQW['invite'] = 1 and hour >= 8 and hour < 22:
 			act 'I''m here to visit Djibril':
 				*clr & cla
@@ -40,7 +38,6 @@ if $ARGS[0] = 'start':
 				'You walk over to the counter and pull out your ID. "I''m here to visit Djibril."' 
 				'The woman gives you a look of complete disgust. "What, your own kind not good enough for you? Go ahead and take care of those black cocks. He''s on the eighth floor, room 810."' 
 				'She turns away from you and goes back to what she was doing. Not wanting to get into an argument with her, you say nothing and quickly head for the elevator.'
-
 				act 'Take the elevator': gt 'uni_dorm', 'elevator'
 			end
 		end
@@ -54,7 +51,6 @@ if $ARGS[0] = 'start':
 				'She turns away from you and goes back to what she was doing. Not wanting to get into an argument with her, you say nothing and quickly head for the elevator.'
 				reccoldorm = 1
 				goshiflag = 1
-
 				act 'Take the elevator': gt 'uni_dorm', 'elevator'
 			end
 		end
@@ -77,7 +73,6 @@ if $ARGS[0] = 'start':
 					'You walk over to the counter and pull out your ID. "I''m here to visit Kendra."' 
 					'The woman gives you a look of complete disgust. "What, a man not good enough for you? Go ahead and serve that black whore. She''s on the eighth floor, room 801."' 
 					'She turns away from you and goes back to what she was doing. Not wanting to get into an argument with her, you say nothing and quickly head for the elevator.'
-
 					act 'Take the elevator': gt 'uni_dorm', 'elevator'
 				end
 			end
@@ -90,7 +85,17 @@ if $ARGS[0] = 'start':
 				'You walk over to the counter and pull out your ID. "I''m here to visit Katja Meynold."' 
 				'The woman smiles. "You''re one of Katja''s friends? She''s such a sweet girl. She''s on the second floor, room 204."'
 				'She lets you in and you thank her before heading for the elevator.'
-
+				act 'Take the elevator': gt 'uni_dorm', 'elevator'
+			end
+		end
+		
+		if artemQW['knows_dorm_room_number'] > 0 and yearstart > 1 and hour >= 8 and hour < 22:
+			act 'I''m here to visit Artem':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm.jpg"></center>'
+				'You walk over to the counter and pull out your ID. "I''m here to visit Artem Chebotarev."' 
+				'The woman smiles. "You''re one of Artem''s friends? He''s such a sweet boy. He''s on the second floor, room 209."'
+				'She lets you in and you thank her before heading for the elevator.'
 				act 'Take the elevator': gt 'uni_dorm', 'elevator'
 			end
 		end
@@ -132,7 +137,7 @@ if $ARGS[0] = 'elevator':
 	'<center><b><font color="maroon">Dormitory</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/elevator.jpg"></center>'
 	'You enter the dorm elevator. It seems to be in decent shape and fairly well maintained. The panel of floor numbers awaits your input.'
-	if func('uniutil', 'student', 'enrolled'):
+	if func('homes_properties', 'can_live_here'):
 		'Your dorm room is on the tenth floor.'
 	end
 
@@ -157,15 +162,53 @@ if $ARGS[0] = 'second_floor':
 	$location_type = 'public_indoors'
 	killvar '$locclass'
 	minut += 1
+	$uni_dorm['floor'] = 'second_floor'
 	gs 'katja_meynold_schedule'
+	!!gs 'artem_chebotarev_schedule'
 	gs 'stat'
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
 	'Before you is the usual dorm hallway with the dilapidated walls of the second floor. You can hear music and loud talking from drunk students escaping from some rooms.'
-
+	if totminut > uni_dorm['event_minut']:
+		if hour > 2 and (week < 6 and hour < 15) or (week > 5 and hour < 11): 
+			if rand(0,9) = 0: gt 'uni_dorm_events', 'dorm_floor'
+		else
+			if rand(0,4) = 0: gt 'uni_dorm_events', 'dorm_floor'	
+		end
+	end
 	act 'Elevator': gt 'uni_dorm', 'elevator'
+	if func('homes_properties', 'has_access', 'university_dorm'):
+		act 'Go to the shared lounge': gt 'uni_dorm', 'dorm_lounge'
+		act 'Go to the shared kitchen': gt 'uni_dorm', 'dorm_kitchen'
+		act 'Enter the women''s shower': minut += 1 & gt 'uni_dorm', 'dorm_shower_women'
+		gs 'willpower', 'exhib', 'self'
+		if will_cost <= pcs_willpwr:
+			act 'Enter the men''s shower (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'self'
+				gs 'willpower', 'pay', 'self'
+				gs 'stat'
+				gt 'uni_dorm', 'dorm_shower_men'
+			end
+		else
+			act 'Enter the men''s Shower (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		end
+	end
 
-	if katjaQW['knows_dorm_room_number'] > 0 and yearstart > 1 and katjaQW['QWstage'] >= 2:
+	act 'Enter the women''s restroom': minut += 1 & gt 'uni_dorm', 'womens_restroom'
+
+	gs 'willpower', 'exhib', 'self'
+	if will_cost <= pcs_willpwr:
+		act 'Enter the men''s restroom (<<will_cost>> Willpower)':
+			gs 'willpower', 'exhib', 'self'
+			gs 'willpower', 'pay', 'self'
+			gs 'stat'
+			gt 'uni_dorm', 'mens_restroom'
+		end
+	else
+		act 'Enter the men''s restroom (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+	end
+
+	if katjaQW['knows_dorm_room_number'] > 0 and yearstart > 1:
 		act 'Katja''s room':
 			*clr & cla 
 			if locat['katja'] = 24 or locat['katja']  = 31 or locat['katja']  = 35 or locat['katja']  = 51 or locat['katja']  = 52:
@@ -192,7 +235,7 @@ if $ARGS[0] = 'second_floor':
 				elseif (locat['katja'] = 32 or locat['katja'] = 33) and katjaQW['kitchen_day'] ! daystart:
 					'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
 					'You knock on the door, but no one answers. Noticing what time it is, you realise that Katja is likely in the shared kitchen.'
-					act 'Check if Katja is in the kitchen': gt 'katja_pantyquest', 'kitchen'
+					act 'Check if Katja is in the kitchen': gt 'katja_pantyquest', 'kitchen',  'from_room'
 				else
 					'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
 					'You knock on the door, but no one answers. She must be asleep or not home.'
@@ -204,6 +247,33 @@ if $ARGS[0] = 'second_floor':
 			end
 		end
 	end
+	if artemQW['knows_dorm_room_number'] > 0 and yearstart > 1:
+		act 'Artem''s room':
+			*clr & cla 
+			if locat['A2'] = 'dorm_room': 
+!!need code for when Artem is home
+!!list of places he is at times
+!!coffee hole week = 2 and nerd_game['fixed_uni_day'] = 0 and hour >= 18
+!!Mon-Fri during full class with electives class he is in class.
+!!2 hours after the end of class he is in the library
+!!1 hour after library study he is in the cafe having dinner.
+!!the rest of the time give him a 50/50 chance of being home so it shows he might go out with friends etc.
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big2.jpg"></center>'
+				if artemQW['artlie'] = 2 or artemQW['artembrokenheart'] = 1 or artemQW['artemblok'] = 1:
+					'You stand outside the dorm room, knocking on the door. The door is answered by Artem, who frowns as soon as he sees you. "I told you I never wanted to see you again! Please go away." He closes the door in your face without another word.'
+					act 'Leave': gt 'uni_dorm', 'second_floor'
+				else
+					'You stand outside the dorm room, knocking on the door, hoping that Artem will come to the door.'
+					'Artem opens the door smiling. "Hi <<$pcs_nickname>>. Come in, I was just studying but I can take a break." Once you walk inside, he closes the door and heads to the couch and takes a seat.'
+					act 'Enter': gt 'artem_dorm', 'start'
+				end
+			else
+				'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
+				'You knock on the door, but no one answers. He must be asleep or not home.'
+				act 'Leave': gt 'uni_dorm', 'second_floor'
+			end
+		end
+	end
 end
 
 if $ARGS[0] = 'sixth_floor':
@@ -215,13 +285,49 @@ if $ARGS[0] = 'sixth_floor':
 	$location_type = 'public_indoors'
 	killvar '$locclass'
 	minut += 1
+	$uni_dorm['floor'] = 'sixth_floor'
 	gs 'stat'
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
 	'Before you is the usual dorm hallway with the dilapidated walls of the sixth floor. You can hear music and loud talking from drunk students escaping from some rooms.'
-
+	if totminut > uni_dorm['event_minut']:
+		if hour > 2 and (week < 6 and hour < 15) or (week > 5 and hour < 11): 
+			if rand(0,9) = 0: gt 'uni_dorm_events', 'dorm_floor'
+		else
+			if rand(0,4) = 0: gt 'uni_dorm_events', 'dorm_floor'	
+		end
+	end
 	act 'Elevator': gt 'uni_dorm', 'elevator'
+	if func('homes_properties', 'has_access', 'university_dorm'):
+		act 'Go to the shared lounge': gt 'uni_dorm', 'dorm_lounge'
+		act 'Go to the shared kitchen': gt 'uni_dorm', 'dorm_kitchen'
+		act 'Enter the women''s shower': minut += 1 & gt 'uni_dorm', 'dorm_shower_women'
+		gs 'willpower', 'exhib', 'self'
+		if will_cost <= pcs_willpwr:
+			act 'Enter the men''s shower (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'self'
+				gs 'willpower', 'pay', 'self'
+				gs 'stat'
+				gt 'uni_dorm', 'dorm_shower_men'
+			end
+		else
+			act 'Enter the men''s Shower (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		end
+	end
 
+	act 'Enter the women''s restroom': minut += 1 & gt 'uni_dorm', 'womens_restroom'
+
+	gs 'willpower', 'exhib', 'self'
+	if will_cost <= pcs_willpwr:
+		act 'Enter the men''s restroom (<<will_cost>> Willpower)':
+			gs 'willpower', 'exhib', 'self'
+			gs 'willpower', 'pay', 'self'
+			gs 'stat'
+			gt 'uni_dorm', 'mens_restroom'
+		end
+	else
+		act 'Enter the men''s restroom (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+	end
 	if gosh > 0:
 		act 'Gosha''s room':
 			*clr & cla 
@@ -251,14 +357,50 @@ if $ARGS[0] = 'seventh_floor':
 	$location_type = 'public_indoors'
 	killvar '$locclass'
 	minut += 1
+	$uni_dorm['floor'] = 'seventh_floor'
 	gs 'albina_uni_schedule'
 	gs 'stat'
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
 	'Before you is the usual dorm hallway with the dilapidated walls of the seventh floor. You can hear music and loud talking from drunk students escaping from some rooms.'
-
+	if totminut > uni_dorm['event_minut']:
+		if hour > 2 and (week < 6 and hour < 15) or (week > 5 and hour < 11): 
+			if rand(0,9) = 0: gt 'uni_dorm_events', 'dorm_floor'
+		else
+			if rand(0,4) = 0: gt 'uni_dorm_events', 'dorm_floor'	
+		end
+	end
 	act 'Elevator': gt 'uni_dorm', 'elevator'
-	
+	if func('homes_properties', 'has_access', 'university_dorm'):
+		act 'Go to the shared lounge': gt 'uni_dorm', 'dorm_lounge'
+		act 'Go to the shared kitchen': gt 'uni_dorm', 'dorm_kitchen'
+		act 'Enter the women''s shower': minut += 1 & gt 'uni_dorm', 'dorm_shower_women'
+		gs 'willpower', 'exhib', 'self'
+		if will_cost <= pcs_willpwr:
+			act 'Enter the men''s shower (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'self'
+				gs 'willpower', 'pay', 'self'
+				gs 'stat'
+				gt 'uni_dorm', 'dorm_shower_men'
+			end
+		else
+			act 'Enter the men''s Shower (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		end
+	end
+
+	act 'Enter the women''s restroom': minut += 1 & gt 'uni_dorm', 'womens_restroom'
+
+	gs 'willpower', 'exhib', 'self'
+	if will_cost <= pcs_willpwr:
+		act 'Enter the men''s restroom (<<will_cost>> Willpower)':
+			gs 'willpower', 'exhib', 'self'
+			gs 'willpower', 'pay', 'self'
+			gs 'stat'
+			gt 'uni_dorm', 'mens_restroom'
+		end
+	else
+		act 'Enter the men''s restroom (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+	end
 	if AlbinaQW['dorm_invite'] = 1 and yearstart > 1:
 		act 'Albina''s room':
 			*clr & cla 
@@ -336,13 +478,53 @@ if $ARGS[0] = 'eighth_floor':
 	$location_type = 'public_indoors'
 	killvar '$locclass'
 	minut += 1
+	$uni_dorm['floor'] = 'eighth_floor'
 	gs 'stat'
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
-	'Before you is the usual dorm hallway with the dilapidated walls of the eighth floor. You can hear music and loud talking from drunk students escaping from some rooms.'
-
+	if func('homes_properties', 'has_access', 'university_dorm'):
+		'Before you is the usual dorm hallway with the dilapidated walls of the eighth floor. You can hear music and loud talking from drunk students escaping from some rooms, after living in the dorms for a bit. You now know this floor is often referred to as the African floor or the Blacks floor, all of the African students assigned to your dorm building where all assigned dorm rooms on this floor and no one else is assigned a room on this floor.'
+	else
+		'Before you is the usual dorm hallway with the dilapidated walls of the eighth floor. You can hear music you do notice the music sounds different, as in it is not the kind of music you are not as familiar with, their is also loud talking from some of the room. Most of it you can''t make out but sometimes when you can it is not in Russian.'
+	end
+	if totminut > uni_dorm['event_minut']:
+		if hour > 2 and (week < 6 and hour < 15) or (week > 5 and hour < 11): 
+			if rand(0,9) = 0: gt 'uni_dorm_events', 'dorm_floor8'
+		else
+			if rand(0,4) = 0: gt 'uni_dorm_events', 'dorm_floor8'	
+		end
+	end
 	act 'Elevator': gt 'uni_dorm', 'elevator'
+	if func('homes_properties', 'has_access', 'university_dorm'):
+		act 'Go to the shared lounge': gt 'uni_dorm', 'dorm_lounge'
+		act 'Go to the shared kitchen': gt 'uni_dorm', 'dorm_kitchen'
+		act 'Enter the women''s shower': minut += 1 & gt 'uni_dorm', 'dorm_shower_women'
+		gs 'willpower', 'exhib', 'self'
+		if will_cost <= pcs_willpwr:
+			act 'Enter the men''s shower (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'self'
+				gs 'willpower', 'pay', 'self'
+				gs 'stat'
+				gt 'uni_dorm', 'dorm_shower_men'
+			end
+		else
+			act 'Enter the men''s Shower (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		end
+	end
+
+	act 'Enter the women''s restroom': minut += 1 & gt 'uni_dorm', 'womens_restroom'
 
+	gs 'willpower', 'exhib', 'self'
+	if will_cost <= pcs_willpwr:
+		act 'Enter the men''s restroom (<<will_cost>> Willpower)':
+			gs 'willpower', 'exhib', 'self'
+			gs 'willpower', 'pay', 'self'
+			gs 'stat'
+			gt 'uni_dorm', 'mens_restroom'
+		end
+	else
+		act 'Enter the men''s restroom (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+	end
 	if DjibrilQW['invite'] = 1:
 		act 'Djibril'' room':
 			*clr & cla
@@ -515,6 +697,7 @@ if $ARGS[0] = 'tenth_floor':
 	$location_type = 'public_indoors'
 	killvar '$locclass'
 	minut += 1
+	$uni_dorm['floor'] = 'tenth_floor'
 	gs 'stat'
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
@@ -523,7 +706,13 @@ if $ARGS[0] = 'tenth_floor':
 	else
 		'Before you is the usual dorm hallway with dilapidated walls. You can hear music and loud talking from drunk students escaping from some rooms.'
 	end
-
+	if totminut > uni_dorm['event_minut']:
+		if hour > 2 and (week < 6 and hour < 15) or (week > 5 and hour < 11): 
+			if rand(0,9) = 0: gt 'uni_dorm_events', 'dorm_floor'
+		else
+			if rand(0,4) = 0: gt 'uni_dorm_events', 'dorm_floor'	
+		end
+	end
 	act 'Go outside':
 		killvar 'university_dorm'
 		minut += 6
@@ -533,10 +722,21 @@ if $ARGS[0] = 'tenth_floor':
 
 	if func('homes_properties', 'has_access', 'university_dorm'):
 		gs 'courtletter'
-
 		act 'Your room': gt 'uni_dorm', 'dorm_room'
+		act 'Go to the shared lounge': gt 'uni_dorm', 'dorm_lounge'
 		act 'Go to the shared kitchen': gt 'uni_dorm', 'dorm_kitchen'
-		act 'Go to the shared shower': gt 'vann', 'start'
+		act 'Enter the women''s shower': minut += 1 & gt 'uni_dorm', 'dorm_shower_women'
+		gs 'willpower', 'exhib', 'self'
+		if will_cost <= pcs_willpwr:
+			act 'Enter the men''s shower (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'self'
+				gs 'willpower', 'pay', 'self'
+				gs 'stat'
+				gt 'uni_dorm', 'dorm_shower_men'
+			end
+		else
+			act 'Enter the men''s Shower (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		end
 	end
 
 	act 'Enter the women''s restroom': minut += 1 & gt 'uni_dorm', 'womens_restroom'
@@ -560,8 +760,124 @@ if $ARGS[0] = 'tenth_floor':
 !!	end
 end
 
+if $args[0] = 'dorm_lounge':
+	$loc_arg = 'dorm_lounge'
+	$loc = 'uni_dorm'
+    $location_type = 'private'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'dorm_lounge'
+	menu_off = 0
+	minut += 1
+	gs 'stat'
+	*clr & cla
+	'<center><b>Dorm Lounge</b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_lounge.jpg"></center>'
+	'This is the large shared lounge for this floor. It is fairly tidy, with a few little squares. A tv on along a wall creates one side of the square while couches or chairs make up the other three sides, with just enough space between them to allow people to enter or leave the little squares. Several such entertainment squares line the room with a few vending machines.'
+	act 'Return to the corridor': gt 'uni_dorm', $uni_dorm['floor']
+	act 'Watch tv': gt 'uni_dorm', 'dorm_lounge_watch_tv'
+	act 'Relax': gt 'uni_dorm', 'dorm_lounge_relax'
+	!!act 'Buy snacks':
+!!I commented this out because I have no clue how to do this, if you know how to do it. Just have it charge what the kiosk does for snacks/drink and then return to this room.
+end
+
+if $args[0] = 'dorm_lounge_watch_tv':
+	$loc_arg = 'dorm_lounge_watch_tv'
+	$loc = 'uni_dorm'
+    $location_type = 'private'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'dorm_lounge_watch_tv'
+	menu_off = 0
+	minut += 30
+	pcs_mood += 15
+	gs 'stat'
+	*clr & cla
+	'<center><b>Dorm Lounge TV</b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_lounge.jpg"></center>'
+	'You take a seat on one of the couches and watch a little tv, there is not a lot on but it kills a little time.'
+	act 'Return to the corridor': gt 'uni_dorm', $uni_dorm['floor']
+	act 'Keep watching tv': gt 'uni_dorm', 'dorm_lounge_watch_tv'
+end
+
+if $args[0] = 'dorm_lounge_relax':
+	$loc_arg = 'dorm_lounge_relax'
+	$loc = 'uni_dorm'
+    $location_type = 'private'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'dorm_lounge_relax'
+	menu_off = 0
+	minut += 15
+	pcs_mood += 5
+	gs 'stat'
+	*clr & cla
+	'<center><b>Dorm Lounge Relax</b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_lounge.jpg"></center>'
+	'You take a seat on one of the couches and just chill out for a bit relaxing.'
+	act 'Return to the corridor': gt 'uni_dorm', $uni_dorm['floor']
+	act 'Keep relaxing': gt 'uni_dorm', 'dorm_lounge_relax'
+end
+
+if $args[0] = 'dorm_kitchen':
+	$loc_arg = 'dorm_kitchen'
+	$loc = 'uni_dorm'
+    $location_type = 'private'
+	$locclass = 'kitr'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'dorm_kitchen'
+	menu_off = 0
+	food_loc = 0
+	minut += 1
+	gs 'kit_din'
+	gs 'katja_meynold_schedule'
+	gs 'stat'
+	*clr & cla
+	'<center><b>Dorm Kitchen</b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_kitchen.jpg"></center>'
+	'The large shared kitchen for this floor. It is fairly tidy, with a lot of cabinets along two of the walls. Two ovens and two refrigerators, as well as several tables with chairs around them, are scattered around the room.'
+	if (locat['katja'] = 32 or locat['katja'] = 33) and $uni_dorm['floor'] = 'second_floor':
+		if katjaQW['kitchen_day'] ! daystart:
+			'You see '+iif(katjaQW['know_katja_uni'] = 0 and ($start_type['loc'] ! 'sg' and $start_type['magic'] = 'tg'), 'a cute redheaded girl', '<a href="exec:gt ''katja_pantyquest'', ''kitchen''">Katja</a>')+iif((katjaQW['pantiesQWstage'] < 3 or (katjaQW['pantiesQWstage'] = 3 and katjaQW['slut'] < 65) or katjaQW['pantiesQWstage'] = 4) and katjaQW['take_of_panties_day'] ! daystart, 'sitting in a chair.', 'standing at the kitchen table.')
+		else
+			if locat['katja'] = 32:
+				'You see '+iif(katjaQW['know_katja_uni'] = 0 and ($start_type['loc'] ! 'sg' and $start_type['magic'] = 'tg'), 'a cute redheaded girl', 'Katja')+' at the kitchen tables coking.'
+			else
+				'You see '+iif(katjaQW['know_katja_uni'] = 0 and ($start_type['loc'] ! 'sg' and $start_type['magic'] = 'tg'), 'a cute redheaded girl', 'Katja')+' at the table eating her dinner.'
+			end
+		end
+	end
+
+	act 'Return to the corridor': gt 'uni_dorm', $uni_dorm['floor']
+	if  $uni_dorm['floor'] = 'tenth_floor':
+		if mc_inventory['food_basic'] > 0:
+			if edahot = 0:
+				$edagot = '<a href="exec:dynamic $edagotd">Cook a meal</a>'
+			else
+				$edagot = ''
+			end
+			'Your shelf in the refrigerator holds enough food for <b><<mc_inventory[''food_basic'']>></b> ' + iif(mc_inventory['food_basic'] = 1, 'serving', 'servings') + '. <<$edagot>>'
+		else
+			'<b><font color="red">Your shelf in the refrigerator is bare. There is nothing left for you to eat.</font></b>'
+		end
+
+		if edahot > 0:'<a href="exec:dynamic $edahotd">There''s a warm meal on the table.</a>'
+
+		dynamic $edasnack
+		dynamic $sandwich
+
+		dynamic $dritea
+		dynamic $edaD
+		dynamic $pranik
+		dynamic $fatdel
+		dynamic $lekarstvo
+		dynamic $vitamin
+	end
+	dynamic $driwater
+	dynamic $fill_bottle
+end
+
 if $ARGS[0] = 'mens_restroom':
 	$location_type = 'public_indoors'
+	$loc = 'uni_dorm'
+	$loc_arg = 'mens_restroom'
 	$menu_loc = 'uni_dorm'
 	$menu_arg = 'mens_restroom'
 	$locM = 'uni_dorm'
@@ -573,16 +889,17 @@ if $ARGS[0] = 'mens_restroom':
 	'<center><b><font color="maroon">Dormitory - Men''s Restroom</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/restrooms/bathroom_mens.jpg"></center>'
 	'You peek around the corner. Stalls line the right side of the room, with urinals on the far wall and rows of sinks and <a href="exec:gt ''mirror'', ''start''">mirrors</a> to the left. The room smells strongly of disinfectant and stale piss.'
-
-	act 'Leave': gt 'uni_dorm', 'tenth_floor'
-
+	act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
 	dynamic $tampon
 	dynamic $quickwash
 	dynamic $basin
+!!if this has a shower function tied to it, can that be removed now that we have actual showers
 end
 
 if $ARGS[0] = 'womens_restroom':
 	$location_type = 'public_indoors'
+	$loc = 'uni_dorm'
+	$loc_arg = 'womens_restroom'
 	$menu_loc = 'uni_dorm'
 	$menu_arg = 'womens_restroom'
 	$locM = 'uni_dorm'
@@ -594,14 +911,94 @@ if $ARGS[0] = 'womens_restroom':
 	'<center><b><font color="maroon">Dormitory - Women''s Restroom</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/restrooms/bathroom_womens.jpg"></center>'
 	'You peek around the corner. Stalls line the right side of the room, with rows of sinks with <a href="exec:gt ''mirror'', ''start''">mirrors</a> to the left. The room smells strongly of disinfectant.'
+	act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	dynamic $tampon
+	dynamic $quickwash
+	dynamic $basin
+!!if this has a shower function tied to it, can that be removed now that we have actual showers
+end
 
-	act 'Leave': gt 'uni_dorm', 'tenth_floor'
+if $ARGS[0] = 'dorm_shower_men':
+	$location_type = 'public_indoors'
+	$loc = 'uni_dorm'
+	$loc_arg = 'dorm_shower_men'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'dorm_shower_men'
+	$locM = 'uni_dorm'
+	$locM_arg = 'dorm_shower_men'
+	menu_off = 0
+	minut += 1
+	gs 'stat'
+	*clr & cla
+	'<center><b><font color="maroon">Dormitory - Men''s Communal Showers</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/showers/empty.jpg"></center>'
+	'You open the door and walk down to the end of the L shaped hall to peek around the corner. In the nearest corner is a small alcove of lockers and a couple of benches, closest to the entry point is two rows of sinks and <a href="exec:gt ''mirror'', ''start''">mirrors</a>. On the other side of the room a walk way leads off to the communal <a href="exec:gt ''uni_dorm'', ''mens_shower''">showers</a>.'
+	act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	dynamic $tampon
+	dynamic $quickwash
+	dynamic $basin
+!!if this has a shower function tied to it, can that be removed now that we have actual showers
+end
 
+if $ARGS[0] = 'dorm_shower_women':
+	$location_type = 'public_indoors'
+	$loc = 'uni_dorm'
+	$loc_arg = 'dorm_shower_women'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'dorm_shower_women'
+	$locM = 'uni_dorm'
+	$locM_arg = 'dorm_shower_women'
+	menu_off = 0
+	minut += 1
+	gs 'stat'
+	*clr & cla
+	'<center><b><font color="maroon">Dormitory - Women''s Communal Showers</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/showers/empty.jpg"></center>'
+	'You open the door and walk down to the end of the L shaped hall, which takes you to the main area of the communal shower room. In the nearest corner is a small alcove of lockers and a couple of benches, closest to the entry point is two rows of sinks and <a href="exec:gt ''mirror'', ''start''">mirrors</a>. On the other side of the room a walk way leads off to the communal <a href="exec:gt ''uni_dorm'', ''womens_shower''">showers</a>.'
+	act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
 	dynamic $tampon
 	dynamic $quickwash
 	dynamic $basin
 end
 
+if $ARGS[0] = 'mens_shower':
+	$location_type = 'public_indoors'
+	$loc = 'uni_dorm'
+	$loc_arg = 'mens_shower'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'mens_shower'
+	$locM = 'uni_dorm'
+	$locM_arg = 'mens_shower'
+	menu_off = 0
+	minut += 1
+	gs 'stat'
+	*clr & cla
+	'<center><b><font color="maroon">Dormitory - Men''s Showers</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/showers/empty_showers.jpg"></center>'
+	'The room is currently empty, inside you can see a line of showers with small baskets on the wall just under the shower heads to store your shampoo and other products in while someone showers. There is a small drain in the floor.'
+	act 'Leave': gt 'uni_dorm', 'dorm_shower_men'
+	gs 'din_van', 'private'
+end
+
+if $ARGS[0] = 'womens_shower':
+	$location_type = 'public_indoors'
+	$loc = 'uni_dorm'
+	$loc_arg = 'womens_shower'
+	$menu_loc = 'uni_dorm'
+	$menu_arg = 'womens_shower'
+	$locM = 'uni_dorm'
+	$locM_arg = 'womens_shower'
+	menu_off = 0
+	minut += 1
+	gs 'stat'
+	*clr & cla
+	'<center><b><font color="maroon">Dormitory - Women''s Showers</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/showers/empty_showers.jpg"></center>'
+	'The room is currently empty, inside you can see a line of showers with small baskets on the wall just under the shower heads to store your shampoo and other products in while someone showers. There is a small drain in the floor.'
+	act 'Leave': gt 'uni_dorm', 'dorm_shower_women'
+	gs 'din_van', 'private'
+end
+
 if $ARGS[0] = 'dorm_room':
 	$sexloc = 'uni_dorm'
 	CLOSE ALL
@@ -625,10 +1022,9 @@ 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
 	if hour > 14 and hour < func('bordel', 'open_hour'):
 		vika_inroom = 1
+		vika_sleep = 0
 		if npc_rel['A220'] >= 60 and birthday = day and birthmonth = month and vikaslut = 1 and b_vika_present_Day ! daystart:
 			$vikatext = '<a href="exec:gt''Vika''">Vika</a> seems excited when she notices you. She is trying to hide a box behind her back.'
 		else
@@ -644,9 +1040,6 @@ if $ARGS[0] = 'dorm_room':
 			$vikatext = '<a href="exec:gt''Vika''">Vika</a> is sleeping in her bed after working hard in the brothel all night.'
 		end
 		gs 'music_actions', 'no_music'
-	else
-		vika_inroom = 0
-		vika_sleep = 0
 	end
 
 	if mc_inventory['tech_computer'] = 1:
@@ -720,49 +1113,5 @@ if $ARGS[0] = 'dorm_room':
 	gs 'music_actions', 'music_icon'
 end
 
-if $args[0] = 'dorm_kitchen':
-	$loc_arg = 'dorm_kitchen'
-	$loc = 'uni_dorm'
-    $location_type = 'private'
-	$locclass = 'kitr'
-	$menu_loc = 'uni_dorm'
-	$menu_arg = 'dorm_kitchen'
-	menu_off = 0
-	food_loc = 0
-	minut += 1
-	gs 'kit_din'
-	gs 'stat'
-	*clr & cla
-	'<center><b>Dorm Kitchen</b></center>'
-	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_kitchen.jpg"></center>'
-	'The large shared kitchen for this floor. It is fairly tidy, with a lot of cabinets along two of the walls. Two ovens and two refrigerators, as well as several tables with chairs around them, are scattered around the room.'
-
-	act 'Return to the corridor': gt 'uni_dorm', 'tenth_floor'
-
-	if mc_inventory['food_basic'] > 0:
-		if edahot = 0:
-			$edagot = '<a href="exec:dynamic $edagotd">Cook a meal</a>'
-		else
-			$edagot = ''
-		end
-		'Your shelf in the refrigerator holds enough food for <b><<mc_inventory[''food_basic'']>></b> ' + iif(mc_inventory['food_basic'] = 1, 'serving', 'servings') + '. <<$edagot>>'
-	else
-		'<b><font color="red">Your shelf in the refrigerator is bare. There is nothing left for you to eat.</font></b>'
-	end
-
-	if edahot > 0:'<a href="exec:dynamic $edahotd">There''s a warm meal on the table.</a>'
-
-	dynamic $edasnack
-	dynamic $sandwich
-	dynamic $driwater
-	dynamic $dritea
-	dynamic $fill_bottle
-	dynamic $edaD
-	dynamic $pranik
-	dynamic $fatdel
-	dynamic $lekarstvo
-	dynamic $vitamin
-end
-
 --- uni_dorm ---------------------------------
 

+ 558 - 0
locations/uni_dorm_events.qsrc

@@ -0,0 +1,558 @@
+# uni_dorm_events
+!!2024/18/03 - Nutluck
+
+if $ARGS[0] = 'dorm_floor':
+	*clr & cla
+	menu_off = 1
+	temp = rand(1,12)
+	uni_dorm['event_minut'] = totminut + 60
+	if temp = 1:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/2girl_hump1.jpg"></center>'
+		'As you walk down the hall, you see two girls grinding and dancing provocatively against each other while another takes photos with her phone. As a couple of boys a little ways away watch the girls drying humping each other in the hallway. You wonder as you pass them by if the girls are just doing it to get the boys attention or if they are doing it because they are into it.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 2:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/3naked_girls3.jpg"></center>'
+		'As you walk down the hall, you''re greeted by three tipsy, giggling, completely naked girls passing you by. The dark haired one of the group looks familiar, you''re sure you''ve seen her around campus before, and she just so happens to be getting her breasts groped from behind from one of her friends. They push by you and continue into the stairwell, leaving you to imagine just where they''re off to next.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 3:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/4girls_running.jpg"></center>'
+		'You walk down the mostly quiet hall when suddenly four girls come screaming and laughing down the hallway at you at full speed! You dodge out of the way and they continue sprinting away. What was THAT about?'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 4:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/naked_couple1.jpg"></center>'
+		'As you walk down the hall, you see a totally naked girl riding on the back of a totally naked guy. This place is crazy sometimes!'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 5:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/naked_girl1.jpg"></center>'
+		'You walk down the hallway of the six floor when suddenly one of the dorm room doors opens and a completely naked girl steps into view, then walks down the hall to communal showers.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 6:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/naked_girls_group2.jpg"></center>'
+		'There''s loud, booming music on the sixth floor of the dorms today. As you walk though it''s easy to tell where it''s coming from; an open door at the end of the hall where a group of semi and completely nude girls are running in out with drinks in hand. Seeing how much fun they''re having you almost consider asking them for a drink, but only for a moment, before you decide to just keep on walking.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 7:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/naked_guy_lock.jpg"></center>'
+		'There''s some definite drama going on up here today. You see a totally stripped guy pleading with someone through the locked dorm room door. This has obviously gone on for a while already seeing as other girls have congregated outside their own rooms to watch the show, all snickering and taking photos of the banished young man.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 8:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/nude_girl_bentover.jpg"></center>'
+		'You''re welcomed to the floor with quite the view today! A naked girl is completely bent over, picking up her things. Despite the scene, no one else seems to be surprised by this, simply passing her by and minding their own business.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 9:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/splits_girl.jpg"></center>'
+		'There''s a few girls gathered in the hallway today, talking amongst themselves. You hear one of them dare the other to do a handstand. Almost immediately she takes off her shoes and balances herself against the wall before flipping up onto her hands. This causes her skirt to drop over her waist however, exposing her panties to her friends, as well as a few passing guys. The girl quickly drops back to her face, her cheeks flushed with embarrassment.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 10:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/topless_girl1.jpg"></center>'
+		'You pass several people walking around in just their underwear or in the case of one girl she is completely naked. No one seems to take all that much notice of each other as they get on with their daily routine.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+	else
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
+		'As you walk down the hallway you can''t help but hear some noises coming from one of the rooms. You stop near the door and listen a moment but you can''t make it out. You could try the door and see if it is unlocked... or maybe you should mind your own business.'
+		act 'Keep going': gt 'uni_dorm', $uni_dorm['floor']
+		act 'Try the door':
+			'<center><img <<$set_imgh>> src="images/pc/activities/spy/peep3.jpg"></center>'
+			'You stop up to the door and check the handle, it turns easily in your hands, so it is not locked. But do you dare peep and see what is going on? Are you that kind of person? Or should you just go on? You feel torn, you really want to know, but what if someone see''s?'
+			act 'Don''t peek': gt 'uni_dorm', $uni_dorm['floor']
+			act 'Peek': gt 'uni_dorm_events', 'dorm_floor_sex'
+		end
+	end
+end
+
+if $ARGS[0] = 'dorm_floor_sex':
+	*clr & cla
+	menu_off = 1
+	temp = rand(1,27)
+	if temp = 1:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_2wm_orgy1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see two girls riding two guys reverse cowgirl style, toasting each other with drinks as they fuck the guys beneath them. They seem to be having a lot of fun drinking while they fuck, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 2:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_2wm_orgy2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see two girls riding two guys reverse cowgirl style, high fiving each other as they fuck the guys beneath them. They seem to be having a lot of fun drinking while they fuck, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 3:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_cuni1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see one girl straddling another girls face, she moans loudly as she is obviously being eaten out by the other one, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 4:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_cuni2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see one girl on her elbows and knees with another girl behind her with her face buried in the first girls crotch, obviously eating her out as the first girl moans loudly, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 5:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_cuni3.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see two girls sixty-nining each other, both moaning loudly as they do, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 6:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_strap_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a brunette on the bed on all fours, while a blond kneels behind her wearing a strapon. The blond is roughly fucking the brunette in the ass with the strapon as she says. "What the fuck did I tell you about fucking my boyfriend."'
+		'The brunette doesn''t seem to be enjoying the ass fucking she is getting. "I''m sorry... I was drunk... please stop... it hurts."'
+		'The blond shakes her head. "Not until I am convinced you have learned your lesson." She says as she keeps fucking apparently her friend? While curious to know the whole story you quietly close the door before you get caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 7:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_strap1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a blond wearing a strapon fucking a brunette''s pussy with it, the brunette seems to be loving it. Just as you are about to close the door the blond looks over and see''s you. "What the fuck! Close the door pervert!" You blush and quickly close the door.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 8:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_wm_3some1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a guy laying on the bed on his back with his legs hanging off the edge of it. One girl rides his dick reverse cowgirl style, while another sits on the guys face. The cowgirl is looking right at you when you open the door, you blush and quickly close the door.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 9:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_wm_3some2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a blond on all fours with another girl sitting in front of her with her legs spread wide, obviously waiting to be eaten out by the blond. Behind the blond is a guy stroking his dick to make it hard, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 10:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_wm_3some3.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a guy laying on his back on the bed, one girl kneels next to his face and starts making out with him shortly after you open the door, another girl is kneeling by his waist and has been giving him a blow job since your peeked in the door, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 11:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/2wf_wm_3some4.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a guy laying on his back on the bed, while one girl is straddling his face, while another one is riding his dick cowgirl style. The two girls facing each other are making out as they ride the guy, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 12:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_2wm_3some1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked girl on all fours on a couch, while a guy is fucking her from behind. As she is getting fucked she is looking and smiling at a second guy that is watching her get fucked and jerking off, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 13:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_2wm_3some2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a girl on all fours on the bed, sucking one guy off in front of her while a second guy fucks her from behind, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 14:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_2wm_dp1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a guy laying on the a bed while a girl straddles him riding him cowgirl style. As you watch another guy comes up behind her, his dick disappears between her butt cheeks as she cries out. She continues to ride the guy beneath her as the other one fucks her ass from behind, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 15:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_2wm_dp2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a guy laying on the floor while a girl straddles him riding him cowgirl style. As you watch another guy comes up behind her, and pushes her forward until she is laying on top of the first guy. You watch as the second guys dick disappears between her butt cheeks as grunts. She continues to ride the guy beneath her as the other one fucks her ass from behind, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 16:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_5wm_gb1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You look inside and see a girl kneeling bent over with three guys in front of her. She is sucking the dick of one of them while jerking the other two off with her hands, a fourth guy has his dick shoved up her ass fucking her nice and hard. While a fifth guys stands next to them all jerking off, waiting his turn, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 17:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a girl on all fours on the bed, while a guy is fucking her ass from behind. By the sounds of her moans it sounds like she is enjoying it as much as he is, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 18:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_anal2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a guy sitting on a couch with a girl riding him reverse cowgirl style, though his dick is in her ass instead of her pussy, she is riding him hard and moaning loudly. She seems to be enjoying being fucked in the butt more than he seems to be and he seems to be really enjoying himself, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 19:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_anal3.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. The first thing you hear is the girl begging. "Please not my ass... please it hurts." As you look you see a girl naked from the waist down bent over the seat of a couch, while a guy roughly fucks her behind, the next thing you notice is her hands are handcuffed behind her back. "Just relax and it won''t hurt so much, you agreed to try it." He says as he keeps savagely fucking her ass, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 20:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_bj1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked guy standing there with a naked girl kneeling in front of him, her head bobs back and forth as she sucks his dick, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 21:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_bj2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A guy lays on his back on the bed, while a girl kneels between his between his legs sucking his dick, her head bobbing up and down as she does, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 22:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_cowgirl1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A guy lays on his back on the bed while a girl rides his dick cowgirl style they seem to be really enjoying themselves. So much so they high five each other in the middle of it, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 23:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_cuni1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A naked girl is on all fours on a bed, while a guy kneels behind her, with his face buried in her ass. She is moaning loudly, as he eats her out from behind, just as you are about to close the door he looks right at you and your eyes meet, then he gives you a double thumbs up. Blushing you quickly close the door.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 24:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_cuni2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A naked guy lays on a cough on his back while a girl naked from the waist down rides his face, as you watch she looks over at you and grins, having been caught peeking you blush bright red and quickly close the door.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 25:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_vag1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A girl naked from the waist down lays on her back with her legs against her body, while a guy practically lays on top of her fucking her missionary style, you think you rarely see anyone doing missionary much anymore as you quietly close the door and leave.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	elseif temp = 26:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/bf_3wm_voyeur1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked black girl laying on her side on the bed, with a white guy laying behind her fucking her. Two more white guys are crowded near the couple watching them as the guy fucks her, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	else
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor/sex/wf_wm_vag2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A naked girl is on all fours on a bed, while a naked guy is fucking her from behind. She keeps egging him on to go harder and faster which he tries to the best of his ability, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', $uni_dorm['floor']
+	end
+end
+
+if $ARGS[0] = 'dorm_floor8':
+	*clr & cla
+	menu_off = 1
+	uni_dorm['event_minut'] = totminut + 60
+	temp = rand(1,8)
+	if temp = 1:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/cuffed_girl.jpg"></center>'
+		'As you walk down the hall, you see a naked white girl standing next to a dorm room door. Her hands are handcuffed behind her back, with another pair of cuffs with a short chain is cuffed around each of her ankles. When she notices you coming down the hall she blushes and hides her face, obviously embarrassed. You have no clue why she is out in the hallway like that but it is none of your business as she seems to be going along with it.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 2:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/ebony_lezdom.jpg"></center>'
+		'As you walk down the hall, you''re greeted by a ebony girl pinning a white girl against the wall. She has one of her hands wrapped around the white girls neck while the  other one slides down the white girls body to her crotch, where the black girl roughly grabs the white girl by the cunt, causing the white girl to wince in obvious pain.' 
+		'"What the fuck did I tell you, you little whore?" The ebony girl says.'
+		'The white girl responds. "I''m sorry but it hurt, his dick was to big." It seems you have come into the middle of their conversation.'
+		'The ebony girl twists her hand in the white girl girls crotch, causing her to winces more. "I don''t fucking care if it hurts, I bet this hurts even more doesn''t it?"'
+		*nl
+		'The white girl nods. "That''s right, the next time I sell your skinny white ass to one of the brothers on this floor and he wants to fuck that tight little ass of yours. You are going to take it and not tell him to stop, instead you are going to tell him to fuck your ass harder. You got it?"'
+		'The white girl nods and the breaths a sigh of relief as the black girl lets go of her. "We have this conversation again and you are going to really regret it." When the white girl nods again the ebony girl continues. "Good now get down to room eight twelve, there''s a few boys expecting you." With that the white girl hurries down the hallway, stopping to knock on a door, when it opens she goes inside. The ebony girl looks at you as you pass. "What the fuck you looking it?" Then she goes into the dorm room she was standing next to, you have to wonder if she is pimping out the other girl, it sure sounded like she was.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 3:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/ir_kiss' + rand(1,2) + '.jpg"></center>'
+		'As you walk down the hall, you spot a couple, a white girl with a black guy. They stop in front of one of the doors and make up for a few moments before the guy unlocks the door and leads the girl into his room.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 4:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/naked_wgirl.jpg"></center>'
+		'As you walk down the hall, you see a totally naked girl, standing in front of one of the dorm room doors knocking, a few moments later a black guy opens the door. He looks the girl over with a huge smile, stepping aside to let her walk in. He looks to you a gives you a wink as he closes the door.'
+		gs 'arousal', 'voyeur', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 5:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/party_girl.jpg"></center>'
+		'As you walk down the hall, you meet a girl coming the other way. She is wearing a tight black skirt, with a black bra visible under her black sheer top. She seems a bit unsteady on her feet, stumbling a bit as she walks, she gives you a friendly smile as she walks past you. You can''t tell if she is drunk or high, or possible both.'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 6:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/wg_bm.jpg"></center>'
+		'As you walk down the hall, you see a white girl being followed by a black guy, she stops in front of one of the dorm room doors and opens it. As she does the guy gives her ass a hard slap, causing her to yelp a bit. She turns to give him a look, but you are unsure if she was into it or not, but if not it doesn''t seem to bother her that much as she walks into the dorm room, followed by the guy who closes the door once they are inside.'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+	else
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_hall.jpg"></center>'
+		'As you walk down the hallway you can''t help but hear some noises coming from one of the rooms. You stop near the door and listen a moment but you can''t make it out. You could try the door and see if it is unlocked... or maybe you should mind your own business.'
+		act 'Keep going': gt 'uni_dorm', 'eighth_floor'
+		act 'Try the door':
+			'<center><img <<$set_imgh>> src="images/pc/activities/spy/peep3.jpg"></center>'
+			'You stop up to the door and check the handle, it turns easily in your hands, so it is not locked. But do you dare peep and see what is going on? Are you that kind of person? Or should you just go on? You feel torn, you really want to know, but what if someone see''s?'
+			act 'Don''t peek': gt 'uni_dorm', 'eighth_floor'
+			act 'Peek': gt 'uni_dorm_events', 'dorm_floor_eight_sex'
+		end
+	end
+end
+
+if $ARGS[0] = 'dorm_floor_eight_sex':
+	*clr & cla
+	menu_off = 1
+	temp = rand(1,29)
+	if temp = 1:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/2bf_1wf1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a white girl laying on the floor on her back with a black girl straddling her face getting eaten out, while another black girl kneels next to them rubbing her clit as she watches. Over on the couch a couple of guys watch the girls, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 2:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/2bf_1wf2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a couple of black girls laying on the floor with their legs spread wide, both of them are rubbing the clit of one of the girls, while a white girl is laying on her stomach with her head between the legs of the other girl eating her out, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 3:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/2bf_strap_vag1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a pair of black girls, one of them is bent over while he friend stands behind her wearing a strapon, fucking her from behind, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 4:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/2bf_wm_3some1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a white guy laying on his back on the bed, one black girl straddles his face as she is eaten out by him. The other one straddles his waist and rides his cock cowgirl style, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 5:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/2bm_2wf_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see two black guys laying on the bed on their back, while two white girls straddle them reverse cowgirl style. Both girls asses are being impaled by the black cocks under them, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 6:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/2bm_wf_3some1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a white girl laying on her back on the bed, being fucked in the missionary position by a black guy. She is sucking the dick of a second black guy as she is getting fucked, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 7:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/3bm_3wf_orgy1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see three white girls, two laying on their back on a bed getting fucked by by two black guys. While the third girl is on her knees on the edge of the bed being fucked from behind by a third black guy, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 8:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/3bm_wf_dp1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black guy on his back on the floor, while a white girl straddles him, laying across his chest. A second black guy is fucking her ass from behind, while a third black guy is kneeling next to her head as she sucks his dick, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 9:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/4bm_wf_dp1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black guy laying on the floor on his back, while a white girl straddles him and lays on top of him. A second black guy is fucking her ass from behind, while two more black guys stand around naked watching them stroking their dicks. Those two must be waiting their turn to fuck the girl, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 10:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/5bm_2wf_orgy1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see two white girls laying on their back on a bed, while two black guys fuck them missionary style. Three more black guys are naked crowded around stroking their dicks, obviously waiting for their turn to fuck the girls, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 11:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/5bm_wf_gb1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a white girl on her hands and knees on the bed being fucked from behind by a black guy. A second black guy kneels next to her head while she sucks his dick, a third black guy is naked and stroking his dick obviously waiting his turn. A fourth black guy is just finished getting undressed, while a fifth black guy still clothed is filming it all on his phone, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 12:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/7bm_wf_orgy1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black guy laying on his back on the couch, with a white girl straddling him taking his cock. A second black guy stands next to her head as she sucks his cock, while a third black back guy stands behind her fucking her in the ass. Standing behind the third guy is four more naked black guys all stroking their cocks waiting their turn to fuck the girl, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 13:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_2wm_dp1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a white guy laying on the couch with a black girl straddling him riding his cock cowgirl style, while a second white guy fucks her ass from behind, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 14:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_bm_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black guy laying on the bed on his back while a black girl impales her ass on his cock reverse cowgirl style, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 15:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_bm_bj1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black girl laying on her back on the bed, while sucking the cock of the black guy kneeling next to her head, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 16:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_bm_vag1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black guy sitting on the couch while a black girl impales her pussy on his cock reverse cowgirl style, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 17:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_bm_vag2.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black girl on her knees bent over on the couch, while a black man stands behind her fucking her from behind, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 18:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_bm_vag3.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black girl laying on a bed, naked from the waist down. While a black guy fucks her pussy missionary style, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 19:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_wf_strap_vag1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a white girl on all fours on the couch while a black girl wears a strapon and fucks her pussy from behind. As you watch the black girl looks over at you and your eyes meet and she grins widely, blushing you quickly close the door and leave.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 20:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_wf_cuni1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black girl laying on her back on the bed with her legs spread wide, while a white girl on her hands and knees has her face buried in the black girls crotch licking her pussy, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 21:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_wm_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black girl laying on her side while a white guy lays on his side behind her with his dick up her ass. They lay there as he fucks her ass, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 22:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_wm_bj1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A white guy lays on his back on the bed while a black girl lays next to him sucking his dick, her head bobbing up and down. One of his free hands is between her legs rubbing her clit, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 23:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_wm_cuni1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked black girl laying on the bed with her legs spread wide, while a partially dressed white guy has his face buried in her crotch licking her pussy. As you watch the girl turns her head and looks right at you, she gives you a dirty look when your eyes meet, blushing you close the door and leave.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 24:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bf_wm_vag1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a black girl laying on her side while a white guy lays on his side behind her with his dick in her pussy. They lay there as he fucks her pussy, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 25:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bm_af_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked Asian girl on her knees and elbows on the bed, while a black guy crotches above her, with his dick buried in her ass. As you watch he hammers her ass with his big black dick, her cries sounds like she is enjoying it, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 26:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bm_wf_anal1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked white girl laying on her stomach on the bed with her legs spread wide, a black guy kneels behind her with his dick buried deep in her ass. As he fucks her ass, she begs him to fuck her ass harder, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 27:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bm_wf_bj1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A black guy is sitting on his bed naked, while a white girl kneels bent over next to him with his dick in her mouth. Her head bobs up and down as she sucks his cock, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	elseif temp = 28:
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bm_wf_cuni1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. A white girl is laying on the bed on her back with her legs spread wide, while a partially dressed black guy squats next to the bed with his face in her crotch licking her pussy, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	else
+		'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/hallway/events/floor8/sex/bm_wf_vag1.jpg"></center>'
+		'You turn the handle and gentle push the door open a crack, just wide enough to look inside. You see a naked white girl on her elbow and knees on the bed, while a black guy kneels behind her fucking her from behind. She is crying out begging him to fuck her harder, after a few moments you close the door so you are not caught.'
+		gs 'arousal', 'voyeur_sex', 1
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gt 'uni_dorm', 'eighth_floor'
+	end
+end
+
+
+--- uni_dorm_events ---------------------------------

+ 44 - 28
locations/qwloc.qsrc → locations/vladimirQW_loc.qsrc

@@ -1,4 +1,4 @@
-# qwloc
+# vladimirQW_loc
 $location_type = 'event_outdoors'
 if $ARGS[0] = '':
 	minut += 5
@@ -12,19 +12,19 @@ if $ARGS[0] = '':
 		act 'Approach the man':
 			cla
 			'You approach the man and he leaves the fence to walk towards you.'
-			xgt 'qwloc', 'qwvladdy'
+			xgt 'vladimirQW_loc', 'qwvladdy'
 		end
 
 		act 'Smile':
 			cla
 			'You smile at the man and he leaves the fence to walk towards you.'
-			xgt 'qwloc', 'qwvladdy'
+			xgt 'vladimirQW_loc', 'qwvladdy'
 		end
 
 		act 'Ignore':
 			cla
 			'You decide to ignore the man and start walking away but hearing his footsteps behind you, you turn back around.'
-			xgt 'qwloc', 'qwvladdy'
+			xgt 'vladimirQW_loc', 'qwvladdy'
 		end
 	else
 		'The man returns your gaze for a moment before turning away.'
@@ -35,18 +35,18 @@ end &! ---  ---
 
 if $ARGS[0] = 'qwvladdy':
 	'The man smiles at you. "My name is Vladimir. I couldn''t help but admire your beauty. Would you allow me the honor of your name?"'
-	gs 'qwloc', 'qwnamedy'
+	gs 'vladimirQW_loc', 'qwnamedy'
 
 	act 'Sorry, I''m busy':
 		cla
-		vladimirQW = 1
+		vladimirQW['stage'] = 1
 		'"Sorry, I''m busy," you excuse yourself.'
 		'Vladimir shakes his head to that. "Well, what are you busy with? I will not bite. I would just like to know the name of a beautiful, young lady."'
-		gs 'qwloc', 'qwnamedy'
+		gs 'vladimirQW_loc', 'qwnamedy'
 
 		act 'Leave anyway':
 			cla
-			vladimirQW = 2
+			vladimirQW['stage'] = 2
 			'You turn away from the man with a roll of your eyes and leave.'
 
 			act 'Leave':gt 'city_park', 'luna'
@@ -57,13 +57,13 @@ end &! --- qwladdy ---
 if $ARGS[0] = 'qwnamedy':
 	act '<<$pcs_nickname>>':
 		cla
-		vladimirQW = 10
+		vladimirQW['stage'] = 10
 		'"<<$pcs_nickname>>," you introduce yourself.'
 		'Vladimir smiled. "A beautiful name that suits you perfectly. Unfortunately I have to go, but I would like to see you again. If you leave me your phone number, I could call you tomorrow. I could take you out to dinner at a restaurant."'
 
 		act 'No (Go)':
 			cla
-			vladimirQW = 2
+			vladimirQW['stage'] = 2
 			'You decline and walk away, leaving the man standing.'
 
 			act 'Leave':gt 'city_park', 'luna'
@@ -71,9 +71,10 @@ if $ARGS[0] = 'qwnamedy':
 
 		act 'Give him your number':
 			cla
-			vladimirQW = 20
-			vladimirday = daystart
-			gs 'telefon', 'AddContact', 'A108', 'icon_na',"", "", "gs 'telefon', 'vladimir'", "vladimirday ! daystart and hour >= 15 and hour <= 17", 1
+			vladimirQW['stage'] = 20
+			vladimirQW['day'] = daystart
+			gs 'telefon', 'AddContact', 'A108', 'icon_na', 1
+			gs 'telefon', 'SetCallSchedule', 'A108', "", "0", "gs 'vladimirQW_loc', 'telephone_call'", "vladimirQW['day'] ! daystart and hour >= 15 and hour <= 17"
 			gs 'stat'
 			'You tell Vladmimir your phone number and he writes it down in a small notebook with a leather cover.'
 
@@ -88,14 +89,14 @@ if $ARGS[0] = '2':
 
 	act 'Hello, of course I remember':
 		cla
-		vladimirQW = 21
+		vladimirQW['stage'] = 21
 		'"Hey, of course I remember. How could I forget?" You respond.'
 		'"The offer to take you to dinner at the restaurant is still on the table. Would you like to go?" Vladimir asks.'
 
 		act 'Oh, I have a lot to do today, I''m sorry.':
 			cla
-			vladimirQW = 20
-			vladimirday = daystart
+			vladimirQW['stage'] = 20
+			vladimirQW['day'] = daystart
 			'You explain that you simply can''t today, as busy as you are.'
 			'"Okay. Then I''ll call you tomorrow at 16:00." Vladimir promises.'
 
@@ -104,9 +105,9 @@ if $ARGS[0] = '2':
 
 		act 'I wouldn''t mind':
 			cla
-			vladimirQW = 21
-			vladimirday = daystart
-			gs 'telefon', 'AddContact', 'A108', 'icon_na',"", "", "gs 'telefon', 'vladimir'", "vladimirday ! daystart and hour >= 15 and hour <= 17 and week = 6", 1
+			vladimirQW['stage'] = 21
+			vladimirQW['day'] = daystart
+			gs 'telefon', 'SetCallSchedule', 'A108', "", "0", "gs 'vladimirQW_loc', 'telephone_call'", "vladimirQW['day'] ! daystart and hour >= 15 and hour <= 17 and week = 6"
 			'"I would like that," you tell him.'
 			'"Wonderful!" says Vladimir. "Then I''ll meet you at the restaurant at 20:00."'
 			'"I''ll see you then!"'
@@ -121,7 +122,7 @@ if $ARGS[0] = '3':
 
 	act 'Oh, I have a lot to do today, I''m sorry':
 		cla
-		vladimirday = daystart
+		vladimirQW['day'] = daystart
 		'You explain that you simply can''t today, as busy as you are.'
 		'"Okay. Then I''ll call you another time." Vladimir promises.'
 
@@ -130,9 +131,9 @@ if $ARGS[0] = '3':
 
 	act 'I''d like that':
 		cla
-		vladimirQW = 30
-		vladimirday = daystart
-		gs 'telefon', 'AddContact', 'A108', 'icon_na',"", "", "gs 'telefon', 'vladimir'", "vladimirday ! daystart and hour >= 15 and hour <= 17 and week = 6", 1
+		vladimirQW['stage'] = 30
+		vladimirQW['day'] = daystart
+		gs 'telefon', 'SetCallSchedule', 'A108', "", "0", "gs 'vladimirQW_loc', 'telephone_call'", "vladimirQW['day'] ! daystart and hour >= 15 and hour <= 17 and week = 6"
 		'"I''d like that." you tell him.'
 		'You can hear that Vladimir''s pleased over the phone. "Wonderful, my driver will come to pick you up."'
 
@@ -146,7 +147,7 @@ if $ARGS[0] = '4':
 
 	act 'Oh, I have a lot to do today, I''m sorry':
 		cla
-		vladimirday = daystart
+		vladimirQW['day'] = daystart
 		'You explain that you simply can''t today, as busy as you are.'
 		'"Okay. Then I''ll call you another day." Vladimir promises.'
 
@@ -155,9 +156,9 @@ if $ARGS[0] = '4':
 
 	act 'I''d like that':
 		cla
-		vladimirQW = 40
-		vladimirday = daystart
-		gs 'telefon', 'AddContact', 'A108', 'icon_na',"", "", "gs 'telefon', 'vladimir'", "vladimirday ! daystart and hour >= 15 and hour <= 17 and week = 6", 1
+		vladimirQW['stage'] = 40
+		vladimirQW['day'] = daystart
+		gs 'telefon', 'SetCallSchedule', 'A108', "", "0", "gs 'vladimirQW_loc', 'telephone_call'", "vladimirQW['day'] ! daystart and hour >= 15 and hour <= 17 and week = 6"
 		'"I''d like that." you tell him.'
 		'You can hear that Vladimir''s pleased over the phone. "Wonderful, my driver will come to pick you up."'
 
@@ -166,5 +167,20 @@ if $ARGS[0] = '4':
 end
 
 
---- qwloc ---------------------------------
+
+if $ARGS[0] = 'telephone_call':
+	cla & clr
+	gs 'stat'
+	gs 'telefon','phone_ring'
+
+	if vladimirQW['stage'] = 20:
+		gt 'vladimirQW_loc', '2'
+	elseif vladimirQW['stage'] = 25 and week = 6:
+		gt 'vladimirQW_loc', '3'
+	elseif vladimirQW['stage'] = 35 and week = 6:
+		gt 'vladimirQW_loc', '4'
+	end
+end
+
+--- vladimirQW_loc ---------------------------------
 

+ 25 - 25
locations/qwmeet.qsrc → locations/vladimirQW_meet.qsrc

@@ -1,9 +1,9 @@
-# qwmeet
+# vladimirQW_meet
 
 if $ARGS[0] = '':
 	minut += 5
-	vladimirQW = 25
-	vladimirday = daystart
+	vladimirQW['stage'] = 25
+	vladimirQW['day'] = daystart
 	menu_off = 1
 	gs 'stat'
 	'<center><b><font color="maroon">Vladimir</font></b></center>'
@@ -80,13 +80,13 @@ if $ARGS[0] = '':
 								act 'Give a kiss on the cheek':
 									cla
 									'You moved towards Vladimir and gave his cheek a brief, chaste, kiss.'
-									gt 'qwmeet', 'qwmeetdy'
+									gt 'vladimirQW_meet', 'qwmeetdy'
 								end
 
 								act 'Kiss on the lips':
 									cla
 									'You kissed Vladimir on the mouth, his strong, firm, lips pressing hard against your pliant mouth.'
-									gt 'qwmeet', 'qwmeetdy'
+									gt 'vladimirQW_meet', 'qwmeetdy'
 								end
 							end
 						end
@@ -128,7 +128,7 @@ if $ARGS[0] = '2':
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/city/glory/002.jpg"></center>'
 		'You took a seat next to the driver''s. Glory came to the door and slammed it shut before walking over to his seat and sitting behind the wheel. Glory again sped through the city, paying little heed to traffic lights, signs and other cars.'
-		gt 'qwmeet','qwslavady'
+		gt 'vladimirQW_meet','qwslavady'
 	end
 	act 'Sit on the back seat':
 		*clr & cla
@@ -136,7 +136,7 @@ if $ARGS[0] = '2':
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/city/glory/002.jpg"></center>'
 		'You defiantly took a backseat and Glory mutely shut the door behind you before he walked over to his seat and sat behind the wheel. Glory again sped through the city, paying little heed to traffic lights, signs and other cars.'
-		gt 'qwmeet','qwslavady'
+		gt 'vladimirQW_meet','qwslavady'
 	end
 end &! --- 2 ---
 !! continuation of the second date
@@ -155,7 +155,7 @@ if $ARGS[0] = 'qwslavady':
 		'<center><b><font color="maroon">Vladimir</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/characters/city/vladimir/001.jpg"></center>'
 		'You moved towards Vladimir and gave his cheek a brief, chaste, kiss.'
-		gt 'qwmeet','qwmeetkatdy'
+		gt 'vladimirQW_meet','qwmeetkatdy'
 	end
 
 	act 'Kiss on the lips':
@@ -163,7 +163,7 @@ if $ARGS[0] = 'qwslavady':
 		'<center><b><font color="maroon">Vladimir</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/characters/city/vladimir/001.jpg"></center>'
 		'You kissed Vladimir on the mouth, his strong, firm, lips pressing hard against your pliant mouth.'
-		gt 'qwmeet','qwmeetkatdy'
+		gt 'vladimirQW_meet','qwmeetkatdy'
 	end
 end &! --- qwslavady ---
 
@@ -236,7 +236,7 @@ if $ARGS[0] = 'qwmeetkatdy':
 									gs 'stat'
 									'You asked whether she knows Glory, she smiled, "I do not know much despite all my time around the Banzai. He replaced the last driver rather suddenly. He''s a brazen, crazy type but a really great driver. He''s kind of a master racer."'
 
-									act 'Carry a tray out onto deck':gt 'qwmeet','qwpaluba'
+									act 'Carry a tray out onto deck':gt 'vladimirQW_meet','qwpaluba'
 								end
 							end
 						end
@@ -271,7 +271,7 @@ if $ARGS[0] = 'qwpaluba':
 		'Once you have chatted boat lined with Isolde about trifles. She called you my address in the city center and invited to come to anything like it.'
 		'The boat finally slowed to a stop alongside the riverbank to allow you to disembark.'
 
-		act 'Disembark':gt 'qwmeet','qwbereg'
+		act 'Disembark':gt 'vladimirQW_meet','qwbereg'
 	end
 
 	act 'Approach Glory':
@@ -290,7 +290,7 @@ if $ARGS[0] = 'qwpaluba':
 			'Glory smiled. "You just haven''t felt it yet. You''d love the feeling of real speed. I hang out in the evenings in the city industrial region near the bar, "Flight", come visit.'
 			'The boat finally dropped in speed and came to a halt against the river''s shore.'
 
-			act 'Disembark':gt 'qwmeet','qwbereg'
+			act 'Disembark':gt 'vladimirQW_meet','qwbereg'
 		end
 
 		act 'Yes':
@@ -300,7 +300,7 @@ if $ARGS[0] = 'qwpaluba':
 			'Glory smiled. "In the evenings, I hang out in the city industrial region. I go to the bar, "Flight", visit and I''ll show you what real speed is."'
 			'The boat finally dropped in speed and came to a halt against the river''s shore.'
 
-			act 'Disembark':gt 'qwmeet','qwbereg'
+			act 'Disembark':gt 'vladimirQW_meet','qwbereg'
 		end
 	end
 
@@ -314,7 +314,7 @@ if $ARGS[0] = 'qwpaluba':
 		'Vitaliy grabbed at you so that you didn''t fall to the deck. After the boat levelled off from the turn he helped you back onto the couch, his hands sliding over your body and stopping against your ass. He sighed as he let go of your body to pour more vodka'
 		'The boat finally slowed to a stop alongside the riverbank to allow you to disembark.'
 
-		act 'Disembark':gt 'qwmeet','qwbereg'
+		act 'Disembark':gt 'vladimirQW_meet','qwbereg'
 	end
 end &! --- qwpaluba ---
 
@@ -386,7 +386,7 @@ if $ARGS[0] = 'qwbereg':
 							gs 'dinsex', 'sexcum'
 							gs 'arousal', 'end'
 							gs 'stat'
-							act 'Continue': gt 'qwmeet','qwbereg2'
+							act 'Continue': gt 'vladimirQW_meet','qwbereg2'
 						end
 					end
 				end
@@ -408,7 +408,7 @@ if $ARGS[0] = 'qwbereg':
 						gs 'arousal', 'hj', 5, 'sub'
 						gs 'stat'
 
-						act 'Continue':gt 'qwmeet','qwbereg2'
+						act 'Continue':gt 'vladimirQW_meet','qwbereg2'
 					end
 
 					act 'To take by mouth':
@@ -431,7 +431,7 @@ if $ARGS[0] = 'qwbereg':
 							gs 'arousal', 'end'
 							gs 'stat'
 
-							act '...':gt 'qwmeet','qwbereg2'
+							act '...':gt 'vladimirQW_meet','qwbereg2'
 						end
 					end
 
@@ -453,7 +453,7 @@ if $ARGS[0] = 'qwbereg':
 							gs 'stat'
 						end
 
-						act '...':gt 'qwmeet','qwbereg2'
+						act '...':gt 'vladimirQW_meet','qwbereg2'
 					end
 				end
 			end
@@ -463,8 +463,8 @@ end &! --- qwpbereg ---
 !! finish of the second date
 if $ARGS[0] = 'qwbereg2':
 	minut += 15
-	vladimirday = daystart
-	vladimirQW = 35
+	vladimirQW['day'] = daystart
+	vladimirQW['stage'] = 35
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/vladimir/car.jpg"></center>'
 	'Once you''ve finished with Wladimir fuck how to berth drove Audi. Glory came out of it and invited you to get in the car.'
@@ -492,7 +492,7 @@ if $ARGS[0] = '3':
 		if slavaQW > 0:slavaQW += 1 & 'While you drove through the city, you happily chatted with Slava.'
 		if slavaQW = 0:slavaQW = 1 & 'While you drove through the city, Glory told you that he spends much of his spare time in the bar called Flying in the city industrial region of the city.'
 
-		gt 'qwmeet','qwmeetdin'
+		gt 'vladimirQW_meet','qwmeetdin'
 	end
 
 	act 'Sit on the back seat':
@@ -501,7 +501,7 @@ if $ARGS[0] = '3':
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/city/glory/002.jpg"></center>'
 		'You defiantly took a backseat and Glory mutely shut the door behind you before he walked over to his seat and sat behind the wheel. Glory again sped through the city, paying little heed to traffic lights, signs and other cars.'
-		gt 'qwmeet','qwmeetdin'
+		gt 'vladimirQW_meet','qwmeetdin'
 	end
 end &! --- 3 ---
 
@@ -514,8 +514,8 @@ if $ARGS[0] = 'qwmeetdin':
 		minut += 60
 		pcs_energy = 100
 		pcs_hydra = 100
-		vladimirday = daystart
-		vladimirQW = 35
+		vladimirQW['day'] = daystart
+		vladimirQW['stage'] = 35
 		gs 'stat'
 		'The restaurant is the same one from your last meeting with Vladimir. He took you to a specially reserved table. You drank and ate with Vladimir, who spoke little mostly restrainting himself to complimenting you.'
 
@@ -572,4 +572,4 @@ if $ARGS[0] = 'qwmeetdin':
 end &! --- qwmeetdin ---
 
 
---- qwmeet ---------------------------------
+--- vladimirQW_meet ---------------------------------

+ 4 - 3
locations/worksalon.qsrc

@@ -24,7 +24,7 @@ if $ARGS[0] = 'start':
 		gs 'willpower', 'sex', 'resist'
 		if will_cost <= pcs_willpwr:
 			act 'Tell him no and go to your work station (<<will_cost>> Willpower)': gs 'willpower', 'pay', 'resist' & salonslut = 0 & gt 'worksalon', 'start'
-        else
+		else
 			act 'Tell him no and go to your work station (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 		end
 		act 'Do as he says':gt 'worksalon', '3'
@@ -417,7 +417,8 @@ if $ARGS[0] = '2':
 		*clr
 		girl += 1
 		telalla = 1
-		!gs 'telefon', 'AddContact', 'Axxx', 'icon_ira1', "$telsob = 'Alla' & gt 'telefon', 'mobilaraz'","hour >= 8 and hour <= 20","",""
+		!gs 'telefon', 'AddContact', 'Axxx', 'icon_ira1', 0
+		!gs 'telefon', 'SetCallSchedule', 'Axxx', "$telsob = 'Alla' & gt 'telefon', 'mobilaraz'", "hour >= 8 and hour <= 20", "", "0"
 		alla += 1
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/salon/sex/ira2.jpg"></center>'
 		'When you don''t object, she gets up and pushes you down in the chair. Pulling your clothes off, she exposes your pussy and pushes your legs apart. Dropping down to her hands and knees, her face goes between your legs, and her tongue darts out and starts licking you.'
@@ -427,7 +428,7 @@ if $ARGS[0] = '2':
 		gs 'arousal', 'cuni', 30, 'dom', 'lesbian'
 		gs 'arousal', 'end'
 		gs 'stat'
-						
+
 		act 'Let go':gt 'worksalon', 'start'
 
 		act 'Thank her':

+ 3 - 0
tools/Parser/parser.bat

@@ -0,0 +1,3 @@
+@echo off
+for %%a in (%*) do "%~dp0qsp_parser.exe" %%a --level warn
+pause

Some files were not shown because too many files changed in this diff