Răsfoiți Sursa

Merge remote-tracking branch 'netuttki/master'

Kevin_Smarts 1 an în urmă
părinte
comite
b54768e22d

+ 1 - 0
glife.qproj

@@ -793,6 +793,7 @@
    		<Location name="music_guitarlesson"/>   
    		<Location name="music_buskingevents"/>
 		<Location name="music_delparco"/>
+		<Location name="music_checks"/>
 	</Folder>
 	<Folder name="Lover">
 		<Location name="girl"/>

+ 3 - 0
locations/HotelRoom.qsrc

@@ -33,6 +33,7 @@ if $ARGS[0] = 'normal':
 	end
 	if money >= 100: act'Order room service (0:30) (100 <b>₽</b>)':gs 'food', 'h_food'
 	act 'Drink some water (0:01)': gs 'beverage', 'bev_wat'
+	if $hotel = 'pav_hotel' and curr_home = 6 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 	dynamic $fatdel
 	dynamic $lekarstvo
 	dynamic $vitamin
@@ -70,6 +71,7 @@ if $ARGS[0] = 'better':
 	if money >= 100: act'Order room service (0:30) (100 <b>₽</b>)':gs 'food', 'h_food'
 	act 'Drink some water (0:05)': gs 'beverage', 'bev_wat'
 	act 'Have a coffee (0:05)': gs 'beverage', 'bev_cof'
+	if $hotel = 'pav_hotel' and curr_home = 6 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 	dynamic $fatdel
 	dynamic $lekarstvo
 	dynamic $vitamin
@@ -108,6 +110,7 @@ if $ARGS[0] = 'best':
 	act 'Drink some water (0:01)': gs 'beverage', 'bev_wat'
 	act 'Have a coffee (0:05)': gs 'beverage', 'bev_cof'
 	act 'Make some tea (0:05)': gs 'beverage', 'bev_tea'
+	if $hotel = 'pav_hotel' and curr_home = 6 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 	dynamic $fatdel
 	dynamic $lekarstvo
 	dynamic $vitamin

+ 2 - 0
locations/bedr.qsrc

@@ -228,5 +228,7 @@ gs 'subkid'
 
 act 'Relax on your bed': gt 'bed', 'start'
 
+if curr_home = 1 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
+
 --- bedr ---------------------------------
 

+ 1 - 0
locations/bedr2x.qsrc

@@ -211,6 +211,7 @@ end
 gs 'subkid'
 
 act 'Relax on your bed': gt 'bed', 'start'
+if curr_home = 4 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 
 --- bedr2x ---------------------------------
 

+ 6 - 154
locations/bedrPar.qsrc

@@ -184,7 +184,9 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 		act 'Relax on your bed': gt 'bed', 'start'
 
 		act 'Open wardrobe': gt 'wardrobe', 'start'
-
+		
+		if curr_home = 2 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
+		
 		if pornMagazine > 0:'You have hidden your porn magazines under the mattress of your bed.'
 		!!Masturbation, allowed after sister threesome (when sis_watch is used for a message) or sister not here.
 		sis_watch = 0
@@ -259,161 +261,11 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 			if gobelen > 0: 'You have <<gobelen>> completed tapestries.'
 		end
 
-		if ml_guitar['carried'] = 1:
-			act 'Place the guitar next to your desk':
-				ml_guitar['carried'] = 0
-				$ml_guitar['location'] = $curloc
-				gt $loc, $loc_arg
-			end
-		elseif $ml_guitar['location'] = $curloc:
-			act 'Pick up the guitar':
-				ml_guitar['carried'] = 1
-				$ml_guitar['location'] = ''
-				gt $loc, $loc_arg
-			end
-		end
-
-
-		if ml_online['account'] = 0 and internet > 0:
-			act 'Set up an online music account': gt 'music_onlinemusic', 'setupAccount'
-		end
-
-		!!Uploading recorded music if there are any not uploaded yet
-		if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
-			if pcs_inhib < 30:
-				if pcs_inhib < 10:
-					$diff = 'hard'
-				elseif pcs_inhib < 20:
-					$diff = 'medium'
-				else
-					$diff = 'easy'
-				end
-				gs 'willpower', 'skill', 'self', $diff
-
-				will_cost = (will_cost * 2) - (pcs_perform)
-				if will_cost <= pcs_willpwr:
-					act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
-				else
-					act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-				end
-			end
-			act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
-		end
-
-		if ml_uploadablemusic > 0:
-			act 'Delete old recordings': gt 'music_onlinemusic', 'deleteoldmusic'
-		end
-
-		if hour > 8 and hour < 22:
-
-			if ml_guitar['hasguitar'] = 1:
-				act 'Play something on the guitar':
-					pcs_mood += 10
-					minut += 10
-					gs 'stat'
-					'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
-					'You hum along to the tune, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
-				end
-			end
-
-			if ml_guitar['hasguitar'] = 1 and (ml_guitar['chordbook'] = 1 or ml_guitarlesson['lessoncount'] > 0) and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-				if locat['Anya_inroom'] = 1 and pcs_inhib < 30:
-					if pcs_inhib < 10:
-						$diff = 'hard'
-					elseif pcs_inhib < 20:
-						$diff = 'medium'
-					else
-						$diff = 'easy'
-					end
-					gs 'willpower', 'skill', 'self', $diff
-					will_cost = (will_cost * 3) - (pcs_perform)
-					if will_cost <= pcs_willpwr:
-						act 'Practice guitar (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,2)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_bedroomPractice', 'guitar'
-						end
-					else
-						act 'Practice guitar (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
-					end
-				else
-					act 'Practice guitar': gt 'music_bedroomPractice', 'guitar'
-				end
-			end
-
-			!! Streaming music
-			if ml_guitar['hasguitar'] = 1 and locat['Anya_inroom'] = 0 and ml_online['account'] = 1 and internet > 0 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and ml_performance['max_perform_minutes'] >= 15 and alko < 5 and ml_streaming['lastday'] ! daystart:
-				ml_streamtime =  min((ml_performance['max_perform_minutes']-ml_performance['performed_minutes']), 60)
-
-				if pcs_inhib < 30:
-					if pcs_inhib < 10:
-						$diff = 'hard'
-					elseif pcs_inhib < 20:
-						$diff = 'medium'
-					else
-						$diff = 'easy'
-					end
-					gs 'willpower', 'skill', 'self', $diff
-					will_cost = (will_cost * 3) - (pcs_perform)
-
-					if will_cost <= pcs_willpwr:
-						act 'Live stream (<<ml_streamtime>> minutes) (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,3)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_onlinemusic', 'liveStream'
-						end
-					else
-						act 'Live stream (<<ml_streamtime>> minutes) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					end
-				else
-					act 'Live stream (<<ml_streamtime>> minutes)': gt 'music_onlinemusic', 'liveStream'
-				end
-			end
-
-			!! Recording music
-			if ml_guitar['hasguitar'] = 1 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-				if pcs_inhib < 20:
-					if pcs_inhib < 10:
-						$diff = 'medium'
-					elseif pcs_inhib < 20:
-						$diff = 'easy'
-					end
-					gs 'willpower', 'skill', 'self', $diff
-
-					if will_cost <= pcs_willpwr:
-						act 'Record a song with your phone (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,2)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_onlinemusic', 'recordSong'
-						end
-						if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-							act 'Record and edit a song (<<will_cost>> Willpower)':
-								inhib_exp += rand(1,2)
-								gs 'willpower', 'pay', 'self'
-								gs 'stat'
-								gt 'music_onlinemusic', 'recordAndEditSong'
-							end
-						end
-					else
-						act 'Record a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-						act 'Record and edit a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					end
-				else
-					act 'Record a song with your phone': gt 'music_onlinemusic', 'recordSong'
-					if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-						act 'Record and edit a song': gt 'music_onlinemusic', 'recordAndEditSong'
-					end
-				end
-			end
-		end
-
-		 !! if ml_deparcoQW > 3: act 'Rehearse for your show': gt 'music_bedroomPractice', 'rehearsing'
+		if locat['Anya_inroom']: gs 'music_actions', 'not_alone'
+		gs 'music_actions', 'start'
 
 		if locat['Anya_inroom'] = 0 and breastpump = 1 and bp_unbox <= 0:
-			'<a href="exec: gt ''lact_bp'', ''bp_unbox_event''">Unbox</a> your breast pump'
+			'<a hlpf="exec: gt ''lact_bp'', ''bp_unbox_event''">Unbox</a> your breast pump'
 		elseif kid >= 1 and breastpump = 1 and bp_unbox <= 0:
 			'<a href="exec: gt ''lact_bp'', ''bp_unbox_event''">Unbox</a> your breast pump'
 		elseif locat['Anya_inroom'] = 0 and breastpump = 1 and bp_unbox = 1 and pcs_inhib > 40:

+ 173 - 1
locations/beg1.qsrc

@@ -330,49 +330,221 @@ if $ARGS[0] = 'evro':
 		grupvalue[2] -= 1
 		razradbeg = 2 & razradbegK = 0 & 'But you barely managed to reach the finish line, walking the last 100 meters. Of course, you came in last - but you also made of a fool of yourself. People on the ranks seem to be asking themselves how you even managed to make it this far. Maybe they are right? Your performance is so atrocious that the coach decide to return you to the semi-proffessional rank.'
 		gs 'fame', 'city', 'running', rand(14,19)
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 55:
 		'You fought hard but still have a lot of work ahead of you if you want to be better than your competition. You didn''t manage to reach any classification.'
 		gs 'fame', 'city', 'running', rand(15,21)
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 60:
 		gs 'fame', 'city', 'running', rand(16,23)
 		'You fought hard but still have a lot of work ahead of you if you want to be better than your competition. You only came in last (8th place).'
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 65:
 		grupvalue[2] += 1
 		gs 'fame', 'city', 'running', rand(18,25)
 		'You fought hard, but managed to only take the penultimate place (7th place).'
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 70:
 		grupvalue[2] += 2
 		gs 'fame', 'city', 'running', rand(20,25)
 		'You fought hard, but only managed to take 6th place.'
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 75:
 		grupvalue[2] += 3
 		gs 'fame', 'city', 'running', rand(25,50)
 		'You fought hard, but only managed to take 5th place.'
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 80:
 		grupvalue[2] += 4
 		gs 'fame', 'city', 'running', rand(50,100)
 		'You fought hard, but only managed to take 4th place.'
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 85:
 		grupvalue[2] += 6
 		gs 'fame', 'city', 'running', 'BronzeMedal'
 		razradbegEB += 1
 		money += 10000
 		'You fought hard and managed to take 3rd place, earning a prize. You get a bronze medal and a prize of 10,000 <b>₽</b>'
+		act 'Leave':gt 'fit', 'dressing room'
 	elseif begresult < 90:
 		grupvalue[2] += 8
 		gs 'fame', 'city', 'running', 'SilverMedal'
 		razradbegES += 1
 		money += 15000
 		'You fought hard and managed to take 2nd place, earning a prize. You get a silver medal and a prize of 15,000 <b>₽</b>'
+		act 'Leave':gt 'fit', 'dressing room'
 	else
 		grupvalue[2] += 10
 		gs 'fame', 'city', 'running', 'GoldMedal'
 		razradbegEG += 1
 		money += 20000
 		'You fought hard and managed to take 1st place. You get a gold medal, a prize of 20,000 <b>₽</b> and are now the "St. Petersburg Track Champion"!'
+		act 'Continue': gt 'beg1', 'Family extension'
 	end
+end
 
-	act 'Leave':gt 'fit', 'dressing room'
+if $ARGS[0] = 'Family extension':
+	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/race/St_Petersburg_run_win.jpg"></center>'
+	if curr_home = 2:
+		if npc_rel['A34'] > 50:
+			minut += 10
+			gs 'stat'
+			'As you receive congratulations from your coach and fellow competitors you have look towards the crowd to acknowledge their support. You are surprised to see your Mum frantically waving at you and trying to make her way down to the track-side.'
+			'Breaking out into a huge grin you jog over to the barrier and reach over and you hug each other.'
+			'"Well done Sveta, that was some race! Oh my! My little girl... The Saint Petersburg Track champion! Where to next, National races? Anyway, I just had to come when I saw your name on the start list for the race in the local paper; I know you''ve been training hard but I never expected that you''d be at this level. Wow! I''m so proud of you! Now give me another hug."'
+			'You lean over and hug you mum. "Thanks for coming Mum I didn''t mention it as I wasn''t sure how well I''d do and I didn''t want to put any pressure on you to attend given we aren''t exactly flush with money."'
+			'Mum hugs you close while continuing, "Oh Sveta really?! Of course I''d come. Whatever differences we''ve had you''re my daughter and I love you and want the best for you."'
+			if npc_rel['A33'] > 50:
+				'At this point you feel a soft punch on your arm and look up to see your sister, Anya standing behind your mum grinning at you and you. You both open your arms and include her in the hug.'
+				'"At last! I got stuck behind some folks following mum down. Anyway, well done Sveta, that was fast, not far off Olympic times!"'
+				'With a big grin you take half a step back and looking at them you say "Right well this calls for a family celebration ladies. Let me get showered and changed and I''ll meet you outside. I''ve got an idea..."'
+			else
+				'After the hug mum looks around as if searching for someone.'
+				'"You OK mum? Have you lost someone?"'
+				'"Yes, well Anya is with me. I asked her to come to see you and do a bit of shopping after but I can''t see her. She must have got stuck on the way down. Well never mind, at least I got to hug my little girl. OK well you get showered and changed and I''ll wait for you and Anya in reception."'
+				'"OK mum sounds like a plan. Anyway I''ve got an idea as I think this calls for something special."'
+			end
+			act 'Go for a shower':
+				*clr & cla
+				dynamic $showerdin
+				if deodorant_on = 1: gs 'sweat', 'remove_deo' & 'Your deodorant gets washed away in the shower.'
+				pcs_hairbsh = 1
+				'<center><video autoplay loop src="images/shared/home/bathroom/dush.mp4"></video></center>'
+				'You have a shower and get dressed.'
+				minut += 10
+				gs 'stat'	
+				act 'Go meet your family':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/desk>"</center>'
+					'Meeting your mum and sister in the reception of the Havana fitness centre and with a big grin you propose "Right ladies, how about a special treat if I can arrange it? How about the three of us head over to Babel and try to get in for a meal?"'
+					'Both your mum and Anya look at you as if you''ve gone mad and your mum answers, "Sveta, first off we aren''t dressed for that place, it''s too posh and even if we were there''s no way we could afford it."'
+					'Still grinning you answer "Well that''s why I said ''if I can arrange it''. Let''s try and if it doesn''t work we can always head over to the diner."'
+					'They both look at each other then back at you but don''t say anything. "Right, well I''ll take that as a yes then."'
+					'You all leave and head towards Babel.'	
+					minut += 5
+					gs 'stat'
+					act 'Go to the restaurant':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/locations/city/citycenter/expensiverest/restoran>"</center>'
+						'You approach the maître d''.'
+						'As expected he initially refuses your party entry to the restaurant.'
+						'You briefly explain that you''ve just become the Saint Petersburg track champion for the 100 meter sprint and show him your gold medal by way of proof.'
+						'He remains doubtful but he asks you "OK young lady can you please tell me your name?"'
+						'"Sveta Lebedev" you reply.'
+						'"OK Sveta, one second please." He turns around and approaches a table in the lobby with some national, international and local papers displayed and checks the local paper then returns to you.'
+						minut += 5
+						gs 'stat'
+						act 'Convince him':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/locations/city/citycenter/expensiverest/maitredseat>"</center>'
+							'After a brief conversation with him he disappears for a couple of minutes and returns and beckons your mum and Anya to join you. Once they are with you he smiles and tells you "Well normally we wouldn''t allow entry as we have a strict dress code, however, given the circumstances I''m pleased to tell you that you are all most welcome to eat here as it''s such a special occasion. After all it''s not every day that we have the Saint Petersburg 100 meter sprint champion eating in our fine establishment".'
+							'He continues "The manager has also asked me to let you know that you''ll all eat free tonight with a complimentary bottle of champagne. There is 1 condition though..."'
+							*nl
+							'You look at him a little warily, "OK, thanks. Umm and the condition?"'
+							'He breaks into a big grin "Well now... That''s very simple... We take a photo of you displaying your gold medal to include in our advertising to say that you ate here with your lovely sisters after winning the race."'
+							'At this point your mum blushes and goes bright red as you answer him "No problem, it''ll be our pleasure... That is once my mum stops blushing and my sister stops giggling!"'
+							'"Your mum?" He enquires.'
+							'"Yep", although as you can tell by how red she''s gone she clearly likes your compliment.'
+							'He continues "Also one photo of you and I which I''ll ask you to sign so I can show my kids."'
+							'"Of course, let''s get that done while my mum recovers her poise."'
+							minut += 5
+							gs 'stat'
+							act 'Have dinner':
+								*clr & cla
+								'<center><img <<$set_imgh>> src="images/locations/city/citycenter/expensiverest/seated>"</center>'
+								'After the photo is taken the maître d'' leads you to your table where you all sit down.'
+								'About 90 minutes later you are full, having enjoyed a lovely meal and have a light buzz from the champagne.'
+								'You all head out and you pause to thank the maître d'' for his kindness in allowing you all to enter and you also ask him to pass on your thanks to the manager for offering the meal for free.'
+								'Outside you all have another hug and you thank them both for coming before you part ways.'
+								'Your sister winks at you and as she waves good bye she says "Well Sveta, thanks for that; I never thought I''d get to eat there. Guess you''ve already started getting used to having some fame!"'
+								'Your mum adds her agreement. "Me neither, that was a special treat. Now don''t let this go to your head too much I still want you to work hard as a good education is important too."'
+								'Smiling you answer. "Yes mum I know. See you both later."'
+								'You are in the city centre. What shall I do now you think to yourself.'
+								frost = 0
+								pcs_health += 30
+								pcs_mood += 40
+								fat += 6
+								pcs_energy += 50
+								if pcs_hydra >= 100:
+									pcs_hydra -= 5
+								else
+									pcs_hydra -= 10
+								end
+								cumspclnt = 2
+								gs 'cum_cleanup'
+								pcs_breath = 0
+								minut += 90
+								gs 'drugs', 'alcohol', 'champagne', 2
+								gs 'food', 'golub'
+								act 'Go to the city center': gt 'city_center', 'start'
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+else
+	if npc_rel['A33'] > 50:
+		'As you receive congratulations from your coach and fellow competitors you have look towards the crowd to acknowledge their support. You are surprised to see your sister frantically waving at you and trying to make her way down to the track-side.'
+		'Breaking out into a huge grin you jog over to the barrier and reach over give each other a hug.'
+		'"Hey Sveta, go girl, that was some race. I knew you were into your running but never thought you were at this level, well done!" After another big hug she continues. "This calls for a celebration. Lets go for a few beers... You can always burn it off later hehe. I know a cool bar just a short metro ride from here."'
+		'"Thanks for coming sis, it means a lot."'
+		'"What else sis? Anyway how come you never told me? It was lucky as I only found out because the coach mentioned it to me last week while I was hanging out with Roma and the crew outside the community center. I wasn''t going to miss the opportunity together a possible little celebration with my little sis was I?"'
+		'"OK cool, yeah I''m up for that let me go and shower and change first."'
+		'"OK just don''t be too long or I may have to leave without you hehe."'
+		act 'Go for a shower':
+			*clr & cla
+			dynamic $showerdin
+			if deodorant_on = 1: gs 'sweat', 'remove_deo' & 'Your deodorant gets washed away in the shower.'
+			pcs_hairbsh = 1
+			'<center><video autoplay loop src="images/shared/home/bathroom/dush.mp4"></video></center>'
+			'You have a shower and get dressed.'
+			*nl
+			'After your shower you meet Anya in the reception and head off to the metro.'
+			minut += 10
+			gs 'stat'	
+			act 'Go to the bar':
+				'<center><img <<$set_imgh>> src="images/locations/city/shared/metro/metro"></center>'
+				*clr & cla
+				'You take the metro to the industrial area and head towards the Rabotnik bar.'
+				minut += 20
+				gs 'stat'	
+				act 'Hava a drink':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar"></center>'
+					'Both you and Anya make your way to the bar and order a couple of beers and drink them at the bar.'
+					'When you''ve both finished your beer you order another and head towards the pool table.'
+					gs 'drugs', 'alcohol', 'beer', 1
+					minut += 15
+					gs 'stat'	
+					act 'Play pool':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/locations/city/industrial/sex/poolw"></center>'
+						'You both enjoy a game of pool and after the game Anya heads off to the bar to get another couple of beers.'
+						'In the meantime you set the table up for another game.'
+						gs 'drugs', 'alcohol', 'beer', 1
+						minut += 15
+						gs 'stat'	
+						act 'Another game':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/locations/city/industrial/sex/pooll"></center>'
+							'A further 15 minutes pass before you take your final shot and win the game.'
+							'"OK Sveta that''s one game each. Let''s have one more beer then I''ve got to be going."'
+							'"Sounds good sis". After a final beer you both leave the bar and Anya gives you a final big hug and hurries off. "See you later sis and well done again."'
+							'You are in the industrial area of Saint Petersburg. What shall I do now you think to yourself.'
+							gs 'drugs', 'alcohol', 'beer', 2
+							minut += 15
+							gs 'stat'
+							act 'Leave the bar': gt 'city_industrial', 'start'
+						end
+					end
+				end
+			end
+		end
+	else
+		gt 'fit', 'dressing room'
+	end
 end
 
 --- beg1 ---------------------------------

