Browse Source

[changed/added] renamed train_functions to transport_functions, migrated `Trainpass_day` to a variable array. Added a train_events location, added a daily and yearly train pass. Loads of migrations between existing files to group the actual train stuff better together.

anjuna krokus 3 months ago
parent
commit
63084fd339

+ 2 - 1
glife.qproj

@@ -362,8 +362,9 @@
 		<Location name="home_activity"/>
 	</Folder>
 	<Folder name="Transportation">
+		<Location name="transport_functions"/>
 		<Location name="train"/>
-		<Location name="train_functions"/>
+		<Location name="train_events"/>
 		<Location name="train_incidental"/>
 		<Location name="metro"/>
 		<Location name="metro_events"/>

+ 12 - 81
locations/city_industrial_train.qsrc

@@ -16,8 +16,8 @@ if $ARGS[0] = 'inside':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/vokzalholle.jpg" ></center>'
 	act 'Leave the station': minut += 2 & gt 'city_industrial_train', 'outside'
 	*nl
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 		act 'Go to the platforms': gt 'city_industrial_train', 'platform'
 	else
 		act 'Go to the ticket office': minut += 1 & gt 'city_industrial_train', 'ticket'
@@ -56,9 +56,9 @@ if $ARGS[0] = 'outside':
 
 	'There is a path leading off in to the distance, in the direction of the <a href="exec:minut += 60 & gt ''city_lake'', ''start''">lake</a>.'
 
-	act 'Walk to the City Industrial Region': minut += 15 & gt'city_industrial'
-	act 'Walk to the lake': minut += 60 & gt'city_lake', 'start'
-	act 'Enter the station building': minut += 2 & gt'city_industrial_train', 'inside'
+	act 'Walk to the City Industrial Region': minut += 15 & gt 'city_industrial'
+	act 'Walk to the lake': minut += 60 & gt 'city_lake', 'start'
+	act 'Enter the station building': minut += 2 & gt 'city_industrial_train', 'inside'
 end
 
 if $ARGS[0] = 'platform':
@@ -75,14 +75,11 @@ if $ARGS[0] = 'platform':
 
 	act 'Return to the station': minut += 5 & gt 'city_industrial_train', 'inside'
 	
-	if Trainpass_day > daystart:
-		act 'Take a train to the city center': gt 'city_industrial_train', 'center'
-		
-		act 'Take a train to the old platform by the communal village': gt 'city_industrial_train', 'communal'
-		
-		act 'Take a train to the village of Gadukino': gt 'city_industrial_train', 'village'
-		
-		act 'Take a train to Pavlovsk': gt 'city_industrial_train', 'pavlovsk'
+	if transportVars['trainpass_day'] > daystart:
+		act 'Take a train to the city center (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''center'')>>)': gt 'train', 'ind_center'
+		act 'Take a train to the old platform by the communal village (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''communal'')>>)': gt 'train', 'ind_communal'
+		act 'Take a train to the village of Gadukino (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''village'')>>)': gt 'train', 'ind_village'
+		act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''pavlovsk'')>>)': gt 'train', 'ind_pavlovsk'
 	end
 end
 
@@ -132,7 +129,7 @@ if $ARGS[0] = 'ticket':
 		end
 	end
 
-	gs 'train_functions', 'buy_train_pass'
+	gs 'transport_functions', 'buy_train_pass'
 end
 
 if $ARGS[0] = 'buy_ticket':
@@ -142,73 +139,7 @@ if $ARGS[0] = 'buy_ticket':
 	
 	act 'Leave the ticket office': gt 'city_industrial_train', 'inside'
 
-	gs 'train_functions', 'buy_ticket', 'ind'
-end
-
-if $ARGS[0] = 'center':
-	$loc = 'city_train'
-	$loc_arg = 'start'
-	menu_off = 1
-	*clr & cla
-	minut += 5
-	gs 'stat'
-	'<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 5 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 train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'city_train', 'start'
-	end
-end
-
-if $ARGS[0] = 'communal':
-	$loc = 'train'
-	$loc_arg = 'communal'
-	menu_off = 1
-	minut += 10
-	if rand(1, 100) < 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After 10 minutes you arrive at an old railway platform near the communal village.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'communal'
-	end
-end
-
-if $ARGS[0] = 'village':
-	$loc = 'train'
-	$loc_arg = 'village'
-	menu_off = 1
-	minut += 20
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) < 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After 20 minutes, the train stops at the small station near the village of Gadukino.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'village'
-	end
-end
-
-if $ARGS[0] = 'pavlovsk':
-	$loc = 'pav_train_hall'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 35
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) < 30: gt 'train', 'Gopnik'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After 35 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 train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'pav_train_hall'
-	end
+	gs 'transport_functions', 'buy_train_ticket', 'ind'
 end
 
 --- city_industrial_train ---------------------------------

+ 8 - 79
locations/city_train.qsrc

@@ -18,8 +18,8 @@ if $ARGS[0] = 'start':
 	end
 
 	act 'Walk to the city center (0:05)':minut += 5 & gt 'city_center'
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 		act 'Go to the platforms': gt 'city_train', 'platform'
 	else
 		act 'Go to the ticket office': gt 'city_train', 'tickets'
@@ -42,7 +42,7 @@ if $ARGS[0] = 'tickets':
 		gs 'city_train', 'buy_ticket'
 	end
 
-	gs 'train_functions', 'buy_train_pass'
+	gs 'transport_functions', 'buy_train_pass'
 end
 
 if $ARGS[0] = 'buy_ticket':
@@ -52,7 +52,7 @@ if $ARGS[0] = 'buy_ticket':
 	
 	act 'Leave the ticket office': minut += 1 & gt 'city_train', 'start'
 
-	gs 'train_functions', 'buy_ticket', 'center'
+	gs 'transport_functions', 'buy_train_ticket', 'center'
 end
 
 if $ARGS[0] = 'platform':
@@ -66,81 +66,10 @@ if $ARGS[0] = 'platform':
 
 	act 'Return to the station hall':gt 'city_train', 'start'
 	
-	act 'Take a train to the city industrial area': gt 'city_train', 'ind'
-
-	act 'Take a train to the old platform by the communal village': gt 'city_train', 'communal'
-
-	act 'Take a train to the village of Gadukino': gt 'city_train', 'village'
-
-	act 'Take a train to Pavlovsk': gt 'city_train', 'pavlovsk'
-end
-
-if $ARGS[0] = 'ind':
-	$loc = 'city_industrial_train'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 5
-	gs 'stat'
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After 5 minutes, the train stops at the St. Petersburg city industrial area station.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'city_industrial_train', 'platform'
-	end
-end
-
-if $ARGS[0] = 'communal':
-	$loc = 'train'
-	$loc_arg = 'communal'
-	menu_off = 1
-	minut += 15
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After 15 minutes you arrive at an old railway platform near the communal village.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'communal'
-	end
-end
-
-if $ARGS[0] = 'village':
-	$loc = 'train'
-	$loc_arg = 'village'
-	menu_off = 1
-	minut += 25
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After 25 minutes, the train stops at the small station near the village of Gadukino.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'village'
-	end
-end
-
-if $ARGS[0] = 'pavlovsk':
-	$loc = 'pav_train_hall'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 40
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) < 30: gt 'train', 'Gopnik'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	if train_event = 0 and rand(1, 100) < 20: gt 'train', 'events'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After 40 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 train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'pav_train_hall'
-	end
+	act 'Take a train to the city industrial area (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''ind'')>>)': gt 'train', 'city_ind'
+	act 'Take a train to the old platform by the communal village (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''communal'')>>)': gt 'train', 'city_communal'
+	act 'Take a train to the village of Gadukino (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''village'')>>)': gt 'train', 'city_village'
+	act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''pavlovsk'')>>)': gt 'train', 'city_pavlovsk'
 end
 
 --- city_train ---------------------------------

+ 2 - 2
locations/pav_market.qsrc

@@ -303,8 +303,8 @@ if maidqw >= 1 and hour >= 16 and hour < 17:
 end
 
 act 'Walk to the train station (0:03)': minut += 3 & gt 'pav_train_hall'
-if Trainpass_day > daystart:
-	'You have <<Trainpass_day - daystart>> days left on your train pass.'
+if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 	act 'Go direct to train station platforms': gt 'pav_train_hall', 'platform'
 end
 act 'Walk to the Commercial area (0:10)':minut += 10 & gt 'pav_commercial'

+ 9 - 79
locations/pav_train_hall.qsrc

@@ -63,8 +63,8 @@ if $ARGS[0] = '':
 	act 'Walk to the highway (0:15)':minut += 15 & nroad = 20 & gt 'road'
 	act 'Walk to Pushkin (0:15)':minut += 15 & nroad = 19 & gt 'pushkin'
 
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 		act 'Go to the platforms': gt 'pav_train_hall', 'platform'
 	else
 		act 'Go to the ticket office': gt 'pav_train_hall', 'ticket'
@@ -158,15 +158,11 @@ if $ARGS[0] = 'platform':
 
 	act 'Enter the station building': gt'pav_train_hall'
 
-	if Trainpass_day > daystart:
-
-		act 'Take the train to the village of Gadukino': gt 'pav_train_hall', 'village'
-
-		act 'Take the train to the communal village': gt 'pav_train_hall', 'communal'
-
-		act 'Take the train to city industrial area': gt 'pav_train_hall', 'ind'
-
-		act 'Take the train to city center': gt 'pav_train_hall', 'center'
+	if transportVars['trainpass_day'] > daystart:
+		act 'Take the train to the village of Gadukino (<<func(''transport_functions'', ''display_train_timecost'', ''pavlovsk'', ''village'')>>)':	gt 'train', 'pavlovsk_village'
+		act 'Take the train to the communal village (<<func(''transport_functions'', ''display_train_timecost'', ''pavlovsk'', ''communal'')>>)':		gt 'train', 'pavlovsk_communal'
+		act 'Take the train to the city industrial area (<<func(''transport_functions'', ''display_train_timecost'', ''pavlovsk'', ''ind'')>>)':		gt 'train', 'pavlovsk_ind'
+		act 'Take the train to the city center (<<func(''transport_functions'', ''display_train_timecost'', ''pavlovsk'', ''center'')>>)':				gt 'train', 'pavlovsk_center'
 	end
 end
 
@@ -243,7 +239,7 @@ if $ARGS[0] = 'ticket':
 		end
 	end
 
-	gs 'train_functions', 'buy_train_pass'
+	gs 'transport_functions', 'buy_train_pass'
 end
 
 if $ARGS[0] = 'buy_ticket':
@@ -253,76 +249,10 @@ if $ARGS[0] = 'buy_ticket':
 
 	act 'Leave the ticket office':minut += 1 & gt 'pav_train_hall'
 
-	gs 'train_functions', 'buy_ticket', 'pavlovsk'
+	gs 'transport_functions', 'buy_train_ticket', 'pavlovsk', 'pc'
 end
 
-if $ARGS[0] = 'village':
-	$loc = 'train'
-	$loc_arg = 'village'
-	menu_off = 1
-	minut += 15
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) < 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After 15 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 'train', 'village'
-	end
-end
 
-if $ARGS[0] = 'communal':
-	$loc = 'train'
-	$loc_arg = 'communal'
-	menu_off = 1
-	minut += 25
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After 20 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 'train', 'communal'
-	end
-end
-
-if $ARGS[0] = 'ind':
-	$loc = 'city_industrial_train'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 35
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) < 30: gt 'train', 'Gopnik'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After 35 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 'city_industrial_train', 'inside'
-	end
-end
-
-if $ARGS[0] = 'center':
-	$loc = 'city_train'
-	$loc_arg = 'start'
-	menu_off = 1
-	minut += 40
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) < 30: gt 'train', 'Gopnik'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-	'After 40 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 'city_train', 'start'
-	end
-end
 
 if $ARGS[0] = 'toilet':
 	$menu_loc = 'pav_train_hall'

+ 5 - 0
locations/saveupdater.qsrc

@@ -2516,6 +2516,11 @@ if temp_current_save_version < 00090200:
 		killvar 'fashionista_b'
 		killvar 'fashionista_s'
 	end
+
+
+	! Transport update
+	if Trainpass_day ! 0:	transportVars['trainpass_day'] = Trainpass_day	& killvar 'Trainpass_day'
+	killvar 'train_event'
 end
 
 

+ 478 - 733
locations/train.qsrc

@@ -1,6 +1,13 @@
 # train
 !2021/05/06
 
+
+	!!============================================!!
+	!!                                            !!
+	!!               Train Stations               !!
+	!!                                            !!
+	!!============================================!!
+
 if $ARGS[0] = 'communal':
 	*clr & cla
 	$menu_loc = 'train'
@@ -12,8 +19,8 @@ if $ARGS[0] = 'communal':
 
 	act 'Return to the road':minut += 15 & nroad = 5 & gt 'road'
 	*nl
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 		act 'Go to platforms': gt 'train', 'communal_trains'
 	else
 		act 'Buy a ticket': gt 'train', 'communal_tickets'
@@ -27,7 +34,7 @@ if $ARGS[0] = 'communal_tickets':
 
 	act 'Leave the ticket office': gt 'train', 'communal'
 
-	gs 'train_functions', 'buy_ticket', 'communal'
+	gs 'transport_functions', 'buy_train_ticket', 'communal'
 end
 
 if $ARGS[0] = 'communal_trains':
@@ -37,175 +44,409 @@ if $ARGS[0] = 'communal_trains':
 
 	act 'Leave the platform': gt 'train', 'communal'
 	
-	act 'Take a train to St. Petersburg city center': gt 'train', 'communal_center'
-	
-	act 'Take a train to St. Petersburg city industrial area': gt 'train', 'communal_ind'
-	
-	act 'Take a train to the village of Gadukino': gt 'train', 'communal_village'
-	
-	act 'Take a train to Pavlovsk': gt 'train', 'communal_pavlovsk'
+	act 'Take a train to St. Petersburg city center (<<func(''transport_functions'', ''display_train_timecost'', ''communal'', ''center'')>>)': gt 'train', 'communal_center'
+	act 'Take a train to St. Petersburg city industrial area (<<func(''transport_functions'', ''display_train_timecost'', ''communal'', ''ind'')>>)': gt 'train', 'communal_ind'
+	act 'Take a train to the village of Gadukino (<<func(''transport_functions'', ''display_train_timecost'', ''communal'', ''village'')>>)': gt 'train', 'communal_village'
+	act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''communal'', ''pavlovsk'')>>)': gt 'train', 'communal_pavlovsk'
 end
 
-if $ARGS[0] = 'communal_center':
-	minut += 15
-	$loc = 'city_train'
-	$loc_arg = 'start'
-	$menu_loc = 'city_train'
-	$menu_arg = 'communal_center'
+
+
+if $ARGS[0] = 'village':
+	$loc = 'train'
+	$loc_arg = 'village'
+	$menu_loc = 'train'
+	$menu_arg = 'village'
+	display_bb = 0
 	menu_off = 0
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
+	
+	*clr & cla
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-	'After 15 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 train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'city_train', 'start'
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
+	'A fairly nondescript railway platform. The small village of Gadukino where your grandparents reside is not far from here.'
+
+	act 'Walk to the road (0:15)':minut += 15 & nroad = 10 & gt 'road'
+	*nl
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
+		act 'Go to platforms': gt 'train', 'village_trains'
+	else
+		act 'Buy a ticket': gt 'train', 'village_tickets'
 	end
 end
 
-if $ARGS[0] = 'communal_ind':
+if $ARGS[0] = 'village_tickets':
+	$menu_loc = 'train'
+	$menu_arg = 'village_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'train', 'village'
+
+	gs 'transport_functions', 'buy_train_ticket', 'village', 'pc'
+end
+
+if $ARGS[0] = 'village_trains':
+	$menu_loc = 'train'
+	$menu_arg = 'village_trains'
+	menu_off = 0
+
+	act 'Leave the platform': gt 'train', 'village'
+
+	act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''village'', ''pavlovsk'')>>)': gt 'train', 'village_pavlovsk'
+	act 'Take a train to the communal village (<<func(''transport_functions'', ''display_train_timecost'', ''village'', ''communal'')>>)': gt 'train', 'village_communal'
+	act 'Take a train to St. Petersburg city industrial area (<<func(''transport_functions'', ''display_train_timecost'', ''village'', ''ind'')>>)': gt 'train', 'village_ind'
+	act 'Take a train to St. Petersburg city center (<<func(''transport_functions'', ''display_train_timecost'', ''village'', ''center'')>>)': gt 'train', 'village_center'
+end
+
+
+
+
+	!!============================================!!
+	!!                                            !!
+	!!              Train Transport               !!
+	!!                                            !!
+	!!============================================!!
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!        center         !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'center_ind':
 	$loc = 'city_industrial_train'
 	$loc_arg = 'platform'
-	minut += 10
 	menu_off = 1
-	if rand(1, 100) < 20: gt 'train', 'events'
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'ind')
+	minut += transportVars['timecost']
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 14:
+			gt 'train_events', 'private'
+		elseif transportVars['rand'] <= 23:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 39:
+			gt 'train_events', 'events'
+		end
+	end
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After 10 minutes, the train stops at the St. Petersburg city industrial area station.'
+	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
 	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'city_industrial_train', 'inside'
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'city_industrial_train', 'platform'
 	end
 end
 
-if $ARGS[0] = 'communal_village':
+if $ARGS[0] = 'center_communal':
+	$loc = 'train'
+	$loc_arg = 'communal'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'communal')
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 28:
+			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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'train', 'communal'
+	end
+end
+
+if $ARGS[0] = 'center_village':
 	$loc = 'train'
 	$loc_arg = 'village'
-	minut += 10
 	menu_off = 1
-	if rand(1, 100) <= 20: gt 'train', 'events'
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'village')
+	minut += transportVars['timecost']
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 28:
+			gt 'train_events', 'events'
+		end
+	end
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After 10 minutes, the train stops at the small station near the village of Gadukino.'
+	'After <<transportVars[''timecost'']>> minutes, the train stops at the small station near the village of Gadukino.'
 	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt 'train', 'village'
 	end
 end
 
-if $ARGS[0] = 'communal_pavlovsk':
+if $ARGS[0] = 'center_pavlovsk':
 	$loc = 'pav_train_hall'
-	$loc_arg = ''
-	minut += 25
+	$loc_arg = 'platform'
 	menu_off = 1
-	if rand(1, 100) <= 20: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'center', 'pavlovsk')
+	minut += transportVars['timecost']
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 14:
+			gt 'train_events', 'private'
+		elseif transportVars['rand'] <= 39:
+			gt 'train_events', 'Gopnik'
+		elseif transportVars['rand'] <= 45:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 56:
+			gt 'train_events', 'events'
+		end
+	end
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After 5 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 'pav_train_hall'
+	'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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'pav_train_hall'
+	end
 end
 
-if $ARGS[0] = 'village':
-	$loc = 'train'
-	$loc_arg = 'village'
-	$menu_loc = 'train'
-	$menu_arg = 'village'
-	display_bb = 0
-	menu_off = 0
-	
+
+		!!-----------------------!!
+		!!                       !!
+		!!      industrial       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'ind_center':
+	$loc = 'city_train'
+	$loc_arg = 'start'
+	menu_off = 1
 	*clr & cla
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'center')
+	minut += transportVars['timecost']
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'A fairly nondescript railway platform. The small village of Gadukino where your grandparents reside is not far from here.'
 
-	act 'Walk to the road (0:15)':minut += 15 & nroad = 10 & gt 'road'
-	*nl
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
-		act 'Go to platforms': gt 'train', 'village_trains'
-	else
-		act 'Buy a ticket': gt 'train', 'village_tickets'
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 14:
+			gt 'train_events', 'private'
+		elseif transportVars['rand'] <= 23:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 39:
+			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.'
+
+	act 'Get off the train at this station':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'city_train', 'start'
 	end
 end
 
-if $ARGS[0] = 'village_tickets':
-	$menu_loc = 'train'
-	$menu_arg = 'village_tickets'
-	menu_off = 0
-	
-	act 'Leave the ticket office': gt 'train', 'village'
-	
-	act 'Buy a ticket to St. Petersburg city center (100 <b>₽</b>)':
-		if money >= 100:
-			money -= 100
-			menu_off = 1
-			gt 'train', 'village_center'
-		else
-			'You don''t have enough money for this ticket.'
-		end
+if $ARGS[0] = 'ind_communal':
+	$loc = 'train'
+	$loc_arg = 'communal'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'communal')
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart and rand(1, 100) < 20: gt 'train_events', 'events'
+
+	'<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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'train', 'communal'
 	end
-	
-	act 'Buy a ticket to St. Petersburg city industrial area (75 <b>₽</b>)':
-		if money >= 75:
-			money -= 75
-			menu_off = 1
-			gt 'train', 'village_ind'
-		else
-			'You don''t have enough money for this ticket.'	
+end
+
+if $ARGS[0] = 'ind_village':
+	$loc = 'train'
+	$loc_arg = 'village'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'village')
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 27:
+			gt 'train_events', 'events'
 		end
 	end
-	
-	act 'Buy a ticket to the old platform by the communal village (50 <b>₽</b>)':
-		if money >= 50:
-			money -= 50
-			menu_off = 1
-			gt 'train', 'village_communal'
-		else
-			'You don''t have enough money for this ticket.'	
+
+	'<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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'train', 'village'
+	end
+end
+
+if $ARGS[0] = 'ind_pavlovsk':
+	$loc = 'pav_train_hall'
+	$loc_arg = 'platform'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'ind', 'pavlovsk')
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 14:
+			gt 'train_events', 'private'
+		elseif transportVars['rand'] <= 39:
+			gt 'train_events', 'Gopnik'
+		elseif transportVars['rand'] <= 45:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 56:
+			gt 'train_events', 'events'
 		end
-	end	
-
-	act 'Buy a ticket to Pavlovsk (75 <b>₽</b>)':
-		if money >= 75:
-			money -= 75
-			menu_off = 1
-			gt 'train', 'village_pavlovsk'
-		else
-			'You don''t have enough money for this ticket.'	
+	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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'pav_train_hall'
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       communal        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'communal_center':
+	$loc = 'city_train'
+	$loc_arg = 'start'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'center')
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 28:
+			gt 'train_events', 'events'
 		end
-	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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'city_train', 'start'
+	end
 end
 