+ 4 - 3
locations/cafe_parco.qsrc

@@ -29,15 +29,16 @@ if $args[0]= 'inner':
 		act 'Order take-out (0:20) (350 <b>₽</b>)':money -= 350 & gt 'food', 'f_food'
 	end
 
-	if ml_venues['del_parco'] = 1 and (ml_delparcoQW = 1 or ml_delparcoQW = 2) and (daystart <= ml_delparcogigdeadline):
+	if ml_venues['del_parco'] = 1 and (ml_delparcoQW['Stage'] = 1 or ml_delparcoQW['Stage'] = 2) and (daystart <= ml_delparcoQW['Next Date']):
 		act 'Speak with Zariyah about her offer': gt 'music_delparco', 'talkwithzariyah'
 	end
 
-	if ml_venues['del_parco'] = 1 and ml_delparcoQW = 3 and (daystart ! ml_delparcogigdeadline):
+	if ml_venues['del_parco'] = 1 and ml_delparcoQW['Stage'] = 3 and (daystart ! ml_delparcoQW['Next Date']):
 		act 'Accept Zariyah''s offer': gt 'music_delparco', 'acceptafterthinking'
 	end
 
-	if ml_venues['del_parco'] = 1 and ml_delparcoQW > 2 and ml_gigday['delparco'] = daystart and ml_gighour['delparco'] = hour:
+	!! The very first gig - this will be a separate scene from the repeating ones. 
+	if ml_venues['del_parco'] = 1 and ml_delparcoQW['Stage'] = 4 and ml_gigday['delparco'] = daystart and ml_gighour['delparco'] = hour:
 		act 'Perform at the cafe': gt 'music_delparco', 'eveningshow'
 	end
 	

+ 9 - 2
locations/cikl.qsrc