-if $ARGS[0] = 'village_trains':
-	$menu_loc = 'train'
-	$menu_arg = 'village_trains'
-	menu_off = 0
+if $ARGS[0] = 'communal_ind':
+	$loc = 'city_industrial_train'
+	$loc_arg = 'platform'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'ind')
+	minut += transportVars['timecost']
+	gs 'stat'
 
-	act 'Leave the platform': gt 'train', 'village'
+	if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 19: gt 'train_events', 'events'
 
-	act 'Take a train to St. Petersburg city center': gt 'train', 'village_center'
+	'<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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'city_industrial_train', 'inside'
+	end
+end
 
-	act 'Take a train to St. Petersburg city industrial area': gt 'train', 'village_ind'
+if $ARGS[0] = 'communal_village':
+	$loc = 'train'
+	$loc_arg = 'village'
+	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'village')
+	minut += transportVars['timecost']
+	gs 'stat'
 
-	act 'Take a train to the communal village': gt 'train', 'village_communal'
+	if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 20: gt 'train_events', 'events'
 
-	act 'Take a train to Pavlovsk': gt 'train', 'village_pavlovsk'
+	'<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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'train', 'village'
+	end
 end
 
+if $ARGS[0] = 'communal_pavlovsk':
+	$loc = 'pav_train_hall'
+	$loc_arg = ''
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'communal', 'pavlovsk')
+	minut += transportVars['timecost']
+	menu_off = 1
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 20:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 36:
+			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.'
+	act 'Get off the train': gt 'pav_train_hall'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!        village        !!
+		!!                       !!
+		!!-----------------------!!
+
 if $ARGS[0] = 'village_center':
 	$loc = 'city_train'
 	$loc_arg = 'start'
 	menu_off = 1
-	minut += 25
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'village', 'center')
+	minut += transportVars['timecost']
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 38:
+			gt 'train_events', 'events'
+		end
+	end
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-	'After 25 minutes, the train stops at the St. Petersburg city center station. The large office blocks and shopping centers fill your view.'
+	'After <<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 train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt 'city_train', 'start'
 	end
 end
@@ -214,14 +455,23 @@ if $ARGS[0] = 'village_ind':
 	$loc = 'city_industrial_train'
 	$loc_arg = 'platform'
 	menu_off = 1
-	minut += 20
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'village', 'ind')
+	minut += transportVars['timecost']
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 38:
+			gt 'train_events', 'events'
+		end
+	end
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After 20 minutes, the train stops at the St. Petersburg city industrial area station.'
+	'After <<transportVars[''timecost'']>> minutes, the train stops at the St. Petersburg city industrial area station.'
 	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt 'city_industrial_train', 'inside'
 	end
 end
@@ -229,14 +479,17 @@ end
 if $ARGS[0] = 'village_communal':
 	$loc = 'train'
 	$loc_arg = 'communal'
-	minut += 10
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'village', 'communal')
+	minut += transportVars['timecost']
 	menu_off = 1
-	if rand(1, 100) <= 20: gt 'train', 'events'
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 20: gt 'train_events', 'events'
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After 10 minutes, you arrive at an old railway platform near the communal village.'
+	'After <<transportVars[''timecost'']>> minutes, you arrive at an old railway platform near the communal village.'
 	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt 'train', 'communal'
 	end
 end
@@ -244,655 +497,147 @@ end
 if $ARGS[0] = 'village_pavlovsk':
 	$loc = 'pav_train_hall'
 	$loc_arg = 'platform'
-	minut += 15
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'village', 'pavlovsk')
+	minut += transportVars['timecost']
 	menu_off = 1
-	if rand(1, 100) <= 20: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
 	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 20:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 36:
+			gt 'train_events', 'events'
+		end
+	end
+
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After 15 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 <<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 train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
 		gt 'pav_train_hall'
 	end
 end
 
 
-if $ARGS[0] = 'events':
-	event_random = rand(15, 130)
-	if event_random < 25:
-		gt 'train', 'oldman'
-	elseif event_random < 45:
-		gt 'train', 'fit'
-	elseif event_random < 70:
-		gt 'train', 'young'
-	else
-		gt $loc, $loc_arg
-	end
-end
+		!!-----------------------!!
+		!!                       !!
+		!!       pavlovsk        !!
+		!!                       !!
+		!!-----------------------!!
 
-!!only triggered direct from Pav when going to the city center
-if $ARGS[0] = 'weed':
-	train_event = 1
+if $ARGS[0] = 'pavlovsk_village':
+	$loc = 'train'
+	$loc_arg = 'village'
 	menu_off = 1
-	$loc = 'city_train'
-	$loc_arg = 'start'
-	*clr & cla
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'village')
+	minut += transportVars['timecost']
 	gs 'stat'
-	'<center><h4>Pavlovsk Station</h4></center>'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After you buy your ticket, they tell you that you have just missed the train. A little miffed at this, you take a seat on one of the benches on the platform to wait for the next train to the city to arrive.'	
-	act 'A man approaches you with an offer':
-		*clr
-		cla
-		'<center><h4>Pavlovsk Station</h4></center>'
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weed.jpg" ></center>'
-		'Only a few minutes have passed when you hear someone walk up behind you and stop. You know they must be mere inches away, so you turn to look. Standing there is a young man, smiling at you, holding up a self-rolled cigarette... that looks suspiciously like a joint. The guy doesn''t seem too concerned about somebody catching him with that in public though and focuses entirely on you.'
-		*nl		
-		'"Hey beautiful, I couldn''t help but notice you sitting here all by yourself. Guess you missed the train too, huh?" He looks around, as if he only just noticed that he is walking around a public place with a joint in his hand, then leans down and whispers conspiratorially, "How about we blaze one while we wait?"'
-		act 'Refuse':
-			*clr & cla
-			gs 'stat'
-			'<center><h4>Pavlovsk Station</h4></center>'
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-			'You have no idea what could be in it and have no intention of being caught out in the open with marijuana either, so you shake your head. "No, thanks."'
-			'He shrugs and steps away. "Alright, just trying to be friendly. It''s your loss."'
-			*nl
-			'He wanders around for a bit. Eventually, another young woman comes down to the platform. You watch him go over, and you are sure he''s making her the same offer, but unlike you, she nods, and they smoke the joint together.'
-			*nl
-			'You can see them talk a little, and even from where you''re sitting, you can tell that the woman is giving him wanton looks. Before long, the two of them sneak off across the tracks and disappear; just as the train arrives, they come rushing back, clothes out of place and hair disheveled.'
-			'It isn''t hard to guess what they were doing to kill time.'
-
-			act 'Board the train to the city':
-				*clr & cla
-				minut += 40
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-				'After 40 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'
-				end
-			end
-		end
 
-		act 'Smoke with him':
-			*clr & cla
-			pcs_horny = 100
-			gs 'stat'
-			'<center><h4>Pavlovsk Station</h4></center>'
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedsmoke.jpg" ></center>'
-			'You smile and nod, taking the joint from him - you only live once and it''s as good a pastime as any. He lights it as you take a long slow drag off it and hold it in, feeling it in your lungs... until you start coughing, causing him to chuckle. You feel the relaxing effect almost at once, your head feeling both lighter and heavier, your mind slowing down... but you notice a slightly odd taste to the smoke that you can''t place - maybe that''s just what this variety tastes like. You pass it back and forth with him, chatting idly as you smoke, and as you do, you start to feel aroused: Your nipples harden, your pussy gets soaking wet and you feel so wound up that you have to actively keep your hands in check to prevent yourself from masturbating out in the open.'
-			'One thing you know for sure even in your current state: Marijuana isn''t supposed to have this effect. You look at your smoking buddy. "What else was in this joint?"'
-			'"XTC," he responds with hesitation, a lazy smile on his face. "It feels great, right?" He grabs you by the hand and pulls you up along with him. "Come on, let''s go have some fun before the train arrives. I know you''re just as horny as I am."'
-			act 'Refuse':
-				*clr & cla
-				gs 'stat'
-				'<center><h4>Pavlovsk Station</h4></center>'
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-				'You still have enough presence of mind to know this is a bad idea, so you shake your head. "No, thanks."'
-				'He shrugs and steps away. "Alright, just trying to be friendly. It''s your loss."'
-				*nl
-				'He wanders around for a bit. Eventually, another young woman comes down to the platform. You watch him go over, and you are sure he''s making her the same offer, and like you, she nods and they smoke the joint together. You briefly consider going to the bathrooms to masturbate but you don''t want to miss the train again.'
-				*nl
-				'You can see them talk a little, and even from where you''re sitting, you can tell that the woman is giving him wanton looks. Before long, the two of them sneak off across the tracks and disappear; just as the train arrives, they come rushing back, clothes out of place and hair disheveled.'
-				'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
-					minut += 40
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/cityplat.jpg" ></center>'
-					'After 40 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'
-					end
-				end
-			end		
-			act 'Go with him':
-				*clr & cla
-				'<center><h4>Pavlovsk Station</h4></center>'
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedhorny.jpg" ></center>'
-				'If you were simply horny, you might not have accompanied him, but the XTC has fully taken effect by now. Your mind is reeling, and you feel like you can trust the guy who just drugged you, so you go with him, looking forward to some ''fun''. He leads you across the tracks to the less-used side of the platform and takes you behind one of the roofed waiting areas. Once there, he starts kissing you and pulling your top aside enough to bare your breasts, squeezing and caressing them as you make out, and you groan into his mouth in response.'
-				*nl
-				'You are turned on beyond reason and badly want to fuck him, or anybody else, as long as you just get to have a cock inside you. The XTC tells you that he is a great guy, that you can feel safe with him, that nothing you do here will backfire. Your hands undo his pants. You pull out his cock and start stroking him with one hand while your other hand is rubbing your pussy through your clothes.'
-				gs 'npcgeneratec', 0, 'Stoner', rand(18,24)
-				gs 'boyStat', $npclastgenerated
-				gs 'arousal', 'foreplay', 5, 'unknown'
-				act 'Suck him':
-					*clr & cla
-					'<center><h4>Pavlovsk Station</h4></center>'
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedbj.jpg" ></center>'
-					'He gently pushes down your shoulders, and that is all the encouragement you need. You squat down in front of him at once, taking his <<dick>>cm <<$dick_girth>> cock into your mouth, and start sucking him. Your tongue is giving every bit of his cock it can reach its attention, and you bob your head back and forth, your <<$pc_desc[''lips'']>> lips wrapped tightly around his shaft.' 
-					*nl
-					'You take him as deep into your mouth as you can, keeping him there until you start to gag and have to come up for air. After two heavy breaths to recover, you take him inside again, now rapidly moving your head, sucking and deepthroating him for all you''re worth.'
-					gs 'arousal', 'bj', 5, 'deepthroat', 'unknown'
-					act 'Fuck him':
-						*clr & cla
-						'<center><h4>Pavlovsk Station</h4></center>'
-						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedvag.jpg" ></center>'
-						'He is having the time of his life, but all your blowjob does is make you hornier, and you can''t take it any longer. You start removing your clothes bit by bit while you keep blowing him, until every item below your waist is removed. Once your pussy and ass are bare, you pull him down and get him to lie down on his back.'
-						*nl
-						'He has barely even touched the ground when you straddle him, facing his legs and lowering yourself down until you feel his <<dick>>cm <<$dick_girth>> cock stretch out your wet cunt. You moan out loud as you impale yourself on his shaft, going all the way down on the first stroke. You lift yourself up again and, again, take his entire length, faster this time. Then again, and again, riding him harder and faster with every stroke, his cock feeling as big as that of a prized stallion.'
-						gs 'arousal', 'vaginal', 5, 'dom', 'unknown'
-						act 'Take his cum':
-							*clr & cla
-							'<center><h4>Pavlovsk Station</h4></center>'
-							'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedcum.jpg" ></center>'
-							'You give him the fuck of a lifetime, feeling your orgasm approaching fast, so close, so very close... but he lifts you off and quickly stands up. "I''m about to cum!"'
-							*nl
-							'You have half a mind to say the same but you are too turned on to speak. You squat down in front of him again and start jerking him off as you open your mouth and stick out your tongue. It only takes a few strokes before he shoots most of his load into your mouth, with a few stray squirts landing on your chin.'
-							*nl
-							'With your mouth still open, you show him his sperm on your tongue before you swallow it down, then start sucking his cock again. He was getting soft, but you feel him getting hard again in your mouth, and you are already looking forward to another go so you can have your own orgasm.' 
-							*nl
-							'That''s when you hear the train coming. "The train''s here; we have to stop," he states with a hint of regret as he pulls his cock out of your mouth. Without another look at you, he quickly pulls up his pants and rushes over to the train as it comes to a stop. You hurriedly get dressed as well and then rush after him to get on the train. You make it just in time - the doors close almost as soon as you are in.'
-							gs 'arousal', 'end'
-							gs 'cum_call', 'face', 'Stoner'
-							gs 'cum_call', 'mouth_swallow', 'Stoner'
-							gs 'stat'
-							act 'Board the train to the city':
-								*clr & cla
-								minut += 5
-								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 40 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'
-								end
-							end
-						end
-					end
-				end
-			end
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 27:
+			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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'train', 'village'
+	end
 end
 
-!!events starting on the train. Only one act will show up depending which one triggered but they all start the same.
-if $ARGS[0] = 'private':
-	*clr & cla
-	minut -= 35
-	train_event = 1
+if $ARGS[0] = 'pavlovsk_communal':
+	$loc = 'train'
+	$loc_arg = 'communal'
 	menu_off = 1
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'communal')
+	minut += transportVars['timecost']
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
-	'You board the train and walk past several of the private compartments on your way to the general seating on the car you are on.'
-	act 'You walk past the private compartments':
-		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
-		'After the first stop as you are walking past the open door of one of the private compartments, you hear a man''s voice call out to you, "Hello there, young lady! Would you care to join me?"'
-		'You stop and look inside, finding a clean-shaven man sitting there with a select few wrinkles that accentuate his angular features; you estimate that he''s in his late thirties or early forties. The expensive suit he''s wearing and the hints of cologne tickling your nose speak volumes about his wealth, and his self-confident, even smug expression tells the rest of the story. He motions for you to sit with him. "It''s alright, there''s plenty of room in here. Why don''t you come in and close the door?"'
-		*nl
-		'You hesitate - he is undressing you with his eyes and not even trying to hide it, so you doubt that all he wants is a conversation partner, and sure enough when he notices your pause, he pulls 500 <b>₽</b> out of his wallet and puts it on the seat next to him. "If you come in and close the door, we can have a very enjoyable trip together... and you can get off with a little pocket money."'
-		act 'Refuse':
-			*clr & cla
-			gs 'stat'
-			minut += 35
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
-			'You shake your head indignantly. "Fuck you, I''m no whore! Who do you think you are?!" You don''t give him time to respond but simply walk away and take a seat in the general seating area.' 
-			*nl
-			'You spend some time talking to some of your fellow passengers and share the story with a couple of them. They seem shocked that a man would make such an offer to a nice young lady like you right on this train and speculate that only a crook would be insolent enough to try something like that.'
-!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
-			act 'Continue journey': gt $loc, $loc_arg
-		end
 
-		act 'Accept his offer':
-			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/ridebj.jpg" ></center>'
-			gs 'npcgeneratec', 0, 'Guy on train', rand(34,45)
-			gs 'boyStat', $npclastgenerated
-			'Another stop goes by as you wait for some passengers to pass.'
-			*nl
-			'You bite your lower lip as you consider his offer. You could use the money... and the thought of having sex on the train is exciting in itself too. With your mind made-up, you step inside, close the door behind you and pull the privacy blinds down. When you turn back to him, you see that he already has his cock out and is looking at you with a strange, self-satisfied smile.' 
-			*nl
-			'Unfazed by his boldness, you kneel down in front of him and lick up and down his length a few times before you take his <<dick>>cm <<$dick_girth>> cock into your mouth, noticing that even it smells of that nice cologne. Your tongue moves around the head as you suck his cock, and you start bobbing your head up and down while your hands take turns playing with his shaved balls. It''s hard for you to decide whether you want to move slow and tease him or speed up to avoid getting caught, but what you are doing seems to be to his liking.'
-			*nl
-			'"Good girl," he whispers, "I knew you could suck cock as soon as I saw you." His praise causes you to smile a little around his cock, and you take him a little deeper in response.'
-			gs 'arousal', 'bj', 10, 'prostitution', 'sub', 'unknown'
-			gs 'dinSex', 'std_trigger_oral'
-
-			act 'First stop':
-				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/ridevag.jpg" ></center>'
-				'He enjoys your blowing him until the train arrives at its first stop, even opening the window blinds a little to look outside while you continue sucking him off, expecting somebody to find you in this position at any moment.' 
-				*nl
-				'The train leaves the station without incident however, and at that point, the man motions for you to stop and get up with him. He turns you around and bends you over, pulling your clothes aside just enough to expose your pussy which, by this point, is dripping wet from the immense thrill of your risky actions. In one smooth stroke, his <<dick>>cm <<$dick_girth>> cock is inside you, the full length buried to the hilt, the feeling so intense that you have to keep yourself from moaning too loud; and the sensations multiply when he starts to move.' 
-				*nl
-				'He is not gentle with you by any means, but the truth is that you wouldn''t have wanted gentle "love-making" in this situation - you are having sex on a train for crying out loud! And all it would take would be one curious passenger brave enough to peek inside to expose you as the slut you are, but that is what makes it so wonderful, so depraved and exciting, and it is exactly why, at that moment, you want to be fucked hard, and he is more than happy to give you the pounding you crave.' 
-				*nl
-				'The man keeps going for a while until he starts breathing harder. You faintly notice that the train is slowing down and coming to a halt. People are getting off and on the train, surely somebody could discover you at any moment, and the blinds on the window aren''t fully closed either! But you cannot think straight and your lover chooses this particular moment of half-awareness to stop and lay you down on the seat.'
-				gs 'arousal', 'vaginal', 15, 'prostitution', 'sub', 'unknown'
-
-				act 'Second stop':
-					*clr & cla
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/rideanal.jpg" ></center>'
-					'Once he has you lying on your back, bedded on dusty seat cushions with your nether parts fully exposed to him and anybody who might enter, he moves up and slips his <<dick>>cm <<$dick_girth>> cock into your ass without warning. It enters surprisingly easily, and even though you are unprepared, you manage to relax enough to avoid any pain. It certainly helps that he is taking it slow, giving you plenty of time to adjust to his cock while your mind is racing, running hot as it tries to comprehend how a simple train ride ended up with you having anal sex, on the train, with a complete stranger!' 
-					*nl
-					'Honestly, it makes relaxing difficult because your muscles are twitching around him in excitement and you can barely contain your moans. He goes a little deeper and a little faster, but your ass is too much for him, and he can''t last much longer. You feel the first spurt of sperm deposited in your ass a second later, and as he continues to cum, he pulls out of you.'
-					gs 'arousal', 'anal', 5, 'prostitution', 'sub', 'unknown'
-					gs 'dinSex', 'std_trigger'
-
-					act 'Finished':
-						*clr & cla
-						money += 500
-						gs 'cum_call','anus',$boy, 0,'','',20
-						gs 'cum_call','butt',$boy, 0,'','',20
-						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/ridecum.jpg" ></center>'
-						'As he does, several spurts shoot all over your ass, and you can feel more of his spunk leaking out of your gaping anus. With a final grunt and spurt, he sits down opposite you, giving you and the state he left you in an appreciative look before he puts his cock away and hands you the 500 <b>₽</b>... And then, he simply pulls out a newspaper and starts reading it. The switch from ravaging your asshole to perusal is so sudden that you are confused for a moment. You soon realize, however, that he is really no longer paying attention to you and you are lying around with cum dripping out of your backdoor, so you quickly get up and get yourself cleaned up.'
-						
-						act 'Your stop':
-							*clr & cla
-							'<center><video autoplay loop src="images/locations/shared/train/pantyup.mp4" ></video></center>'
-							'Once you are dressed again and have removed most of the sperm, you sit down and quietly study the man you had sex with who seems content to spend the rest of the ride in silence and feigned obliviousness to your presence. After a bit, you pull out your phone and amuse yourself with it until the train finally reaches your destination. "Well, this is my stop," you tell him.'
-							*nl
-							'He looks up from his newspaper for the first time since he came. "I wish you a safe trip. And thank you for making this ride a bit less dull," he adds with a wink before returning to the headlines. You leave the compartment, the strange and naughty events fresh on your mind, and make your way to the closest exit.'
-							gs 'arousal', 'end'
-							gs 'stat'
-
-							act 'Get off the train':gt $loc, $loc_arg
-						end
-					end
-				end
-			end
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 10:
+			gt 'train_incidental', 'events'
+		elseif 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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'train', 'communal'
+	end
 end
 
-if $ARGS[0] = 'oldman':
-	*clr & cla
+if $ARGS[0] = 'pavlovsk_ind':
+	$loc = 'city_industrial_train'
+	$loc_arg = 'platform'
 	menu_off = 1
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
-	'You choose an empty seat by the window and look outside, lost in thought, as others board the train. Shortly after the departure, an old man sits down next to you. He offers you some nuts from a bag he is carrying, and you politely take a few; you would have been content with spending the rest of the ride in silence, but the man then starts talking to you about how he has not been back to this area since his wife died a few years ago. Curious and feeling somewhat obligated to keep the conversation going, as awkward as it may be, you ask him about his wife and learn that, until recently, they had a happy, wonderful life together; alas, what they thought was just a bad cough that wouldn''t go away turned out to be lung cancer, and she died a very slow and agonizing death while he could do nothing but watch and care for her.'
-	*nl		
-	'He gets very emotional while telling you the story, even has to wipe away tears a few times, and thanks you for listening to him once he finishes it. "I don''t even know why I started telling you about her," he apologizes, "I guess it''s because you remind me my wife when she was young. You are just as beautiful as she was. If only you could-"'
-	*nl
-	'He seems to want to say more, but as the train pulls into the station you''re both headed for, he shakes his head as if saying no to himself. "Please, what is it?" you coax. He says he shouldn''t ask but wonders if you would be so kind as to go with him to a place he and his wife liked to go. He would love the company if you are not too busy.'
-
-	act 'Refuse his request (<<will_cost>> Willpower)':
-		*clr & cla
-		gs 'stat'
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
-		'You feel sorry for him, but you really don''t have time for this, especially since you think this won''t be just a quick walk - after all, accepting a handful of nuts from him turned into story time! You inform him, with audible regret, that you just don''t have the time to accompany him; he nods sadly but understandingly, and once you''ve disembarked the train, you both go your separate ways.'
-!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
-		act 'Continue': gt $loc, $loc_arg
-	end
-
-	act 'Accept his request':
-		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/old.jpg" ></center>'
-		'Your heart goes out to the guy; after spending the entire train ride listening to him, you feel sorry for him and his loss. You decide that you can make time for him, and you agree to go with him and keep him company. He livens up and seems happier than you have seen him since he sat down next to you. Once off the train, he leads you down the tracks a bit to a small bridge over a gully, then down and along the end alongside the bridge. He points out a small old building, informing you that he and his wife used to come down here all the time, especially when they were younger.'
-		*nl
-		'Honestly, the place is one of the most rundown and shabby you''ve seen in a while, but maybe it looked a lot different when he was young, so you hold your tongue so as not to spoil his sentimental mood and walk with him. As you do, he wraps his arm around your waist and points out several other buildings and things, talking about what they were like years ago and the many picnics and such he and his wife had here. He leads you up a set of stairs to a concert platform... and sighs when he finds the door at the top barred. "Last time me and my wife were here, we were able to sneak inside and..." but you don''t listen to how this story ends because, right at that moment, you notice the raging hard-on in his pants.'
-		*nl
-		'He glances down when he sees what you''ve caught and quickly apologizes. He admits that he and his wife used to sneak down here and have sex. He says that you look so much like her and it has been years since he had sex... so maybe you could make an old, sad man feel young and happy again, even if only for a few short minutes?'
-
-		act '"No, that''s too much to ask"':
-			*clr & cla
-			gs 'stat'
-			'You tell him that you''re not going to have sex with him. It is more than a little creepy to have sex where he and his wife used to do it anyways. Feeling repelled by him and his request, you quickly pull free from him and make your way back to the platform, leaving the old guy to himself and his strange ideas.'
-			act 'Return to the station': gt $loc, $loc_arg
-		end
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'ind')
+	minut += transportVars['timecost']
+	gs 'stat'
 
-		act 'Fulfill his wish':
-			*clr & cla
-			gs 'npcgeneratec', 0, 'Old guy', rand(52,67)
-			gs 'boyStat', $npclastgenerated
-			gs 'pain', 3, 'vaginal', 'ache'
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/oldvag.jpg" ></center>'
-			'"Poor guy," you think to yourself. After all he''s been through, his request doesn''t seem like too tall an order; he really looks like he could use a little love, so you nod your head and are halfway down on your knees when he stops you. "I am very grateful you want to help me, Miss, but my wife didn''t believe in oral sex, and I think she rubbed off on me. Maybe you could just... take off your bottoms?" he asks in a pleading and hopeful tone. You raise an eyebrow - you actually kind of hoped that a quick blowjob would be the extent of this, and he must be the first man you''ve met who actually turned one down - but you agreed to "sex", after all. You wordlessly strip from the waist down and watch as he does the same, feeling a little uneasy now that you''re half-naked in this strange place. It doesn''t help that the old man''s look is a lot more lecherous now, but who would blame him in this situation?'
-			*nl
-			'He turns you around and has you put one foot up on the gate blocking the door, spreading your legs as you face the door. The elderly guy comes up behind you, and without warning, he shoves his <<dick>>cm <<$dick_girth>> cock into your vagina. He didn''t even check if you were wet, roughly boring through any resisting tissue. You grit your teeth to stifle a cry of pain, but it escapes you anyway when he begins to roughly fuck you, holding you by your hips and pulling your ass back against him. You endure, sure that he won''t last long, but he ends up fucking you for quite a while before he pulls out. By this point, you are somewhat lubricated and a little numb to the pain, but you are still glad it is over... except it isn''t.' 
-			*nl
-			'The old man simply pulls you down to the ground, laying you on your side in a spoon position with himself right behind you, and slips his cock back into you. A second later, he has resumed pounding your pussy as hard as he physically can.'
-			gs 'arousal', 'vaginal', 15, 'rough', 'unknown'
-
-			act 'Surprise buttsex':
-				*clr & cla
-				gs 'pain', 3, 'asshole', 'ache'
-				'<center><img <<$set_imgh>>  src="images/locations/shared/train/sex/oldanal.jpg" ></center>'
-				'He keeps this up for a while, and it is almost starting to feel okay when he pulls out and pauses. Again, you briefly think that he is done and only have a second to realize that, actually, he is rubbing the tip of his cock against your anus. Before you can even protest, his <<dick>>cm <<$dick_girth>> cock has already painfully penetrated your ass. You instinctively want to flinch away, but he grabs your hips with surprising strength and forces his cock as far into your ass as he can... before he starts hammering your ass. "My wife loved anal," he informs you between slaps of flesh against flesh, "I hope you don''t mind."'
-				*nl
-				'You can merely groan in response as he violates your little asshole. His wife must have really liked rough sex if this was the norm for them. He lifts your leg up and props your foot on the wall to keep your legs spread, which thankfully puts you at an angle where it hurts a little less. Still, you are really starting to regret that you wanted to help him out.'
-				gs 'arousal', 'anal', 10, 'rough', 'unknown'
-
-				act 'Take his cum':
-					*clr & cla
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/oldcum.jpg" ></center>'
-					'All of a sudden, he pulls out of your ass and, you feel his hot sperm splattering against your puckered hole, pussy lips and inner thighs. It''s not as much cum as you expected for somebody who didn''t have sex in years, but maybe he jerks off a lot? He gets up first, using your shoulder for support,  which holds you down until he is fully on his feet. Bearing it without clamor, you start wiping off the cum as he gets dressed; by the time you finally get off the ground yourself, he''s fully clothed, whistling and already walking off back the way you came with him.'
-					*nl
-					'You hurry up in getting yourself back in order, but by the time you have your bottoms back on and look up, he is almost out of the gully already, halfway back to the tracks! He seems <b>a lot</b> more spry than before, and you get the sneaking suspicion that you have been had in more ways than one.' 
-					'Cursing your gullibility and wincing at the ache in your pussy and ass, you finish dressing and head back to the platform - as unpleasant as this was, maybe you''ve learned your lesson at least.'
-					gs 'arousal', 'end'
-					gs 'cum_call', 'labia', 'Old guy'
-					gs 'cum_call', 'butt', 'Old guy'
-					gs 'cum_call', 'legs', 'Old guy'
-					gs 'stat'
-
-					act 'Return to the station': gt $loc, $loc_arg
-				end
-			end
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 14:
+			gt 'train_events', 'private'
+		elseif transportVars['rand'] <= 39:
+			gt 'train_events', 'Gopnik'
+		elseif transportVars['rand'] <= 45:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 56:
+			gt 'train_events', 'events'
 		end
 	end
-end
 
-if $ARGS[0] = 'fit':
-	*clr & cla
-	menu_off = 1
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride1.jpg" ></center>'
-	'You sit in an empty seat by the window and look outside, lost in thought, as others board the train. Shortly after the departure, a man in his thirties - or perhaps early forties - sits down next to you. You don''t give him more than a short glance as he takes the seat, but it doesn''t take more than that to notice that he is in <b>great</b> shape. You try not to stare, but you just can''t help yourself - the world outside the window is just too boring to hold your attention. Of course, your gaze does not go unnoticed, and the man, grinning, engages you in a conversation.'
-	*nl
-	'He asks you your name, where you''re going and a few other questions, and before you know it, you''re chatting and laughing about a movie both of you happen to have watched recently. He is pretty charming, and even a blind deaf woman would notice his flirting.'
-	*nl
-	'As you talk, you realize you are both getting off at the next stop, and he asks if you would like to go for a walk with him along the tracks after you disembark the train. As innocent as he tries to make it sound, you have no doubt what he would really like to do with you on that "walk", but he <i>is</i> attractive and his fitness and charm are sexy enough to make his offer tempting.'
-
-	act 'Refuse his offer':
-		*clr & cla
-		gs 'stat'
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
-		'You thank him but politely refuse his offer, claiming that, sadly, you don''t have time to go on a walk today and are already running late, really. He doesn''t seem too disappointed though. "I''m sure we will meet again on the train sometime," he augurs with a smile, "and then you will have time for that walk." You don''t know if his prophecy is going to come true or not or if he truly believes what he said but, regardless, he remains a pleasant dialog partner for the rest of the ride.'
-!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
-		act 'Leave the train': gt $loc, $loc_arg
-	end
-
-	act 'Accept his offer':
-		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fit.jpg" ></center>'
-		'You consider his offer. It doesn''t exactly sound like a smart idea to go on a walk along the train tracks with a complete stranger, but somewhere between his charming compliments and the hard abs he let you feel, you lose all sense of what is smart. You let him know you would love to go for that walk, throwing caution to the wind because it could be fun.' 
-		*nl
-		'Once you''ve reached your destination, you disembark the train together and wait for it to pull out of the station. He then takes you by the hand and leads you down the tracks, talking to you about how pretty you are, his flirting amped up to eleven.'
-		*nl
-		'The two of you end up walking further than you expected, well out of sight of the station, and when he finally stops and starts kissing you, it''s so abrupt that you are momentarily stunned. Your friend doesn''t lose any time however, and his hands are, piece by piece, removing your clothes as you passionately kiss him back. He has you half-naked in no time, right here out on the tracks, and you feel thrilled at the idea someone could very easily happen by and see you like this.'
-		*nl
-		'While you are making out, his fingers find your clit and... you don''t really know what he''s doing or how he''s touching you, but there is no doubt that he knows <b>exactly</b> what he has to do to please you. Every move feels like jolts of electricity are running through your body, waves of relish going up and down your spine. Half the town could be watching you right now for all you care, as long as he doesn''t stop.' 
-		*nl
-		'But, of course, he does once he has you good and wet, and he gently pushes you down by your shoulders so you can reciprocate.'
-		gs 'arousal', 'vaginal_finger', 15, 'unknown'
-
-		act 'Give him a blowjob':
-			*clr & cla
-			gs 'npcgeneratec', 0, 'Fit guy', rand(32,42)
-			gs 'boyStat', $npclastgenerated
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fitbj.jpg" ></center>'
-			'As much as you would have liked to feel his heavenly fingers some more, you drop to your knees and waste no time in taking his <<dick>>cm <<$dick_girth>> cock deep into your mouth, immediately feeling his hand on back of your head. You wrap your lips tightly around the shaft of his cock and bob your head, sucking hard on him to give him an idea of the intense stimulation he gave you. Occasionally, he uses his hand to force you deeper down on him so you would gag a bit on his cock, but he seems mostly content with letting you pleasure him at your own pace.'
-			*nl
-			'You stay on your knees, blowing him, for quite a while - if the sore jaw muscles are anything to go by - and even with your discarded clothes to kneel on, you''re probably going to have sore knees after this.'
-			gs 'arousal', 'bj', 15, 'deepthroat', 'unknown'
-			gs 'pain', 1, 'legL', 'ache'
-			gs 'pain', 1, 'legR', 'ache'
-			gs 'stat'
-
-			act 'Let him fuck you':
-				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fitvag.jpg" ></center>'
-				'He pulls you up, back on your feet, and turns you around. You expect him to bend you over the next moment, but instead, he lifts one of your legs off the ground, and you feel him rubbing the head of his cock against your pussy lips, teasing you and himself and getting you all worked up again. Once his tip is nice and wet, he slides his <<dick>>cm cock into you, filling your pussy with his <<$dick_girth>> cock.'
-				*nl
-				'Holding one of your legs up with one hand, he wraps his other around your waist to help you keep your balance. You have to reach back, around his shoulders, as well to support yourself, but it is easy in the face of the pleasure you''re feeling. He strokes the length of his cock inside you, giving you a passionate fuck right there on the train tracks. Your moans come loud and unrestrained; you don''t care if anyone is nearby, if anybody can hear you or see you. He completely fills you, both physical and emotionally, and every rational thought is washed away by waves of pleasure.'
-				gs 'arousal', 'vaginal', 10, 'unknown'
-
-				act 'Take his cum':
-					*clr & cla
-					minut += 5
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fitcum.jpg" ></center>'
-					'His hard breathing turns into groans, and the next moment, he pulls out of you, letting go of your leg and body. You squat down in front of him, rubbing your clit and opening your mouth. Before he can even get his cock back into your mouth, the first jet of cum spurts across your lips; the following ones end up shooting into your now fully-opened mouth.'
-					*nl
-					'He squeezes the last few drops of sperm into your mouth and then sticks his cock inside. You swallow his cum obediently and then suck his cock clean, licking every tasty inch of it you can reach. Once he goes soft in your mouth, he pulls back and the two of you start getting dressed.'
-					*nl
-					'Naturally, he is the first to be back in order, but he waits until you are cleaned up and presentable again and then walks you back to the station. The walk back is anything but awkward. He flirts with you just like he did at the very start, and you are getting the sense that he might be genuinely interested in you. Or, at the very least, he''s not the kind of ass who just wants to fuck you and forget you.'
-					gs 'arousal', 'end'
-					gs 'cum_call', 'mouth_swallow', 'Fit guy'
-					gs 'stat'
-
-					act 'Return to the station': gt $loc, $loc_arg
-				end
-			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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'city_industrial_train', 'inside'
 	end
 end
 
-if $ARGS[0] = 'young':
-	*clr & cla
+if $ARGS[0] = 'pavlovsk_center':
+	$loc = 'city_train'
+	$loc_arg = 'start'
 	menu_off = 1
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride1.jpg" ></center>'
-	'You sit in an empty seat by the window, looking outside, lost in thought, as others board the train and it eventually departs. Most of the train ride passes as you silently daydream with the scenery outside blurring together. It''s not until someone heavily sits down next to you that you snap out of it. You turn to see a good looking young guy in his early to mid-twenties greeting you with a bright smile. "I''ve gotta say: I''ve walked from one end of this train to the other, and you are by far the most beautiful girl on it."' 
-	*nl
-	'You blush slightly at his compliment. "Thank you, you''re not so bad looking yourself," you reply as you look him over. He is well groomed, with a nice suit jacket over a button-up shirt. His pants are patched, but you suppose it is done intentionally for style - still, it clashes with the nice jacket and makes it look like he is trying to look his best but hasn''t quite figured out all the tricks yet.'
-	*nl
-	'"So where are you headed?" he asks.'
-	'"I get off at the next stop," you respond without thinking. His lips curl into a suggestive grin; it takes you a moment to realize how your words could be taken as a sexual innuendo and blush slightly - something about this guy makes you blush a lot more than usual.'
-	'"Well, I could help you with that, if you like," he offers, his eyes following your curves, "it''s always better to get off together."'
-	act 'Refuse':
-		*clr & cla
-		gs 'stat'
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
-		'He may be good-looking, but it''s time he learned that doesn''t have to mean anything. Shaking your head no, you tell him that "that''s not how I meant it." As you do, the train slows and comes to a stop.'
-		'"Oh, I get it!" he feigns realization at the ''misunderstanding'', "I didn''t mean that either. I just, you know, thought we could hang out and have fun." His effort to save the situation is valiant, but you shoot him down again with a "no, thank you" and disembark the train without looking at him again.'
-!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
-		act 'Return to the station': gt $loc, $loc_arg
-	end
-
-	act 'Accept':
-		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/young.jpg" ></center>'
-		'You look him over and bite your lower lip as you consider his suggestion. You don''t even know his name, but somehow, that makes it an even bigger turn on. You know exactly what he wants, and to your own small surprise, you find yourself wanting it too.' 
-		*nl
-		'"Okay," is all you say to him, but really, that is all he needs to hear.' 
-		'"Great! I''ll get you off in no time, or your money back!" he says laughing.'
-		'When the train stops at the final station, he leads you off the car, and the two of you wait as people leave the platform and new passengers get on. When the train has left and there''s nobody around anymore, he motions for you to follow him and takes you on a walk along the tracks.'
-
-		act 'Follow him':
-			*clr & cla
-			gs 'npcgeneratec', 0, 'Well dress guy', rand(18,21)
-			gs 'boyStat', $npclastgenerated
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/youngvag.jpg" ></center>'
-			'You keep looking back towards the station as you walk, making sure that nobody sees where you''re headed. Your male companion on the other hand seems to be a lot more interested in your anatomy than potential observers. He puts his arm around your waist as you walk together and somehow manages to worm his way into your panties, rubbing your clit as you move. You somewhat lose interest in looking back after that, focusing entirely on the fingers playing with your pussy and dipping inside you. As soon as he has you good and soaking wet - and has put enough distance between you and the station that you''re no longer in plain sight - he pulls down his pants and sits on the tracks, his erect cock an unmistakable invitation.' 
-			*nl
-			'Your need seems to explode at the sight, and you urgently pull your clothes aside enough to reveal your pussy and tits, squat down on his <<dick>>cm <<$dick_girth>> cock and guide him inside. You can feel it filling you up as you impale yourself on his hard shaft.'
-			*nl
-			'You start riding him, completely controlling the action and taking him at the exact depth and speed you want. The power over the situation is intoxicating, but it pales in comparison to the knowledge that you are fucking a stranger out in the open where anybody could find you at any moment; unsurprisingly, your moans are getting louder and louder, and you feel yourself building up to a strong orgasm, every thrust getting you closer to the peek... but before you can reach it, he pulls you off and stands back up. You are confused and groan in protest, but he pulls you up with him. "Don''t come yet, not yet. That was just the warm up," he promises. You have half a mind to scream at him for yanking you back so close to the edge, but you are too horny to be angry. All you wanna do is fuck right now.'
-			gs 'arousal', 'vaginal', 10, 'exhibitionism', 'unknown'
-			gs 'stat'
-
-			act 'See what he has in mind':
-				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/youngbj.jpg" ></center>'
-				'He takes your hand and walks you down the tracks a bit more. His cock is back in his pants, but you''re completely exposed - he insisted on it and, really, you don''t mind; it is thrilling, even with nobody around. As you pass two electricity sub-stations for the trains, he stops and pulls you between them, a mischievous grin on his face. "I saw a track worker, just a few hundred meters away," he whispers with a chuckle and pulls down his pants. "I wonder how he''d react if he found you, sucking my cock."' 
-				*nl
-				'You are not sure if he''s being serious about having seen somebody or not, but you are not thinking straight anymore; the notion that somebody might be close by who could catch you raises the stakes in an exciting way, so you don''t think twice before squatting down in front of him and taking his <<dick>>cm <<$dick_girth>> cock into your mouth. You can taste your own pussy juices on his cock as you suck him, a subtle reminder of your "warm-up". With your <<$pc_desc[''lips'']>> lips lips wrapped tightly around his shaft, you start bobbing your head while one of your hands fondles his balls. If somebody''s gonna find you, he''s gonna get an eyeful, that''s for sure!'
-				*nl
-				'After a few minutes, he pulls his cock out of your mouth and then lies down on his back again, his legs peeking out from between the sub-stations - either the track worker was imaginary or your friend is too horny to care anymore. His eyes are burning with desire, so both options are possible.' 
-				'"Lower yourself down on me again, baby... but this time, I want you to take my cock up your ass."'
-				gs 'arousal', 'bj', 10, 'exhibitionism', 'unknown'
-				gs 'stat'
-
-				act 'Do as he says':
-					*clr & cla
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/younganal.jpg" ></center>'
-					'You are too desperate for sex to say no even if you''d wanted to. Without hesitation, you spread a little bit of your secretions around your puckered hole, and you lower yourself onto him. You can feel the head of his cock rubbing against your asshole; the pressure builds, your sphincter resisting the penetration... until the head pops inside. You gasp softly, pain and pleasure both vying for your attention, and you slowly lower yourself further, taking more and more of his <<dick>>cm <<$dick_girth>> cock into your ass.'
-					*nl
-					'Once you have as much of his cock in your ass as you comfortably can on the first go, you start moving your hips, rising up and lowering yourself again, taking a tiny bit more of him into you each time. As you''re riding his cock with your ass, his hands come up to grab your waist - not to wrest control from you as you first thought, but to support your weight, allowing you to focus on getting into a rhythm and enjoying yourself as much as he audibly does, with a little help from your hand on your clit.'
-					$orgasm_or = 'custom'
-					$orgasm_txt = 'You are incredibly turned on, by him, by this situation, by having his cock in your ass, moaning loudly and riding him harder and faster. You barely even realize that you''re taking him balls deep into your ass with each thrust. Your body shudders and your moans come to a crescendo as you orgasm, falling back against him as wave after wave of ecstasy shakes you. Your moans turn into screams when he picks up the pace and thrusts up into you, fucking you hard from below and extending the climax.'
-					gs 'arousal', 'anal', 10, 'sub', 'unknown'
-					gs 'stat'
-
-					act 'Take his cum':
-						*clr & cla
-						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/youngcum.jpg" ></center>'
-						'He lifts you off him and stands up beside you, jerking his cock. You know what he wants, and you don''t mind opening your mouth for him. Maybe two seconds later, the first jet of hot, sticky sperm flies into your mouth; most of those that follow hit their target too - only one or two miss and end up on your lips.' 
-						'When the torrent of semen has run dry, your lover pulls up his pants while you swallow his load, the salty reward for an incredible experience. He waits for you to get dressed and cleaned up, then he walks you back to the platform, flirting and chatting amicably with you along the way, right up until you''re inside the station and it''s time to part ways.'
-						'"I''m glad that we''ve met today, <<$pcs_nickname>>. This has been one of the best days of my life; I''m not exaggerating. You are an amazing girl... and I hope to see you again someday." Honestly, you are a bit overwhelmed by this, but in a good way... in a great way, actually.'
-						'"Yeah, I... I had a lot of fun with you," you say lamely and give him an awkward smile as you try to find the right words, "and I hope we run into each other again too. Who knows, maybe we''ll meet on the train again?"' 
-						'"I''d like that." He gives you a kiss on the cheek and a boyish grin that makes you feel weak in the knees, and walks away. You follow him with your eyes until he''s turned a corner, then sigh and, with a heavy heart, return to your day-to-day life.'
-						gs 'arousal', 'end'
-						gs 'cum_call', 'mouth_swallow', 'Well dress guy'
-						gs 'stat'
-
-						act 'Return to the station and catch the next train':
-							*clr
-							cla
-							gs 'stat'
-							'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
-							'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
-							act 'Get off the train': gt $loc, $loc_arg
-						end
-					end
-				end
-			end
+	transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	if transportVars['train_event_day'] ! daystart:
+		transportVars['rand'] = rand(1, 100)
+		if transportVars['rand'] <= 14:
+			gt 'train_events', 'private'
+		elseif transportVars['rand'] <= 39:
+			gt 'train_events', 'Gopnik'
+		elseif transportVars['rand'] <= 45:
+			gt 'train_incidental', 'events'
+		elseif transportVars['rand'] <= 56:
+			gt 'train_events', 'events'
+		elseif tranportVars['rand'] <= 64:
+			gt 'train_events', 'weed'
 		end
 	end