@@ -1476,9 +1476,15 @@ if month  = 11 and day = 19 and (AlbinaQW['StarletsJoined'] <= 0 or (AlbinaQW['S
 
 !!-------------Music career related variables and calculations------------------------------------------------
 
+!! Setting Del Parco initial variables
+if daystart < 2:
+	ml_delparcoQW['Stage'] = 0
+	ml_delparcoQW['Zariyah Trust'] = 50 
+end
+
+
 !! How many hours a day can Sveta perform. It maxes out at 3.
 !! Using the actual skill level, not the one modified by Attributes because that is more realistic for this.
-
 ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
 ml_performance['performed_minutes'] = 0
 
@@ -1549,7 +1555,8 @@ if ml_performance['set_lastpracticeday'] ! (daystart-1): repertoire_quality -= 2
 !!------------- Prostitution - WLife integration related stuff ------------------------------------------------
 
 !! Check if people will start to seek Sveta randomly for services, based on her reputation
-if prostitute['blocked'] = 0: gs 'prostitution_functions', 'set_pav_prost'
+gs 'prostitution_functions', 'check_for_wlife'
+if prostitute['blocked'] = 0: gs 'prostitution_functions', 'set_pavlovsk_prostitute'
 
 
 --- cikl ---------------------------------

+ 1 - 1
locations/city_house_res_bedr.qsrc

@@ -34,7 +34,7 @@ if $ARGS[0] = 'bedro':
 	if pornMagazine > 0:'You have hidden your porn magazine in your nightstand.'
 	*nl
 	'On one side of the room is the entrance to a walk-in <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a>.'
-
+	if curr_home = 15 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'	
 end
 
 --- city_house_res_bedr ---------------------------------

+ 2 - 145
locations/city_house_res_misc.qsrc

@@ -153,151 +153,8 @@ if $ARGS[0] = 'livroom':
 
 	gs 'subkid'
 
-	if ml_guitar['carried'] = 1:
-		act 'Place the guitar next to your desk':
-			ml_guitar['carried'] = 0
-			$ml_guitar['location'] = $curloc
-			gt $loc, $loc_arg
-		end
-	elseif $ml_guitar['location'] = $curloc:
-		act 'Pick up the guitar':
-			ml_guitar['carried'] = 1
-			$ml_guitar['location'] = ''
-			gt $loc, $loc_arg
-		end
-	end
-
-	if ml_online['account'] = 0 and internet > 0:
-		act 'Set up an online music account': gt 'music_onlinemusic', 'setupAccount'
-	end
-
-	!!Uploading recorded music if there are any not uploaded yet
-	if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
-		if pcs_inhib < 30:
-			if pcs_inhib < 10:
-				$diff = 'hard'
-			elseif pcs_inhib < 20:
-				$diff = 'medium'
-			else
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-			will_cost = (will_cost * 2) - (pcs_perform)
-			if will_cost <= pcs_willpwr:
-				act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
-			else
-				act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-			end
-		end
-		act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
-	end
-
-	if ml_uploadablemusic > 0:
-		act 'Delete old recordings': gt 'music_onlinemusic', 'deleteoldmusic'
-	end
-
-	if hour > 8 and hour < 22:
-		if ml_guitar['hasguitar'] = 1:
-			act 'Play something on the guitar':
-				pcs_mood += 10
-				minut += 10
-				gs 'stat'
-				'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
-				'You hum along to the tune, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
-			end
-		end
-
-		if ml_guitar['hasguitar'] = 1 and (ml_guitar['chordbook'] = 1 or ml_guitarlesson['lessoncount'] > 0) and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-			if pcs_inhib < 30:
-				if pcs_inhib < 10:
-					$diff = 'hard'
-				elseif pcs_inhib < 20:
-					$diff = 'medium'
-				else
-					$diff = 'easy'
-				end
-				gs 'willpower', 'skill', 'self', $diff
-				will_cost = (will_cost * 3) - (pcs_perform)
-				if will_cost <= pcs_willpwr:
-					act 'Practice guitar (<<will_cost>> Willpower)':
-						inhib_exp += rand(1,2)
-						gs 'willpower', 'pay', 'self'
-						gs 'stat'
-						gt 'music_bedroomPractice', 'guitar'
-					end
-				else
-					act 'Practice guitar (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
-				end
-			else
-				act 'Practice guitar': gt 'music_bedroomPractice', 'guitar'
-			end
-		end
-
-		!! Streaming music
-		if ml_guitar['hasguitar'] = 1 and ml_online['account'] = 1 and internet > 0 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and ml_performance['max_perform_minutes'] >= 15 and alko < 5 and ml_streaming['lastday'] ! daystart:
-			ml_streamtime =  min((ml_performance['max_perform_minutes']-ml_performance['performed_minutes']), 60)
-			if pcs_inhib < 30:
-				if pcs_inhib < 10:
-					$diff = 'hard'
-				elseif pcs_inhib < 20:
-					$diff = 'medium'
-				else
-					$diff = 'easy'
-				end
-				gs 'willpower', 'skill', 'self', $diff
-				will_cost = (will_cost * 3) - (pcs_perform)
-				if will_cost <= pcs_willpwr:
-					act 'Live stream (<<ml_streamtime>> minutes) (<<will_cost>> Willpower)':
-						inhib_exp += rand(1,3)
-						gs 'willpower', 'pay', 'self'
-						gs 'stat'
-						gt 'music_onlinemusic', 'liveStream'
-					end
-				else
-					act 'Live stream (<<ml_streamtime>> minutes) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-				end
-			else
-				act 'Live stream (<<ml_streamtime>> minutes)': gt 'music_onlinemusic', 'liveStream'
-			end
-		end
-
-		!! Recording music
-		if ml_guitar['hasguitar'] = 1 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-			if pcs_inhib < 20:
-				if pcs_inhib < 10:
-					$diff = 'medium'
-				elseif pcs_inhib < 20:
-					$diff = 'easy'
-				end
-				gs 'willpower', 'skill', 'self', $diff
-
-				if will_cost <= pcs_willpwr:
-					act 'Record a song with your phone (<<will_cost>> Willpower)':
-						inhib_exp += rand(1,2)
-						gs 'willpower', 'pay', 'self'
-						gs 'stat'
-						gt 'music_onlinemusic', 'recordSong'
-					end
-					if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-						act 'Record and edit a song (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,2)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_onlinemusic', 'recordAndEditSong'
-						end
-					end
-				else
-					act 'Record a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					act 'Record and edit a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-				end
-			else
-				act 'Record a song with your phone': gt 'music_onlinemusic', 'recordSong'
-				if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-					act 'Record and edit a song': gt 'music_onlinemusic', 'recordAndEditSong'
-				end
-			end
-		end
-	end
+	!! IMPORTANT: if there is anything added later that could mean that others are in the room, gs 'music_actions', 'not_alone' should be added with the correct conditions.
+	gs 'music_actions', 'start'
 
 	if sewing_kit = 1:
 		'Your <a href="exec:gt ''sewing'',''start''">sewing kit</a> is stored next to your favorite chair.'

+ 2 - 0
locations/city_mansion_residence_1.qsrc

@@ -97,6 +97,8 @@ if $ARGS[0] = 'ybedroom':
 	
 	act 'Leave the room': gt 'city_mansion_residence_1', 'yfoyer'
 	act 'Relax on your bed': gt 'bed', 'start'
+	if curr_home = 5 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
+
 	if pornMagazine > 0:gs 'events', 'read_porn'
 
 	if pcs_horny >= 50:

+ 3 - 147
locations/city_mansion_residence_2.qsrc

@@ -251,153 +251,9 @@ if $ARGS[0] = 'yoffice':
 		'Your work room where you spend most of the time signing important papers and handling your business needs.'
 		'There''s a <a href="exec:gt ''Komp'', ''start''">computer</a> sitting on your antique <a href="exec:gt ''stol'', ''start''">desk</a>.'
 
-		if ml_guitar['carried'] = 1:
-			act 'Place the guitar next to your desk':
-				ml_guitar['carried'] = 0
-				$ml_guitar['location'] = $curloc
-				gt $loc, $loc_arg
-			end
-		elseif $ml_guitar['location'] = $curloc:
-			act 'Pick up the guitar':
-				ml_guitar['carried'] = 1
-				$ml_guitar['location'] = ''
-				gt $loc, $loc_arg
-			end
-		end
-
-		if ml_online['account'] = 0 and internet > 0:
-			act 'Set up an online music account': gt 'music_onlinemusic', 'setupAccount'
-		end
-
-		!!Uploading recorded music if there are any not uploaded yet
-		if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
-			if pcs_inhib < 30:
-				if pcs_inhib < 10:
-					$diff = 'hard'
-				elseif pcs_inhib < 20:
-					$diff = 'medium'
-				else
-					$diff = 'easy'
-				end
-				gs 'willpower', 'skill', 'self', $diff
-
-				will_cost = (will_cost * 2) - (pcs_perform)
-				if will_cost <= pcs_willpwr:
-					act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
-				else
-					act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-				end
-			end
-			act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
-		end
-
-		if ml_uploadablemusic > 0:
-			act 'Delete old recordings': gt 'music_onlinemusic', 'deleteoldmusic'
-		end
-
-		if hour > 8 and hour < 22:
-			if ml_guitar['hasguitar'] = 1:
-				act 'Play something on the guitar':
-					pcs_mood += 10
-					minut += 10
-					gs 'stat'
-					'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
-					'You hum along to the tune, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
-				end
-			end
-
-			if ml_guitar['hasguitar'] = 1 and (ml_guitar['chordbook'] = 1 or ml_guitarlesson['lessoncount'] > 0) and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-				if pcs_inhib < 30:
-					if pcs_inhib < 10:
-						$diff = 'hard'
-					elseif pcs_inhib < 20:
-						$diff = 'medium'
-					else
-						$diff = 'easy'
-					end
-					gs 'willpower', 'skill', 'self', $diff
-					will_cost = (will_cost * 3) - (pcs_perform)
-					if will_cost <= pcs_willpwr:
-						act 'Practice guitar (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,2)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_bedroomPractice', 'guitar'
-						end
-					else
-						act 'Practice guitar (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
-					end
-				else
-					act 'Practice guitar': gt 'music_bedroomPractice', 'guitar'
-				end
-			end
-
-			!! Streaming music
-			if ml_guitar['hasguitar'] = 1 and ml_online['account'] = 1 and internet > 0 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and ml_performance['max_perform_minutes'] >= 15 and alko < 5 and ml_streaming['lastday'] ! daystart:
-				ml_streamtime =  min((ml_performance['max_perform_minutes']-ml_performance['performed_minutes']), 60)
-				if pcs_inhib < 30:
-					if pcs_inhib < 10:
-						$diff = 'hard'
-					elseif pcs_inhib < 20:
-						$diff = 'medium'
-					else
-						$diff = 'easy'
-					end
-					gs 'willpower', 'skill', 'self', $diff
-					will_cost = (will_cost * 3) - (pcs_perform)
-
-					if will_cost <= pcs_willpwr:
-						act 'Live stream (<<ml_streamtime>> minutes) (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,3)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_onlinemusic', 'liveStream'
-						end
-					else
-						act 'Live stream (<<ml_streamtime>> minutes) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					end
-				else
-					act 'Live stream (<<ml_streamtime>> minutes)': gt 'music_onlinemusic', 'liveStream'
-				end
-			end
-
-			!! Recording music
-			if ml_guitar['hasguitar'] = 1 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-				if pcs_inhib < 20:
-					if pcs_inhib < 10:
-						$diff = 'medium'
-					elseif pcs_inhib < 20:
-						$diff = 'easy'
-					end
-					gs 'willpower', 'skill', 'self', $diff
-
-					if will_cost <= pcs_willpwr:
-						act 'Record a song with your phone (<<will_cost>> Willpower)':
-							inhib_exp += rand(1,2)
-							gs 'willpower', 'pay', 'self'
-							gs 'stat'
-							gt 'music_onlinemusic', 'recordSong'
-						end
-						if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-							act 'Record and edit a song (<<will_cost>> Willpower)':
-								inhib_exp += rand(1,2)
-								gs 'willpower', 'pay', 'self'
-								gs 'stat'
-								gt 'music_onlinemusic', 'recordAndEditSong'
-							end
-						end
-					else
-						act 'Record a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-						act 'Record and edit a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					end
-				else
-					act 'Record a song with your phone': gt 'music_onlinemusic', 'recordSong'
-					if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-						act 'Record and edit a song': gt 'music_onlinemusic', 'recordAndEditSong'
-					end
-				end
-			end
-		end
+	!! IMPORTANT: if there is anything added later that could mean that others are in the room, gs 'music_actions', 'not_alone' should be added with the correct conditions.
+	gs 'music_actions', 'start'
+		
 	end
 end
 

+ 16 - 5
locations/city_musicstore.qsrc

@@ -126,11 +126,8 @@ if $ARGS[0] = 'buycheapacoustic':
 		'Jimmy puts the guitar in a gigbag, and drops a set of strings and picks in the pocket. "A proper starter kit" he states and rings up the purchase.'
 	end
 	'He looks at you thoughtfully, then drops a thick, slightly worn booklet in the bag "Some stuff to learn from" he says handing your purchase to you "Congratulations, welcome to the starving musician community."'
-	ml_guitars['jb-budget-acoustic'] = 1
-	ml_strings = 2
-	ml_guitar['chordbook'] = 1
-	ml_guitar['hasguitar'] = 1 
-	ml_guitar['carried'] = 1
+	
+	gs 'city_musicstore', 'first_setup'
 	
 	if $ARGS[1] = 'money': money -= 3400
 	if $ARGS[2] = 'karta': karta -= 3400
@@ -155,4 +152,18 @@ if $ARGS[0] = 'payandtakestuff':
 	killvar 'ml_hardcase'
 	act 'Leave': gt 'torgcentr'
 end
+
+if $ARGS[0] = 'first_setup':
+	!! First instrument and other items
+	ml_guitars['jb-budget-acoustic'] = 1
+	ml_strings = 2
+	ml_guitar['chordbook'] = 1
+	ml_guitar['hasguitar'] = 1 
+	ml_guitar['carried'] = 1
+
+	!! Has to set it here as cikl calculates it otherwise at midnight
+	ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
+	ml_performance['performed_minutes'] = 0
+end
+
 --- city_musicstore ---------------------------------

+ 3 - 123
locations/dachain.qsrc

@@ -51,135 +51,15 @@ if $args[0] = 'start':
 	act 'Go to the kitchen alcove': gt 'dachain', 'dachakit'
 	act 'Get in the bed': gt 'bed', 'start'
 	act 'Lie on the couch': gt 'divan', 'start'
+	if curr_home = 3 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 
 !!-------------------------------------------------------------------------------------------------------------------------------------
 !!------------------------------------------------------- Music related actions come here ---------------------------------------------
 !!-------------------------------------------------------------------------------------------------------------------------------------
 
-	!!Storing and picking up the guitar
-	if ml_guitar['carried'] = 1:
-		act 'Place the guitar next to your desk': 
-			ml_guitar['carried'] = 0
-			$ml_guitar['location'] = $curloc
-			gt 'dachain', 'start'
-		end
-	elseif ml_guitar['hasguitar'] and ml_guitar['carried'] = 0:
-		act 'Pick up the guitar':
-			ml_guitar['carried'] = 1
-			$ml_guitar['location'] = ''
-			gt 'dachain', 'start'
-		end
-	end
-
-	if ml_guitar['hasguitar'] = 1:
-		act 'Play something on the guitar (10 minutes)':
-			pcs_mood += 10
-			minut += 10
-			gs 'stat'
-			'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
-			'You hum along the tune, relaxing into the music, just enjoying it. When you look up a quarter of an hour passed and you are in a much better mood.'
-		end
-	end
+	!! IMPORTANT: if there is anything added later that could mean that others are in the room, gs 'music_actions', 'not_alone' should be added with the correct conditions.
+	gs 'music_actions', 'start'
 	
-	!!Guitar practice 
-	if ml_guitar['hasguitar'] = 1 and (ml_guitar['chordbook'] = 1 or ml_guitarlesson['lessoncount'] > 0) and ml_performance['performed_minutes'] <= ml_performance['max_perform_minutes']:
-		act 'Practice guitar (0:30)': gt 'music_bedroomPractice', 'guitar'
-	end
-			
-	if ml_online['account'] = 0 and internet > 0:
-		act 'Set up an online music account (0:30)': gt 'music_onlinemusic', 'setupAccount'
-	end
-
-	!! Streaming music 
-	if ml_online['account'] = 1 and internet > 0 and ml_performance['performed_minutes'] <= ml_performance['max_perform_minutes']:
-		if pcs_inhib < 30:
-			if pcs_inhib < 10: 
-				$diff = 'hard'
-			elseif pcs_inhib < 20: 
-				$diff = 'medium'
-			else 
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-			will_cost = (will_cost * 3) - (pcs_perform)
-
-			if will_cost <= pcs_willpwr:
-				act 'Live stream (1:00) (<<will_cost>> Willpower)': 
-					inhib_exp += rand(1,3)	
-					gs 'willpower', 'pay', 'self'
-					gs 'stat'
-					gt 'music_onlinemusic', 'liveStream'
-				end
-			else	
-				act 'Live stream (1:00) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-			end
-		else 
-			act 'Live stream (1:00)': gt 'music_onlinemusic', 'liveStream'			
-		end
-	end
-
-	!! Recording music
-	if ml_performance['performed_minutes'] <= ml_performance['max_perform_minutes']:
-		if pcs_inhib < 20:
-			if pcs_inhib < 10: 
-				$diff = 'medium'
-			elseif pcs_inhib < 20: 
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-
-			if will_cost <= pcs_willpwr:
-				act 'Record a song with your phone (0:30) (<<will_cost>> Willpower)': 
-					inhib_exp += rand(1,2)	
-					gs 'willpower', 'pay', 'self'
-					gs 'stat'
-					gt 'music_onlinemusic', 'recordSong'
-				end							
-				if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-					act 'Record and edit a song (2:00) (<<will_cost>> Willpower)': 
-						inhib_exp += rand(1,2)	
-						gs 'willpower', 'pay', 'self'
-						gs 'stat'
-						gt 'music_onlinemusic', 'recordAndEditSong' 
-					end						
-				end
-			else	
-				act 'Record a song (0:30) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-				act 'Record and edit a song (1:30) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'				
-			end
-		else
-			act 'Record a song with your phone (0:30)': gt 'music_onlinemusic', 'recordSong'
-			if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-				act 'Record and edit a song (2:00)': gt 'music_onlinemusic', 'recordAndEditSong' 
-			end	
-		end
-	end
-
-	!!Uploading recorded music if there are any not uploaded yet
-	if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
-		if pcs_inhib < 30:
-			if pcs_inhib < 10: 
-				$diff = 'hard'
-			elseif pcs_inhib < 20: 
-				$diff = 'medium'
-			else 
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-
-			will_cost = (will_cost * 2) - (pcs_perform)
-			if will_cost <= pcs_willpwr:
-				act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
-			else	
-				act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-			end
-		end
-		act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
-	end
-
-	if curr_home ! 3:
-		act 'Set this cottage as your main home':gs 'set_home', 3 & gt 'dachain', 'start'
-	end
 end
 
 if $args[0] = 'dachakit':

+ 2 - 0
locations/dom_gor.qsrc

@@ -185,6 +185,8 @@ act 'Go out onto the street':
 
 end
 
+if curr_home = 10 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
+
 if curr_home ! 10:
 	act 'Set the this small room as your main home':gs 'set_home', 10 & gt 'dom_gor'
 end

+ 1 - 0
locations/gadhouse.qsrc

@@ -501,6 +501,7 @@ if $ARGS[0] = 'main':
 
 	if rand(0,2) ! 0: gs 'din_bad' & dynamic $mobile_check
 	act 'Relax on your bed': gt 'bed', 'start'
+	if curr_home = 14 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'	
 end
 
 if $ARGS[0] = 'grandma':

+ 2 - 7
locations/gadprostitutes.qsrc

@@ -52,10 +52,7 @@ if $ARGS[0] = 'start':
 					! act 'Prostitute yourself with Mira':gt 'gadprostitutes', 'with_mira'
 				!end
 			end
-			
-			!! Will need to set up prostitute['gadukino'] = 1 - happens where mirapimp = 2 is set or, if mirapimp = 0 then when the gadriver_gang = 2 is set.
-			!! Maybe will move to prostitution_functions where prostitute['pavlovsk'] is set, but not sure yet.
-			
+						
 			if prostitute['gadukino'] = 1 and PCloStyle = 4:
 				if prostitute['earnings_day'] > 0: '<br>You have earned <<prostitute[''earnings_day'']>> <b>₽</b> today.'+iif(prostitute['payment_method'] = 0, ' Your share is <<prostitute[''earnings_day''] * prostitute[''share_player''] / 100>> <b>₽</b>'+iif(prostitute['debt_amount'] > 0, ', but your pimp will keep <<prostitute[''earnings_day''] * prostitute[''debt_payment_percent''] / 100>> <b>₽</b> to pay down your debt.', '.'), '')
 				act 'Look for clients': gt 'gadprostitutes', 'work_alone'
@@ -98,9 +95,7 @@ end
 
 if $ARGS[0] = 'mira_rebels':
 	*clr & cla
-
-	mirapimp = 2
-	prostitution['gadukino'] = 1
+	gs 'prostitution_functions', 'set_gadukion_prostitute'
  	minut += 5
 	gs 'stat'
 

+ 1 - 2
locations/gadukino_event.qsrc

@@ -139,8 +139,7 @@ if $ARGS[0] = 'gang_apologise':
 			act 'Take the money':
 				*clr & cla
 				minut += 5
-				gadriver_gang = 2
-				if mirapimp = 0: prostitute['gadukino'] = 1
+				gs 'prostitution_functions', 'set_gadukion_prostitute'
 				money += 10000
 				gs 'stat'
 

+ 57 - 25
locations/gas_station_gp_117.qsrc

@@ -12,8 +12,9 @@ $menu_loc = 'gas_station_gp_117'
 ! [x] First check over
 if $ARGS[0] = 'outside':
 	!! TODO: this is called every time Sveta arrives at the location whether from somewhere else or back from a client.
-    gs 'gas_station_gp_117', 'event_check'
-
+    gs 'prostitution_functions', 'work_clothes'
+	gs 'gas_station_gp_117', 'event_check'
+	
 	CLOSE ALL
 	if sound = 0:PLAY 'sound/highway.mp3',20
 	$loc_arg = 'outside'
@@ -33,14 +34,15 @@ if $ARGS[0] = 'outside':
 
 	if prostitute['blocked'] = 0 and prostitute['gas_station'] = 1:
 		if prostitute['earnings_day'] > 0: 
-			*nl
 			'You have earned <<prostitute[''earnings_day'']>> <b>₽</b> today.'+iif(prostitute['payment_method'] = 0, ' Your share is <<prostitute[''earnings_day''] * prostitute[''share_player''] / 100>> <b>₽</b>'+iif(prostitute['debt_amount'] > 0, ', but your pimp will keep <<prostitute[''earnings_day''] * prostitute[''debt_payment_percent''] / 100>> <b>₽</b> to pay down your debt.', '.'), '')
 		end
-		*nl
-		if PCloStyle = 4:
-			'You are wearing the right outfit to work as a prostitute at the gas station.'
+		gs 'prostitution_functions', 'work_clothes'
+		if prostitute['work_clothes'] and prostitute['changed_for_work']:
+			'You are wearing the right outfit to work as a prostitute at the gas station. You can ' + iif(car > 0 and cardrive = 29, '<a href="exec: gt ''gas_station_gp_117'', ''change_back'' ">change back into your regular clothes</a> in your car or', 'change back into your regular clothes') + ' in a restroom.'
+		elseif dressed_as_a_prostitute = 0 and prostitute['outfit_is_set']: 
+			'You could work as a prostitute, but first you have to ' + iif(car > 0 and cardrive = 29, '<a href="exec: gt ''gas_station_gp_117'', ''change'' ">change into a more appropriate outfit</a> in your car or ', 'change into a more appropriate outfit ')  + 'in a restroom.'
 		else 
-			'You could work as a prostitute, but you have to change first into some more appropriate clothes in the restroom'+iif(car > 0 and cardrive = 29, ' or in your car.', '.')
+			'You are wearing the right outfit to work as a prostitute at the gas station.'
 		end
 	end
 
@@ -50,13 +52,10 @@ if $ARGS[0] = 'outside':
 
 	act 'Go inside the gas station': minut += 1 & gt 'gas_station_gp_117', 'shop'
 	act 'Go to the public restroom': minut += 1 & gt 'gas_station_gp_117', 'restroom'
-	
-	if prostitute['blocked'] = 0 and prostitute['gas_station'] = 1 and car > 0 and cardrive = 29 and PCloStyle ! 4: 
-		act 'Change into your whoring outfit': gt 'gas_station_gp_117', 'change'
-	end
 
-	if prostitute['blocked'] = 0 and prostitute['gas_station'] = 1 and PCloStyle = 4: act 'Go to work': gt 'gas_station_gp_117', 'work'
+	if prostitute['blocked'] = 0 and prostitute['gas_station'] = 1 and prostitute['work_clothes']: act 'Go to work': gt 'gas_station_gp_117', 'work'
 	act 'Wait': gs 'obj_din', 'wait'
+	killvar 'dressed_as_a_prostitute'
 end
 
 ! [x] First check over
@@ -295,10 +294,14 @@ if $ARGS[0] = 'restroom_women':
 	dynamic $basin
 	dynamic $publicpan
 
-	if prostitute['blocked'] = 0 and prostitute['gas_station'] = 1 and PCloStyle ! 4: 
-		act 'Change into your whoring outfit': gt 'gas_station_gp_117', 'change'
+	if prostitute['gas_station'] = 1 and prostitute['blocked'] = 0:
+		gs 'prostitution_functions', 'work_clothes'
+		if  prostitute['work_clothes'] = 0 and prostitute['outfit_is_set']: 
+			act 'Change into prostitute outfit': gt 'gas_station_gp_117', 'change'
+		elseif prostitute['work_clothes'] and prostitute['changed_for_work']:
+			act 'Change into your regular clothes': gt 'gas_station_gp_117', 'change_back'
+		end
 	end
-
 end
 
 ! [x]: First check over
@@ -338,10 +341,15 @@ if $ARGS[0] = 'restroom_men':
 	dynamic $basin
 	dynamic $publicpan
 
-	if prostitute['blocked'] = 0 and prostitute['gas_station'] = 1 and PCloStyle ! 4: 
-		act 'Change into your whoring outfit': gt 'gas_station_gp_117', 'change'
+	if prostitute['gas_station'] = 1 and prostitute['blocked'] = 0:
+		gs 'prostitution_functions', 'work_clothes'
+		if  prostitute['work_clothes'] = 0 and prostitute['outfit_is_set']: 
+			act 'Change into prostitute outfit': gt 'gas_station_gp_117', 'change'
+		elseif dressed_as_a_prostitute and prostitute['changed_for_work']:
+			act 'Change into your regular clothes': gt 'gas_station_gp_117', 'change_back'
+		end
+		killvar 'dressed_as_a_prostitute'
 	end
-
 end
 
 
@@ -391,31 +399,55 @@ end
 ! scavenged and used later if needed.
 
 
-!!------ Prostitution ------
+!!------ Prostitution ------------------------------
 
+!!------ CHanging clothes --------------------------
 if $ARGS[0] = 'change':
 	cla
 	*clr
 	minut += 10
 	if $loc_arg = 'outside':
 		!! TODO: Video / image and some text describing the cloth change in the car
-		'You quickly change into your working outfit.'
-		act 'Leave': gt 'gas_station_gp_117', $loc_arg
+		'You quickly change into your working outfit in your car.'
 	end
 
 	if $loc_arg = 'restroom_men':
 		!! TODO: Video / image and some text describing the cloth change in the men''s restroom
-		'You quickly change into your working outfit.'
-		act 'Leave': gt 'gas_station_gp_117', $loc_arg
+		'You quickly change into your working in the men''s restroom..'
 	end
 
 	if $loc_arg = 'restroom_women':
 		!! TODO: Video / image and some text describing the cloth change in the women''s restroom
-		'You quickly change into your working outfit.'
-		act 'Leave': gt 'gas_station_gp_117', $loc_arg
+		'You quickly change into your working outfit in the women''s restroom.'
 	end
+	gs 'prostitution_functions', 'change_into_prostitute_outfit', 'work'
+	act 'Finish': gt $loc, $loc_arg
 end
 
+if $ARGS[0] = 'change_back':
+	cla
+	*clr
+	minut += 10
+	if $loc_arg = 'outside':
+		!! TODO: Video / image and some text describing the cloth change in the car
+		'You quickly change into your working outfit in your car.'
+	end
+
+	if $loc_arg = 'restroom_men':
+		!! TODO: Video / image and some text describing the cloth change in the men''s restroom
+		'You quickly change into your working in the men''s restroom..'
+	end
+
+	if $loc_arg = 'restroom_women':
+		!! TODO: Video / image and some text describing the cloth change in the women''s restroom
+		'You quickly change into your working outfit in the women''s restroom.'
+	end
+	gs 'prostitution_functions', 'change_back'
+	act 'Finish': gt $loc, $loc_arg
+end
+
+
+!!------ Working ----------------------------------------------------------------------------------
 
 ! [x] First check over
 ! NOTE: The first function - work - is location dependent, so this needs to be left here, and every location will need a similar one.

+ 1 - 1
locations/mey_home.qsrc

@@ -270,7 +270,7 @@ if $ARGS[0] = '3':
 	act 'Relax on your bed': gt 'bed', 'start'
 
 	act 'Wait':gs 'obj_din', 'wait'
-
+	if curr_home = 16 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'	
 	!!if rand (0,2) ! 0:gs 'din_bad' & dynamic $mobile_check
 end
 

+ 245 - 42
locations/music_actions.qsrc

@@ -1,69 +1,272 @@
-# music_actions
+#music_actions
 
-if ARGS[0] = 'start': 
+if $ARGS[0] = 'start': 
+    if ml_not_alone = 0: gs 'music_actions', 'willpower_cost'
 
-    cla
+    !! $location_type = ''private'' = these are usually homes. ''indoors'' usually an office, shop or an NPC''s home. Same for ''public_indoors'' For those locations
+    !! anything music related should be part of a storyline/quest, or some prewritten scene, like in the room of Anushka
+    if $location_type = 'private' and ml_no_music = 0:
+        gs 'music_actions', 'put_down_pick_up'
+        if hour > 8 and hour < 22 and alko < 5:
+            gs 'music_actions', 'play_something'
+            gs 'music_actions', 'practice_guitar'
+            if pcs_perform > 35 and (instrmusic_lvl >15 or vokal_lvl > 15): gs 'music_actions', 'rehearse_sets'
+            !! TODO: Find some way to remove this type of check from the music_action location, and keep them in the 
+            !! original location. 
+            !! Maybe a gs that sets a 'can record/stream' flag. 
+            if ml_not_alone = 0 :
+                if internet > 0 and ml_online['account'] = 1 and ml_streaming['lastday'] ! daystart: gs 'music_actions', 'stream_music'
+                gs 'music_actions', 'record_music'
+            end
+        end
+    !! $location_type = ''public_outdoors'' means parks, streets. Some event types can be placed in these locations : playing music, recording music - e.g in front of
+    !! the library, or at the church, etc. 
+    elseif $location_type = 'public_outdoors' and sunWeather = 1 and temper > 15 and alko < 5 and ml_no_music = 0:
+        !! TODO: What can be done publicly? I think streaming with a phone and recording music would fit here. Also just playing something on the guitar, but not busking.
+        !!       They will need some tweaking in the descriptions and photos, videos.
+        !!       Doing things outdoors takes a bit more willpower if inhibition/confidence is not high enough yet, but adds extra exp for that, and also improves 
+        !!       the mood of Sveta.
+        !!       Need to check for the weather, if it's raining, freezing, etc. nothing can be done outside (at least for now.)
+        gs 'music_actions', 'play_something'
+        gs 'music_actions', 'practice_guitar'
+        gs 'music_actions', 'rehearse_gig'
+        if internet > 0 and ml_online['account'] = 1 and ml_streaming['lastday'] ! daystart: gs 'music_actions', 'stream_music'
+
+        !! if this is done outdoors, any editing, mixing must be dones at home. So 'Record and edit' is not available outdoors.
+        !! Although more accurate would be to check whether Sveta is at home or not, and if she is not home then that option won't be available.
+        gs 'music_actions', 'record_music'
+	end
 
-    if $location_type = 'private':
+    gs 'music_actions', 'set_up_account'
+    gs 'music_actions', 'upload_music'
+    gs 'music_actions', 'delete_music'
+    
+    killvar 'ml_willcost'
+    killvar 'ml_not_alone'
+    killvar 'ml_no_music'
+end
 
-        if ml_guitar['carried'] = 1:
-            act 'Place the guitar next to your desk': 
-                ml_guitar['carried'] = 0
-                ml_guitar['location'] = $ARGS[0]
+if $ARGS[0] = 'put_down_pick_up':
+    if ml_guitar['carried'] = 1:
+        act 'Place the guitar next to your desk': 
+            ml_guitar['carried'] = 0
+            $ml_guitar['location'] = $loc
+            gt $loc, $loc_arg
+        end
+    elseif $ml_guitar['location'] = $loc:
+        act 'Pick up the guitar':
+            ml_guitar['carried'] = 1
+            $ml_guitar['location'] = 'carried'
+            gt $loc, $loc_arg
+        end
+    end
+end
+
+if $ARGS[0] = 'play_something':
+    if ml_guitar['hasguitar'] = 1 and (ml_guitar['carried'] = 1 or $ml_guitar['location'] = $loc):
+        if  ml_not_alone = 0 or ml_willcost = 0:
+            !! TODO: This should be a new screen with some video or image or something
+            act 'Play something on the guitar':
+                pcs_mood += 10
+                minut += 10
+                gs 'stat'
+                'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
+                'You hum along to the tune, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
+                act 'Finish': gt $loc, $loc_arg
             end
-        elseif ml_guitar['location'] = $ARGS[0]:
-            act 'Pick up the guitar':
-                ml_guitar['carried'] = 1
-                ml_guitar['location'] = 'carried'
+        elseif ml_willcost  <= pcs_willpwr:
+            act 'Play something on the guitar (<<will_cost>> Willpower)':
+                inhib_exp += rand(1,2)
+                gs 'willpower', 'pay', 'self'
+                gs 'stat'
+                pcs_mood += 5
+                minut += 10
+                gs 'stat'
+                'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
+                'You hum along to the tune, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
+                act 'Finish': gt $loc, $loc_arg
             end
+        else
+            act 'Practice guitar (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
         end
-        if $ARGS[0] = 'sitr':
-			gt 'sitr'
+    end
+    if  ml_not_alone = 0 or ml_willcost = 0:
+        act 'Sing something':
+            pcs_mood += 10
+            minut += 10
+            gs 'stat'
+            'You hum a few notes to warm up your throat and start to some some songs you know, just for your own entertainment.'
+            'You sway and move your had to keep the temp, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
+            act 'Finish': gt $loc, $loc_arg        
+        end
+    elseif ml_willcost  <= pcs_willpwr:
+        act 'Sing something (<<will_cost>> Willpower)':
+            inhib_exp += rand(1,2)
+            gs 'willpower', 'pay', 'self'
+            gs 'stat'
+        !! TODO: This should be a new screen with some video or image or something
+            pcs_mood += 5
+            minut += 10
+            gs 'stat'
+            'You hum a few notes to warm up your throat and start to some some songs you know, just for your own entertainment.'
+            'You sway and move your had to keep the temp, relaxing into the music and enjoying it. When you look up, 10 minutes has passed and you are in a much better mood.'
+            act 'Finish': gt $loc, $loc_arg        
+        end
+    else
+        act 'Sing something (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to sing in front of people</font>'
+    end
+end
+
+!! NOTE: Having a guitar really matters here
+if $ARGS[0] = 'practice_guitar':
+    if ml_guitar['hasguitar'] = 1 and (ml_guitar['carried'] = 1 or $ml_guitar['location'] = $loc) and (ml_guitar['chordbook'] = 1 or ml_guitarlesson['lessoncount'] > 0) and (ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] ):
+        !! This is already checked at the beginning.
+        if  ml_not_alone = 0 or ml_willcost = 0:
+            act 'Practice guitar': gt 'music_bedroomPractice', 'guitar'
+        elseif ml_willcost  <= pcs_willpwr:
+            act 'Practice guitar (<<will_cost>> Willpower)':
+                inhib_exp += rand(1,2)
+                gs 'willpower', 'pay', 'self'
+                gs 'stat'
+                gt 'music_bedroomPractice', 'guitar'
+            end
         else
-			gt ARGS[0], 'start'
-		end
+            act 'Practice guitar (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
+        end
     end
+end
 
-	if ml_guitar['carried'] = 1:
-		act 'Play something on the guitar (10 minutes)':
-			pcs_mood += 10
-			minut += 10
-			gs 'stat'
-			'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
-			'You hum along the tune, relaxing into the music, just enjoying it. When you look up a quarter of an hour passed and you are in a much better mood.'
-		end
-	end
+!! TODO: How to differentiate between guitar based and vocal sets? It is possible to rehearse just the singing part of a set, but obviously has to 
+!! practice the guitar parts too.
+if $ARGS[0] = 'rehearse_sets':
+    if  ml_performance['performed_minutes'] < ml_performance['max_perform_minutes']:
+        if  ml_not_alone = 0 or ml_willcost = 0:
+            act 'Live stream (30 minutes)': gt 'music_bedroompractice', 'rehearse'
+        elseif ml_willcost <= pcs_willpwr:
+            act 'Rehearse your sets (30 minutes) (<<will_cost>> Willpower)':
+                inhib_exp += rand(1,2)
+                gs 'willpower', 'pay', 'self'
+                gs 'stat'
+                gt 'music_bedroompractice', 'rehearse'
+            end
+        else
+            act 'Rehearse your sets (30 minutes) (<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
 
+
+if $ARGS[0] = 'stream_music':
+    !! Streaming music
+    !! NOTE: The check for guitar is done in the 'liveStream', without a guitar Sveta will sing
+    !! TODO: Some other checks to be added maybe, if she is not 
+    if ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and ml_performance['max_perform_minutes'] >= 15:
+        ml_streamtime =  min((ml_performance['max_perform_minutes']-ml_performance['performed_minutes']), 60)
+        if ml_willcost = 0:
+            act 'Live stream (<<ml_streamtime>> minutes)': gt 'music_onlinemusic', 'liveStream'
+        elseif ml_willcost  <= pcs_willpwr:
+            act 'Live stream (<<ml_streamtime>> minutes) (<<will_cost>> Willpower)':
+                inhib_exp += rand(1,3)
+                gs 'willpower', 'pay', 'self'
+                gs 'stat'
+                gt 'music_onlinemusic', 'liveStream'
+            end
+        else
+            act 'Live stream (<<ml_streamtime>> minutes) (<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
+
+
+!! TODO: This needs to be split, editing can happen after the music was recorded. And it can happen to music recorded with a phone too. 
+!! 1. Record with a computer
+!! 2. Edit video/music
+!! 3. Mix if there are several recording - this will need some better recroded music management, but something simple, no one wants to 
+!! click a hundred times to do something. Boring.  
+if $ARGS[0] = 'record_music':
+    !! Recording music
+    if ml_performance['performed_minutes'] < ml_performance['max_perform_minutes']:
+        if ml_willcost = 0:
+            act 'Record a song with your phone': gt 'music_onlinemusic', 'recordSong'
+            if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
+                act 'Record and edit a song': gt 'music_onlinemusic', 'recordAndEditSong'
+            end
+        elseif ml_willcost  <= pcs_willpwr:
+            act 'Record a song with your phone (<<will_cost>> Willpower)':
+                inhib_exp += rand(1,2)
+                gs 'willpower', 'pay', 'self'
+                gs 'stat'
+                gt 'music_onlinemusic', 'recordSong'
+            end
+            if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
+                act 'Record and edit a song (<<will_cost>> Willpower)':
+                    inhib_exp += rand(1,2)
+                    gs 'willpower', 'pay', 'self'
+                    gs 'stat'
+                    gt 'music_onlinemusic', 'recordAndEditSong'
+                end
+            end
+        else
+            act 'Record a song (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+            act 'Record and edit a song (<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
+
+
+if $ARGS[0] = 'set_up_account':
     if ml_online['account'] = 0 and internet > 0: 
         act 'Set up an online music account (0:30)': gt 'music_onlinemusic', 'setupAccount'
     end
+end
 
+if $RGS[0] = 'upload_music':
     !!Uploading recorded music if there are any not uploaded yet
     if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
-        if pcs_inhib < 30:
-            if pcs_inhib < 10: 
-                $diff = 'hard'
-            elseif pcs_inhib < 20: 
-                $diff = 'medium'
-            else 
-                $diff = 'easy'
-            end
-            gs 'willpower', 'skill', 'self', $diff
-
-            will_cost = (will_cost * 2) - (pcs_perform)
-            if will_cost <= pcs_willpwr:
-                act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
-            else	
-                act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-            end
+        if ml_willcost = 0:
+            act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
+        elseif ml_willcost  <= pcs_willpwr:
+            act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
+        else	
+            act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
         end
-        act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
     end
+end
 
+if $ARGS[0] = 'delete_music':
     if ml_uploadablemusic > 0:
         act 'Delete old recordings': gt 'music_onlinemusic', 'deleteoldmusic'
     end
+end
+
+!! This is called from the actual location where all the info is present to decide whether someone else is around or not.
+if $ARGS[0] = 'not_alone':
+    ml_not_alone = 1
+    gs 'music_actions', 'willpower_cost'
+end
+
+!! This is called from the actual location where all the info is present to decide whether something actively blocking anything music related.
+!! FOr example a drunken husband, or if Sveta and Anya hate each other, or any other temporary block
+if $ARGS[0] = 'no_music':
+    ml_no_music = 1
+end
+
 
+!! TODO: Will modify to ask all three (''easy'', ''medium'' and ''hard'') because local (friends, family), public (strangers) and global (online)
+!! will have different inhibition thresholds
+!! IMPORTANT: I always try to add a check for skills, but the ml_willcost already includes Sveta''s performance ability! 
+if $ARGS[0] = 'willpower_cost':
+    if pcs_inhib < 30:
+        if pcs_inhib < 10:
+            $diff = 'hard'
+        elseif pcs_inhib < 20:
+            $diff = 'medium'
+        else
+            $diff = 'easy'
+        end
+        gs 'willpower', 'skill', 'self', $diff
+        ml_willcost = (will_cost * 3) - (pcs_perform)    
+    end
 end
 
 --- music_actions ---------------------------------

+ 8 - 7
locations/music_bedroompractice.qsrc

@@ -1,5 +1,5 @@
 # music_bedroompractice
-
+!! TODO: Practice and Rehearsal - Rename the file too. F
 if $ARGS[0] = 'guitar':
 	*clr & cla
 	minut += 30
@@ -31,15 +31,16 @@ if $ARGS[0] = 'guitar':
 		'You pick up you guitar and the lessons from the guitar teacher and start to practice.'
 		gs 'exp_gain', 'instrmusic', rand(2,3)
 	end
-	if $loc = 'sitr':
-		act 'Finish practice': gt $loc
-	else
-		act 'Finish practice': gt $loc, $loc_arg
-	end
+	act 'Finish practice': gt $loc, $loc_arg
+end
+
+!! TODO: Tie in with the vocal coach at the Industrial Region Community Centre
+if $ARGS[0] = 'vocals':
+
 end
 
 
-if $ARGS[0] = 'rehearsing':
+if $ARGS[0] = 'rehearse':
 	*clr & cla	
 	minut += 30
 	pcs_mood += 5

+ 3 - 3
locations/music_buskingevents.qsrc

@@ -37,7 +37,7 @@ if $ARGS[0] = 'busking':
 !!	elseif ml_rand_event < 15 and $ARGS[1] = 'pav' and ( (npc_rel['A20'] < 40 or npc_rel['A21'] < 40) and (pcs_instrmusic < 30 or pcs_perform < 30 or pcs_vokal < 30) ):
 !!		gs 'music_buskingevents', 'lena_and_lera', 2
 	else
-		act 'Finish': gt $curloc, 'start'	
+		act 'Finish': gt $loc, $loc_arg
 	end
 
 end
@@ -83,7 +83,7 @@ if $ARGS[0] = 'anushka':
 	else	
 		'As she notices that you saw her, she just shakes her head with a smirk and walks off.'
 	end
-	act 'Finish': gt $curloc, 'start'
+	act 'Finish': gt $loc, $loc_arg
 end
 
 
@@ -92,7 +92,7 @@ if $ARGS[0] = 'lena_and_lera':
 	pcs_mood -= 10
 	*nl
 	'Lena and Lera harasses <<$pcs_nickname>>'
-	act 'Finish': gt $curloc, 'start'
+	act 'Finish': gt $loc, $loc_arg
 end
 
 --- music_buskingevents ---------------------------------

+ 156 - 0
locations/music_checks.qsrc

@@ -0,0 +1,156 @@
+# music_checks 
+
+!! Del Parco Storyline Stages
+!! ml_delparcoQW['Stage'] = 0 - Storyline hasn't started yet.
+!! ml_delparcoQW['Stage'] = 1 - Sveta declines the offer when they meet while she is busking. Zariyah tells her to visit her office next Friday around 4pm.
+!! ml_delparcoQW['Stage'] = 2 - Sveta accepts the offer when they meet while she is busking.  Zariyah tells her to think about it, and that if she changes her mind, just visit her in her office.
+!! ml_delparcoQW['Stage'] = 3 - 
+!! ml_delparcoQW['Stage'] = 4 -
+!! ml_delparcoQW['Stage'] = 5 -
+!! ml_delparcoQW['Stage'] = 6 -
+!! ml_delparcoQW['Stage'] = 7 -
+!! ml_delparcoQW['Stage'] = 98 - Sveta declined the offer even after thinking about it. Zariyah gave her a card and asked her to call if she changes her mind. 
+!!                               Story is not over, Sveta can start it any time by calling or visiting Zariyah
+!! ml_delparcoQW['Stage'] = 99 - Zariyah met Sveta when Sveta was visibly pregnant and asked her to talk after Sveta gave birth and feels like she is ready for this. 
+!!                               Like with Stage 98, Sveta can continue the story at a later point (after she is not pregnant anymore).
+!! ml_delparcoQW['Stage'] = 100 - Zariyah will not do anything with Sveta. Either she decided not to even give her an offer, or she fired Sveta
+
+
+if $ARGS[0] = 'zariyah_approach':
+    
+    if $ARGS[1] = 'pav_park'
+        chance = 75
+    else
+        chance = 80
+
+    if rand(0,100) > chance and (pcs_instrmusic + pcs_vokal + pcs_perform) >= 120 and hotcat >= 5 and ml_delparcoQW['stage'] = 0:
+        ml_approach = true
+
+    killvar 'chance'
+
+    if ml_approach = true:
+        !! Check for fame: if very 'famous' then she won't ever approach Sveta, doesn't want her associated with Del Parco.
+        if fame['pav_slut'] > 250 or fame['pav_prostitute'] > 250 or fame['pav_sex'] > 250 or fame['pav_porn'] > 500 or fame['pav_stripping'] > 500:
+            ml_delparcoQW['Stage'] = 100
+        !! Check for covered in cum: face, hair, clothes (at least decent amount). If Sveta is in public, visibly covered in cum, she won't ever approach Sveta, 
+        !! doesn't want her associated with Del Parco.
+        elseif cumvol[11] > 10 or cumvol[16] > 20 or cumvol[6] > 20 or cumvol[7] > 20: 
+            ml_delparcoQW['Stage'] = 100
+        !! Check for drunk+. If Sveta drunk, very drunk or wasted Zariyah won't approach her - what for? However, she will still approach her if the next time 
+        !! she sees Sveta busknig and Sveta passes the checks.
+        elseif alko > 6:
+            ml_approach = false
+            ml_delparcoQW['Zariyah_Trust'] -= 10
+        !! Check for stoned: if Sveta is stoned the Zariyah will avoid her for now. But they still can meet.
+        elseif StrongNarkota > 20:
+            ml_approach = false
+            ml_delparcoQW['Zariyah Trust'] -= 20
+        end
+
+        !! Less serious checks
+        !! Check if Sveta is tipsy
+        if alko > 4 and alko < 7:
+            ml_delparcoQW['Drinking Rule'] = 1
+            ml_delparcoQW['Zariyah Trust'] -= 5
+        end
+
+        !! Check if Sveta is high
+        if jointhigh > 0:
+            ml_delparcoQW['Weed Rule'] = 1 
+            ml_delparcoQW['Zariyah Trust'] -= 5
+        end
+
+        !! Check if Sveta is dressed like a hooker
+        if PCloStyle > 3 or PClotStyle = 3 or CloThinness > 4 or CloTopCut > 3 or CloSkirtShortness > 4 or CloPantsShortness > 5 or CloPanties = 1:
+            ml_delparcoQW['Outfit Rule'] = 1
+            ml_delparcoQW['Zariyah Trust'] -= 5
+        end
+
+        !! Check if Sveta is pregnant
+        if pregchem > 3450:
+            !! If Sveta is visibly pregnant, and also clearly drank alcohol and/or is high and/or is stoned and/or is dressed like a hooker, 
+            !! Zariyah doesn't want to do anything with her.
+            if alko > 4 or jointhigh > 0 or StrongNarkota > 20 or ml_delparcoQW['Outfit Rule'] = 1:
+                ml_delparcoQW['Stage'] = 100
+            !! If Sveta is visibly pregnant, Zariyah will talk with her and make an offer for after she gave birth. She doesn't want a pregnant 
+            !! woman in or close to her third semester as a musician, too risky. But later, sure.
+            else:
+                ml_delparcoQW['Stage'] = 99
+            end
+        end
+
+        gs 'music_checks', 'check_for_trust'
+        if ml_delparcoQW['Stage'] = 100: ml_approach = false
+    end
+end
+
+
+if $ARGS[0] = 'check_if_fired':
+ !! Check for fame: if very 'famous' then she won't ever approach Sveta, doesn't want her associated with Del Parco.
+    if fame['pav_sex'] > 150:
+        ml_delparcoQW['Sveta Sex'] = 1
+        ml_delparcoQW['Stage'] = 100
+    elseif fame['pav_prostitute'] > 150: 
+        ml_delparcoQW['Sveta Prostitute'] = 1
+        ml_delparcoQW['Stage'] = 100
+    elseif fame['pav_porn'] > 500 
+        ml_delparcoQW['Sveta Porn'] = 1
+        ml_delparcoQW['Stage'] = 100
+    elseif fame['pav_stripping'] > 500:
+        ml_delparcoQW['Sveta Stripper'] = 1
+        ml_delparcoQW['Stage'] = 100
+    !! Check for covered in cum: face, hair, clothes (at least decent amount). If Sveta is shows up to a gig covered in cum, Zariyah will fire her on the spot. 
+    !! TODO: Will add something here, if she is caught and raped in the park before the gig it makes sense that she goes to Zariyah to call the police. That will be a separate scene. 
+    elseif cumvol[11] > 10 or cumvol[16] > 20 or cumvol[6] > 20 or cumvol[7] > 20: 
+        ml_delparcoQW['Stage'] = 100
+    !! Check for drunk+. If Sveta shows up to perform drunk, very drunk or wasted Zariyah will fire her because she is unreliable.
+    elseif alko > 6:
+        ml_delparcoQW['Sveta Drunk'] = 1
+        ml_delparcoQW['Stage'] = 100
+    !! Check for stoned: if Sveta shows up to perform stoned, Zariyah will fire her because she is unreliable.
+    elseif StrongNarkota > 20:
+        ml_delparcoQW['Sveta Stoned'] = 1
+        ml_delparcoQW['Stage'] = 100
+    end
+end
+
+if $ARGS[0] = 'check_if_can_perform':
+    !! Less serious checks
+    !! Check if Sveta is tipsy
+    if alko > 4 and alko < 7:
+        ml_delparcoQW['Drinking Rule'] = 1
+        ml_delparcoQW['Zariyah Trust'] -= 10
+        ml_perform = false
+    end
+
+    !! Check if Sveta is high
+    if jointhigh > 0:
+        ml_delparcoQW['Weed Rule'] = 1 
+        ml_delparcoQW['Zariyah Trust'] -= 10
+        ml_perform = false
+    end
+
+    !! Check if Sveta is dressed like a hooker
+    if PCloStyle > 3 or PClotStyle = 3 or CloThinness > 4 or CloTopCut > 3 or CloSkirtShortness > 4 or CloPantsShortness > 5 or CloPanties = 1:
+        ml_delparcoQW['Outfit Rule'] = 1
+        ml_delparcoQW['Zariyah Trust'] -= 10
+        ml_perform = false
+    end
+end
+
+if $ARGS[0] = 'check_for_trust':
+    !! Check for Zariyah's trust level. If it is 0 or less, then the story is over. So if she sees Sveta drunk or stoned several times, she won't make an offer.
+    if ml_delparcoQW['Zariyah Trust'] <= 0: 
+        ml_delparcoQW['Stage'] = 100
+    end
+end
+
+
+if $ARGS[0] = 'reset_checks':
+    ml_delparcoQW['Drinking Rule'] = 1
+    ml_delparcoQW['Weed Rule'] = 1 
+    ml_delparcoQW['Outfit Rule'] = 1
+end
+
+
+--- music_checks ---------------------------------

+ 8 - 8
locations/music_delparco.qsrc

@@ -3,11 +3,11 @@
 if $ARGS[0] = 'talkwithzariyah':
 !!	TODO: Some small talk and a description here plus some paragraph depending on where the quest stands	
 	'You ask the first waitress about Zariyah, and she directs you to the office. As you approach, she waves at you through the open door, signaling to enter "Yes, yes Ruslan, don''t worry about it. No, I have to go, talk later."'
-	if ml_delparcoQW = 1:
+	if ml_delparcoQW['Stage'] = 1:
 		'She puts down the phone "<<$pcs_nickname>>, so glad that you came. How are you? Did you think about the offer?" she smiles at you as you sit down.'
 		act 'Accept the offer to play at Del Parco': gt 'music_delparco', 'delparco_accept'
 	!!	act 'Decline the offer': gt 'mod_musiclife_delparco', 'delparco_decline'
-	elseif ml_delparcoQW = 2:
+	elseif ml_delparcoQW['Stage'] = 2:
 		'She puts down the phone "<<$pcs_nickname>>, so glad that you came. How are you? Did you come to talk about the offer?" she smiles at you as you sit down.'
 		act 'Discuss the live music with': gt 'music_delparco', 'firstdiscussion'
 	end
@@ -16,7 +16,7 @@ end
 
 if $ARGS[0] = 'delparco_accept':
 	ml_venues['del_parco'] = 1
-	ml_delparcoQW = 2
+	ml_delparcoQW['Stage'] = 2
 !!	TODO: Better scene.	
 	'You accept.'
 	*nl
@@ -42,7 +42,7 @@ if $ARGS[0] = 'firstdiscussion':
 	*nl
 	act 'Accept the offer':
 		*clr & cla
-		ml_deparcoQW = 4
+		ml_delparcoQW['Stage'] = 4
 		'"I would love to do it!" you almost bite your tongue as you stop, but the fact that someone asks you to play is a first step to your dream. You almost couldn''t contain yourself.'
 		'"Excellent!" Zariyah smiles at you, and pushes the paper she was writing on towards you "Everything is there. Don''t forget, two weeks from now, Friday at 8pm, so please be here latest half past seven.
 		Trust me, you will need the time to set yourself up. And then every Friday if it works out."'
@@ -57,8 +57,8 @@ if $ARGS[0] = 'firstdiscussion':
 	
 	act 'Ask for some time':
 		*clr & cla
-		ml_delparcoQW = 3
-		ml_delparcogigdeadline = daystart + 2
+		ml_delparcoQW['Stage'] = 3
+		ml_delparcoQW['Next Date'] = daystart + 2
 		ml_delparcooriginaldate = daystart
 		'"I have to think, I want to make sure that I can do it. It''s a big commitment and I don''t want to, you know... not do it right."'
 		'Zariyah nods "Ok, <<$pcs_nickname>>, but please, let me know by <<$week[''ml_answerdeadline'']>>."'
@@ -78,7 +78,7 @@ if $ARGS[0] = 'acceptafterthinking':
 	ml_gighour['delparco'] = 19
 	ml_gigfee['delparco'] = 800
 	ml_delparco['performance'] = 50
-	ml_deparcoQW = 4
+	ml_delparcoQW['Stage'] = 4
 	
 	'"I would love to do it!" you almost bite your tongue as you stop, but the fact that someone asks you to play is a first step to your dream. You almost couldn''t contain yourself.'
 	'"Excellent!" Zariyah smiles at you, and pushes the paper she was writing on towards you "Everything is there. Don''t forget, two weeks from now, Friday at 8pm, so please be here latest half past seven.
@@ -125,7 +125,7 @@ if $ARGS[0] = 'eveningshow':
 		end
 !!	end
 	*nl
-	'(The event is unfinished - do not comply about quality - report just serious bugs)'
+	'(The event is unfinished - do not complain about quality - report only serious bugs)'
 	
 	
 	act 'Leave': gt 'cafe_parco', 'start'	

+ 111 - 27
locations/music_gigstarts.qsrc

@@ -3,55 +3,139 @@
 !!	This is where all the gig introduction meetings will go (pub owners, cafe managers, etc.)
 
 if $ARGS[0] = 'delparco_start':
-	'<center><img <<$set_imgh>> src="images/pc/activities/music/busking.jpg"></center>'
-	'As you finish your set, a tall woman steps up to you with a smile. "Hi, you are really good at this." she looks at you thoughtfully, then nods. "I''m Zariyah, I''m managing Del Parco and we are planning to run some live music evenings. Would you be interested in playing in a more formal setting?"'
-	
-	if pcs_inhib < 30:
-        if pcs_inhib < 10: 
-			$diff = 'hard'
-		elseif pcs_inhib < 20: 
-			$diff = 'medium'
+
+	rules = 0
+
+	!! Version 2 - Sveta tipsy: 
+	!! * Ask her to be sober when she comes to the meeting 
+	if ml_delparcoQW['Drinking Rule'] = 1:
+		$ruletxt = 'be sober'
+		rules = 1
+	end 
+
+	!! Version 2 - Sveta high: 
+	!! * Ask her to skip the pot when she comes to the meeting 
+	if ml_delparcoQW['Weed Rule'] = 1:
+		if $ruletext <> '' and ml_delparcoQW['Outfit Rule'] = 0:
+			$ruletxt += 'and don''t be high'
+		elseif $ruletext <> '' and ml_delparcoQW['Outfit Rule'] = 1:
+			$ruletxt += ', don''t be high'
 		else
-			$diff = 'easy'
+			$ruletxt = 'don''t be high'
 		end
+		rules = 1
+	end
 
-		gs 'willpower', 'skill', 'self', $diff
-		will_cost = (will_cost * 3) - (pcs_perform)
-		if will_cost <= pcs_willpwr:
-			act 'Accept (<<will_cost>> Willpower)': gt 'music_gigstarts', 'delparco_accept'
-		else	
-			act 'Accept (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+	!! Version 3 - Sveta outfit: 
+	!! * Ask her to dress more appropriately when she comes to the office
+	if ml_delparcoQW['Outfit Rule'] = 1:
+		if $ruletext <> '':
+			$ruletxt += 'and wear appropriate clothing.'
+		else
+			$ruletxt = 'wear and appropriate outfit.'
 		end
+		rules = 1 
+	end
+
+	'<center><img <<$set_imgh>> src="images/pc/activities/music/busking.jpg"></center>'
+	if ml_delparcoQW['Stage'] = 99:
+		'As you finish your set, a tall woman steps up to you with a smile. "Hi, you are really good at this." she looks at you thoughtfully for a brief second'
+		'"I''m Zariyah, I''m managing Del Parco and we are planning to run some live music evenings and I''m looking for musicians. I wouldn''t want to drag you into this right now,"'
+		'she says, looking at your swollen belly "but I was thinking that maybe when you gave birth and recovered a little, you would be interested." She reaches into her purse,'
+		'and pulls out a business card "Here is my number and obviously, you can come to the cafe if that''s better. I''m there every weekday." '
+
+		'You take the card a bit hesitantly "Hi, I''m Sveta and thank you... I will think about it." you answer a bit confused, looking at the smiling woman "Splendid," she says '
+		'"I''m looking forward to it and please rest and don''t tire yourself out. And I really, really would like to see you again and meet the baby too... oh, damn " she looks at her watch'
+		'"I must run to work, but it was lovely to meet you Sveta, I hope I will run into you soon and looking forward to your answer!" she gives you a last smile and hurries off.' 
+
+		killvar 'rules'
+		gs 'music_checks', 'reset_checks'
+
+		act 'Leave': gt $loc, $loc_arg
+
+	else	
+		if rules = 1
+			'As you finish your set, you notice a tall woman watching you carefully, her head tilted to the side.'
+			'She bites her lip thoughtfully, hesitating for a moment then steps up to you with a smile.' 
+			'"Hi, you are really good at this." she looks at you thoughtfully, then nods. "I''m Zariyah, I''m managing Del Parco and we are planning to run some live music evenings.'
+			'Would you be interested in playing in a more formal setting?"'
+		else  
+			'As you finish your set, a tall woman steps up to you with a smile. "Hi, you are really good at this."'  
+			'"I''m Zariyah, I''m managing Del Parco and we are planning to run some live music evenings. Would you be interested in playing in a more formal setting?"'
+		end
+		if pcs_inhib < 30:
+			if pcs_inhib < 10: 
+				$diff = 'hard'
+			elseif pcs_inhib < 20: 
+				$diff = 'medium'
+			else
+				$diff = 'easy'
+			end
+
+			gs 'willpower', 'skill', 'self', $diff
+			will_cost = (will_cost * 3) - (pcs_perform)
+			if will_cost <= pcs_willpwr:
+				act 'Accept (<<will_cost>> Willpower)': gt 'music_gigstarts', 'delparco_accept'
+			else	
+				act 'Accept (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+			end
 
-	else    
-		act 'Accept (<<will_cost>> Willpower)': gt 'music_gigstarts', 'delparco_accept'
-    end
+		else    
+			act 'Accept (<<will_cost>> Willpower)': gt 'music_gigstarts', 'delparco_accept'
+		end
+		
+		act 'Decline': gt 'music_gigstarts', 'delparco_decline'
+	end
 	
-    act 'Decline': gt 'music_gigstarts', 'delparco_decline'
 end
 
 
 if $ARGS[0] = 'delparco_accept':
+
 	*clr & cla
 	ml_venues['del_parco'] = 1
-	ml_delparcoQW = 2
-	ml_delparcogigdeadline = daystart + (12 - week)
-
+	ml_delparcoQW['Stage'] = 2
+	ml_delparcoQW['Next Date'] = daystart + (12 - week)
+	
 	'<center><img <<$set_imgh>> src="images/pc/activities/music/zariyah.jpg"></center>'
 	'You look at the woman a bit surprised, then you smile back "Of course! I mean... you mean like a proper stage performance?"'	
-	'She nods "Well, it''s a small cafe so you wouldn''t be playing on a stage, per se, but yes, in front of people. You would sing and play your music." she looks at her watch "I will have to go, but please come to the cafe before next Friday, during the week, and we can discuss the details. Poka!" she gives a small wave and hurries off.'
+	if rules = 0:
+		'She nods "Well, it''s a small cafe so you wouldn''t be playing on a stage, per se, but yes, in front of people. You would sing and play your music." she looks at her watch "I will have to go, but please come to the cafe before next Friday, during the week, and we can discuss the details. Poka!" she gives a small wave and hurries off.'
+	else
+		'She nods "Well, it''s a small cafe so you wouldn''t be playing on a stage, per se, but yes, in front of people. You would sing and play your music." she looks at her watch "I will have to go, but please come to the cafe before next Friday, during the week, and we can discuss the details. Poka!" she gives a small wave but then turns around'
+		'"Oh, just one thing, please, when you visit me and whenever you play at the café<<$ruletext>>" she smiles at you and hurries off.'  
+	end
+	
+	killvar 'rules'
+	gs 'music_checks', 'reset_checks'
+
 	act 'Leave': gt $loc, $loc_arg
 end
 
 if $ARGS[0] = 'delparco_decline':
+
 	*clr & cla
 	ml_venues['del_parco'] = 1	
-	ml_delparcoQW = 1
-	ml_delparcogigdeadline = daystart + (12 - week)
+	ml_delparcoQW['Stage'] = 1
+
 	'<center><img <<$set_imgh>> src="images/pc/activities/music/zariyah.jpg"></center>'
-	'You look at the woman a bit surprised "I''m... that''s really nice but... I''m not sure... "'
-	'She looks at you for a long moment then shakes her head "You need to be a bit more confident if you want do anything with music. Listen" she looks at her watch " I have to run, but if you change your mind, come to the cafe during the week before next Saturday. You are good, and you should not miss out on opportunities." she says before heading off."'
+	'You look at the woman a bit surprised - "I''m... that''s really nice but... I''m not sure... "'
+	if rules = 0:
+		'She looks at you for a long moment then shakes her head - "You need to be a bit more confident if you want do anything with music. Listen, " - she looks at her watch - " I have to run, but please, think about it and if you change your mind, come to the cafe on any weekday to talk. You are good, and you should not miss out on opportunities." - she says, giving you an encouraging smile before heading off.'
+	else
+		if ml_delparcoQW['Drinking Rule'] = 0 and ml_delparcoQW['Weed Rule'] = 0:
+			'She looks at you for a long moment then shakes her head "You need to be a bit more confident if you want do anything with music. Listen, " - she looks at her watch - " I have to run, but if you change your mind, come to the cafe on any weekday to talk. You are good, and you should not miss out on opportunities." she says, smiling at you.'
+		else
+			'She looks at you for a long moment then shakes her head "You need to be a bit more confident if you want do anything with music. Listen, " - she looks at her watch - " I have to run, but I would like you to think about it when you are... calmer... and if you change your mind, come to the cafe on a weekday and we can talk. You are good, and you should not miss out on opportunities." - she says, smiling at you.'
+		end
+		'"Oh, just one thing, please, when you visit me and if you decide to play at the café<<$ruletext>>" - she waves good bye and hurries off.'
+	end
+
+	killvar 'rules'
+	gs 'music_checks', 'reset_checks'
+
 	act 'Leave': gt $loc, $loc_arg
+
 end
 
 

+ 57 - 89
locations/music_onlinemusic.qsrc

@@ -9,79 +9,65 @@ if $ARGS[0] = 'setupAccount':
 	
 	'You log into Youtube to set up a channel for your music. You can upload videos or live stream, but you will need to open a bank account if you want to receive any tips from viewers of your stream.'	
 !!	TODO: Ask for a screen name? 
-	if $loc = 'sitr':
-		act 'Leave': gt $loc
-	else
-		act 'Leave': gt $loc, $loc_arg
-	end
-
+	act 'Leave': gt $loc, $loc_arg
 end
 
 
 if $ARGS[0] = 'liveStream':	
 !!	TODO: Much, much better scene needed.
-		ml_streaming['times_streamed'] += 1		
-		minut += ml_streamtime
-		ml_online_minute += ml_streamtime
-		gs 'music_onlinemusic', 'internetcount'
-		gs 'stat'
-
-		ml_maxsuperchats = 	( fame['pav_music'] + (fame['city_music'] * 2) + fame['pushkin_music'] + fame['village_music'] + pcs_apprnc )
-		ml_superchats = (rand( 0, ml_maxsuperchats) * ml_streamtime) / 60
-		if ml_guitar['hasguitar'] = 1:
-			ml_famebase = ( pcs_instrmusic + pcs_vokal + pcs_perform + ( (hotcat-5) * 20 ) ) / 20
-			gs 'exp_gain', 'instrmusic', rand(1,3)					
-		else	
-			ml_famebase = ( (pcs_vokal * 2) + pcs_perform + ( (hotcat-5) * 20 ) ) / 20
-		end
-		gs 'fame', 'pav', 'music', rand(0, ml_famebase)
-		gs 'fame', 'city', 'music', rand(0, ml_famebase)
-		gs 'exp_gain', 'vokal', rand(1,3)	
-		if perform_lvl < 35: gs 'exp_gain', 'perform', rand(1,3)
-
-		ml_streaming['livestreamcount'] += 1
-		ml_streaming['lastday'] = daystart
-		ml_performance['performed_minutes'] += ml_streamtime
-		ml_performance['total_time_performed'] += ml_streamtime
-		ml_streaming['total_earnings'] += ml_superchats		
-		ml_streaming['unclaimed_earnings'] += ml_superchats
-		
-!!	TODO: The old if komp = 0 or webcamera = 0 should come down here with different text based on whether a computer and webcamera is used or just the phone.
+	ml_streaming['times_streamed'] += 1		
+	minut += ml_streamtime
+	ml_online_minute += ml_streamtime
+	gs 'music_onlinemusic', 'internetcount'
+	gs 'stat'
 
+	ml_maxsuperchats = 	( fame['pav_music'] + (fame['city_music'] * 2) + fame['pushkin_music'] + fame['village_music'] + pcs_apprnc )
+	ml_superchats = (rand( 0, ml_maxsuperchats) * ml_streamtime) / 60
+	
+	if ml_guitar['hasguitar'] = 1 and (ml_guitar['carried'] = 1 or $ml_guitar['location'] = $loc):
+		ml_famebase = ( pcs_instrmusic + pcs_vokal + pcs_perform + ( (hotcat-5) * 20 ) ) / 20
+		gs 'exp_gain', 'instrmusic', rand(1,3)					
+	else	
+		ml_famebase = ( (pcs_vokal * 2) + pcs_perform + ( (hotcat-5) * 20 ) ) / 20
+	end
+	gs 'fame', 'pav', 'music', rand(0, ml_famebase)
+	gs 'fame', 'city', 'music', rand(0, ml_famebase)
+	gs 'exp_gain', 'vokal', rand(1,3)	
+	if perform_lvl < 35: gs 'exp_gain', 'perform', rand(1,3)
+
+	ml_streaming['livestreamcount'] += 1
+	ml_streaming['lastday'] = daystart
+	ml_performance['performed_minutes'] += ml_streamtime
+	ml_performance['total_time_performed'] += ml_streamtime
+	ml_streaming['total_earnings'] += ml_superchats		
+	ml_streaming['unclaimed_earnings'] += ml_superchats
+	
+	!! TODO: Separate scenes by instrument used, not used
+	if komp = 1 and webcamera = 1:
+		'<center><img <<$set_imgh>> src="images/pc/activities/music/gomixer_hero.jpg"/></center>'
+		'You set up your webcamera and start the streaming app on your laptop. After settling down comfortably, you start to stream.'			
+		'Your fans tipped you <<ml_superchats>> rubels for your performance.'
+	else
 		'<center><img <<$set_imgh>> src="images/pc/activities/music/gomixer_hero.jpg"/></center>'
 		'You set up your phone on a little tri-pod and log into your account. After settling down comfortably, you start to stream.'			
 		'Your fans tipped you <<ml_superchats>> rubels for your performance.'
-		
-		if bankAccount = 0:			
-			*nl
-			'You have earned <b><<ml_streaming[''unclaimed_earnings'']>></b> rubels so far, but you need to open a bank account before you can receive the money.'
-
-			if $loc = 'sitr':
-				act 'Stop the stream': gt $loc
-			else
-				act 'Stop the stream': gt $loc, $loc_arg
-			end
-
-		else		
-			*nl
-			'You have <b><<ml_streaming[''unclaimed_earnings'']>></b> rubels on your account.'
-			act 'Stop the stream and transfer the money to your bank account':				
-				karta += ml_streaming['unclaimed_earnings']
-				ml_streaming['unclaimed_earnings'] = 0
-				if $loc = 'sitr':
-					gt $loc
-				else 
-					gt $loc, $loc_arg
-				end
-			end
-			act 'Stop the stream':
-				if $loc = 'sitr':
-					gt $loc
-				else 
-					gt $loc, $loc_arg
-				end
-			end
+	end			
+	if bankAccount = 0:			
+		*nl
+		'You have earned <b><<ml_streaming[''unclaimed_earnings'']>></b> rubels so far, but you need to open a bank account before you can receive the money.'
+	else		
+		*nl
+		'You have <b><<ml_streaming[''unclaimed_earnings'']>></b> rubels on your account.'
+
+		act 'Stop the stream and transfer the money to your bank account':				
+			karta += ml_streaming['unclaimed_earnings']
+			ml_streaming['unclaimed_earnings'] = 0
+			gt $loc, $loc_arg
 		end
+	end
+	act 'Stop the stream':
+		gt $loc, $loc_arg
+	end
 end
 
 if $ARGS[0] = 'recordSong':
@@ -98,7 +84,7 @@ if $ARGS[0] = 'recordSong':
 	ml_performance['total_time_performed'] += 15
 
 	ml_onlinesong_hotcat[ml_onlinesongcount] = hotcat
-	if ml_guitar['hasguitar'] = 1:
+	if ml_guitar['hasguitar'] = 1 and (ml_guitar['carried'] = 1 or $ml_guitar['location'] = $loc):
 		ml_onlinesong_skilllevel[ml_onlinesongcount] = pcs_instrmusic + pcs_vokal + pcs_perform
 		ml_onlinesong_freshness[ml_onlinesongcount] = pcs_instrmusic + pcs_vokal + pcs_perform + ((hotcat-4)*10)
 		gs 'exp_gain', 'instrmusic', rand(1,3)		
@@ -134,14 +120,12 @@ if $ARGS[0] = 'recordSong':
 			act 'Upload music': gt 'music_onlinemusic', 'uploadmusic'
 		end
 	else 
-		if $loc = 'sitr':
-			act 'Leave': gt $loc
-		else
-			act 'Leave': gt $loc, $loc_arg
-		end
+		act 'Leave': gt $loc, $loc_arg
 	end
 end
 
+!! IMPORTANT 
+!! TODO: Recording and Editing/Mixing needs to be split into two separate activities. So keep ''recrodSong'' as is and make this into purely about editing
 if $ARGS[0] = 'recordAndEditSong':
 !!	TODO: Write a scene. It should describe that a song is recorded and then edited properly before uploading it to the net.
 !!	'<center><img <<$set_imgh>> src="images/pc/activities/music/editmusic.jpg"/></center>'
@@ -193,11 +177,7 @@ if $ARGS[0] = 'recordAndEditSong':
 			act 'Upload music': gt 'music_onlinemusic', 'uploadmusic'
 		end
 	else
-		if $loc = 'sitr':
-			act 'Leave': gt $loc
-		else
-			act 'Leave': gt $loc, $loc_arg
-		end
+		act 'Leave': gt $loc, $loc_arg
 	end
 
 end
@@ -219,11 +199,7 @@ if $ARGS[0] = 'uploadmusic':
 
 	killvar 'will_cost'
 
-	if $loc = 'sitr':
-		act 'Leave': gt $loc
-	else
-		act 'Leave': gt $loc, $loc_arg
-	end
+	act 'Leave': gt $loc, $loc_arg
 end
 
 
@@ -253,22 +229,14 @@ if $ARGS[0] = 'uploadallmusic':
 	if i < ml_onlinesongcount:jump 'uploadallmusic'
 	killvar 'will_cost'
 
-	if $loc = 'sitr':
-		act 'Leave': gt $loc
-	else
-		act 'Leave': gt $loc, $loc_arg
-	end
+	act 'Leave': gt $loc, $loc_arg
 end
 
 if $ARGS[0] = 'deleteoldmusic':
 	'You go through your recorded musics and delete all the old ones where your playing doesn''t really reflect what you can do these days'
 	gs 'music_onlinemusic', 'deleting'
 
-	if $loc = 'sitr':
-		act 'Leave': gt $loc
-	else
-		act 'Leave': gt $loc, $loc_arg
-	end
+	act 'Leave': gt $loc, $loc_arg
 end
 
 !!----------------------------------------------------------------------------------------------------------------------------

+ 2 - 1
locations/nichBedroomServant.qsrc

@@ -146,7 +146,8 @@ if $ARGS[0] = '' or $ARGS[0] = 'start' or $ARGS[0] = 'return':
 		gs 'nichChore','inspect','servant'
 	
 	end
-
+	if curr_home = 7 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
+	
 	if curr_home ! 7:
 		act 'Set the Nicholas house as your main home':gs 'set_home', 7 & gt 'nichBedroomServant'
 	end

+ 5 - 2
locations/pav_commercial.qsrc

@@ -169,9 +169,12 @@ if hour >= 8 and hour <= 22 and sunWeather = 1 and temper >= 15 and ml_guitar['c
 				gs 'stat'
 				gs 'music_buskingevents', 'busking', 'pav'
 				
-				if rand(0,100) > 80 and (pcs_instrmusic + pcs_vokal + pcs_perform) >= 120 and hotcat >= 5:
-					gt 'music_gigstarts', 'delparco_start', 'pav_commercial'
+				ml_approach = false
+				gs 'music_checks', 'zariyah_approach', 'pav_park'
+				if ml_approach:
+					gt 'music_gigstarts', 'delparco_start', 'pav_park'
 				end
+				killvar 'ml_approach'
 			end
 		else	
 			act 'Start busking (<<ml_buskingtime>> minutes) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'

+ 1 - 1
locations/pav_hotel.qsrc

@@ -349,7 +349,7 @@ if $ARGS[0] = 'Pavlin' :
 		!!! TwinQW: 0 quest not started; > 0: quest started; < 5: talking with sis; 5: sis agreed; 6: finished
 		!!! changing 'TwinQW < 0' in the above if statement to 'TwinQW < 1' reenables the quest line
 		!!! Kevin Smarts:
-		!!! The twin event is meant to be disabled as it doesn't fit Anya's personality. It is waiting to be redone with a more suitable "twin".
+		!!! The twin event is meant to be disabled as it does not fit  Anya''s personality. It is waiting to be redone with a more suitable "twin".
 		if tmp_TwinQW_AskedToday < daystart: 
 			act 'Fake Twins Request':
 				*clr & cla

+ 4 - 1
locations/pav_park.qsrc

@@ -210,9 +210,12 @@ if $ARGS[0] = 'start':
 		else
 			act 'Start busking (<<ml_buskingtime>> minutes)':
 				gs 'music_buskingevents', 'busking', 'pav'
-				if rand(0,100) > 75 and (pcs_instrmusic + pcs_vokal + pcs_perform) >= 120 and hotcat >= 5:
+				ml_approach = false
+				gs 'music_checks', 'zariyah_approach', 'pav_park'
+				if ml_approach:
 					gt 'music_gigstarts', 'delparco_start', 'pav_park'
 				end
+				killvar 'ml_approach'
 			end
 		end
 	end

+ 1 - 0
locations/pav_shared_apt.qsrc

@@ -811,6 +811,7 @@ if $ARGS[0] = 'pcsRoom':
 	!gs 'subkid'
 
 	act 'Relax on your bed': gt 'bed', 'start'
+	if curr_home = 13 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 end
 	
 if $ARGS[0] = 'sofabed':

+ 155 - 12
locations/prostitution_functions.qsrc

@@ -1,43 +1,181 @@
 # prostitution_functions
 
+!! ---- Variables -------------------------------------------------------------------------------------------------------
+!!
+!! prostitute['payment_method']: 1 - Sveta works for herself; 0 - Sveta works for someone else who will take a cut
+!! prostitute['blocked']: 1 - WLife is loaded which blocks some of the locations: Pavlovsk will rely on the WLife mod 
+!!							  and the Gas Station will be completely blocked
+!!						  0 - WLife is not loaded, everything works as normal.	
+!! prostitute[<<$location>>]: 1 - Sveta can work at the location.
+!!                            0 - Sveta can''t work at the location'
+!!     current locations: Pavlovsk - ''pavlovsk'', Gadukino - ''gadukino'', 
+!!                        Road between Pavlovsk and St Petersburg - ''road'', Gas Station ''gas_station''
+!! prostitute['active']: 1- Sveta ''unlocked'' prostitution somewhere. It is use for non-location specific checks, like
+!!							being able set a default prostitute outfit at home, or finding new places to work at.
+!! prostitute['work_clothes']: 1 - Sveta is wearing a prostitute outfit, i.e. clothes and shoes
+!! prostitute['outfit_is_set']: 1 - Sveta has a default outfit set up. Needed if she wants to change in restrooms 
+!!									or in the car on location, and not travel wearing that outfit
+!! prostitute['changed_for_work']: 1 - It measn that Sveta changed into her prostitute outfit on site from some regular
+!!                                     clothes. This enables the 'Change into regular clothes' action in the changing
+!!									   location. 
+!!								   0 - Sveta didn't change which means she can't change into regular clothing. 
 
 !!---------- Initial set up, enabling locations, etc. -------------------------------------------------------------------
 !!-----------------------------------------------------------------------------------------------------------------------
 
+!! This will run every time for now until I find out how to call this whenever Sveta changes clothes regardless of where and how. I don't want to put it in gs 'stat'
 
-if $ARGS[0] = 'block_internal_prostitution':
-    prostitute['blocked'] = 1
-end
-
-if $ARGS[0] = 'set_pav_prost':
 
+if $ARGS[0] = 'check_for_wlife':
     if mod_list > 0:
         mod_i=1
         :mod_exec
         if $mod_name[mod_i] = 'wlife':
-            gs 'prostitution_functions', 'block_internal_prostitution'
+            prostitute['blocked'] = 1
         end
         if mod_list > mod_i:
             mod_i+=1
             jump 'mod_exec'
         end
     end
-    
+end
+
+if $ARGS[0] = 'set_pavlovsk_prostitute':
     if fame['pav_prostitute'] > 250 or fame['pav_slut'] > 250 and prostitute['blocked'] = 0:
         prostitute['pavlovsk'] = 1
+		prostitute['active'] = 1
         prostitute['payment_method'] = 1
     else
         prostitute['pavlovsk'] = 0
     end
 end
+
+if $ARGS[0] = 'set_gadukion_prostitute':
+	if gadriver_gang = 2 and (mirapimp = 0 or mirapimp =2): 
+		prostitute['gadukino'] = 1
+		prostitute['active'] = 1
+		prostitute['payment_method'] = 1
+	else
+		prostitute['gadukino'] = 0
+	end
+end
+
 !!-----------------------------------------------------------------------------------------------------------------------
 !!-----------------------------------------------------------------------------------------------------------------------
 
+!!---------- Setting default working outfit -----------------------------------------------------------------------------
+!! When calling check if Sveta is at home (i.e. the wardrobe is in her current home)
+
+if $ARGS[0] = 'prostitute_outfit_at_home':
+	gs 'prostitution_functions', 'work_clothes'
+	if prostitute['work_clothes']:
+		gs 'prostitution_functions', 'is_default'
+		if prostitute['outfit_is_set'] = 1 and is_default = 0:
+			act 'Replace your default prostitute outfit with the current outfit': 
+				gs 'prostitution_functions', 'set_default_outfit'
+				gt $loc, $loc_arg
+			end
+		elseif prostitute['outfit_is_set'] = 0:
+			act 'Set the current as your default prostitute outfit': 
+				gs 'prostitution_functions', 'set_default_outfit'	
+				gt $loc, $loc_arg
+			end
+		end
+		act 'Change into regular clothes': 
+			gs 'prostitution_functions', 'change_back'
+			gt $loc, $loc_arg
+		end
+	elseif prostitute['outfit_is_set']: 
+		act 'Change into prostitute outfit': 
+			gs 'prostitution_functions', 'change_into_prostitute_outfit'
+			gt $loc, $loc_arg
+		end
+	end
+	killvar 'is_default'
+end
+
+!!---- Outfit checks ---------------------------------------------------------------------------------  
+if $ARGS[0] = 'work_clothes':
+	prostitute['work_clothes'] = (PCloStyle = 4 and (PShoStyle = 1 or PShoStyle = 2 or PShoHeels >= 3))
+end
+
+if $ARGS[0] = 'is_default':
+	is_default = prostitute['clothingwornnumber'] = clothingwornnumber & prostitute['pantywornnumber'] = pantywornnumber & prostitute['brawornnumber'] = brawornnumber & prostitute['shoewornnumber'] = shoewornnumber
+end
 
-!!---------- Checking for events ------------------------------------------------------------------------------------
 
-if $ARGS[0] = 'check_solicitation_event':
 
+!!---- Setting, clearing and changing outfits ------------------------------------------------------------------
+if $ARGS[0] = 'set_default_outfit':
+	!!-- Clothing	
+	$prostitute['clothingworntype'] = $clothingworntype
+	prostitute['clothingwornnumber'] = clothingwornnumber
+
+	!!-- Underwear
+	$prostitute['pantyworntype'] = $pantyworntype
+	prostitute['pantywornnumber'] = pantywornnumber
+	$prostitute['braworntype'] = $braworntype
+	prostitute['brawornnumber'] = brawornnumber
+
+	!!-- Shoes
+	$prostitute['shoeworntype'] = $shoeworntype
+	prostitute['shoewornnumber'] = shoewornnumber
+
+	prostitute['outfit_is_set'] = 1
+end
+
+if $ARGS[0] = 'clearing_default_outfit':
+	!!-- Clothing	
+	$prostitute['clothingworntype'] = ''
+	prostitute['clothingwornnumber'] = 0
+
+	!!-- Underwear
+	$prostitute['pantyworntype'] = ''
+	prostitute['pantywornnumber'] = 0
+	$prostitute['braworntype'] = ''
+	prostitute['brawornnumber'] = 0
+
+	!!-- Shoes
+	$prostitute['shoeworntype'] = ''
+	prostitute['shoewornnumber'] = 0
+	
+	prostitute['outfit_is_set'] = 0
+end
+
+
+if $ARGS[0] = 'change_into_prostitute_outfit':	
+	gs 'clothing', 'wear', $prostitute['clothingworntype'], prostitute['clothingwornnumber']
+	gs 'panties', 'wear', $prostitute['pantyworntype'], prostitute['pantywornnumber']
+	gs 'bras', 'wear', $prostitute['braworntype'], prostitute['brawornnumber']
+	gs 'shoes', 'strip'
+	gs 'shoes', 'wear', $prostitute['shoeworntype'], prostitute['shoewornnumber']
+
+!	!! TODO: Check for worn out here?
+
+	!! CHeck if the change happened not at home and if yes, then store the fact of change.
+	gs 'prostitution_functions', 'work_clothes'
+	if $ARGS[1] = 'work': prostitute['changed_for_work'] = 1
+end
+
+if $ARGS[0] = 'change_back':
+	!!-- Clothing	
+	gs 'clothing', 'wear_last_worn'
+	!!-- Underwear
+	gs 'panties', 'wear_last_worn'
+	gs 'bras', 'wear_last_worn'
+
+	!!-- Shoes
+	gs 'shoes', 'wear', 'last_worn'
+	gs 'prostitution_functions', 'work_clothes'
+	if prostitute['changed_for_work']: prostitute['changed_for_work'] = 0
+end
+
+!!-----------------------------------------------------------------------------------------------------------------------
+!!---------- Checking for events ----------------------------------------------------------------------------------------
+!!-----------------------------------------------------------------------------------------------------------------------
+
+if $ARGS[0] = 'check_solicitation_event':
+	gs 'prostitution_functions', 'work_clothes'
     if prostitute['blocked'] = 0:
         if (($loc_arg = '' and ($loc = 'pav_commcenter' or $loc = 'pav_residential' or $loc = 'pav_industrial' or $loc = 'pav_commercial' or $loc = 'pav_market' or $loc = 'liam')) or ($loc_arg = 'start' and ($loc = 'pav_complex' or $loc = 'pav_park'))) and hour > 6 and hour < 23 and $curloc ! 'shop' and menu_off = 0 and $loc = $curloc:
 
@@ -45,7 +183,7 @@ if $ARGS[0] = 'check_solicitation_event':
                 gs 'prostitution_pavlovsk', 'chance'
             end
             
-            if prostitute['pavlovsk'] = 1 and PCloStyle = 4 and ShoHeels > 3 :
+            if prostitute['pavlovsk'] = 1 and prostitutep['work_clothes'] :
                 pl '<center><a href="exec: gt ''prostitution_pavlovsk'', ''search''"><img title="Click to start working in Pavlovsk." height = 80 src="images/system/icons/icon_prostitute.png"></a></center>'
             end
 
@@ -56,7 +194,9 @@ if $ARGS[0] = 'check_solicitation_event':
 end
 
 
-!!---------- Willpower checks ---------------------------------------------------------------------------------------
+!!-----------------------------------------------------------------------------------------------------------------------
+!!---------- Willpower checks -------------------------------------------------------------------------------------------
+!!-----------------------------------------------------------------------------------------------------------------------
 
 if $ARGS[0] = 'will_unprotected':
 	gs 'willpower', 'calc'
@@ -129,7 +269,10 @@ if $ARGS[0] = 'will_atm':
 end
 
 
-!!---------- Condoms & STDs--------------------------------------------------------------------------------------
+!!-----------------------------------------------------------------------------------------------------------------------
+!!---------- Condoms & STDs----------------------------------------------------------------------------------------------
+!!-----------------------------------------------------------------------------------------------------------------------
+
 
 if $ARGS[0] = 'std_check':
 	pro_std_check_rand = rand(0,10)

+ 4 - 2
locations/prostitution_pavlovsk.qsrc

@@ -9,7 +9,6 @@
 !!-- Gadukino is too small.                                                                                         --
 !!--------------------------------------------------------------------------------------------------------------------
 
-
 if $ARGS[0] = 'chance':
 	gs 'prostitution_pavlovsk', 'pav_rnd'
 	if hour > 6 and hour < 23 and prostitute['pav_daily_count'] < prostitute['pav_daily_max'] and rand(1,1000) < min(prostitute['pav_rnd'], 400):
@@ -18,6 +17,8 @@ if $ARGS[0] = 'chance':
 end
 
 if $ARGS[0] = 'pav_rnd':
+	gs 'prostitution_functions', 'work_clothes'
+	
 	if prostitute['pav_timer_day'] ! daystart:
 		prostitute['pav_daily_count'] = 0
 		prostitute['pav_timer_day'] = daystart
@@ -27,7 +28,8 @@ if $ARGS[0] = 'pav_rnd':
 	prostitute['pav_daily_max'] = (fame['pav_prostitute'] / 100) + 2
 
 	prostitute['pav_rnd'] = fame['pav_prostitute'] + 50 + prostitute['pav_rnd_pity']
-	if PCloStyle = 4 and ShoHeels > 3: prostitute['pav_rnd'] += 100
+	
+	if prostitute['work_clothes']: prostitute['pav_rnd'] += 100
 	if pcs_makeup = 4: prostitute['pav_rnd'] += 50
 	prostitute['pav_rnd'] -= (prostitute['pav_cooldown'] * 100)
 	if prostitute['pav_cooldown'] > 0: prostitute['pav_cooldown'] -= 1

+ 66 - 29
locations/road.qsrc

@@ -1,6 +1,7 @@
 # road
 $location_type = 'public_outdoors'
-
+!! TODO:  Scene: As Sveta is walking along she stops for a moment to catch her breath. Depending on her outfit, a driver may stop and ask for her tariff. 
+!!        Playing along, i.e. accepting the offer, she unlocks the road as a place to work.
 if $ARGS[0] = '':
 	CLOSE ALL
 	if sound = 0:PLAY 'sound/highway.mp3',50
@@ -20,18 +21,11 @@ if $ARGS[0] = '':
 	'<center><<nroad>> km</center>'
 	'Calling it a highway would be too much credit, but this road is the main way to get from St. Petersburg to the town of Pavlovsk, 20km away.'
 	'Smaller villages named Gadukino and Pushkin can be found along the way. Cars are driving by you at a high speed.'
-	if car > 0 and cardrive = 22 and ncarroad = nroad:'You parked <a href="exec:gs ''carF'', ''start''">your <<$car>></a> next to the road.'
+	if car > 0 and cardrive = 22 and ncarroad = nroad and nroad ! 10:'You parked <a href="exec:gs ''carF'', ''start''">your <<$car>></a> next to the road.'
 	if nroad = 0: act 'Walk to the City Industrial Region (0:15)': minut += 15 & gt 'city_industrial'
 	if nroad = 1:
 		act 'Walk to the City Suburbs (0:15)': minut += 15 & gt 'city_suburbs', 'start'
 	end
-	if nroad = 10:
-		act 'Walk to Gadukino (0:15)': minut += 15 & gt 'gadukino'
-		act 'Walk to the train platform (0:15)': minut += 15 & gt 'train', 'village'
-		if hour >= 16 and hour <= 23:
-			if npc_QW['A60'] > 15: act 'Look around for Mira': gt 'gadprostitutes', 'start'
-		end
-	end
 	if nroad = 16: act 'Check out the construction site (1:00)':minut += 60 & gt 'obekt'
 	if nroad = 19:
 		act 'Walk to Pushkin (0:05)': minut += 5 & gt 'liam'
@@ -45,6 +39,7 @@ if $ARGS[0] = '':
 	if nroad < 20: act 'Walk towards Pavlovsk (0:20)': minut += 20 & nroad += 1 & gt $curloc
 	if nroad > 0: act 'Walk towards St. Petersburg (0:20)': minut += 20 & nroad -= 1 & gt $curloc
 	if nroad > 0 and nroad < 20:
+		!!  TODO: Adding a scene here of a driver mistaking Sveta for a whore and solicits her. If she accepts, that will unlock prostitution along the road.
 		act 'Try hitchhiking towards Pavlovsk':
 			cls
 			minut += 15
@@ -70,6 +65,7 @@ if $ARGS[0] = '':
 				end
 			end
 		end
+		!!  TODO: Adding a scene here of a driver mistaking Sveta for a whore and solicits her. If she accepts, that will unlock prostitution along the road.
 		act 'Try hitchhiking towards St. Petersburg':
 			cls
 			minut += 15
@@ -97,13 +93,6 @@ if $ARGS[0] = '':
 		end
 	end
 
-	if prostitute['road'] = 1 and nroad ! 10 :
-		if PCloStyle = 4: 
-			act 'You can work as a prostitute here': gt 'road_prostitution', 'work'
-		elseif car > 0 and cardrive = 22 and ncarroad = nroad:
-			act 'CHange into your whoring outfit':gt 'road', 'change_for_work'
-		end
-	end
 	if nroad = 0:
 		'You''re on the outskirts of St. Petersburg. You see a number of crudely made huts near the trees. A bunch of homeless people must have sought shelter here.'
 		'A <a href="exec:minut += 5 & gt ''furi''">lorry</a> is parked next to the road. The driver is currently taking a break and is having a cigarette. He could probably bring you to Gadukino or Pavlovsk, for a price...'
@@ -126,16 +115,32 @@ if $ARGS[0] = '':
 	elseif nroad = 9:
 		''
 	elseif nroad = 10:
+
 		display_bb = 1
 		gs 'stat'
+		act 'Walk to Gadukino (0:15)': minut += 15 & gt 'gadukino'
+		act 'Walk to the train platform (0:15)': minut += 15 & gt 'train', 'village'
 		'You see a <a href="exec:gt ''train'', ''village''">railway platform</a> not far from the road. In the same direction, a dirt road leads to the village of <a href="exec:minut += 15 & gt ''gadukino''">Gadukino</a>.'
 		'A <a href="exec:minut += 5 & gt ''furi''">lorry</a> is parked next to the road. The driver is currently taking a break and is having a cigarette. He could probably bring you to Pavlovsk or St. Petersburg, for a price...'
-		if hour >= 16 and hour <= 23 and (prostitute['gadukino'] =1 or prostitute['rood']= 1):
-			if PCloStyle = 4: 
-				act 'You can work as a prostitute here': gt 'gadprostitutes', 'start'
-			elseif car > 0 and cardrive = 22 and ncarroad = nroad:
-				act 'Change into your whoring outfit': gt 'road', 'change_for_work'
+		if npc_QW['A60'] > 15: 'Mira <a href="exec:gt ''gadprostitutes'', ''start''">prostitutes</a> herself around here.'
+		if hour >= 16 and hour <= 23 and prostitute['gadukino'] = 1:
+				if car > 0 and cardrive = 22 and ncarroad = nroad:'You parked <a href="exec:gs ''carF'', ''start''">your <<$car>></a> in a quieter spot on the side road to Gadukin.'
+				if PCloStyle = 4: 
+					act 'You can work as a prostitute here': gt 'gadprostitutes', 'start'
+					if car > 0 and cardrive = 22 and ncarroad = nroad and prostitute['changed_for_work']: act 'You can change into your regular clothes in your car': gt 'road', 'change_back'
+				elseif car > 0 and cardrive = 22 and ncarroad = nroad AND prostitute['outfit_is_set']:
+					act 'Change into your whoring outfit': gt 'road', 'change_for_work'
+				end
+		elseif prostitute['road'] = 1:
+			if car > 0 and cardrive = 22 and ncarroad = nroad:'You parked <a href="exec:gs ''carF'', ''start''">your <<$car>></a> in a quieter spot on the side road to Gadukin.'
+			gs 'prostitution_functions', 'work_clothes'
+			if  prostitute['work_clothes'] = 0 and prostitute['outfit_is_set']: 
+				act 'Change into prostitute outfit': gt 'road', 'change_for_work'
+			elseif prostitute['work_clothes'] and prostitute['changed_for_work']:
+				act 'Change into your regular clothes': gt 'gas_station_gp_117', 'change_back'
 			end
+		else
+			if car > 0 and cardrive = 22 and ncarroad = nroad and nroad ! 10:'You parked <a href="exec:gs ''carF'', ''start''">your <<$car>></a> next to the road.'
 		end
 
 
@@ -145,8 +150,7 @@ if $ARGS[0] = '':
 		!	'Mira <a href="exec:gt ''gadprostitutes'', ''start''">prostitutes</a> herself around here.'
 		!elseif gadriver_gang = 2:
 		!	'You can <a href="exec:gt ''gadprostitutes'', ''start''">prostitute</a> yourself around here.'
-		!end
-		if npc_QW['A60'] > 15: 'Mira <a href="exec:gt ''gadprostitutes'', ''start''">prostitutes</a> herself around here.'
+		!end		
 	elseif nroad = 11:
 		''
 	elseif nroad = 12:
@@ -178,6 +182,15 @@ if $ARGS[0] = '':
 			'You can see <a href="exec:gt ''NikoSlut'', ''Yurik Out''">' + iif(YurikEv['Name'] = 'Yurik', 'Yurik', 'a big burly man') + '</a>, clearly drunk, stumbling along the highway with a beer bottle in his hand.'
 		end		
 	end
+	if prostitute['road'] = 1 and nroad ! 10 and nroad ! 20:
+		if car > 0 and cardrive = 22 and ncarroad = nroad:'You parked <a href="exec:gs ''carF'', ''start''">your <<$car>></a> in a quieter spot.'
+		gs 'prostitution_functions', 'work_clothes'
+		if  prostitute['work_clothes'] = 0 and prostitute['outfit_is_set']: 
+			act 'Change into prostitute outfit': gt 'road', 'change_for_work'
+		elseif prostitute['work_clothes'] and prostitute['changed_for_work']:
+			act 'Change into your regular clothes': gt 'gas_station_gp_117', 'change_back'
+		end
+	end
 end
 
 if $ARGS[0] = 'drive_sex1':
@@ -454,15 +467,39 @@ if $ARGS[0] = 'autostop_d':
 	end
 end
 
+!!------ CHanging clothes --------------------------
 
 if $ARGS[0] = 'change_for_work':
-	if nroad = 10 and prostitute['gadukino'] = 1:
-		!! TODO: Some video show Sveta change
-		'You change into some more appropriate clothing in your car before, then walk down the road a little to catch the attention of passing cars.'
-		act 'You can work as a prostitute here': gt 'gadprostitutes', 'start'
-	else
-		act 'You can work as a prostitute here': gt 'road_prostitution', 'work'
+	cla
+	*clr
+	minut += 10
+
+	!! TODO: Some video show Sveta change
+	'You change into some more appropriate clothing in your car, then walk down the road a little to catch the attention of passing cars.'
+	gs 'prostitution_functions', 'change_into_prostitute_outfit', 'work'
+	act 'Finish': gt $loc, $loc_arg
+end
+
+if $ARGS[0] = 'change_back':
+	cla
+	*clr
+	minut += 10
+	if $loc_arg = 'outside':
+		!! TODO: Video / image and some text describing the cloth change in the car
+		'You quickly change into your working outfit in your car.'
+	end
+
+	if $loc_arg = 'restroom_men':
+		!! TODO: Video / image and some text describing the cloth change in the men''s restroom
+		'You quickly change into your working in the men''s restroom..'
+	end
+
+	if $loc_arg = 'restroom_women':
+		!! TODO: Video / image and some text describing the cloth change in the women''s restroom
+		'You quickly change into your working outfit in the women''s restroom.'
 	end
+	gs 'prostitution_functions', 'change_back'
+	act 'Finish': gt $loc, $loc_arg
 end
 
 --- road ---------------------------------

+ 1 - 0
locations/shulgahall.qsrc

@@ -30,6 +30,7 @@ if $ARGS[0] = '':
 	'The hallway of Uncle Sergey''s one bedroom apartment is similar to every other apartment in the complex. There are several doors leading to the various rooms. The bedroom is Uncle Sergey''s. There''s also the kitchen, bathroom, and finally the livingroom, which Vasily uses for a bedroom.'
 	if home_owned[2] = 0:
 		'There are several <a href="exec:gt ''wardrobe'', ''start''">closets</a> in the hall, which Sergey said you can use to store your clothes while you''re staying here</a>, and a large tall <a href="exec:gt ''mirror'', ''start''">mirror</a> on one of the doors.'
+		if curr_home = 9 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
 	else
 		'There are several closets in the hall</a> and a large tall <a href="exec:gt ''mirror'', ''start''">mirror</a> on one of the doors.'
 	end

+ 3 - 148
locations/sitr.qsrc

@@ -63,158 +63,13 @@ gs 'exercise', 'start'
 if husband > 0 and husbandrink ! 10 and husbandrinkday ! daystart:
 	if (week >= 6 and hour > 7 and hour < 17) or (hour > 17 and hour <= 22):
 		'<a href="exec:gt ''husb'', ''start''">Your husband sits on the couch and watches television.</a>'
+		gs 'music_actions', 'not_alone'
 	end
 end
 
-if ml_guitar['carried'] = 1:
-	act 'Place the guitar next to your desk': 
-		ml_guitar['carried'] = 0
-		$ml_guitar['location'] = $curloc
-		gt 'sitr'
-	end
-elseif ml_guitar['hasguitar'] and ml_guitar['carried'] = 0:
-	act 'Pick up the guitar':
-		ml_guitar['carried'] = 1
-		$ml_guitar['location'] = ''
-		gt 'sitr'
-	end
-end
-
-if ml_online['account'] = 0 and internet > 0: 
-	act 'Set up an online music account (0:30)': gt 'music_onlinemusic', 'setupAccount'
-end
+if husband > 0 and husbandrinkday = daystart and hour >= 20 and hour <= 23: gs 'music_actions', 'no_music'
 
-!!Uploading recorded music if there are any not uploaded yet
-if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
-	if pcs_inhib < 30:
-		if pcs_inhib < 10: 
-			$diff = 'hard'
-		elseif pcs_inhib < 20: 
-			$diff = 'medium'
-		else 
-			$diff = 'easy'
-		end
-		gs 'willpower', 'skill', 'self', $diff
-
-		will_cost = (will_cost * 2) - (pcs_perform)
-		if will_cost <= pcs_willpwr:
-			act 'Upload music (<<will_cost>> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
-		else	
-			act 'Upload music (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-		end
-	end
-	act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
-end
-
-if ml_uploadablemusic > 0:
-	act 'Delete old recordings': gt 'music_onlinemusic', 'deleteoldmusic'
-end
-
-if hour > 8 and hour < 22:
-
-	if ml_guitar['hasguitar'] = 1:
-		act 'Play something on the guitar (10 minutes)':
-			pcs_mood += 10
-			minut += 10
-			gs 'stat'
-			'You pick up your guitar and start to play some songs you know, just for your own entertainment.'
-			'You hum along the tune, relaxing into the music, just enjoying it. When you look up, a quarter of an hour has passed and you are in a much better mood.'
-		end
-	end
-
-	if ml_guitar['hasguitar'] = 1 and (ml_guitar['chordbook'] = 1 or ml_guitarlesson['lessoncount'] > 0) and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-		if pcs_inhib < 30:
-			if pcs_inhib < 10: 
-				$diff = 'hard'
-			elseif pcs_inhib < 20: 
-				$diff = 'medium'
-			else 
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-			will_cost = (will_cost * 3) - (pcs_perform)
-			if will_cost <= pcs_willpwr:
-				act 'Practice guitar (0:30) (<<will_cost>> Willpower)': 
-					inhib_exp += rand(1,2)
-					gs 'willpower', 'pay', 'self'
-					gs 'stat'
-					gt 'music_bedroomPractice', 'guitar'
-				end
-			else
-				act 'Practice guitar (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
-			end
-		else
-			act 'Practice guitar (0:30)': gt 'music_bedroomPractice', 'guitar'
-		end
-	end
-
-	!! Streaming music 
-	if ml_guitar['hasguitar'] = 1 and ml_online['account'] = 1 and internet > 0 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and ml_performance['max_perform_minutes'] >= 15 and alko < 5 and ml_streaming['lastday'] ! daystart:
-		ml_streamtime =  min((ml_performance['max_perform_minutes']-ml_performance['performed_minutes']), 60)
-
-		if pcs_inhib < 30:
-			if pcs_inhib < 10: 
-				$diff = 'hard'
-			elseif pcs_inhib < 20: 
-				$diff = 'medium'
-			else 
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-			will_cost = (will_cost * 3) - (pcs_perform)
-	
-			if will_cost <= pcs_willpwr:
-				act 'Live stream (<<ml_streamtime>> minutes) (<<will_cost>> Willpower)': 
-					inhib_exp += rand(1,3)	
-					gs 'willpower', 'pay', 'self'
-					gs 'stat'
-					gt 'music_onlinemusic', 'liveStream'
-				end
-			else	
-				act 'Live stream (<<ml_streamtime>> minutes) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-			end
-		else 
-			act 'Live stream (<<ml_streamtime>> minutes)': gt 'music_onlinemusic', 'liveStream'			
-		end
-	end
-
-	!! Recording music
-	if ml_guitar['hasguitar'] = 1 and ml_performance['performed_minutes'] < ml_performance['max_perform_minutes'] and alko < 5:
-		if pcs_inhib < 20:
-			if pcs_inhib < 10: 
-				$diff = 'medium'
-			elseif pcs_inhib < 20: 
-				$diff = 'easy'
-			end
-			gs 'willpower', 'skill', 'self', $diff
-
-			if will_cost <= pcs_willpwr:
-				act 'Record a song with your phone (0:30) (<<will_cost>> Willpower)': 
-					inhib_exp += rand(1,2)	
-					gs 'willpower', 'pay', 'self'
-					gs 'stat'
-					gt 'music_onlinemusic', 'recordSong'
-				end							
-				if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-					act 'Record and edit a song (2:00) (<<will_cost>> Willpower)': 
-						inhib_exp += rand(1,2)	
-						gs 'willpower', 'pay', 'self'
-						gs 'stat'
-						gt 'music_onlinemusic', 'recordAndEditSong' 
-					end						
-				end
-			else	
-				act 'Record a song (0:30) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-				act 'Record and edit a song (1:30) (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'				
-			end
-		else
-			act 'Record a song with your phone (0:30)': gt 'music_onlinemusic', 'recordSong'
-			if komp = 1 and webcamera = 1 and ml_studio['scarlet-3rd-gen'] = 1:
-				act 'Record and edit a song (2:00)': gt 'music_onlinemusic', 'recordAndEditSong' 
-			end
-		end
-	end
-end 
+gs 'music_actions', 'start'
 
 act 'Go out on the balcony': gt 'balkon','start'
 

+ 2 - 0
locations/uni_dorm.qsrc

@@ -416,6 +416,8 @@ if $ARGS[0] = 'dorm_room':
 	dynamic $wearpan
 	dynamic $removepan
 
+	if curr_home = 11 and prostitute['active']: gs 'prostitution_functions', 'prostitute_outfit_at_home'
+	
 	if curr_home ! 11:
 		act 'Set this dorm room as your main home':gs 'set_home', 11 & gt 'uni_dorm', 'dorm_room'
 	end