-end
 
-if $ARGS[0] = 'Gopnik':
-	*clr & cla
-	menu_off = 1
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride3.jpg" ></center>'
-	'You are sitting in an empty seat by the window, looking outside, lost in thought, as others board the train. A gopnik boy sits down next to you, but you try to ignore him and keep staring outside. Unfazed by that, he gives you a once-over, a lewd grin you only see from the corner of your eyes forming on his face, and leans in close, putting his arm around you. You turn your head to tell him off, but your mouth is immediately covered by his! And, not content with just kissing you, the gopnik''s hand starts roaming across your breasts.'
-	gs 'willpower', 'exhib', 'resist', 'medium'
-	act 'Stop him':
-		*clr & cla
-		gs 'stat'
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
-		'After the immediate shock has passed, you push him away, but that doesn''t deter him in the slightest. He immediately tries to kiss and grope you again. You push him off once more, then get up and move to another seat next to a woman who nods at you sympathetically and shoots the gopnik a nasty look. With nowhere to sit where he could harass you, the boy looks at you for a moment, then shrugs and looks out the window. The rest of the ride is fairly uneventful; you spend most of it chatting with your seatmate / savior about men who molest women on trains.'
-!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
-		act 'Continue journey': gt $loc, $loc_arg
-	end
-
-	act 'Go with it':
-		*clr & cla
-		minut -= 30
-		gs 'fame', 'pav', 'sex', 5
-		gs 'npcgeneratec', 0, 'Gopnik', rand(18,25)
-		gs 'boyStat', $npclastgenerated
-		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnik.jpg" ></center>'
-		'He is pretty cute, and you find yourself in the mood for a little tenderness, so you return his kiss and allow him to paw at your body. During the ride, you hear more than a few people comment on the two of you making out like this on the train; several seem to be of the opinion that this is not a proper place to show this level of affection. Instead of deterring you however, all that does is tickle your rebellious streak and make you feel even more brazen.'
-		*nl
-		'Once the train stops at your destination, you get off with him, but you barely make it off onto the platform before he pulls you into another kiss. He is actually a pretty good kisser, and while his pawing hands might drive most innocent girls away, he seems to mostly know where he has to grope too. Breaking the kiss and finding you breathing as heavily as him, he suggests, "Let''s go for a walk; you know, somewhere a little more private."'
-		gs 'arousal', 'foreplay', 5, 'unknown', 'exhibitionism'
-		gs 'stat'
-		gs 'willpower', 'sex', 'resist', 'medium'
-		if will_cost <= pcs_willpwr:
-			act 'Decline (<<will_cost>> Willpower)':
-				*clr & cla
-				gs 'willpower', 'pay', 'resist'
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnik.jpg" ></center>'
-				'You shake your head no - you don''t wanna take it that far with him. "Sorry, but I don''t have time. It was fun though. The trip was a lot more exciting than I expected." He looks a little disappointed, so you comfortingly pat his cheek. "Maybe I will see you again sometime, and we can pick up where we left off." You lean in and give him a long, slow kiss goodbye, then bounce away and head off the platform. You hear him mutter about not getting more action, but you don''t really care - all you care about right now is that the train ride just flew by.'
-				act 'Return to the station and catch the next train':
-					*clr & cla
-					minut += 30	
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
-					'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
-					act 'Get off the train': gt $loc, $loc_arg
-				end
-			end
-		else
-			act 'Decline (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-		end	
-		act 'Agree':
-			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikwalk.jpg" ></center>'
-			'He takes you to the skyway over the tracks, holding your hand and pointing out different buildings and things. You already know almost everything he is talking about, but you let him talk for one very simple reason: he is surprisingly charming and sweet now, compared to the pawing weirdo you met on the train. He throws a lot of compliments your way, telling you how "the sun pales in comparison to your beauty" and the like. You consider telling him he really doesn''t have to try this hard, but some funny exaggerations aside, you genuinely enjoy flirting with him and let him go on.'
-			*nl
-			'Once the train has left the station and all who disembarked with you are gone, he carefully inspects your surroundings to see if anybody else is around. When he doesn''t see anyone, he stops and turns towards you. Back to his train persona, your gopnik friend decides to take this to the next level or three, unbuttoning his pants and pulling them down to his knees. His cock springs free, already hard and proudly fluttering in the wind.'
-			act '"Um... No"':
-				*clr & cla
-				gs 'stat'
-				'Even as he''s pulling down his pants, you are already shaking your head and laughing. "Do you think I''m a slut or something? I''m not gonna do something with you after a couple of compliments, especially not out in the open like this!" You turn and walk off, calling over your shoulder, "I thought you were a nice guy, but I guess I was wrong."' 
-				*nl
-				'The gopnik seems anything but pleased by your response. He tries to pull his pants back up and yells, "You fucking tease! Get back here!" You don''t; on the contrary, you exploit his current struggle with his pants to run back down the stairs to the platform and into the station before he can follow.'
-				act 'Return to the station': gt $loc, $loc_arg
-			end
-
-			act 'Blow him':
-				*clr & cla
-				gs 'boy'
-				'<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
-				'You know this is kind of slutty - a little more than just "kind of", actually - but the idea that you could get caught at any moment is making this a lot more arousing than it should be; so, here you are, sucking his cock right above the train platform. Plus, he is kinda cute, and you like his cock, so who care''s if it is slutty? The things the people said on the train got you riled up, and this makes you feel like you''re getting back at their stuffy selves. You''re having fun, and it''s your body to do with as you please, and that''s all that matters.'
-				'Well, that, and the hard cock you''re sucking with passion.'
-				gs 'arousal', 'bj', 10, 'exhibitionism', 'unknown'
-				gs 'stat'
-				act 'Let him fuck you':
-					*clr & cla
-					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikvag.jpg" ></center>'
-					'You don''t know how many minutes pass as you suck him; somewhere along the way, you worm your fingers into your panties, rubbing your clit, feeling a lot more turned on by sucking his cock than you expected. You don''t know if he always planned on more than just a blow job or if he sensed that you were getting horny and influenceable, but he eventually has you stop and stand up and pulls your clothes aside enough to bare your ass and expose your glistening wet pussy.'
-					*nl
-					'He meets no resistance when he turns you around and bends you over up against the side of the walkway railings; by the time he has lined his cock up with your pussy, you are looking back at him with eager anticipation. Impatient as you expected him to be, he slips his <<dick>>cm <<$dick_girth>> cock into your sopping wet pussy. It slides in easily, and he has no trouble at all bottoming out on the first thrust. Hearing your moan and feeling how wet and turned on you are, he starts fucking you hard right away. His hips slap against your butt cheeks with every thrust, and he reaches up and grabs your shoulder with one hand to keep you from moving away, furiously fucking your pussy and putting you into a state of ecstatic bliss right there on the skywalk.'
-					gs 'arousal', 'vaginal', 10, 'exhibitionism', 'rough', 'unknown'
-					gs 'stat'
-
-					act 'Have anal sex with him':
-						*clr & cla
-						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikanal.jpg" ></center>'
-						'When another train rolls into the station, he curses, pulls out of you and hastily tucks his penis back into his pants. Without waiting until you could do something similar, he grabs your hand and pulls you along with him; you manage to cover yourself to some extent, but you know your ass is still partially showing.' 
-						*nl
-						'He rushes down one of the access ramps of the skywalk to an older platform of the station that now serves as a storage siding. As soon as you turn the corner and are no longer visible from the skywalk or other platforms anymore - so basically as soon as you turn the corner - he pushes you up against the graffiti-covered wall, pulls your clothes aside again and shoves his cock back into your pussy, fucking you like you hadn''t been interrupted. While you try to stifle your moans so passersby on the walkway won''t hear you, he leans forward and seductively whispers into your ear, "I''m going to fuck that tight little ass of yours."' 
-						*nl
-						'Without waiting for a response from you, the boy pulls his cock out once more and slides his <<dick>>cm <<$dick_girth>> cock up your ass. You gasp in pain, but it turns into a moan of pleasure along the way. You don''t have to consciously relax your asshole to enjoy this at this point; you are so turned on at the moment that you don''t really care where he sticks his cock as long as he just keeps fucking you.'
-						gs 'arousal', 'vaginal', 10, 'exhibitionism', 'unknown', 'rough'
-						$orgasm_txt = 'Your ass is getting pounded almost as hard as your pussy; he is just rough enough to make it hurt a little, but in this strange state you''re in, it seems to hurt in a <i>good</i> way, adding more fuel to the mounting climax inside of you. And then, just like that, the pressure is released explosively, shaking you like a leaf in the wind as you have an anal orgasm, maybe five meters away from a skywalk. You cannot contain your moans at this point, and it doesn''t help that your lover redoubles his efforts and fucks your tight little asshole even harder when he realizes that you''re cumming.'
-						$orgasm_or = 'yes'
-						gs 'arousal', 'anal', -10, 'exhibitionism', 'unknown', 'rough'
-						'Had anybody walked by and heard or seen you right now, you wouldn''t have even cared.'
-						gs 'stat'
-
-						act 'Take his cum':
-							*clr & cla
-							'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikcum.jpg" ></center>'
-							'He suddenly groans; a first jet of sperm shoots into your bowels just as he pulls out, and you feel his hot sperm rain down all over your ass cheeks as he jerks himself off. When the stream dies down, he wipes off the last few drops at his tip on your butt before pulling his pants up; he then helpfully offers you a tissue.'
-							*nl
-							'As you clean yourself up, he breaks into a chuckle as he realizes something: "By the way, I''m <<$boydesc>>."'
-							'You can''t help but laugh at that; you just let him fuck you in every which way, and you didn''t even know his name! "<<$pcs_nickname>>, pleasure to meet you," you say in mock formality and even offer him your hand, "a real pleasure," you add with a suggestive smile. He feigns seriousness as he shakes the offered hand but cannot keep himself from grinning.'
-							'"It was nice meeting you as well, <<$pcs_nickname>>. Maybe I can call you sometime?", he asks hopefully.'
-							gs 'arousal', 'end'
-							gs 'cum_call', 'butt', 'Gopnik'
-							gs 'cum_call', 'anus', 'Gopnik'
-							gs 'stat'
-
-							act 'Give him your number':
-								*clr & cla
-								if rand(0,3) = 0:
-									gs 'boyfrend', 'start'
-									stopboy = 0
-								end
-								'"I''d like that," you tell him and give him your phone number. He waits until you''re more or less presentable again, then walks you back up to the skywalk where you two part ways.'
-
-								act 'Return to the station and catch the next train':
-									*clr & cla
-									minut += 30	
-									gs 'stat'
-									'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
-									'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
-									act 'Get off the train': gt $loc, $loc_arg
-								end
-							end
-							act 'Don''t give him your number':
-								*clr
-								cla
-								'You shake your head. "Look, <<$boydesc>>, I had fun but I am not looking for anything more than a fuck right now. Maybe we will run into each other on the train again or something sometime?"'
-								'He shrugs like he doesn''t care either way, but the look he gives you tells you that he''s a little pissed. "Sure, whatever. See you around." With that, he turns and walks off, leaving you to finish getting your clothes back in order.'
-
-								act 'Return to the station and catch the next train':
-									*clr & cla
-									minut += 30	
-									gs 'stat'
-									'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
-									'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
-									act 'Get off the train': gt $loc, $loc_arg
-								end
-							end
-						end
-					end
-				end
-			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.'
+	act 'Get off the train':
+		if transportVars['train_event_day'] ! daystart and rand(1, 100) <= 5: gt 'train_incidental', 'end'
+		gt 'city_train', 'start'
 	end
 end
 
+
+
+
 --- train ---------------------------------
 

+ 880 - 0
locations/train_events.qsrc

@@ -0,0 +1,880 @@
+# train_events
+
+
+if $ARGS[0] = 'events':
+	transportVars['rand'] = rand(1, 115)
+	if transportVars['rand'] <= 9:
+		gt 'train_events', 'oldman'
+	elseif transportVars['rand'] <= 26:
+		gt 'train_events', 'fit'
+	elseif transportVars['rand'] <= 48:
+		gt 'train_events', 'young'
+	elseif transportVars['rand'] <= 62:
+		gt 'train_events', 'breastfeed'
+	else
+		gt $loc, $loc_arg
+	end
+end
+
+
+if $ARGS[0] = 'oldman':
+	*clr & cla
+	menu_off = 1
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
+	'You choose an empty seat by the window and look outside, lost in thought, as others board the train. Shortly after the departure, an old man sits down next to you. He offers you some nuts from a bag he is carrying, and you politely take a few; you would have been content with spending the rest of the ride in silence, but the man then starts talking to you about how he has not been back to this area since his wife died a few years ago. Curious and feeling somewhat obligated to keep the conversation going, as awkward as it may be, you ask him about his wife and learn that, until recently, they had a happy, wonderful life together; alas, what they thought was just a bad cough that wouldn''t go away turned out to be lung cancer, and she died a very slow and agonizing death while he could do nothing but watch and care for her.'
+	*nl		
+	'He gets very emotional while telling you the story, even has to wipe away tears a few times, and thanks you for listening to him once he finishes it. "I don''t even know why I started telling you about her," he apologizes, "I guess it''s because you remind me my wife when she was young. You are just as beautiful as she was. If only you could-"'
+	*nl
+	'He seems to want to say more, but as the train pulls into the station you''re both headed for, he shakes his head as if saying no to himself. "Please, what is it?" you coax. He says he shouldn''t ask but wonders if you would be so kind as to go with him to a place he and his wife liked to go. He would love the company if you are not too busy.'
+
+	act 'Refuse his request (<<will_cost>> Willpower)':
+		*clr & cla
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
+		'You feel sorry for him, but you really don''t have time for this, especially since you think this won''t be just a quick walk - after all, accepting a handful of nuts from him turned into story time! You inform him, with audible regret, that you just don''t have the time to accompany him; he nods sadly but understandingly, and once you''ve disembarked the train, you both go your separate ways.'
+!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
+		act 'Continue': gt $loc, $loc_arg
+	end
+
+	act 'Accept his request':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/old.jpg" ></center>'
+		'Your heart goes out to the guy; after spending the entire train ride listening to him, you feel sorry for him and his loss. You decide that you can make time for him, and you agree to go with him and keep him company. He livens up and seems happier than you have seen him since he sat down next to you. Once off the train, he leads you down the tracks a bit to a small bridge over a gully, then down and along the end alongside the bridge. He points out a small old building, informing you that he and his wife used to come down here all the time, especially when they were younger.'
+		*nl
+		'Honestly, the place is one of the most rundown and shabby you''ve seen in a while, but maybe it looked a lot different when he was young, so you hold your tongue so as not to spoil his sentimental mood and walk with him. As you do, he wraps his arm around your waist and points out several other buildings and things, talking about what they were like years ago and the many picnics and such he and his wife had here. He leads you up a set of stairs to a concert platform... and sighs when he finds the door at the top barred. "Last time me and my wife were here, we were able to sneak inside and..." but you don''t listen to how this story ends because, right at that moment, you notice the raging hard-on in his pants.'
+		*nl
+		'He glances down when he sees what you''ve caught and quickly apologizes. He admits that he and his wife used to sneak down here and have sex. He says that you look so much like her and it has been years since he had sex... so maybe you could make an old, sad man feel young and happy again, even if only for a few short minutes?'
+
+		act '"No, that''s too much to ask"':
+			*clr & cla
+			gs 'stat'
+			'You tell him that you''re not going to have sex with him. It is more than a little creepy to have sex where he and his wife used to do it anyways. Feeling repelled by him and his request, you quickly pull free from him and make your way back to the platform, leaving the old guy to himself and his strange ideas.'
+			act 'Return to the station': gt $loc, $loc_arg
+		end
+
+		act 'Fulfill his wish':
+			*clr & cla
+			gs 'npcgeneratec', 0, 'Old guy', rand(52,67)
+			gs 'boyStat', $npclastgenerated
+			gs 'pain', 3, 'vaginal', 'ache'
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/oldvag.jpg" ></center>'
+			'"Poor guy," you think to yourself. After all he''s been through, his request doesn''t seem like too tall an order; he really looks like he could use a little love, so you nod your head and are halfway down on your knees when he stops you. "I am very grateful you want to help me, Miss, but my wife didn''t believe in oral sex, and I think she rubbed off on me. Maybe you could just... take off your bottoms?" he asks in a pleading and hopeful tone. You raise an eyebrow - you actually kind of hoped that a quick blowjob would be the extent of this, and he must be the first man you''ve met who actually turned one down - but you agreed to "sex", after all. You wordlessly strip from the waist down and watch as he does the same, feeling a little uneasy now that you''re half-naked in this strange place. It doesn''t help that the old man''s look is a lot more lecherous now, but who would blame him in this situation?'
+			*nl
+			'He turns you around and has you put one foot up on the gate blocking the door, spreading your legs as you face the door. The elderly guy comes up behind you, and without warning, he shoves his <<dick>>cm <<$dick_girth>> cock into your vagina. He didn''t even check if you were wet, roughly boring through any resisting tissue. You grit your teeth to stifle a cry of pain, but it escapes you anyway when he begins to roughly fuck you, holding you by your hips and pulling your ass back against him. You endure, sure that he won''t last long, but he ends up fucking you for quite a while before he pulls out. By this point, you are somewhat lubricated and a little numb to the pain, but you are still glad it is over... except it isn''t.' 
+			*nl
+			'The old man simply pulls you down to the ground, laying you on your side in a spoon position with himself right behind you, and slips his cock back into you. A second later, he has resumed pounding your pussy as hard as he physically can.'
+			gs 'arousal', 'vaginal', 15, 'rough', 'unknown'
+
+			act 'Surprise buttsex':
+				*clr & cla
+				gs 'pain', 3, 'asshole', 'ache'
+				'<center><img <<$set_imgh>>  src="images/locations/shared/train/sex/oldanal.jpg" ></center>'
+				'He keeps this up for a while, and it is almost starting to feel okay when he pulls out and pauses. Again, you briefly think that he is done and only have a second to realize that, actually, he is rubbing the tip of his cock against your anus. Before you can even protest, his <<dick>>cm <<$dick_girth>> cock has already painfully penetrated your ass. You instinctively want to flinch away, but he grabs your hips with surprising strength and forces his cock as far into your ass as he can... before he starts hammering your ass. "My wife loved anal," he informs you between slaps of flesh against flesh, "I hope you don''t mind."'
+				*nl
+				'You can merely groan in response as he violates your little asshole. His wife must have really liked rough sex if this was the norm for them. He lifts your leg up and props your foot on the wall to keep your legs spread, which thankfully puts you at an angle where it hurts a little less. Still, you are really starting to regret that you wanted to help him out.'
+				gs 'arousal', 'anal', 10, 'rough', 'unknown'
+
+				act 'Take his cum':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/oldcum.jpg" ></center>'
+					'All of a sudden, he pulls out of your ass and, you feel his hot sperm splattering against your puckered hole, pussy lips and inner thighs. It''s not as much cum as you expected for somebody who didn''t have sex in years, but maybe he jerks off a lot? He gets up first, using your shoulder for support,  which holds you down until he is fully on his feet. Bearing it without clamor, you start wiping off the cum as he gets dressed; by the time you finally get off the ground yourself, he''s fully clothed, whistling and already walking off back the way you came with him.'
+					*nl
+					'You hurry up in getting yourself back in order, but by the time you have your bottoms back on and look up, he is almost out of the gully already, halfway back to the tracks! He seems <b>a lot</b> more spry than before, and you get the sneaking suspicion that you have been had in more ways than one.' 
+					'Cursing your gullibility and wincing at the ache in your pussy and ass, you finish dressing and head back to the platform - as unpleasant as this was, maybe you''ve learned your lesson at least.'
+					gs 'arousal', 'end'
+					gs 'cum_call', 'labia', 'Old guy'
+					gs 'cum_call', 'butt', 'Old guy'
+					gs 'cum_call', 'legs', 'Old guy'
+					gs 'stat'
+
+					act 'Return to the station': gt $loc, $loc_arg
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'fit':
+	*clr & cla
+	menu_off = 1
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride1.jpg" ></center>'
+	'You sit in an empty seat by the window and look outside, lost in thought, as others board the train. Shortly after the departure, a man in his thirties - or perhaps early forties - sits down next to you. You don''t give him more than a short glance as he takes the seat, but it doesn''t take more than that to notice that he is in <b>great</b> shape. You try not to stare, but you just can''t help yourself - the world outside the window is just too boring to hold your attention. Of course, your gaze does not go unnoticed, and the man, grinning, engages you in a conversation.'
+	*nl
+	'He asks you your name, where you''re going and a few other questions, and before you know it, you''re chatting and laughing about a movie both of you happen to have watched recently. He is pretty charming, and even a blind deaf woman would notice his flirting.'
+	*nl
+	'As you talk, you realize you are both getting off at the next stop, and he asks if you would like to go for a walk with him along the tracks after you disembark the train. As innocent as he tries to make it sound, you have no doubt what he would really like to do with you on that "walk", but he <i>is</i> attractive and his fitness and charm are sexy enough to make his offer tempting.'
+
+	act 'Refuse his offer':
+		*clr & cla
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
+		'You thank him but politely refuse his offer, claiming that, sadly, you don''t have time to go on a walk today and are already running late, really. He doesn''t seem too disappointed though. "I''m sure we will meet again on the train sometime," he augurs with a smile, "and then you will have time for that walk." You don''t know if his prophecy is going to come true or not or if he truly believes what he said but, regardless, he remains a pleasant dialog partner for the rest of the ride.'
+!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
+		act 'Leave the train': gt $loc, $loc_arg
+	end
+
+	act 'Accept his offer':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fit.jpg" ></center>'
+		'You consider his offer. It doesn''t exactly sound like a smart idea to go on a walk along the train tracks with a complete stranger, but somewhere between his charming compliments and the hard abs he let you feel, you lose all sense of what is smart. You let him know you would love to go for that walk, throwing caution to the wind because it could be fun.' 
+		*nl
+		'Once you''ve reached your destination, you disembark the train together and wait for it to pull out of the station. He then takes you by the hand and leads you down the tracks, talking to you about how pretty you are, his flirting amped up to eleven.'
+		*nl
+		'The two of you end up walking further than you expected, well out of sight of the station, and when he finally stops and starts kissing you, it''s so abrupt that you are momentarily stunned. Your friend doesn''t lose any time however, and his hands are, piece by piece, removing your clothes as you passionately kiss him back. He has you half-naked in no time, right here out on the tracks, and you feel thrilled at the idea someone could very easily happen by and see you like this.'
+		*nl
+		'While you are making out, his fingers find your clit and... you don''t really know what he''s doing or how he''s touching you, but there is no doubt that he knows <b>exactly</b> what he has to do to please you. Every move feels like jolts of electricity are running through your body, waves of relish going up and down your spine. Half the town could be watching you right now for all you care, as long as he doesn''t stop.' 
+		*nl
+		'But, of course, he does once he has you good and wet, and he gently pushes you down by your shoulders so you can reciprocate.'
+		gs 'arousal', 'vaginal_finger', 15, 'unknown'
+
+		act 'Give him a blowjob':
+			*clr & cla
+			gs 'npcgeneratec', 0, 'Fit guy', rand(32,42)
+			gs 'boyStat', $npclastgenerated
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fitbj.jpg" ></center>'
+			'As much as you would have liked to feel his heavenly fingers some more, you drop to your knees and waste no time in taking his <<dick>>cm <<$dick_girth>> cock deep into your mouth, immediately feeling his hand on back of your head. You wrap your lips tightly around the shaft of his cock and bob your head, sucking hard on him to give him an idea of the intense stimulation he gave you. Occasionally, he uses his hand to force you deeper down on him so you would gag a bit on his cock, but he seems mostly content with letting you pleasure him at your own pace.'
+			*nl
+			'You stay on your knees, blowing him, for quite a while - if the sore jaw muscles are anything to go by - and even with your discarded clothes to kneel on, you''re probably going to have sore knees after this.'
+			gs 'arousal', 'bj', 15, 'deepthroat', 'unknown'
+			gs 'pain', 1, 'legL', 'ache'
+			gs 'pain', 1, 'legR', 'ache'
+			gs 'stat'
+
+			act 'Let him fuck you':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fitvag.jpg" ></center>'
+				'He pulls you up, back on your feet, and turns you around. You expect him to bend you over the next moment, but instead, he lifts one of your legs off the ground, and you feel him rubbing the head of his cock against your pussy lips, teasing you and himself and getting you all worked up again. Once his tip is nice and wet, he slides his <<dick>>cm cock into you, filling your pussy with his <<$dick_girth>> cock.'
+				*nl
+				'Holding one of your legs up with one hand, he wraps his other around your waist to help you keep your balance. You have to reach back, around his shoulders, as well to support yourself, but it is easy in the face of the pleasure you''re feeling. He strokes the length of his cock inside you, giving you a passionate fuck right there on the train tracks. Your moans come loud and unrestrained; you don''t care if anyone is nearby, if anybody can hear you or see you. He completely fills you, both physical and emotionally, and every rational thought is washed away by waves of pleasure.'
+				gs 'arousal', 'vaginal', 10, 'unknown'
+
+				act 'Take his cum':
+					*clr & cla
+					minut += 5
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/fitcum.jpg" ></center>'
+					'His hard breathing turns into groans, and the next moment, he pulls out of you, letting go of your leg and body. You squat down in front of him, rubbing your clit and opening your mouth. Before he can even get his cock back into your mouth, the first jet of cum spurts across your lips; the following ones end up shooting into your now fully-opened mouth.'
+					*nl
+					'He squeezes the last few drops of sperm into your mouth and then sticks his cock inside. You swallow his cum obediently and then suck his cock clean, licking every tasty inch of it you can reach. Once he goes soft in your mouth, he pulls back and the two of you start getting dressed.'
+					*nl
+					'Naturally, he is the first to be back in order, but he waits until you are cleaned up and presentable again and then walks you back to the station. The walk back is anything but awkward. He flirts with you just like he did at the very start, and you are getting the sense that he might be genuinely interested in you. Or, at the very least, he''s not the kind of ass who just wants to fuck you and forget you.'
+					gs 'arousal', 'end'
+					gs 'cum_call', 'mouth_swallow', 'Fit guy'
+					gs 'stat'
+
+					act 'Return to the station': gt $loc, $loc_arg
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'young':
+	*clr & cla
+	menu_off = 1
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride1.jpg" ></center>'
+	'You sit in an empty seat by the window, looking outside, lost in thought, as others board the train and it eventually departs. Most of the train ride passes as you silently daydream with the scenery outside blurring together. It''s not until someone heavily sits down next to you that you snap out of it. You turn to see a good looking young guy in his early to mid-twenties greeting you with a bright smile. "I''ve gotta say: I''ve walked from one end of this train to the other, and you are by far the most beautiful girl on it."' 
+	*nl
+	'You blush slightly at his compliment. "Thank you, you''re not so bad looking yourself," you reply as you look him over. He is well groomed, with a nice suit jacket over a button-up shirt. His pants are patched, but you suppose it is done intentionally for style - still, it clashes with the nice jacket and makes it look like he is trying to look his best but hasn''t quite figured out all the tricks yet.'
+	*nl
+	'"So where are you headed?" he asks.'
+	'"I get off at the next stop," you respond without thinking. His lips curl into a suggestive grin; it takes you a moment to realize how your words could be taken as a sexual innuendo and blush slightly - something about this guy makes you blush a lot more than usual.'
+	'"Well, I could help you with that, if you like," he offers, his eyes following your curves, "it''s always better to get off together."'
+	act 'Refuse':
+		*clr & cla
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
+		'He may be good-looking, but it''s time he learned that doesn''t have to mean anything. Shaking your head no, you tell him that "that''s not how I meant it." As you do, the train slows and comes to a stop.'
+		'"Oh, I get it!" he feigns realization at the ''misunderstanding'', "I didn''t mean that either. I just, you know, thought we could hang out and have fun." His effort to save the situation is valiant, but you shoot him down again with a "no, thank you" and disembark the train without looking at him again.'
+!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
+		act 'Return to the station': gt $loc, $loc_arg
+	end
+
+	act 'Accept':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/young.jpg" ></center>'
+		'You look him over and bite your lower lip as you consider his suggestion. You don''t even know his name, but somehow, that makes it an even bigger turn on. You know exactly what he wants, and to your own small surprise, you find yourself wanting it too.' 
+		*nl
+		'"Okay," is all you say to him, but really, that is all he needs to hear.' 
+		'"Great! I''ll get you off in no time, or your money back!" he says laughing.'
+		'When the train stops at the final station, he leads you off the car, and the two of you wait as people leave the platform and new passengers get on. When the train has left and there''s nobody around anymore, he motions for you to follow him and takes you on a walk along the tracks.'
+
+		act 'Follow him':
+			*clr & cla
+			gs 'npcgeneratec', 0, 'Well dress guy', rand(18,21)
+			gs 'boyStat', $npclastgenerated
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/youngvag.jpg" ></center>'
+			'You keep looking back towards the station as you walk, making sure that nobody sees where you''re headed. Your male companion on the other hand seems to be a lot more interested in your anatomy than potential observers. He puts his arm around your waist as you walk together and somehow manages to worm his way into your panties, rubbing your clit as you move. You somewhat lose interest in looking back after that, focusing entirely on the fingers playing with your pussy and dipping inside you. As soon as he has you good and soaking wet - and has put enough distance between you and the station that you''re no longer in plain sight - he pulls down his pants and sits on the tracks, his erect cock an unmistakable invitation.' 
+			*nl
+			'Your need seems to explode at the sight, and you urgently pull your clothes aside enough to reveal your pussy and tits, squat down on his <<dick>>cm <<$dick_girth>> cock and guide him inside. You can feel it filling you up as you impale yourself on his hard shaft.'
+			*nl
+			'You start riding him, completely controlling the action and taking him at the exact depth and speed you want. The power over the situation is intoxicating, but it pales in comparison to the knowledge that you are fucking a stranger out in the open where anybody could find you at any moment; unsurprisingly, your moans are getting louder and louder, and you feel yourself building up to a strong orgasm, every thrust getting you closer to the peek... but before you can reach it, he pulls you off and stands back up. You are confused and groan in protest, but he pulls you up with him. "Don''t come yet, not yet. That was just the warm up," he promises. You have half a mind to scream at him for yanking you back so close to the edge, but you are too horny to be angry. All you wanna do is fuck right now.'
+			gs 'arousal', 'vaginal', 10, 'exhibitionism', 'unknown'
+			gs 'stat'
+
+			act 'See what he has in mind':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/youngbj.jpg" ></center>'
+				'He takes your hand and walks you down the tracks a bit more. His cock is back in his pants, but you''re completely exposed - he insisted on it and, really, you don''t mind; it is thrilling, even with nobody around. As you pass two electricity sub-stations for the trains, he stops and pulls you between them, a mischievous grin on his face. "I saw a track worker, just a few hundred meters away," he whispers with a chuckle and pulls down his pants. "I wonder how he''d react if he found you, sucking my cock."' 
+				*nl
+				'You are not sure if he''s being serious about having seen somebody or not, but you are not thinking straight anymore; the notion that somebody might be close by who could catch you raises the stakes in an exciting way, so you don''t think twice before squatting down in front of him and taking his <<dick>>cm <<$dick_girth>> cock into your mouth. You can taste your own pussy juices on his cock as you suck him, a subtle reminder of your "warm-up". With your <<$pc_desc[''lips'']>> lips lips wrapped tightly around his shaft, you start bobbing your head while one of your hands fondles his balls. If somebody''s gonna find you, he''s gonna get an eyeful, that''s for sure!'
+				*nl
+				'After a few minutes, he pulls his cock out of your mouth and then lies down on his back again, his legs peeking out from between the sub-stations - either the track worker was imaginary or your friend is too horny to care anymore. His eyes are burning with desire, so both options are possible.' 
+				'"Lower yourself down on me again, baby... but this time, I want you to take my cock up your ass."'
+				gs 'arousal', 'bj', 10, 'exhibitionism', 'unknown'
+				gs 'stat'
+
+				act 'Do as he says':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/younganal.jpg" ></center>'
+					'You are too desperate for sex to say no even if you''d wanted to. Without hesitation, you spread a little bit of your secretions around your puckered hole, and you lower yourself onto him. You can feel the head of his cock rubbing against your asshole; the pressure builds, your sphincter resisting the penetration... until the head pops inside. You gasp softly, pain and pleasure both vying for your attention, and you slowly lower yourself further, taking more and more of his <<dick>>cm <<$dick_girth>> cock into your ass.'
+					*nl
+					'Once you have as much of his cock in your ass as you comfortably can on the first go, you start moving your hips, rising up and lowering yourself again, taking a tiny bit more of him into you each time. As you''re riding his cock with your ass, his hands come up to grab your waist - not to wrest control from you as you first thought, but to support your weight, allowing you to focus on getting into a rhythm and enjoying yourself as much as he audibly does, with a little help from your hand on your clit.'
+					$orgasm_or = 'custom'
+					$orgasm_txt = 'You are incredibly turned on, by him, by this situation, by having his cock in your ass, moaning loudly and riding him harder and faster. You barely even realize that you''re taking him balls deep into your ass with each thrust. Your body shudders and your moans come to a crescendo as you orgasm, falling back against him as wave after wave of ecstasy shakes you. Your moans turn into screams when he picks up the pace and thrusts up into you, fucking you hard from below and extending the climax.'
+					gs 'arousal', 'anal', 10, 'sub', 'unknown'
+					gs 'stat'
+
+					act 'Take his cum':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/youngcum.jpg" ></center>'
+						'He lifts you off him and stands up beside you, jerking his cock. You know what he wants, and you don''t mind opening your mouth for him. Maybe two seconds later, the first jet of hot, sticky sperm flies into your mouth; most of those that follow hit their target too - only one or two miss and end up on your lips.' 
+						'When the torrent of semen has run dry, your lover pulls up his pants while you swallow his load, the salty reward for an incredible experience. He waits for you to get dressed and cleaned up, then he walks you back to the platform, flirting and chatting amicably with you along the way, right up until you''re inside the station and it''s time to part ways.'
+						'"I''m glad that we''ve met today, <<$pcs_nickname>>. This has been one of the best days of my life; I''m not exaggerating. You are an amazing girl... and I hope to see you again someday." Honestly, you are a bit overwhelmed by this, but in a good way... in a great way, actually.'
+						'"Yeah, I... I had a lot of fun with you," you say lamely and give him an awkward smile as you try to find the right words, "and I hope we run into each other again too. Who knows, maybe we''ll meet on the train again?"' 
+						'"I''d like that." He gives you a kiss on the cheek and a boyish grin that makes you feel weak in the knees, and walks away. You follow him with your eyes until he''s turned a corner, then sigh and, with a heavy heart, return to your day-to-day life.'
+						gs 'arousal', 'end'
+						gs 'cum_call', 'mouth_swallow', 'Well dress guy'
+						gs 'stat'
+
+						act 'Return to the station and catch the next train':
+							*clr
+							cla
+							gs 'stat'
+							'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
+							'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
+							act 'Get off the train': gt $loc, $loc_arg
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+
+if $ARGS[0] = 'breastfeed':
+	*clr & cla
+	temp_var = 0
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/breastfeeding/father_with_baby_train.jpg" ></center>'
+	'The car is really populated today. The only empty seat you can find is next to a sleeping man with his baby.'
+	'You sit down next to him. After a bit, the baby gets fussy. The man wakes up and responds by hastily searching around in his bag. He mumbles about a milk bottle but doesn''t seem to find what he is searching for.'
+	if lactation['active'] > 0 and pcs_inhib >= 30:
+		act 'Offer to help out':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/breastfeeding/father_with_baby_train.jpg" ></center>'
+			'You turn your head to him and whisper, "Uhm, do you need help?"'
+			'He looks up at you. "Well, if you don''t happen to have a bottle of milk with you, you can''t help me much..."'
+			'You hem and haw a bit.'
+			act 'Offer to breast feed the baby':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/breastfeeding/father_with_baby_train.jpg" ></center>'
+				if tits <= 4:
+					'You put your right hand on your breasts. "I could breastfeed him."'
+				elseif tits > 4 and tits <= 7:
+					'You put your right hand on your large breasts. "I could breastfeed him."'
+				elseif tits > 7:
+					'You put your right hand on your unusually large breasts. "I could breastfeed him."'
+				end
+				if vidage <= 16:
+					'He raises an eyebrow and looks you up and down. "You look a bit too young for being able to do that."'
+					if tits > 4:'His eyes stop at your large breasts. "Even if your breasts look promising..."'
+					temp_var = 1
+				elseif vidage > 16 and vidage <= 19:
+					'He raises an eyebrow and looks at you. "You have breast milk already? Are you sure you can do that?"'
+					if tits > 4:'His eyes stop at your large breasts.'
+					temp_var = 1
+				elseif vidage > 19:
+					'He raises an eyebrow and looks at you. "Are you sure you can do that?"'
+					temp_var = 2
+				else
+					temp_var = 2
+				end
+				:breastfeedthebaby
+				if temp_var = 2:
+					gs 'train_incidental', 'breastfeedthebaby'
+				elseif temp_var <= 1:
+					if pcs_inhib >= 40:
+						act 'Prove it to him':
+							*clr & cla
+							'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/boob_out_leak.mp4" ></video></center>'
+							if vidage <= 16:
+								'You grab onto your top to pull out your breast. The man looks really nervously at you as you do this.'
+							else
+								'You grab onto your top to pull out your breast.'
+							end
+							'You give your breast some squeezes until milk drops start to develop on your nipple. The man watches you surprised and nods positively.'
+							gs 'train_incidental', 'breastfeedthebaby'
+						end
+					end
+					act 'Convince him that you can do it':
+						*clr & cla
+						'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/boob_out_leak.mp4" ></video></center>'
+						if vidage <= 16:
+							'You smile and nod. "I can assure you, even if I look young, I have breast milk."'
+						else
+							'You smile and nod. "I can assure you I have breast milk."'
+						end
+						'The man gives you a concerned expression but then nods. "Well, it couldn''t hurt to let you try."'
+						gs 'train_incidental', 'breastfeedthebaby'
+					end
+				end
+			end
+			act 'Withdraw your offer': gt $loc, $loc_arg
+		end
+		act 'Leave him alone': gt $loc, $loc_arg
+	else
+		if tits > 6:'During his search, he looks around to see if the bottle fell out somewhere nearby. Glancing at your large assets for a moment, he frowns a bit, then continues to search.'
+		'At the next stop, he leaves the car quickly with the baby.'
+		act 'Complete your journey': gt $loc, $loc_arg
+	end
+end
+
+if $ARGS[0] = 'breastfeedthebaby':
+	act 'Breastfeed the baby':
+		*clr & cla
+		'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/train_breastfeeding.mp4" ></video></center>'
+		'The man hands you his baby. You take it into your arms and pull your top up, revealing your breasts.'
+		if vidage <= 16:
+			if tits <=4:
+				'The man blushes a bit as you pull out your young breasts in front of him.'
+				'He doesn''t seem to be to comfortable with a girl breastfeeding his son like this, so he looks somewhere else.'
+			else
+				'The man blushes a bit as you pull out your young large breasts in front of him.'
+				'He doesn''t seem to be to comfortable with a girl breastfeeding his son like this, but can''t help but stare at your chest for a moment before he looks somewhere else.'
+			end
+		else
+			if tits <=4:
+				'The man blushes a bit as you pull out your breasts in front of him.'
+				'He looks at your every move.'
+			else
+				'The man blushes a bit as you pull out your large breasts in front of him.'
+				'He looks at your every move, unable to stop himself from staring at your chest.'
+			end
+		end
+		if pcs_firstbabybreastfeeding <=0:
+			'You look nervously at the baby as you lead the small head to your left breast. You have never breastfed a baby, so you are not sure if this will work out properly.'
+		else
+			'You lead the baby''s head to your left breast.'
+		end
+		'The small lips brush over your skin in search for your nipple. With your right hand, you adjust your breast a bit, pointing the nipple at the small mouth.'
+		if pcs_firstbabybreastfeeding <=0:
+			'The baby latches on. You can feel and see your nipple being sucked in eagerly by the small mouth. Your eyes widen, and you can''t help but smile a bit.'
+			'You let out a cute little moan, as you are surprised from the feeling of your tingling nipple.'
+			'The man asks if everything is okay, and you nod hastily, then lean your head back and close your eyes.'
+		else
+			'The baby latches on. You can feel and see your nipple being sucked in eagerly. You close your eyes, smile and hum in a relaxed tone. The tingling in your nipple tells you that your milk is coming out.'
+		end
+		act 'Continue':
+			*clr & cla
+			temp_var = func('lact_lib','$get_breastmilk_time', 2, 80)
+			'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/train_breastfeeding.mp4" ></video></center>'
+			if temp_var > 15:
+				milkedvolume = func('lact_lib','$get_breastmilk', 2, 15)
+				'As you open your eyes again, you see the baby suckle on your left breast, the small lips kneading your areola over and over. The tingling feeling fading away, the kneading of the small mouth intensifies for a bit before the baby latches off on its own, making an unsatisfied noise. You make the baby switch breasts, and you continue to breastfeed until the baby latches off again.'
+				'You speak up, "Sorry... I don''t think he got enough..."'
+				if milkedvolume >= 50000:
+					'The man nods, smiling a bit. "At least this will help for the rest of the train ride."'
+				else
+					'The man nods and seems disappointed. "Damn, he is still hungry. I''ll have to get out at the next stop to see if I can get something for him."'
+					pcs_mood -= 10
+				end
+				'You hand him his baby and cover yourself up.'
+				act 'Finish':gt $loc, $loc_arg
+			else
+				'As you open your eyes again, you see the baby suckle on your left breast, the small lips kneading your areola over and over. The tingling keeps on and the kneading of the small mouth is stable. The small baby''s hand grabs onto your breast firmly.'
+				if pcs_firstbabybreastfeeding <=0:'It feels really great to breastfeed. It is relaxing in a way you haven''t experienced before.'
+				'The baby drinks from you for at least <<temp_var>> minutes. You look up at the father.'
+				if vidage <= 19:
+					'The man looks at your breasts and the baby in amazement. "Wow... you really seem to have enough milk to feed him. How much do you make?"'
+				else
+					'The man looks at your breasts and the baby. "You really seem to have enough milk to feed him. How much do you make?"'
+				end
+				if temp_var >= 12:
+					'You think about it and nod your head while answering, "Well, I guess enough for at least one baby... or so."'
+					'The man smiles and nods. You feel the firm grip of the baby easing up, and the suckling slows down too. You look down and see that the eyes of the baby are closed now and his breathing is calm.'
+					'You whisper to the man, "He is done..."'
+					'You unlatch the baby and hand him to his father, then you cover yourself up. The man thanks you for the help.'
+					act 'Finish':gt $loc, $loc_arg
+				elseif temp_var < 12:
+					'You think about it and nod your head while answering, "Uhm... I think I produce a fair amount."'
+					if lactation['breastmm'] >= 500000:
+						'You then add, "I could fill up a beer glass when my breasts feel engorged, I think, haha."'
+					elseif lactation['breastmm'] >= 150000 and lactation['breastmm'] < 500000:
+						'You then add, "I could fill up a cup when my breasts feel engorged, I think, haha."'
+					else
+						'You then add, "Probably a bit more than the baby can eat..."'
+					end
+					'You smile cutely and giggle a bit. You notice how the man''s eyes widen from your answer and how he blushes.'
+					if vidage <= 16:
+						if tits <=4:
+							'He speaks up, "Wow - you look so young, and yet you make more milk than my wife. She is barely able to breastfeed him, and we need extra bottled milk."'
+						else
+							'He speaks up, "Wow - you look so young, and yet you make more milk than my wife... but it is no wonder you can with breasts like those."'
+							'Saying this, he makes you blush.'
+							'He continues, "My wife is barely able to breastfeed him, and we need extra bottled milk."'
+						end
+					else
+						'He speaks up, "Wow - you make more milk than my wife. She is barely able to breastfeed him, and we need extra bottled milk."'
+					end
+					'"I always wanted to try her milk," he admits, "but there is barely enough as it is."'
+					'It seems like he is interested in trying your breast milk but is too shy to ask. You feel the firm grip of the baby easing up and the suckling slowing down too. You look down and see that the eyes of the baby are closed now and his breathing is calm.'
+					milkedvolume = func('lact_lib','$get_breastmilk', 2, temp_var)
+					milkedvolume = 0
+					act 'Finish':
+						*clr & cla
+						'You whisper to the man, "I think he is done..."'
+						'You unlatch the baby and hand him to his father, then you cover yourself up. The man thanks you for the help.'
+						act 'Leave':gt $loc, $loc_arg
+					end
+					gs 'willpower', 'foreplay', 'force'
+					if will_cost <= pcs_willpwr:
+						act 'Have him try your breast milk (<<will_cost>> Willpower)':
+							*clr & cla
+							gs 'willpower', 'pay', 'force'
+							gs 'stat'
+							'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/adult_breastfeeding.mp4" ></video></center>'
+							'You smile at him. "Would you like to try?"'
+							'The man asks, "Try what?"'
+							'You grab your right breast with your right hand and pull it out of your top, slightly weighting it in your hand.'
+							'You whisper, "My breast milk..."'
+							if vidage <=16:
+								'The man looks nervously at you. Shaking his head, he stammers "No, no... you are too young for that..."'
+								'You lean in. "But not too young to breastfeed your son?"'
+								'Offering your breast to him again, you prod, "Come on, it is no big deal..."'
+							end
+							'The man stands up and looks over the seats left and right, then around the car. He then sits down in his seat again, leaning over to you and moving his hands up, then hesitating. He looks in your eyes as if he wants approval. You nod, and he grabs around your breast with both hands, holding it firmly. You move your right hand onto his neck. Then he moves his mouth towards your nipple and latches on too. He is producing way more suction force than the baby, making you moan. Your nipple pulses, and you feel your breast milk gushing out into his mouth. He closes his eyes and nuzzles your breast, drinking your milk. After about 5 minutes, he is done and latches off.'
+							'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/adult_breastfeeding.mp4" ></video></center>'
+							milkedvolume = func('lact_lib','$get_breastmilk', 0, 5)
+							if milkedvolume >= 80000:
+								if tits <=4:
+									'He wipes his mouth off and looks at you. "They don''t look like it, but there is a lot of milk inside your breasts..."'
+								else
+									'He wipes his mouth off and looks at you. "There is really a lot of milk inside your breasts..."'
+								end
+								'"I should ask my wife to hire you as a wet nurse or something..." he adds.'
+							elseif milkedvolume >= 50000 and milkedvolume < 80000:
+								if tits <=4:
+									'He wipes his mouth off and looks at you. "They don''t look like it, but there is quite the amount of milk inside your breasts..."'
+								else
+									'He wipes his mouth off and looks at you. "There is quite the amount of milk inside your breasts..."'
+								end
+							else
+								if tits <=4:
+									'He wipes his mouth off and looks at you. "As I expected, there wasn''t much milk inside your breasts..."'
+								else
+									'He wipes his mouth off and looks at you. "Huh, I didn''t expect so little milk inside those magnificent breasts..."'
+								end
+							end
+							act 'Continue':
+								*clr & cla
+								'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/train_breastfeeding.mp4" ></video></center>'
+								'You unlatch the baby and hand him to his father, then you cover yourself up. The man thanks you for the help and for the delicious snack.'
+								milkedvolume = 0
+								act 'Leave':gt $loc, $loc_arg
+							end
+						end
+					else
+						act 'Have him try your breast milk (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+					end
+				end
+			end
+		end
+		pcs_firstbabybreastfeeding = 1
+	end
+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'
+	*clr & cla
+	gs 'stat'
+	'<center><h4>Pavlovsk Station</h4></center>'
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
+	'After you buy your ticket, they tell you that you have just missed the train. A little miffed at this, you take a seat on one of the benches on the platform to wait for the next train to the city to arrive.'	
+	act 'A man approaches you with an offer':
+		*clr & cla
+		'<center><h4>Pavlovsk Station</h4></center>'
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weed.jpg" ></center>'
+		'Only a few minutes have passed when you hear someone walk up behind you and stop. You know they must be mere inches away, so you turn to look. Standing there is a young man, smiling at you, holding up a self-rolled cigarette... that looks suspiciously like a joint. The guy doesn''t seem too concerned about somebody catching him with that in public though and focuses entirely on you.'
+		*nl		
+		'"Hey beautiful, I couldn''t help but notice you sitting here all by yourself. Guess you missed the train too, huh?" He looks around, as if he only just noticed that he is walking around a public place with a joint in his hand, then leans down and whispers conspiratorially, "How about we blaze one while we wait?"'
+		act 'Refuse':
+			*clr & cla
+			gs 'stat'
+			'<center><h4>Pavlovsk Station</h4></center>'
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
+			'You have no idea what could be in it and have no intention of being caught out in the open with marijuana either, so you shake your head. "No, thanks."'
+			'He shrugs and steps away. "Alright, just trying to be friendly. It''s your loss."'
+			*nl
+			'He wanders around for a bit. Eventually, another young woman comes down to the platform. You watch him go over, and you are sure he''s making her the same offer, but unlike you, she nods, and they smoke the joint together.'
+			*nl
+			'You can see them talk a little, and even from where you''re sitting, you can tell that the woman is giving him wanton looks. Before long, the two of them sneak off across the tracks and disappear; just as the train arrives, they come rushing back, clothes out of place and hair disheveled.'
+			'It isn''t hard to guess what they were doing to kill time.'
+
+			act 'Board the train to the city':
+				*clr & cla
+				transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
+				minut += 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.'
+				act 'Get off the train':
+					if rand(1, 100) <= 5: gt 'train_incidental', 'events'
+					gt 'city_train', 'start'
+				end
+			end
+		end
+
+		act 'Smoke with him':
+			*clr & cla
+			pcs_horny = 100
+			gs 'stat'
+			'<center><h4>Pavlovsk Station</h4></center>'
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedsmoke.jpg" ></center>'
+			'You smile and nod, taking the joint from him - you only live once and it''s as good a pastime as any. He lights it as you take a long slow drag off it and hold it in, feeling it in your lungs... until you start coughing, causing him to chuckle. You feel the relaxing effect almost at once, your head feeling both lighter and heavier, your mind slowing down... but you notice a slightly odd taste to the smoke that you can''t place - maybe that''s just what this variety tastes like. You pass it back and forth with him, chatting idly as you smoke, and as you do, you start to feel aroused: Your nipples harden, your pussy gets soaking wet and you feel so wound up that you have to actively keep your hands in check to prevent yourself from masturbating out in the open.'
+			'One thing you know for sure even in your current state: Marijuana isn''t supposed to have this effect. You look at your smoking buddy. "What else was in this joint?"'
+			'"XTC," he responds with hesitation, a lazy smile on his face. "It feels great, right?" He grabs you by the hand and pulls you up along with him. "Come on, let''s go have some fun before the train arrives. I know you''re just as horny as I am."'
+			act 'Refuse':
+				*clr & cla
+				gs 'stat'
+				'<center><h4>Pavlovsk Station</h4></center>'
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
+				'You still have enough presence of mind to know this is a bad idea, so you shake your head. "No, thanks."'
+				'He shrugs and steps away. "Alright, just trying to be friendly. It''s your loss."'
+				*nl
+				'He wanders around for a bit. Eventually, another young woman comes down to the platform. You watch him go over, and you are sure he''s making her the same offer, and like you, she nods and they smoke the joint together. You briefly consider going to the bathrooms to masturbate but you don''t want to miss the train again.'
+				*nl
+				'You can see them talk a little, and even from where you''re sitting, you can tell that the woman is giving him wanton looks. Before long, the two of them sneak off across the tracks and disappear; just as the train arrives, they come rushing back, clothes out of place and hair disheveled.'
+				'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']
+					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.'
+					act 'Get off the train':
+						if rand(1, 100) <= 5: gt 'train_incidental', 'events'
+						gt 'city_train', 'start'
+					end
+				end
+			end		
+			act 'Go with him':
+				*clr & cla
+				'<center><h4>Pavlovsk Station</h4></center>'
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedhorny.jpg" ></center>'
+				'If you were simply horny, you might not have accompanied him, but the XTC has fully taken effect by now. Your mind is reeling, and you feel like you can trust the guy who just drugged you, so you go with him, looking forward to some ''fun''. He leads you across the tracks to the less-used side of the platform and takes you behind one of the roofed waiting areas. Once there, he starts kissing you and pulling your top aside enough to bare your breasts, squeezing and caressing them as you make out, and you groan into his mouth in response.'
+				*nl
+				'You are turned on beyond reason and badly want to fuck him, or anybody else, as long as you just get to have a cock inside you. The XTC tells you that he is a great guy, that you can feel safe with him, that nothing you do here will backfire. Your hands undo his pants. You pull out his cock and start stroking him with one hand while your other hand is rubbing your pussy through your clothes.'
+				gs 'npcgeneratec', 0, 'Stoner', rand(18,24)
+				gs 'boyStat', $npclastgenerated
+				gs 'arousal', 'foreplay', 5, 'unknown'
+				act 'Suck him':
+					*clr & cla
+					'<center><h4>Pavlovsk Station</h4></center>'
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedbj.jpg" ></center>'
+					'He gently pushes down your shoulders, and that is all the encouragement you need. You squat down in front of him at once, taking his <<dick>>cm <<$dick_girth>> cock into your mouth, and start sucking him. Your tongue is giving every bit of his cock it can reach its attention, and you bob your head back and forth, your <<$pc_desc[''lips'']>> lips wrapped tightly around his shaft.' 
+					*nl
+					'You take him as deep into your mouth as you can, keeping him there until you start to gag and have to come up for air. After two heavy breaths to recover, you take him inside again, now rapidly moving your head, sucking and deepthroating him for all you''re worth.'
+					gs 'arousal', 'bj', 5, 'deepthroat', 'unknown'
+					act 'Fuck him':
+						*clr & cla
+						'<center><h4>Pavlovsk Station</h4></center>'
+						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedvag.jpg" ></center>'
+						'He is having the time of his life, but all your blowjob does is make you hornier, and you can''t take it any longer. You start removing your clothes bit by bit while you keep blowing him, until every item below your waist is removed. Once your pussy and ass are bare, you pull him down and get him to lie down on his back.'
+						*nl
+						'He has barely even touched the ground when you straddle him, facing his legs and lowering yourself down until you feel his <<dick>>cm <<$dick_girth>> cock stretch out your wet cunt. You moan out loud as you impale yourself on his shaft, going all the way down on the first stroke. You lift yourself up again and, again, take his entire length, faster this time. Then again, and again, riding him harder and faster with every stroke, his cock feeling as big as that of a prized stallion.'
+						gs 'arousal', 'vaginal', 5, 'dom', 'unknown'
+						act 'Take his cum':
+							*clr & cla
+							'<center><h4>Pavlovsk Station</h4></center>'
+							'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/weedcum.jpg" ></center>'
+							'You give him the fuck of a lifetime, feeling your orgasm approaching fast, so close, so very close... but he lifts you off and quickly stands up. "I''m about to cum!"'
+							*nl
+							'You have half a mind to say the same but you are too turned on to speak. You squat down in front of him again and start jerking him off as you open your mouth and stick out your tongue. It only takes a few strokes before he shoots most of his load into your mouth, with a few stray squirts landing on your chin.'
+							*nl
+							'With your mouth still open, you show him his sperm on your tongue before you swallow it down, then start sucking his cock again. He was getting soft, but you feel him getting hard again in your mouth, and you are already looking forward to another go so you can have your own orgasm.' 
+							*nl
+							'That''s when you hear the train coming. "The train''s here; we have to stop," he states with a hint of regret as he pulls his cock out of your mouth. Without another look at you, he quickly pulls up his pants and rushes over to the train as it comes to a stop. You hurriedly get dressed as well and then rush after him to get on the train. You make it just in time - the doors close almost as soon as you are in.'
+							gs 'arousal', 'end'
+							gs 'cum_call', 'face', 'Stoner'
+							gs 'cum_call', 'mouth_swallow', 'Stoner'
+							gs 'stat'
+							act 'Board the train to the city':
+								*clr & cla
+								transportVars['timecost'] = func('transport_functions', 'get_train_timecost', 'pavlovsk', 'center')
+								minut += 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.'
+								act 'Get off the train':
+									if rand(1, 100) <= 5: gt 'train_incidental', 'events'
+									gt 'city_train', 'start'
+								end
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+!!events starting on the train. Only one act will show up depending which one triggered but they all start the same.
+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>'
+	'You board the train and walk past several of the private compartments on your way to the general seating on the car you are on.'
+	act 'You walk past the private compartments':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
+		'After the first stop as you are walking past the open door of one of the private compartments, you hear a man''s voice call out to you, "Hello there, young lady! Would you care to join me?"'
+		'You stop and look inside, finding a clean-shaven man sitting there with a select few wrinkles that accentuate his angular features; you estimate that he''s in his late thirties or early forties. The expensive suit he''s wearing and the hints of cologne tickling your nose speak volumes about his wealth, and his self-confident, even smug expression tells the rest of the story. He motions for you to sit with him. "It''s alright, there''s plenty of room in here. Why don''t you come in and close the door?"'
+		*nl
+		'You hesitate - he is undressing you with his eyes and not even trying to hide it, so you doubt that all he wants is a conversation partner, and sure enough when he notices your pause, he pulls 500 <b>₽</b> out of his wallet and puts it on the seat next to him. "If you come in and close the door, we can have a very enjoyable trip together... and you can get off with a little pocket money."'
+		act 'Refuse':
+			*clr & cla
+			gs 'stat'
+			minut += 35
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
+			'You shake your head indignantly. "Fuck you, I''m no whore! Who do you think you are?!" You don''t give him time to respond but simply walk away and take a seat in the general seating area.' 
+			*nl
+			'You spend some time talking to some of your fellow passengers and share the story with a couple of them. They seem shocked that a man would make such an offer to a nice young lady like you right on this train and speculate that only a crook would be insolent enough to try something like that.'
+!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
+			act 'Continue journey': gt $loc, $loc_arg
+		end
+
+		act 'Accept his offer':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/ridebj.jpg" ></center>'
+			gs 'npcgeneratec', 0, 'Guy on train', rand(34,45)
+			gs 'boyStat', $npclastgenerated
+			'Another stop goes by as you wait for some passengers to pass.'
+			*nl
+			'You bite your lower lip as you consider his offer. You could use the money... and the thought of having sex on the train is exciting in itself too. With your mind made-up, you step inside, close the door behind you and pull the privacy blinds down. When you turn back to him, you see that he already has his cock out and is looking at you with a strange, self-satisfied smile.' 
+			*nl
+			'Unfazed by his boldness, you kneel down in front of him and lick up and down his length a few times before you take his <<dick>>cm <<$dick_girth>> cock into your mouth, noticing that even it smells of that nice cologne. Your tongue moves around the head as you suck his cock, and you start bobbing your head up and down while your hands take turns playing with his shaved balls. It''s hard for you to decide whether you want to move slow and tease him or speed up to avoid getting caught, but what you are doing seems to be to his liking.'
+			*nl
+			'"Good girl," he whispers, "I knew you could suck cock as soon as I saw you." His praise causes you to smile a little around his cock, and you take him a little deeper in response.'
+			gs 'arousal', 'bj', 10, 'prostitution', 'sub', 'unknown'
+			gs 'dinSex', 'std_trigger_oral'
+
+			act 'First stop':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/ridevag.jpg" ></center>'
+				'He enjoys your blowing him until the train arrives at its first stop, even opening the window blinds a little to look outside while you continue sucking him off, expecting somebody to find you in this position at any moment.' 
+				*nl
+				'The train leaves the station without incident however, and at that point, the man motions for you to stop and get up with him. He turns you around and bends you over, pulling your clothes aside just enough to expose your pussy which, by this point, is dripping wet from the immense thrill of your risky actions. In one smooth stroke, his <<dick>>cm <<$dick_girth>> cock is inside you, the full length buried to the hilt, the feeling so intense that you have to keep yourself from moaning too loud; and the sensations multiply when he starts to move.' 
+				*nl
+				'He is not gentle with you by any means, but the truth is that you wouldn''t have wanted gentle "love-making" in this situation - you are having sex on a train for crying out loud! And all it would take would be one curious passenger brave enough to peek inside to expose you as the slut you are, but that is what makes it so wonderful, so depraved and exciting, and it is exactly why, at that moment, you want to be fucked hard, and he is more than happy to give you the pounding you crave.' 
+				*nl
+				'The man keeps going for a while until he starts breathing harder. You faintly notice that the train is slowing down and coming to a halt. People are getting off and on the train, surely somebody could discover you at any moment, and the blinds on the window aren''t fully closed either! But you cannot think straight and your lover chooses this particular moment of half-awareness to stop and lay you down on the seat.'
+				gs 'arousal', 'vaginal', 15, 'prostitution', 'sub', 'unknown'
+
+				act 'Second stop':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/rideanal.jpg" ></center>'
+					'Once he has you lying on your back, bedded on dusty seat cushions with your nether parts fully exposed to him and anybody who might enter, he moves up and slips his <<dick>>cm <<$dick_girth>> cock into your ass without warning. It enters surprisingly easily, and even though you are unprepared, you manage to relax enough to avoid any pain. It certainly helps that he is taking it slow, giving you plenty of time to adjust to his cock while your mind is racing, running hot as it tries to comprehend how a simple train ride ended up with you having anal sex, on the train, with a complete stranger!' 
+					*nl
+					'Honestly, it makes relaxing difficult because your muscles are twitching around him in excitement and you can barely contain your moans. He goes a little deeper and a little faster, but your ass is too much for him, and he can''t last much longer. You feel the first spurt of sperm deposited in your ass a second later, and as he continues to cum, he pulls out of you.'
+					gs 'arousal', 'anal', 5, 'prostitution', 'sub', 'unknown'
+					gs 'dinSex', 'std_trigger'
+
+					act 'Finished':
+						*clr & cla
+						money += 500
+						gs 'cum_call','anus',$boy, 0,'','',20
+						gs 'cum_call','butt',$boy, 0,'','',20
+						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/ridecum.jpg" ></center>'
+						'As he does, several spurts shoot all over your ass, and you can feel more of his spunk leaking out of your gaping anus. With a final grunt and spurt, he sits down opposite you, giving you and the state he left you in an appreciative look before he puts his cock away and hands you the 500 <b>₽</b>... And then, he simply pulls out a newspaper and starts reading it. The switch from ravaging your asshole to perusal is so sudden that you are confused for a moment. You soon realize, however, that he is really no longer paying attention to you and you are lying around with cum dripping out of your backdoor, so you quickly get up and get yourself cleaned up.'
+						
+						act 'Your stop':
+							*clr & cla
+							'<center><video autoplay loop src="images/locations/shared/train/pantyup.mp4" ></video></center>'
+							'Once you are dressed again and have removed most of the sperm, you sit down and quietly study the man you had sex with who seems content to spend the rest of the ride in silence and feigned obliviousness to your presence. After a bit, you pull out your phone and amuse yourself with it until the train finally reaches your destination. "Well, this is my stop," you tell him.'
+							*nl
+							'He looks up from his newspaper for the first time since he came. "I wish you a safe trip. And thank you for making this ride a bit less dull," he adds with a wink before returning to the headlines. You leave the compartment, the strange and naughty events fresh on your mind, and make your way to the closest exit.'
+							gs 'arousal', 'end'
+							gs 'stat'
+
+							act 'Get off the train':gt $loc, $loc_arg
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'Gopnik':
+	*clr & cla
+	menu_off = 1
+	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride3.jpg" ></center>'
+	'You are sitting in an empty seat by the window, looking outside, lost in thought, as others board the train. A gopnik boy sits down next to you, but you try to ignore him and keep staring outside. Unfazed by that, he gives you a once-over, a lewd grin you only see from the corner of your eyes forming on his face, and leans in close, putting his arm around you. You turn your head to tell him off, but your mouth is immediately covered by his! And, not content with just kissing you, the gopnik''s hand starts roaming across your breasts.'
+	gs 'willpower', 'exhib', 'resist', 'medium'
+	act 'Stop him':
+		*clr & cla
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/ride2.jpg" ></center>'
+		'After the immediate shock has passed, you push him away, but that doesn''t deter him in the slightest. He immediately tries to kiss and grope you again. You push him off once more, then get up and move to another seat next to a woman who nods at you sympathetically and shoots the gopnik a nasty look. With nowhere to sit where he could harass you, the boy looks at you for a moment, then shrugs and looks out the window. The rest of the ride is fairly uneventful; you spend most of it chatting with your seatmate / savior about men who molest women on trains.'
+!!which of these acts show up depending on where Sveta was going when the act triggered obviously.
+		act 'Continue journey': gt $loc, $loc_arg
+	end
+
+	act 'Go with it':
+		*clr & cla
+		minut -= 30
+		gs 'fame', 'pav', 'sex', 5
+		gs 'npcgeneratec', 0, 'Gopnik', rand(18,25)
+		gs 'boyStat', $npclastgenerated
+		'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnik.jpg" ></center>'
+		'He is pretty cute, and you find yourself in the mood for a little tenderness, so you return his kiss and allow him to paw at your body. During the ride, you hear more than a few people comment on the two of you making out like this on the train; several seem to be of the opinion that this is not a proper place to show this level of affection. Instead of deterring you however, all that does is tickle your rebellious streak and make you feel even more brazen.'
+		*nl
+		'Once the train stops at your destination, you get off with him, but you barely make it off onto the platform before he pulls you into another kiss. He is actually a pretty good kisser, and while his pawing hands might drive most innocent girls away, he seems to mostly know where he has to grope too. Breaking the kiss and finding you breathing as heavily as him, he suggests, "Let''s go for a walk; you know, somewhere a little more private."'
+		gs 'arousal', 'foreplay', 5, 'unknown', 'exhibitionism'
+		gs 'stat'
+		gs 'willpower', 'sex', 'resist', 'medium'
+		if will_cost <= pcs_willpwr:
+			act 'Decline (<<will_cost>> Willpower)':
+				*clr & cla
+				gs 'willpower', 'pay', 'resist'
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnik.jpg" ></center>'
+				'You shake your head no - you don''t wanna take it that far with him. "Sorry, but I don''t have time. It was fun though. The trip was a lot more exciting than I expected." He looks a little disappointed, so you comfortingly pat his cheek. "Maybe I will see you again sometime, and we can pick up where we left off." You lean in and give him a long, slow kiss goodbye, then bounce away and head off the platform. You hear him mutter about not getting more action, but you don''t really care - all you care about right now is that the train ride just flew by.'
+				act 'Return to the station and catch the next train':
+					*clr & cla
+					minut += 30	
+					gs 'stat'
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
+					'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
+					act 'Get off the train': gt $loc, $loc_arg
+				end
+			end
+		else
+			act 'Decline (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+		end	
+		act 'Agree':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikwalk.jpg" ></center>'
+			'He takes you to the skyway over the tracks, holding your hand and pointing out different buildings and things. You already know almost everything he is talking about, but you let him talk for one very simple reason: he is surprisingly charming and sweet now, compared to the pawing weirdo you met on the train. He throws a lot of compliments your way, telling you how "the sun pales in comparison to your beauty" and the like. You consider telling him he really doesn''t have to try this hard, but some funny exaggerations aside, you genuinely enjoy flirting with him and let him go on.'
+			*nl
+			'Once the train has left the station and all who disembarked with you are gone, he carefully inspects your surroundings to see if anybody else is around. When he doesn''t see anyone, he stops and turns towards you. Back to his train persona, your gopnik friend decides to take this to the next level or three, unbuttoning his pants and pulling them down to his knees. His cock springs free, already hard and proudly fluttering in the wind.'
+			act '"Um... No"':
+				*clr & cla
+				gs 'stat'
+				'Even as he''s pulling down his pants, you are already shaking your head and laughing. "Do you think I''m a slut or something? I''m not gonna do something with you after a couple of compliments, especially not out in the open like this!" You turn and walk off, calling over your shoulder, "I thought you were a nice guy, but I guess I was wrong."' 
+				*nl
+				'The gopnik seems anything but pleased by your response. He tries to pull his pants back up and yells, "You fucking tease! Get back here!" You don''t; on the contrary, you exploit his current struggle with his pants to run back down the stairs to the platform and into the station before he can follow.'
+				act 'Return to the station': gt $loc, $loc_arg
+			end
+
+			act 'Blow him':
+				*clr & cla
+				gs 'boy'
+				'<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
+				'You know this is kind of slutty - a little more than just "kind of", actually - but the idea that you could get caught at any moment is making this a lot more arousing than it should be; so, here you are, sucking his cock right above the train platform. Plus, he is kinda cute, and you like his cock, so who care''s if it is slutty? The things the people said on the train got you riled up, and this makes you feel like you''re getting back at their stuffy selves. You''re having fun, and it''s your body to do with as you please, and that''s all that matters.'
+				'Well, that, and the hard cock you''re sucking with passion.'
+				gs 'arousal', 'bj', 10, 'exhibitionism', 'unknown'
+				gs 'stat'
+				act 'Let him fuck you':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikvag.jpg" ></center>'
+					'You don''t know how many minutes pass as you suck him; somewhere along the way, you worm your fingers into your panties, rubbing your clit, feeling a lot more turned on by sucking his cock than you expected. You don''t know if he always planned on more than just a blow job or if he sensed that you were getting horny and influenceable, but he eventually has you stop and stand up and pulls your clothes aside enough to bare your ass and expose your glistening wet pussy.'
+					*nl
+					'He meets no resistance when he turns you around and bends you over up against the side of the walkway railings; by the time he has lined his cock up with your pussy, you are looking back at him with eager anticipation. Impatient as you expected him to be, he slips his <<dick>>cm <<$dick_girth>> cock into your sopping wet pussy. It slides in easily, and he has no trouble at all bottoming out on the first thrust. Hearing your moan and feeling how wet and turned on you are, he starts fucking you hard right away. His hips slap against your butt cheeks with every thrust, and he reaches up and grabs your shoulder with one hand to keep you from moving away, furiously fucking your pussy and putting you into a state of ecstatic bliss right there on the skywalk.'
+					gs 'arousal', 'vaginal', 10, 'exhibitionism', 'rough', 'unknown'
+					gs 'stat'
+
+					act 'Have anal sex with him':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikanal.jpg" ></center>'
+						'When another train rolls into the station, he curses, pulls out of you and hastily tucks his penis back into his pants. Without waiting until you could do something similar, he grabs your hand and pulls you along with him; you manage to cover yourself to some extent, but you know your ass is still partially showing.' 
+						*nl
+						'He rushes down one of the access ramps of the skywalk to an older platform of the station that now serves as a storage siding. As soon as you turn the corner and are no longer visible from the skywalk or other platforms anymore - so basically as soon as you turn the corner - he pushes you up against the graffiti-covered wall, pulls your clothes aside again and shoves his cock back into your pussy, fucking you like you hadn''t been interrupted. While you try to stifle your moans so passersby on the walkway won''t hear you, he leans forward and seductively whispers into your ear, "I''m going to fuck that tight little ass of yours."' 
+						*nl
+						'Without waiting for a response from you, the boy pulls his cock out once more and slides his <<dick>>cm <<$dick_girth>> cock up your ass. You gasp in pain, but it turns into a moan of pleasure along the way. You don''t have to consciously relax your asshole to enjoy this at this point; you are so turned on at the moment that you don''t really care where he sticks his cock as long as he just keeps fucking you.'
+						gs 'arousal', 'vaginal', 10, 'exhibitionism', 'unknown', 'rough'
+						$orgasm_txt = 'Your ass is getting pounded almost as hard as your pussy; he is just rough enough to make it hurt a little, but in this strange state you''re in, it seems to hurt in a <i>good</i> way, adding more fuel to the mounting climax inside of you. And then, just like that, the pressure is released explosively, shaking you like a leaf in the wind as you have an anal orgasm, maybe five meters away from a skywalk. You cannot contain your moans at this point, and it doesn''t help that your lover redoubles his efforts and fucks your tight little asshole even harder when he realizes that you''re cumming.'
+						$orgasm_or = 'yes'
+						gs 'arousal', 'anal', -10, 'exhibitionism', 'unknown', 'rough'
+						'Had anybody walked by and heard or seen you right now, you wouldn''t have even cared.'
+						gs 'stat'
+
+						act 'Take his cum':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/gopnikcum.jpg" ></center>'
+							'He suddenly groans; a first jet of sperm shoots into your bowels just as he pulls out, and you feel his hot sperm rain down all over your ass cheeks as he jerks himself off. When the stream dies down, he wipes off the last few drops at his tip on your butt before pulling his pants up; he then helpfully offers you a tissue.'
+							*nl
+							'As you clean yourself up, he breaks into a chuckle as he realizes something: "By the way, I''m <<$boydesc>>."'
+							'You can''t help but laugh at that; you just let him fuck you in every which way, and you didn''t even know his name! "<<$pcs_nickname>>, pleasure to meet you," you say in mock formality and even offer him your hand, "a real pleasure," you add with a suggestive smile. He feigns seriousness as he shakes the offered hand but cannot keep himself from grinning.'
+							'"It was nice meeting you as well, <<$pcs_nickname>>. Maybe I can call you sometime?", he asks hopefully.'
+							gs 'arousal', 'end'
+							gs 'cum_call', 'butt', 'Gopnik'
+							gs 'cum_call', 'anus', 'Gopnik'
+							gs 'stat'
+
+							act 'Give him your number':
+								*clr & cla
+								if rand(0,3) = 0:
+									gs 'boyfrend', 'start'
+									stopboy = 0
+								end
+								'"I''d like that," you tell him and give him your phone number. He waits until you''re more or less presentable again, then walks you back up to the skywalk where you two part ways.'
+
+								act 'Return to the station and catch the next train':
+									*clr & cla
+									minut += 30	
+									gs 'stat'
+									'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
+									'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
+									act 'Get off the train': gt $loc, $loc_arg
+								end
+							end
+							act 'Don''t give him your number':
+								*clr
+								cla
+								'You shake your head. "Look, <<$boydesc>>, I had fun but I am not looking for anything more than a fuck right now. Maybe we will run into each other on the train again or something sometime?"'
+								'He shrugs like he doesn''t care either way, but the look he gives you tells you that he''s a little pissed. "Sure, whatever. See you around." With that, he turns and walks off, leaving you to finish getting your clothes back in order.'
+
+								act 'Return to the station and catch the next train':
+									*clr & cla
+									minut += 30	
+									gs 'stat'
+									'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
+									'The journey is uneventful, and you end up not paying attention for much of it. It doesn''t seem like long before you arrive at your destination.'
+									act 'Get off the train': gt $loc, $loc_arg
+								end
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+--- train_events ---------------------------------

+ 0 - 102
locations/train_functions.qsrc

@@ -1,102 +0,0 @@
-# train_functions
-
-
-if $ARGS[0] = 'buy_train_pass':
-	if Trainpass_day <= daystart:
-		if money >= 250:
-			dynamic 'act ''Buy a daily pass (1 day - 250 <b>₽</b>)'':
-				cla
-				money -= 250
-				Trainpass_day = daystart + 1
-				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
-			end'
-		end
-
-		if money >= 1500:
-			dynamic 'act ''Buy a weekly pass (7 days - 1500 <b>₽</b>)'':
-				cla
-				money -= 1500
-				Trainpass_day = daystart + 7
-				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
-			end'
-		end
-
-		if money >= 5500:
-			dynamic 'act ''Buy a monthly pass (30 days - 5500 <b>₽</b>)'':
-				cla
-				money -= 5500
-				Trainpass_day = daystart + 30
-				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
-			end'
-		end
-
-		if money >= 75000:
-			dynamic 'act ''Buy a yearly pass (365 days - 75000 <b>₽</b>)'':
-				cla
-				money -= 75000
-				Trainpass_day = daystart + 365
-				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
-			end'
-		end
-	end
-end
-
-
-! Prices:
-!	Get on price: 25
-!	Pav - Gad: 50
-!	Gad - Com: 25
-!	Com - Ind: 25
-!	Ind - Cen: 25
-if $ARGS[0] = 'buy_ticket':
-	if $ARGS[1] = 'pavlovsk':
-		gs 'train_functions', 'set_ticket', 75,  'pav_train_hall', 'village',	'the village of Gadukino'
-		gs 'train_functions', 'set_ticket', 100, 'pav_train_hall', 'communal',	'the communal village'
-		gs 'train_functions', 'set_ticket', 125, 'pav_train_hall', 'ind',		'the city industrial area'
-		gs 'train_functions', 'set_ticket', 150, 'pav_train_hall', 'center',	'the city center'
-
-	elseif $ARGS[1] = 'gadukino':
-		gs 'train_functions', 'set_ticket', 75,  'train', 'village_pavlovsk',	'Pavlovsk'
-		gs 'train_functions', 'set_ticket', 50,  'train', 'village_communal',	'the communal village'
-		gs 'train_functions', 'set_ticket', 75,  'train', 'village_ind',		'St. Petersburg city industrial area'
-		gs 'train_functions', 'set_ticket', 100, 'train', 'village_center',		'St. Petersburg city center'
-
-	elseif $ARGS[1] = 'communal':
-		gs 'train_functions', 'set_ticket', 75,  'train', 'communal_center',	'St. Petersburg city center'
-		gs 'train_functions', 'set_ticket', 50,  'train', 'communal_ind',		'St. Petersburg city industrial area'
-		gs 'train_functions', 'set_ticket', 50,  'train', 'communal_village',	'the village of Gadukino'
-		gs 'train_functions', 'set_ticket', 100, 'train', 'communal_pavlovsk',	'Pavlovsk'
-
-	elseif $ARGS[1] = 'ind':
-		gs 'train_functions', 'set_ticket', 50,  'city_industrial_train', 'center',		'St. Petersburg city center'
-		gs 'train_functions', 'set_ticket', 50,  'city_industrial_train', 'communal',	'the communal village'
-		gs 'train_functions', 'set_ticket', 75,  'city_industrial_train', 'village',	'the village of Gadukino'
-		gs 'train_functions', 'set_ticket', 125, 'city_industrial_train', 'pavlovsk',	'Pavlovsk'
-
-	elseif $ARGS[1] = 'center':
-		gs 'train_functions', 'set_ticket', 50,  'city_train', 'ind',		'the city industrial area'
-		gs 'train_functions', 'set_ticket', 75,  'city_train', 'communal',	'the communal village'
-		gs 'train_functions', 'set_ticket', 100, 'city_train', 'village',	'the village of Gadukino'
-		gs 'train_functions', 'set_ticket', 150, 'city_train', 'pavlovsk',	'Pavlovsk'
-	end
-end
-
-
-!  ARGS[1] = price
-! $ARGS[2] = desitination loc
-! $ARGS[3] = destinatino loc_arg
-! $ARGS[4] = destination name
-if $ARGS[0] = 'set_ticket':
-	if money < ARGS[1]:
-		dynamic 'act ''Buy a ticket to <<$ARGS[4]>> (<font color="red"><<ARGS[1]>> <b>₽</b></font>)'': ''<br><font color="red">You don''t have enough money for a ticket to <<$ARGS[4]>>'' '
-	else
-		dynamic 'act ''Buy a ticket to <<$ARGS[4]>> (<<ARGS[1]>> <b>₽</b>)'':
-				money -= <<ARGS[1]>>
-				menu_off = 1
-				gt ''<<$ARGS[2]>>'', ''<<$ARGS[3]>>''
-			end'
-	end
-end
-
-
---- train_functions ---------------------------------

+ 34 - 285
locations/train_incidental.qsrc

@@ -5,143 +5,121 @@
 if $ARGS[0] = 'events':
 	*clr & cla
 	menu_off = 1
-	train_event = 1
-	gt 'train_incidental', '<<rand(1, 28)>>'
+	transportVars['train_event_day'] = daystart
+	gt 'train_incidental', 'event<<rand(1, 27)>>'
 end
 
-if $ARGS[0] = '1':
+if $ARGS[0] = 'event1':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/fat.jpg" ></center>'
 	'A large sweaty man sits down next to you. He reeks like he hasn''t bathed in days. You look around, but there is no other place to sit. You have no choice but to sit and endure. About halfway through the ride to the next stop, he turns to you and starts asking you questions. You thought his body reeked, but his breath is even worse. You lean back as far as you can and do you best to discourage him from talking to you. Even barely replying doesn''t work. He continues to talk to you the whole trip. When you finally arrive, you rush out of the train car to the fresh air outside.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '2':
+elseif $ARGS[0] = 'event2':
 	'<center><video autoplay loop src="images/locations/shared/train/sex/finger'+ rand(1,2) +'.mp4" ></video></center>'
 	'There are few people in this car. At the last stop, a young couple sits down a little way away. The boy keeps trying to feel the girl up, and she keeps pushing his hands away and glancing nervously around the car, but eventually she gives into his persistence, and they are soon kissing passionately. One of his hands slides up her skirt and you can hear her moaning from here. You try your best to give them privacy, but her moans are very distracting. By the next stop, her moans have reached a crescendo, followed by her shuddering in his arms and growing quiet. When she notices your eyes on them, she blushes fiery red and pushes his hands away, whispering to him. He looks over at you with a huge grin and leans back, obviously proud of his actions, while she does everything she can to hide.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '3':
+elseif $ARGS[0] = 'event3':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/nursing.jpg" ></center>'
 	'The car seems sparsely populated today. You sit across from a young woman holding a baby. After a bit, the baby gets fussy. The young woman responds by beginning to breast feed. As you watch her, you can''t help but wonder what it would feel like. A man to your right notices you staring at the young woman and her baby. He jokingly tells you he could help you out if you want one of your own. You blush bright red and lower your head while he gets a good laugh.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '4':
+elseif $ARGS[0] = 'event4':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/crowded.jpg" ></center>'
 	'The car is absolutely packed today. No seats are available, so you are left standing, feeling much like a canned sardine. At one of the stops, you stumble forward a bit. After regaining your footing, you feel something hard lodged between your legs. It seems the man in front of you is carrying a thin briefcase and you managed to stumble onto it. He doesn''t seem to notice, and the car is too packed for you to move away. Every time the train starts or stops, the briefcase brushes against your vagina. You spend the rest of the ride hoping nobody notices while stifling any unintentional moans.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '5':
+elseif $ARGS[0] = 'event5':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/glare.jpg" ></center>'
 	'The car is mostly empty. You enjoy having so much space to yourself. There is a woman a few rows ahead of you, dressed in office clothes and make up. She glares at you when you check out her dress. She stands up and walks towards you, stopping right in front of you and asking what the hell you''re looking at. It takes you a while, but you manage to deescalate the situation. The woman is still upset as she''s walking away from you. Luckily, she gets off the train at the next station.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '6':
+elseif $ARGS[0] = 'event6':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/sleep.jpg" ></center>'
 	'The train is full of commuters today. You marvel at how all the office workers look so similar. One catches your eye however. He is wearing what could be a very nice suit - if it weren''t so faded and worn. He simply looks outside, not reading like the others. He seems so exhausted. You wonder what turns his life has taken to reach this point.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '7':
+elseif $ARGS[0] = 'event7':
 	minut += 20
 	'You get a window seat today and enjoy watching the countryside go by. As some time passes by, the train stops, and the conductor announces that there are some technical difficulties with the train. You get very bored staring at the same farm for twenty minutes, wishing you had a magazine. Finally, the train starts moving again.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '8':
+elseif $ARGS[0] = 'event8':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/invest.jpg" ></center>'
 	'A man in a suit sits opposite you and starts looking through things on his laptop. Every so often, his phone rings, and he lists company names and prices with instructions to buy and sell. You briefly wonder if you should be paying attention, maybe it would be a good thing to invest too, but you doubt you have the money to invest even if you wanted to.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '9':
+elseif $ARGS[0] = 'event9':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
 	'A fly gets stuck in the carriage. It''s surprisingly noisy, and you spend 5 minutes trying to shoo it out of the little vent window. Finally, you get it out, and the 5 other people in the carriage jokingly applaud, obviously having watched the whole thing. Your face turn red as you return to your seat.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '10':
+elseif $ARGS[0] = 'event10':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
 	'Some foreign tourists get on the train with you. They have several suitcases and stow them in the overhead racks. A small case is on top of the others and slides about as the train starts and stops. You can''t help but watch it thinking it will slide off and fall on someone, but thankfully it never does.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '11':
+elseif $ARGS[0] = 'event11':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
 	'A local city newspaper has been left on your seat. You flick through it to pass the time, idly turning through the pages looking for articles of interest. You don''t manage to find any, but it still beats just sitting there daydreaming.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '12':
+elseif $ARGS[0] = 'event12':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/ride.jpg" ></center>'
 	'After you''ve settled down, a woman enters with three children and a push-chair looking for a seat. One of the few remaining ones is next to you, so now you have the pleasure of an energetic small child sitting next to you, one that jumps up and down on the seat, shouts to his brother, and occasionally throws things at his brother. Sometimes those things are thrown back. Sometimes they hit you, by accident or perhaps deliberately given how amusing they find it.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '13':
+elseif $ARGS[0] = 'event13':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/animalr.jpg" ></center>'
 	'As you board the train, you notice there is no one else in the car with you. However as you take your seat, you look over and see some sort of dog like animal curled up in one of the chair. It looks like a wild animal, but it is not bothering you, so you ignore it and get off at your stop.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '14':
+elseif $ARGS[0] = 'event14':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/boobflash'+ rand(1,2) +'.jpg" ></center>'
 	'As you are riding the train, about halfway through the journey you hear some whistles and clapping. You look up and see another young girl, not much older than you are. She''s flashing her tits to everyone on the train, which is most appreciated by most of the passengers, though a few of the women and elders seem to disapprove. Either way, she sure looks like she is loving the attention.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '15':
+elseif $ARGS[0] = 'event15':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/buttflash1.jpg" ></center>'
 	'As you are riding the train, about halfway through the journey you hear some whistles and clapping. You look up and see another young girl, not much older than you are. She''s flashing her naked butt to everyone on the train, which is most appreciated by most of the passengers, though a few of the women and elders seem to disapprove. Either way, she sure looks like she is loving the attention.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '16':
+elseif $ARGS[0] = 'event16':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/dickslip.jpg" ></center>'
 	'While sitting in your seat on the train, you glance up at the guy across from you. He is texting on his phone, leaned back with his legs spread. He isn''t half bad looking. As you check him out, that''s when you notice the head of his dick hanging out the leg of his shorts. You can''t help but look for a bit, then you glance around and see an older woman watching you. By the smile she gives, you know she noticed as well and noticed where you''re looking. You start blushing as you''ve been caught, and you try looking away, trying to find anything else to look at for the rest of the trip.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '17':
+elseif $ARGS[0] = 'event17':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/gflashtrain.jpg" ></center>'
 	'While riding the train, you spend most of your time looking out the windows. As you pass by a field, you can''t help but notice a young women standing in it completely naked, arms behind her back and legs apart, putting all she has on display for the passengers on the train. She smiles and waves as the train races by.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '18':
+elseif $ARGS[0] = 'event18':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/hot.jpg" ></center>'
 	'As you ride the train, you can''t help but notice the attractive young women sitting across the row from you. Dressed in a short tight leather dress and stockings, you try to avoid checking her out, but you catch her watching you a few times. When your eyes meet, she smiles at you and then turns her attention to her phone. She doesn''t look back over at you the rest of the trip. Unsure if she was flirting or not, you don''t know what to do.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '19':
+elseif $ARGS[0] = 'event19':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/nakedb'+ rand(1,2) +'.jpg" ></center>'
 	'As you take your seat, you glance up to see a naked boy standing in the car. Many of the other passengers are staring at him, but he seems completely unconcerned. He never takes a seat and rides the train while standing as if there is nothing wrong. Before you can figure out why he is naked, he gets off at the next stop.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '20':
+elseif $ARGS[0] = 'event20':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/nakedg'+ rand(1,6) +'.jpg" ></center>'
 	'As you take your seat, you glance up to see a naked girl standing in the car. Many of the other passengers are staring at her, but she seems completely unconcerned. She is smiling and seeming to enjoy the attention she is getting. She makes no attempt to ever cover herself and just rides the train like any other passenger. She gets off at her stop and heads into the train station.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '21':
+elseif $ARGS[0] = 'event21':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/nipslip'+ rand(1,2) +'.jpg" ></center>'
 	'The ride has been fairly boring so far. You start looking around at your fellow passengers, and that''s when you notice it. A woman is distracted and seems to be completely unaware her shirt has ridden down and left her boob and nipple exposed for all to see. You are about to say something to her when another woman gets her attention. She blushes and quickly tucks her breast back in.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '22':
+elseif $ARGS[0] = 'event22':
 	'<center><video autoplay loop src="images/locations/shared/train/pantyflash.mp4" ></video></center>'
 	'As you are riding the train, about halfway through the journey you look up and notice a girl about your age looking back at you. You politely smile to her and go about your business. She manages to catch your attention again, as she flashes her panties at you, smiling.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '23':
+elseif $ARGS[0] = 'event23':
 	if rand(0,2) ! 0:
 		'<center><img <<$set_imgh>> src="images/locations/shared/train/pussyflash'+ rand(1,2) +'.jpg" ></center>'
 	else
@@ -149,269 +127,40 @@ if $ARGS[0] = '23':
 	end
 	'As you are riding the train, about halfway through the journey you look up and notice a girl about your age looking back at you. You politely smile to her and go about your business. She manages to catch your attention again, as she flashes her bare pussy at you, smiling.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '24':
+elseif $ARGS[0] = 'event24':
 	'<center><video autoplay loop src="images/locations/shared/train/toprip.mp4" ></video></center>'
 	'Just as you are getting near your destination, you see a man reach over and grab the top of a woman sitting across the row from you. Once he has a firm grip on her top, he rips it off, leaving her completely topless. At first she just seems surprised. Then she covers herself up and starts screaming at the man, finally yanking her top back from him. He only laughs as she screams at him while trying to fix her top.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '25':
+elseif $ARGS[0] = 'event25':
 	'<center><video autoplay loop src="images/locations/shared/train/sex/bj'+ rand(1,2) +'.mp4" ></video></center>'
 	'There are a few people in the car, a couple sits across from you and an old man is sitting down at the far end of the car. A few minutes pass by and all of the sudden the man pulls his cock out of his pants grabbing the woman''s head. He shoves her face down towards his crotch, while she obediently opens up her mouth and begins sucking on his cock. He looks over at you and grins as his female companion keeps sucking his cock. As time passes, he grabs her hair and starts forcing her head down, while thrusting his hips up. He roughly fucks her mouth until he finally groans loudly. Pulling her head off his cock, he puts it away, as she uses her fingers to clean up the cum at the corner of her lips.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '26':
+elseif $ARGS[0] = 'event26':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/sex/dblgmas.jpg" ></center>'
 	'There are a few people in the car, a couple young girls sitting across from you and a couple of businessmen at the far end of the train. You hear the girls giggling as they whisper back and forth. Blushing slightly, they look around. Noticing only you nearby, they start goading each other. You are about to ask what they are up to when both of them pull up their skirts, spread their legs and begin to masturbate. They don''t pay any attention to you at all as they do this. Some time later, one of them cries out in pleasure, flipping off her friend immediately after. Apparently, they were racing to see who could get off first.'
 	act 'Complete your journey': gt $loc, $loc_arg
-end
 
-if $ARGS[0] = '27':
+elseif $ARGS[0] = 'event27':
 	'<center><video autoplay loop src="images/locations/shared/train/sex/gmast.mp4" ></video></center>'
 	'The train car is completely empty other than one other woman who spends a lot of time texting on her phone for most of the trip. All of a sudden, she pulls up her shirt, exposing her breasts, and unbuttons her pants. She reaches down into her pants with one hand and begins masturbating right there on the train, while keeping the other hand occupied with her breasts. Unsure what to do, you attempt to ignore her, but her moans of pleasure make it very hard to do so. Luckily, she seems adept at getting herself off, as she doesn''t take too long before she climaxes. Once she does, she goes back to using her phone as if nothing happened.'
 	act 'Complete your journey': gt $loc, $loc_arg
 end
 
-if $ARGS[0] = '28':
-	*clr & cla
-	temp_var = 0
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/breastfeeding/father_with_baby_train.jpg" ></center>'
-	'The car is really populated today. The only empty seat you can find is next to a sleeping man with his baby.'
-	'You sit down next to him. After a bit, the baby gets fussy. The man wakes up and responds by hastily searching around in his bag. He mumbles about a milk bottle but doesn''t seem to find what he is searching for.'
-	if lactation['active'] > 0 and pcs_inhib >= 30:
-		act 'Offer to help out':
-			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/shared/train/breastfeeding/father_with_baby_train.jpg" ></center>'
-			'You turn your head to him and whisper, "Uhm, do you need help?"'
-			'He looks up at you. "Well, if you don''t happen to have a bottle of milk with you, you can''t help me much..."'
-			'You hem and haw a bit.'
-			act 'Offer to breast feed the baby':
-				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/shared/train/breastfeeding/father_with_baby_train.jpg" ></center>'
-				if tits <= 4:
-					'You put your right hand on your breasts. "I could breastfeed him."'
-				elseif tits > 4 and tits <= 7:
-					'You put your right hand on your large breasts. "I could breastfeed him."'
-				elseif tits > 7:
-					'You put your right hand on your unusually large breasts. "I could breastfeed him."'
-				end
-				if vidage <= 16:
-					'He raises an eyebrow and looks you up and down. "You look a bit too young for being able to do that."'
-					if tits > 4:'His eyes stop at your large breasts. "Even if your breasts look promising..."'
-					temp_var = 1
-				elseif vidage > 16 and vidage <= 19:
-					'He raises an eyebrow and looks at you. "You have breast milk already? Are you sure you can do that?"'
-					if tits > 4:'His eyes stop at your large breasts.'
-					temp_var = 1
-				elseif vidage > 19:
-					'He raises an eyebrow and looks at you. "Are you sure you can do that?"'
-					temp_var = 2
-				else
-					temp_var = 2
-				end
-				:breastfeedthebaby
-				if temp_var = 2:
-					gs 'train_incidental', 'breastfeedthebaby'
-				elseif temp_var <= 1:
-					if pcs_inhib >= 40:
-						act 'Prove it to him':
-							*clr & cla
-							'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/boob_out_leak.mp4" ></video></center>'
-							if vidage <= 16:
-								'You grab onto your top to pull out your breast. The man looks really nervously at you as you do this.'
-							else
-								'You grab onto your top to pull out your breast.'
-							end
-							'You give your breast some squeezes until milk drops start to develop on your nipple. The man watches you surprised and nods positively.'
-							gs 'train_incidental', 'breastfeedthebaby'
-						end
-					end
-					act 'Convince him that you can do it':
-						*clr & cla
-						'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/boob_out_leak.mp4" ></video></center>'
-						if vidage <= 16:
-							'You smile and nod. "I can assure you, even if I look young, I have breast milk."'
-						else
-							'You smile and nod. "I can assure you I have breast milk."'
-						end
-						'The man gives you a concerned expression but then nods. "Well, it couldn''t hurt to let you try."'
-						gs 'train_incidental', 'breastfeedthebaby'
-					end
-				end
-			end
-			act 'Withdraw your offer': gt $loc, $loc_arg
-		end
-		act 'Leave him alone': gt $loc, $loc_arg
-	else
-		if tits > 6:'During his search, he looks around to see if the bottle fell out somewhere nearby. Glancing at your large assets for a moment, he frowns a bit, then continues to search.'
-		'At the next stop, he leaves the car quickly with the baby.'
-		act 'Complete your journey': gt $loc, $loc_arg
-	end
-end
 
-if $ARGS[0] = 'breastfeedthebaby':
-	act 'Breastfeed the baby':
-		*clr & cla
-		'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/train_breastfeeding.mp4" ></video></center>'
-		'The man hands you his baby. You take it into your arms and pull your top up, revealing your breasts.'
-		if vidage <= 16:
-			if tits <=4:
-				'The man blushes a bit as you pull out your young breasts in front of him.'
-				'He doesn''t seem to be to comfortable with a girl breastfeeding his son like this, so he looks somewhere else.'
-			else
-				'The man blushes a bit as you pull out your young large breasts in front of him.'
-				'He doesn''t seem to be to comfortable with a girl breastfeeding his son like this, but can''t help but stare at your chest for a moment before he looks somewhere else.'
-			end
-		else
-			if tits <=4:
-				'The man blushes a bit as you pull out your breasts in front of him.'
-				'He looks at your every move.'
-			else
-				'The man blushes a bit as you pull out your large breasts in front of him.'
-				'He looks at your every move, unable to stop himself from staring at your chest.'
-			end
-		end
-		if pcs_firstbabybreastfeeding <=0:
-			'You look nervously at the baby as you lead the small head to your left breast. You have never breastfed a baby, so you are not sure if this will work out properly.'
-		else
-			'You lead the baby''s head to your left breast.'
-		end
-		'The small lips brush over your skin in search for your nipple. With your right hand, you adjust your breast a bit, pointing the nipple at the small mouth.'
-		if pcs_firstbabybreastfeeding <=0:
-			'The baby latches on. You can feel and see your nipple being sucked in eagerly by the small mouth. Your eyes widen, and you can''t help but smile a bit.'
-			'You let out a cute little moan, as you are surprised from the feeling of your tingling nipple.'
-			'The man asks if everything is okay, and you nod hastily, then lean your head back and close your eyes.'
-		else
-			'The baby latches on. You can feel and see your nipple being sucked in eagerly. You close your eyes, smile and hum in a relaxed tone. The tingling in your nipple tells you that your milk is coming out.'
-		end
-		act 'Continue':
-			*clr & cla
-			temp_var = func('lact_lib','$get_breastmilk_time', 2, 80)
-			'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/train_breastfeeding.mp4" ></video></center>'
-			if temp_var > 15:
-				milkedvolume = func('lact_lib','$get_breastmilk', 2, 15)
-				'As you open your eyes again, you see the baby suckle on your left breast, the small lips kneading your areola over and over. The tingling feeling fading away, the kneading of the small mouth intensifies for a bit before the baby latches off on its own, making an unsatisfied noise. You make the baby switch breasts, and you continue to breastfeed until the baby latches off again.'
-				'You speak up, "Sorry... I don''t think he got enough..."'
-				if milkedvolume >= 50000:
-					'The man nods, smiling a bit. "At least this will help for the rest of the train ride."'
-				else
-					'The man nods and seems disappointed. "Damn, he is still hungry. I''ll have to get out at the next stop to see if I can get something for him."'
-					pcs_mood -= 10
-				end
-				'You hand him his baby and cover yourself up.'
-				act 'Finish':gt $loc, $loc_arg
-			else
-				'As you open your eyes again, you see the baby suckle on your left breast, the small lips kneading your areola over and over. The tingling keeps on and the kneading of the small mouth is stable. The small baby''s hand grabs onto your breast firmly.'
-				if pcs_firstbabybreastfeeding <=0:'It feels really great to breastfeed. It is relaxing in a way you haven''t experienced before.'
-				'The baby drinks from you for at least <<temp_var>> minutes. You look up at the father.'
-				if vidage <= 19:
-					'The man looks at your breasts and the baby in amazement. "Wow... you really seem to have enough milk to feed him. How much do you make?"'
-				else
-					'The man looks at your breasts and the baby. "You really seem to have enough milk to feed him. How much do you make?"'
-				end
-				if temp_var >= 12:
-					'You think about it and nod your head while answering, "Well, I guess enough for at least one baby... or so."'
-					'The man smiles and nods. You feel the firm grip of the baby easing up, and the suckling slows down too. You look down and see that the eyes of the baby are closed now and his breathing is calm.'
-					'You whisper to the man, "He is done..."'
-					'You unlatch the baby and hand him to his father, then you cover yourself up. The man thanks you for the help.'
-					act 'Finish':gt $loc, $loc_arg
-				elseif temp_var < 12:
-					'You think about it and nod your head while answering, "Uhm... I think I produce a fair amount."'
-					if lactation['breastmm'] >= 500000:
-						'You then add, "I could fill up a beer glass when my breasts feel engorged, I think, haha."'
-					elseif lactation['breastmm'] >= 150000 and lactation['breastmm'] < 500000:
-						'You then add, "I could fill up a cup when my breasts feel engorged, I think, haha."'
-					else
-						'You then add, "Probably a bit more than the baby can eat..."'
-					end
-					'You smile cutely and giggle a bit. You notice how the man''s eyes widen from your answer and how he blushes.'
-					if vidage <= 16:
-						if tits <=4:
-							'He speaks up, "Wow - you look so young, and yet you make more milk than my wife. She is barely able to breastfeed him, and we need extra bottled milk."'
-						else
-							'He speaks up, "Wow - you look so young, and yet you make more milk than my wife... but it is no wonder you can with breasts like those."'
-							'Saying this, he makes you blush.'
-							'He continues, "My wife is barely able to breastfeed him, and we need extra bottled milk."'
-						end
-					else
-						'He speaks up, "Wow - you make more milk than my wife. She is barely able to breastfeed him, and we need extra bottled milk."'
-					end
-					'"I always wanted to try her milk," he admits, "but there is barely enough as it is."'
-					'It seems like he is interested in trying your breast milk but is too shy to ask. You feel the firm grip of the baby easing up and the suckling slowing down too. You look down and see that the eyes of the baby are closed now and his breathing is calm.'
-					milkedvolume = func('lact_lib','$get_breastmilk', 2, temp_var)
-					milkedvolume = 0
-					act 'Finish':
-						*clr & cla
-						'You whisper to the man, "I think he is done..."'
-						'You unlatch the baby and hand him to his father, then you cover yourself up. The man thanks you for the help.'
-						act 'Leave':gt $loc, $loc_arg
-					end
-					gs 'willpower', 'foreplay', 'force'
-					if will_cost <= pcs_willpwr:
-						act 'Have him try your breast milk (<<will_cost>> Willpower)':
-							*clr & cla
-							gs 'willpower', 'pay', 'force'
-							gs 'stat'
-							'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/adult_breastfeeding.mp4" ></video></center>'
-							'You smile at him. "Would you like to try?"'
-							'The man asks, "Try what?"'
-							'You grab your right breast with your right hand and pull it out of your top, slightly weighting it in your hand.'
-							'You whisper, "My breast milk..."'
-							if vidage <=16:
-								'The man looks nervously at you. Shaking his head, he stammers "No, no... you are too young for that..."'
-								'You lean in. "But not too young to breastfeed your son?"'
-								'Offering your breast to him again, you prod, "Come on, it is no big deal..."'
-							end
-							'The man stands up and looks over the seats left and right, then around the car. He then sits down in his seat again, leaning over to you and moving his hands up, then hesitating. He looks in your eyes as if he wants approval. You nod, and he grabs around your breast with both hands, holding it firmly. You move your right hand onto his neck. Then he moves his mouth towards your nipple and latches on too. He is producing way more suction force than the baby, making you moan. Your nipple pulses, and you feel your breast milk gushing out into his mouth. He closes his eyes and nuzzles your breast, drinking your milk. After about 5 minutes, he is done and latches off.'
-							'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/adult_breastfeeding.mp4" ></video></center>'
-							milkedvolume = func('lact_lib','$get_breastmilk', 0, 5)
-							if milkedvolume >= 80000:
-								if tits <=4:
-									'He wipes his mouth off and looks at you. "They don''t look like it, but there is a lot of milk inside your breasts..."'
-								else
-									'He wipes his mouth off and looks at you. "There is really a lot of milk inside your breasts..."'
-								end
-								'"I should ask my wife to hire you as a wet nurse or something..." he adds.'
-							elseif milkedvolume >= 50000 and milkedvolume < 80000:
-								if tits <=4:
-									'He wipes his mouth off and looks at you. "They don''t look like it, but there is quite the amount of milk inside your breasts..."'
-								else
-									'He wipes his mouth off and looks at you. "There is quite the amount of milk inside your breasts..."'
-								end
-							else
-								if tits <=4:
-									'He wipes his mouth off and looks at you. "As I expected, there wasn''t much milk inside your breasts..."'
-								else
-									'He wipes his mouth off and looks at you. "Huh, I didn''t expect so little milk inside those magnificent breasts..."'
-								end
-							end
-							act 'Continue':
-								*clr & cla
-								'<center><video autoplay loop src="images/locations/shared/train/breastfeeding/train_breastfeeding.mp4" ></video></center>'
-								'You unlatch the baby and hand him to his father, then you cover yourself up. The man thanks you for the help and for the delicious snack.'
-								milkedvolume = 0
-								act 'Leave':gt $loc, $loc_arg
-							end
-						end
-					else
-						act 'Have him try your breast milk (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					end
-				end
-			end
-		end
-		pcs_firstbabybreastfeeding = 1
-	end
-end
 
 if $ARGS[0] = 'end':
 	*clr & cla
+	menu_off = 1
+	gt 'train_incidental', 'end<<rand(1, 1)>>'
+end
+
+if $ARGS[0] = 'end1':
 	'<center><video autoplay loop src="images/locations/shared/train/sex/leskuni.mp4" ></video></center>'
 	'As you get off the train and walk into the train station, you are greeted by a very unusual sight. One girl is sitting on a bench with her legs spread wide while another girl is kneeling down on the floor with her face buried in her crotch. A few people are watching the two girls, but most are just ignoring them. You watch the two of them, feeling yourself getting aroused. As you make your way towards the exit, you sadly can no longer see them, but you can still hear them in the distance.'
 	act 'Continue': gt $loc, $loc_arg
 end
 
 --- train_incidental ---------------------------------
-

+ 164 - 0
locations/transport_functions.qsrc

@@ -0,0 +1,164 @@
+# transport_functions
+
+
+	!!=======================================!!
+	!!                                       !!
+	!!                Trains                 !!
+	!!                                       !!
+	!!=======================================!!
+
+
+if $ARGS[0] = 'buy_train_pass':
+	if transportVars['trainpass_day'] <= daystart:
+		if money >= 250:
+			dynamic 'act ''Buy a daily pass (1 day - 250 <b>₽</b>)'':
+				cla
+				money -= 250
+				transportVars[''trainpass_day''] = daystart + 1
+				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
+			end'
+		end
+
+		if money >= 1500:
+			dynamic 'act ''Buy a weekly pass (7 days - 1500 <b>₽</b>)'':
+				cla
+				money -= 1500
+				transportVars[''trainpass_day''] = daystart + 7
+				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
+			end'
+		end
+
+		if money >= 5500:
+			dynamic 'act ''Buy a monthly pass (30 days - 5500 <b>₽</b>)'':
+				cla
+				money -= 5500
+				transportVars[''trainpass_day''] = daystart + 30
+				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
+			end'
+		end
+
+		if money >= 75000:
+			dynamic 'act ''Buy a yearly pass (365 days - 75000 <b>₽</b>)'':
+				cla
+				money -= 75000
+				transportVars[''trainpass_day''] = daystart + 365
+				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
+			end'
+		end
+	end
+end
+
+
+if $ARGS[0] = 'buy_train_ticket':
+	if $ARGS[2] = 'pc':
+		if $ARGS[1] ! 'pavlovsk':	gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'pavlovsk',	'Pavlovsk'
+		if $ARGS[1] ! 'village':	gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'village',	'the village of Gadukino'
+		if $ARGS[1] ! 'communal':	gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'communal',	'the communal village'
+		if $ARGS[1] ! 'ind':		gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'ind',		'St. Petersburg city industrial area'
+		if $ARGS[1] ! 'center':		gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'center',	'St. Petersburg city center'
+	else
+		if $ARGS[1] ! 'center':		gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'center',	'St. Petersburg city center'
+		if $ARGS[1] ! 'ind':		gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'ind',		'St. Petersburg city industrial area'
+		if $ARGS[1] ! 'communal':	gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'communal',	'the communal village'
+		if $ARGS[1] ! 'village':	gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'village',	'the village of Gadukino'
+		if $ARGS[1] ! 'pavlovsk':	gs 'transport_functions', 'set_train_ticket', $ARGS[1],	'pavlovsk',	'Pavlovsk'
+	end
+end
+
+! $ARGS[1] = origin loc_arg
+! $ARGS[2] = destination loc_arg
+! $ARGS[3] = destination name
+if $ARGS[0] = 'set_train_ticket':
+	temp_price = func('transport_functions', 'get_train_price', $ARGS[1], $ARGS[2])
+
+	if money < ARGS[1]:
+		dynamic 'act ''Buy a ticket to <<$ARGS[3]>> (<font color="red"><<temp_price>> <b>₽</b></font>)'': ''<br><font color="red">You don''t have enough money for a ticket to <<$ARGS[3]>>'' '
+	else
+		dynamic 'act ''Buy a ticket to <<$ARGS[3]>> (<<temp_price>> <b>₽</b>)'':
+				money -= <<temp_price>>
+				menu_off = 1
+				gt ''train'', ''<<$ARGS[1]>>_<<$ARGS[2]>>''
+			end'
+	end
+	killvar 'temp_price'
+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 = -result
+	result += 25
+end
+
+if $ARGS[0] = '_private_train_price':
+	if $ARGS[1] = 'pavlovsk':
+		result = 0
+	elseif $ARGS[1] = 'village':
+		result = 50
+	elseif $ARGS[1] = 'communal':
+		result = 75
+	elseif $ARGS[1] = 'ind':
+		result = 100
+	elseif $ARGS[1] = 'center':
+		result = 125
+	end
+end
+
+
+if $ARGS[0] = 'get_train_timecost':
+	result = func('transport_functions', '_private_train_time', $ARGS[2]) - func('transport_functions', '_private_train_time', $ARGS[1])
+	if result < 0: result = -result
+end
+
+if $ARGS[0] = '_private_train_time':
+	if $ARGS[1] = 'pavlovsk':
+		result = 0
+	elseif $ARGS[1] = 'village':
+		result = 15
+	elseif $ARGS[1] = 'communal':
+		result = 25
+	elseif $ARGS[1] = 'ind':
+		result = 35
+	elseif $ARGS[1] = 'center':
+		result = 40
+	end
+end
+
+
+if $ARGS[0] = 'display_trainpass_time':
+	$result = 'You have <<transportVars[''trainpass_day''] - daystart>> days left on your train pass.'
+end
+
+if $ARGS[0] = 'display_train_timecost':
+	$result = '00:' + $mid(100 + func('transport_functions', 'get_train_timecost', $ARGS[1], $ARGS[2]), 2, 2)
+end
+
+
+
+	!!=======================================!!
+	!!                                       !!
+	!!                Busses                 !!
+	!!                                       !!
+	!!=======================================!!
+
+
+
+
+
+
+
+	!!=======================================!!
+	!!                                       !!
+	!!                 Metro                 !!
+	!!                                       !!
+	!!=======================================!!
+
+
+if $ARGS[0] = 'get_metro_price':
+	result = 16
+end
+
+if $ARGS[0] = 'get_metro_timecost':
+	result = 10
+end
+
+--- transport_functions ---------------------------------