69 Achegas b8920a20f8 ... fd89b3da18

Autor SHA1 Mensaxe Data
  netuttki fd89b3da18 Merge branch 'origin/planned-september-update' into music-0.9.4 hai 2 meses
  netuttki 359940d886 Whitespace and apostrophe fix that were not merged from master. hai 2 meses
  netuttki 3ab4aa514b Merge remote-tracking branch 'origin/master' into planned-september-update hai 2 meses
  netuttki 5a5e17aaa0 Merge remote-tracking branch 'origin/master' into planned-september-update hai 3 meses
  netuttki 65dda43bf9 Merge branch 'planned-september-update' of https://git.tfgames.site/netuttki/glife into planned-september-update hai 3 meses
  netuttki 60613258fd Merge remote-tracking branch 'origin/master' into planned-september-update hai 3 meses
  netuttki db1ec42603 Merge remote-tracking branch 'origin/master' into planned-september-update hai 5 meses
  netuttki 47ad1b6708 Auto stash before merge of "planned-september-update" and "origin/master" hai 6 meses
  netuttki eb0a009374 Auto stash before merge of "planned-september-update" and "origin/master" hai 6 meses
  netuttki baf043c81f Merge remote-tracking branch 'origin/master' into planned-september-update hai 6 meses
  Netuttki f5c9a5dcf6 Merge remote-tracking branch 'origin/master' into planned-september-update hai 7 meses
  Netuttki af4ba4053a Merge branch 'planned-september-update' of https://git.tfgames.site/netuttki/glife into planned-september-update hai 7 meses
  netuttki b96f87b7ef Merge "origin/master" hai 7 meses
  Netuttki a11f030bdf Merge remote-tracking branch 'Kevin-upstream/master' into planned-september-update hai 9 meses
  Torok Szultan f2321728b3 Merge remote-tracking branch 'origin/master' into planned-september-update hai 9 meses
  Torok Szultan ab0621c8fc Merge remote-tracking branch 'Kevin/master' into planned-september-update hai 9 meses
  Torok Szultan 1c1d056bae Merge remote-tracking branch 'origin/master' into planned-september-update hai 9 meses
  Torok Szultan 3a84aac519 Start of the performance/gig rework hai 1 ano
  Torok Szultan 320dc7ab19 Start of the whole `Set lists` concept. hai 1 ano
  Torok Szultan e01d471746 Fixed typo. hai 1 ano
  Torok Szultan 00bc7a2677 Fixed some true/false checks hai 1 ano
  Torok Szultan ece3e41cc5 Changed the condition for "Sleep on bench" to check all homes properly. hai 1 ano
  Torok Szultan 573971767d Just changed `result` and `$result` to `RESULT` and `$RESULT` hai 1 ano
  Torok Szultan 02ea568f2d New call to be able to check if Sveta has any place to stay at in a city hai 1 ano
  Torok Szultan 73d6d1ac7f Updated town name to 'pushkin' from 'oldtown' hai 1 ano
  Torok Szultan 05266fa6d4 Merge remote-tracking branch 'Kevin/master' into planned-september-update hai 1 ano
  Torok Szultan 078ca80923 Cut down on number of clicks needed to shop at the gas station hai 1 ano
  Torok Szultan ec0264720a Merge remote-tracking branch 'Kevin/master' into planned-september-update hai 1 ano
  Torok Szultan 8094acd913 Merge remote-tracking branch 'origin/master' into planned-september-update hai 1 ano
  netuttki f2eaee5634 Fixed the sfreshness typo hai 1 ano
  netuttki 2c2717b070 Fixed call - 'music_action', 'music_icon' -> 'music_action', 'start' hai 1 ano
  netuttki 423fbd9dba String pasted accidentally hai 1 ano
  netuttki df5467213b Variable value mismatch fixed. hai 1 ano
  netuttki d869410268 Fixed the `sfresheness` typo hai 1 ano
  netuttki 37f40b4d80 Removed unnecessary call to calculate willpower cost. hai 1 ano
  netuttki b4a7b3cf90 Removed unnecessary calc. that resulted in negative willpower cost. hai 1 ano
  netuttki 4e5afdaa4c Changed the event ends so limitations like time can't be avoided. hai 1 ano
  netuttki 0498c8de57 Merge remote-tracking branch 'Kevin-upstream/master' into planned-september-update hai 1 ano
  Netuttki 29d63487bb Merge remote-tracking branch 'Kevin-upstream/master' into planned-september-update hai 1 ano
  netuttki 34c62799a9 Merge branch 'master' into planned-september-update hai 1 ano
  netuttki cdee0761b6 Started to add the gig/performance set logic to the game. hai 1 ano
  netuttki a88bcd4714 Added missing check for `postitute['active'] = 1` hai 1 ano
  netuttki 68253b4b94 Trying to make the space before the link to the scale work in the line. hai 1 ano
  netuttki 12d6fdbbc9 Adding the outline for the first evening gig at Del Parco hai 1 ano
  netuttki abb1e3fac8 Adding the different scenarios for discussing the offer with Zariyah. hai 1 ano
  netuttki 25067bb83d Updated the text of the first meeting with Zariyah. hai 1 ano
  netuttki aee958cee2 Updated the call for the first evening performance. hai 1 ano
  netuttki fe674c8fbd Updated the rule trackers for Zariyah and the Del Parco quest stages hai 1 ano
  netuttki 8e91467bf1 Rolled back `= 1` ro `= -1` changes. Don't want to do `saveupdater` now. hai 1 ano
  netuttki 56532db9de Zariyah meeting chance was buggy, fixed it. hai 1 ano
  netuttki 5cc9ea1fe7 Fixed quest stage value hai 1 ano
  netuttki 562ab14efc Merge remote-tracking branch 'upstream/master' into planned-september-update hai 1 ano
  netuttki d4607878c5 Long term effects of working the streets - not used yet. hai 1 ano
  netuttki 4b2705c309 Approach chance based on outfit, tattoos and appearance hai 1 ano
  netuttki e2f1ef836d Unlocking the highway location. hai 1 ano
  netuttki 48d1992370 Option to set the working hours in Pavlovsk - mostly for mods. hai 1 ano
  netuttki b634bdeab3 New way of content blocking added. hai 1 ano
  netuttki 8712001c2b Updated comments for new way of blocking hai 1 ano
  netuttki 25f4d2718b Updating to new way of blocking hai 1 ano
  netuttki 2c7d404893 Removed unnecessary check before calling solicitation events. hai 1 ano
  netuttki b5a7501cea Highway prostitution: hitchhiking or walking - mistaken for a hooker hai 1 ano
  netuttki 4f73c5a4c0 Rewrote the tip calculation to use right skewed distribution like result hai 1 ano
  netuttki 56e3f23846 Willpower will now depend on performance. hai 1 ano
  netuttki 5bb2669fb7 Started to add gating to the different activities. hai 1 ano
  netuttki 796207c30d Changed old `'start'` to `'available_actions'` to make more sense. hai 1 ano
  netuttki 88a9300239 Changed true values from `= 1` to `= -1`: matches new QSP version hai 1 ano
  netuttki d28a0619ed Renamed `music_icon` to `start` to make more sense. hai 1 ano
  netuttki 1ebe0ef3b9 Changing true values from `= 1` to `= -1`: align with new QSP version hai 1 ano
  netuttki ab6d46e363 Changed the call to `music_actions` from `music_icon` to `start`. hai 1 ano

+ 1 - 1
locations/cafe_parco.qsrc

@@ -39,7 +39,7 @@ if $args[0]= 'inner':
 
 	!! 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'
+		act 'Go to your first performance': gt 'music_delparco', 'first_gig_start'
 	end
 	
 	if LariskaQW['story'] = 12 and week = 6: act 'Join Lariska and Lev': gt 'lariska_storyline','Boyfriend_3'

+ 1 - 1
locations/city_musicstore.qsrc

@@ -199,7 +199,7 @@ end
 
 if $ARGS[0] = 'first_setup':
 	!! First instrument and other items
-	ml_guitars['jb-budget-acoustic'] = 1
+	ml_guitars['jb-budget-acoustic'] = -1
 	ml_strings = 2
 	ml_guitar['chordbook'] = 1
 	ml_guitar['hasguitar'] = 1

+ 2 - 2
locations/city_park.qsrc

@@ -77,10 +77,10 @@ if $ARGS[0] = 'start':
 
 	if hour >= 10 and hour <= 22:
 		act 'Have some food in the café': minut += 5 & gt 'ParkKafe', 'start'
-	end
+	end 
 
 	if hour >= 20 or hour < 6 :
-		if $home['current'] = '' and tanwork = 0 and func('uniutil', 'student', 'not_enrolled'):
+		if func('homes_properties', 'homes_in_town', 'city') = 0 and tanwork = 0:
 			!nowhere to live in city
 			'It''s quite dark now, and you have nowhere to stay nearby. Maybe you should try to sleep on a bench?'
 		else

+ 2 - 0
locations/havana.qsrc

@@ -137,6 +137,8 @@ if $ARGS[0] = 'dressing_room':
 	'Recruiting girls for local track team, the winners will receive cash prizes.'
 	'Attention, visitors to the sports section must wear sports outfits and shoes when using the facilities.'
 	*nl
+	'Next to a wall you see a scale where you can <a href="exec:msg ''<center>Your weight is <<pcs_weight>> kg<br>Your body mass index (BMI) is <<pcs_bmi>>.<br><<$bmi_desc>></center>''">&nbsp;check your weight</a>.'
+	*nl
 	if abonement > 0:'Your existing subscription package is valid for <<abonement>> more classes.'
 	*nl
 	if nichTanya['Known'] = 0 and (rand(1,100) <= 20 or nichDebug = 1):

+ 24 - 3
locations/homes_properties.qsrc

@@ -165,6 +165,7 @@ if $ARGS[0] = 'set_access':
 				if original_access_code = OWNED: accessible_property['owned_home_count'] -= 1
 				if accessible_property[$_construction_state] = 2: accessible_property['furnishable_home_count'] -= 1
 				accessible_property['accessible_home_count'] -= 1
+				$city_homes[$property['town']] -= 1
 			end
 			if accessible_property['accessible_home_count'] = 1:
 				gs 'homes_properties', 'get_accessible_properties', 'home'
@@ -180,6 +181,7 @@ if $ARGS[0] = 'set_access':
 				accessible_property['accessible_home_count'] += 1
 				accessible_property['available_for_rent_home_count'] -= 1
 				if accessible_property[$_construction_state] = 2: accessible_property['furnishable_home_count'] +=1
+				$city_homes[$property['town']] += 1
 			end
 		!! Property is owned
 		elseif accessible_property[$property_code] = OWNED:
@@ -188,6 +190,7 @@ if $ARGS[0] = 'set_access':
 			if accessible_property[$_is_home] = 1:
 				if original_access_code = 0:
 					accessible_property['accessible_home_count'] += 1
+					$city_homes[$property['town']] += 1
 				elseif original_access_code = RENTED:
 					accessible_property['rental_home_count'] -= 1
 					accessible_property['available_for_rent_home_count'] += 1
@@ -212,6 +215,7 @@ if $ARGS[0] = 'set_access':
 				accessible_property['accessible_home_count'] -= 1
 
 				if accessible_property[$_construction_state] = 2: accessible_property['furnishable_home_count'] -= 1
+				$city_homes[$property['town']] -= 1
 			end
 		!! Property is just accessible - like the parents' home, or the Meynold's home, etc.
 		elseif accessible_property[$property_code] = ACCESSIBLE:
@@ -219,6 +223,7 @@ if $ARGS[0] = 'set_access':
 			!! NOTE: Valid transitions: 0 -> 4
 			if accessible_property[$_is_home] = 1:
 				accessible_property['accessible_home_count'] += 1
+				$city_homes[$property['town']] += 1
 			end
 		end
 		if nokill = 0 : killvar 'property'
@@ -233,8 +238,8 @@ if $ARGS[0] = 'set_access':
 end
 
 !! Call: dyneval($is_homeless)
-$is_homeless = {
-	result = ($home['current'] = 'homeless')
+$is_homeless = { 
+	RESULT = ($home['current'] = 'homeless')
 }
 
 !! Call: `func('homes_properties', 'can_live_here', $ARGS[1])`
@@ -811,7 +816,23 @@ if $ARGS[0] = 'has_access':
 	result = accessible_property[$hasaccesscode] ! NO_ACCESS and accessible_property[$hasaccesscode] ! TENANTS
 	killvar 'hasaccesscode'
 end
-
+!! Call: `func('homes_properties', 'homes_in_town', $ARGS[1], ..., $ARGS[N])
+!! Return: The total number of accessible homes in the cities passed in the arguments
+!! $ARGS[1]..$ARGS[N]: The town we check for available places to sleep
+!!			 I.e. if there is a location where the player can sleep, either their own place
+!!			 or an NPC place.	
+if $ARGS[0] = 'homes_in_town':
+	count = ARRSIZE('ARGS')
+	if count > 1:
+		i = 1
+		:loop_get_number_of_homes_in_all_towns_passed
+			temp += $city_homes[$ARGS[i]]
+			i += 1
+		if i < count: jump 'loop_get_number_of_homes_in_all_towns_passed'
+		RESULT = temp
+		killvar 'temp'
+	end	
+end
 
 !!---------------------------------------------------------
 !!  Buy, rent out and sell properties

+ 1 - 1
locations/homes_properties_attr.qsrc

@@ -289,7 +289,7 @@ if $ARGS[0] = 'get_property_attr':
 		$property['name'] = 'Old town apartment'
 		$property['display'] = 'apartment in the old town of Pushkin'
 		$property['region'] = 'pushkin'
-		$property['town'] = 'oldtown'
+		$property['town'] = 'pushkin'
 		$property['location'] = 'pushkin_sq'
 		$property['location_arg'] = ''
 		$property['entrance'] = 'korr2x'

+ 3 - 6
locations/music_actions.qsrc

@@ -1,14 +1,11 @@
 #music_actions
 
-
 if $ARGS[0] = 'start':
     !! Everywhere
     ml_time_left = ml_performance['max_perform_minutes']-ml_performance['performed_minutes']
-    !! Will move but too many changes for a
     if ml_activities['enabled'] = 0 and (ml_guitar['hasguitar'] or vokal_lvl > 5): 
         ml_activities['enabled'] = 1
     end
-
     if alko > 5 and ml_activities['enabled'] = 1:
         'You are too drunk to stream or record music without messing up or throwing up into your guitar.'
     !! $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
@@ -54,7 +51,8 @@ if $ARGS[0] = 'available_actions':
         gs 'music_actions', 'busking'
     end
     if ml_activities['recording'] ! 0: gs 'music_actions', 'record_music'
-    !! if this is done outdoors, any editing, mixing must be done at home. So 'Record and edit' is not available outdoors.
+    if ml_activities['setlist'] ! 0: gs 'music_actions', 'rehearse_setlist'
+    !! 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.
     
     if $access ! 'denied' and ml_activities['online'] ! 0 : 
@@ -63,7 +61,6 @@ if $ARGS[0] = 'available_actions':
 	gs 'music_actions', 'upload_music'
     end
     if ml_uploadablemusic > 0: gs 'music_actions', 'delete_music'	
-    
     act 'Finish': gs 'music_actions', 'finish'
 end
 
@@ -219,7 +216,7 @@ if $ARGS[0] = 'stream_music':
             act 'Live stream (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
         end
     end
-end
+end 
 
 
 !! 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. 

+ 0 - 2
locations/music_bedroompractice.qsrc

@@ -109,8 +109,6 @@ if $ARGS[0] = 'rehearse':
 	pcs_mood += 5
 
 	$setlist = $ARGS[1]
-	ml_performance['performed_minutes'] += 30
-	ml_performance['total_time_performed'] += 30
 	gs 'stat'
 	
 	'<center><img <<$set_imgh>> src="images/pc/activities/music/guitarpractice_1.jpg"></center>'

+ 10 - 13
locations/music_checks.qsrc

@@ -4,11 +4,10 @@
 !! 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 '+func('time', 'get_time_string', 16, 0, cheatVars['time_format'])+'.
 !! 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'] = 3 - Sveta asked for more time at the end of the first visit to Zariyah
+!! ml_delparcoQW['Stage'] = 4 - Sveta accepted the offer on the first or second visit to Zariyah 
+!! ml_delparcoQW['Stage'] = 5 - Sveta did the first gig, now going for the next ones
+!! ml_delparcoQW['Stage'] = 6 - Sveta was offered the first weekend gig
 !! 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.
@@ -19,12 +18,11 @@
 if $ARGS[0] = 'zariyah_approach':
 
 	if $loc = 'pav_park':
-		chance = 75
+		ml_approach = rand(1,100) > 75 and (pcs_instrmusic + pcs_vokal + pcs_perform) >= 120 and hotcat >= 5 and ml_delparcoQW['stage'] = 0
 	else
 		ml_approach = (rand(0,100) > 80 and (pcs_instrmusic + pcs_vokal + pcs_perform) >= 120 and pcs_hotcat >= 5 and ml_delparcoQW['stage'] = 0)
 	end
-	ml_approach = rand(1,100) > chance and (pcs_instrmusic + pcs_vokal + pcs_perform) >= 120 and pcs_hotcat >= 5 and ml_delparcoQW['stage'] = 0
-
+	
 	if ml_approach:
 		!! 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:
@@ -83,9 +81,8 @@ if $ARGS[0] = 'zariyah_approach':
 
 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.
+!! 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
@@ -146,9 +143,9 @@ end
 
 
 if $ARGS[0] = 'reset_checks':
-	ml_delparcoQW['Drinking Rule'] = 1
-	ml_delparcoQW['Weed Rule'] = 1
-	ml_delparcoQW['Outfit Rule'] = 1
+	ml_delparcoQW['Drinking Rule'] = 0
+	ml_delparcoQW['Weed Rule'] = 0
+	ml_delparcoQW['Outfit Rule'] = 0
 end
 
 

+ 122 - 70
locations/music_delparco.qsrc

@@ -3,80 +3,86 @@
 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['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['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'
+	gs 'music_checks', 'check_if_fired'
+	gs 'music_checks', 'check_if_can_perform'
+	if ml_delparcoQW['Stage'] = 100:
+		'She looks you over with a rather cold expression as you take a seat "I have to go Ruslan, I have to sort out something quickly, I will call you back in few." You lean back, looking around in the office while the woman finishes the phone call. You notice a a colourful photo pinned on a corkboard on the wall behind her desk, a small cafe "La Bottega Del Parco" and a young couple, the girl is clearly a younger Zarihay, smiling brightly next to a young man.'
+	elseif ml_delparcoQW['Drinking Rule'] or ml_delparcoQW['Weed Rule'] or ml_delparcoQW['Outfit Rule']:
+		'She looks you over as you take a seat, frowning slightly before returning her attention to the call. You lean back, looking around in the office while the woman finishes the phone call. You notice a a colourful photo pinned on a corkboard on the wall behind her desk, a small cafe "La Bottega Del Parco" and a young couple, the girl is clearly a younger Zarihay, smiling brightly next to a young man.'
+	else
+		'She gives you an apologetic smile as you take a seat before returning her attention to the call. You lean back, looking around in the office while the woman finishes the phone call. You notice a a colourful photo pinned on a corkboard on the wall behind her desk, a small cafe "La Bottega Del Parco" and a young couple, the girl is clearly a younger Zarihay, smiling brightly next to a young man.' 
 	end
-	act 'Leave': gt 'cafe_parco', 'start'
+	'"Yes, yes, I told you. See you later Ruslan, and say hi to Mariya for me."'
+	act 'Discuss the offer': gt 'music_delparco', 'first_discussion'
 end
 
-if $ARGS[0] = 'delparco_accept':
-	ml_venues['del_parco'] = 1
-	ml_delparcoQW['Stage'] = 2
-!!	TODO: Better scene.
-	'You accept.'
-	*nl
-	'(Warning - the event is unfinished, so there is lack of pictures and the text is simplified)'
-    act 'Discuss the live music with': gt 'music_delparco', 'firstdiscussion'
-	act 'Leave': gt 'cafe_parco', 'start'
+if $ARGS[0] = 'first_discussion':	
+		*nl
+		if ml_delparcoQW['Stage'] = 100 and (ml_delparcoQW['Sveta Sex'] or ml_delparcoQW['Sveta Prostitute']):
+			'Zariyah puts down the phone, turning towards you with a frown "Well, Sveta, I would like to apologise for making you come here. I have heard more about you in the last the few days, and all I can say is that I would rather not have anyone with your reputation be linked to my cafe. I think your "talents" would be better displayed in a stripbar.'
+			'There are a few in St Petersburg, maybe one of the cheap ones will take you on - although working along the highway would be a more realistic goal. And now, if you excuse me, I have things to do. I''m sure you will find your way out."' 
+			'She turns away from you, and picks up the phone, waving at you, making clear that you should leave.'
+			act 'Leave': gt 'music_delparco', 'leave' 
+		elseif ml_delparcoQW['Stage'] = 100 and ml_delparcoQW['Sveta Stripper']:
+			'Zariyah puts down the phone, turning towards you with a frown "Well, Sveta, I would like to apologise for making you come here. I have heard more about you in the last the few days, and all I can say is that I would rather not have anyone with your reputation be linked to my cafe. I think your "talents" would be better displayed in a stripbar - but as I have heard, you also realised this and found the place you belong to. A rather cheap one too, at least you know what you''re worth. That said, I would appreciate if you avoided the cafe in the future. I am sure you can find the way out."'
+			'She turns away from you, and picks up the phone, waving at you, making clear that you should leave.'
+			act 'Leave': gt 'music_delparco', 'leave' 
+		elseif ml_delparcoQW['Stage'] = 100 and ml_delparcoQW['Sveta Porn']:
+			!!TODO: Some text here too.
+			act 'Leave': gt 'music_delparco', 'leave' 
+		else
+			if 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.'
+			elseif ml_delparcoQW['Stage'] = 1:
+				'She puts down the phone "<<$pcs_nickname>>, so glad that you came. How are you? Have you changed your mind about the offer?" she smiles at you as you sit down.'  
+			end
+			'You take a seat facing Zariyah "I thought about it a bit more and, I just need to know a bit more. I never really did anything like this."'
+			'She nods and picks up a pen "I understand, <<$pcs_nickname>>. Well, it''s not like playing in an arena or anything. We just need someone to play on Fridays. It would be half an hour, but it''s not background music, you play songs."'
+			'She wiggles the pen, writing down some of what she say "And we would pay you. It''s not a lot of money, but we pay you 800 rubles. And we would like to start two weeks from now at 8 in the evening."'
+			'You think for a moment. 800 rubles is way more than you can get anywhere else in Pavlovsk. On the other hand, 30 minutes is quite a few songs, and you will have to practice a lot in the beginning to do it.'
+			*nl
+			act 'Accept the offer': gs 'music_delparco', 'delparco_accept'		
+			act 'Ask for some time to think it through': gs 'music_delparco', 'delparco_ask_for_time'
+			act 'Decline the offer': gs 'music_delparco', 'delparco_decline'
+		end
 end
 
+if $ARGS[0] = 'delparco_accept':
+	ml_venues['del_parco'] = 1
+	ml_delparcoQW['Stage'] = 7
+	ml_gigday['delparco'] = daystart + 19 - week
+	ml_gighour['delparco'] = 19
+	ml_gigfee['delparco'] = 800
 
-if $ARGS[0] = 'firstdiscussion':
-	if (week + 2 <= 7):
-		ml_answerdeadline = week + 2
-	else
-		ml_answerdeadline = week - 5
-	end
-
-!!	TODO: Obviously, blahblah is not proper text.
-	*nl
-	'You take a seat facing Zariyah "I thought about it a bit more and, yes, I would like to do it just need to know a bit more. I never really did anything like this."'
-	'She nods and picks up a pen "I understand, <<$pcs_nickname>>. Well, it''s not like playing in an arena or anything. We just need someone to play on Fridays. It would be half an hour, but it''s not background music, you play songs."'
-	'She wiggles the pen, writing down some of what she say "And we would pay you. It''s not a lot of money, but we pay you 800 rubles. And we would like to start two weeks from now at 8 in the evening."'
-	'You think for a moment. 800 rubles is way more than you can get anywhere else in Pavlovsk. On the other hand, 30 minutes is quite a few songs, and you will have to practice a lot in the beginning to do it.'
 	*nl
-	act 'Accept the offer':
-		*clr & cla
-		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 '+func('time', 'get_time_string', 20, 0, cheatVars['time_format'])+', 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."'
-		ml_gigday['delparco'] = daystart + 19 - week
-		ml_gighour['delparco'] = 19
-		ml_gigfee['delparco'] = 800
-
-		killvar 'ml_answerdeadline'
-
-		act 'Leave': gt 'cafe_parco', 'start'
-	end
-
-	act 'Ask for some time':
-		*clr & cla
-		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'']>>."'
-
-		killvar 'ml_answerdeadline'
-
-		act 'Leave': gt 'cafe_parco', 'start'
-	end
-
+	'"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."'
+	act 'Say goodbye': gt 'music_delparco', 'leave' 
+end
 
+if $ARGS[0] = 'delparco_ask_for_time':
+	*clr & cla
+	ml_delparcoQW['Stage'] = 3
+	ml_delparcoQW['Answer Deadline'] = daystart + 12 - week
+	ml_delparcoQW['Next Date'] = 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 next Friday."'
+	
+	act 'Say goodbye': gt 'music_delparco', 'leave' 
 end
 
-if $ARGS[0] = 'acceptafterthinking':
+if $ARGS[0] = 'delparco_decline':
+	*clr & cla
+	ml_delparcoQW['Stage'] = 98
+	act 'Say goodbye': gt 'music_delparco', 'leave' 
+end
 
-	offset = (daystart-ml_delparcooriginaldate)
-	ml_gigday['delparco'] = daystart + 19 - offset - week
-	ml_gighour['delparco'] = 19
-	ml_gigfee['delparco'] = 800
+if $ARGS[0] = 'delparco_accept_after_thinking':
+	gs 'music_performances', 'add_gig', 'delparco', 'delparco', daystart + 19 - week, 19, 800
+!!	ml_gigday['delparco'] = daystart + 19 - week
+!!	ml_gighour['delparco'] = 19
+!!	ml_gigfee['delparco'] = 800
 	ml_delparco['performance'] = 50
 	ml_delparcoQW['Stage'] = 4
 
@@ -84,12 +90,37 @@ if $ARGS[0] = 'acceptafterthinking':
 	'"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 '+func('time', 'get_time_string', 20, 0, cheatVars['time_format'])+', 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."'
 
-	killvar 'offset'
-	killvar 'ml_delparcooriginaldate'
-	act 'Leave': gt 'cafe_parco', 'start'
+	act 'Say goodbye': gt 'music_delparco', 'leave' 
+end	
+
+if $ARGS[0] = 'first_gig_start':
+	ml_perform = -1
+	!!TODO: Sveta arrives, and meets Zariyah.
+	gs 'music_checks', 'check_if_can_perform'
+	gs 'music_checks', 'check_if_fired'
+
+	if ml_perform and ml_delparcoQW['Stage'] ! 100: 
+		act 'Prepare for the gig': gt 'music_delparco', 'first_preparation'
+	elseif ml_delparcoQW['Stage'] = 100: 
+		!! Zariyah fires Sveta for whatever reason 100 was reached
+		act 'You are fired': gs 'music_delparco', 'leave'
+	else
+		gs 'music_checks', 'check_for_trust'
+		!! Zariyah chews Sveta out for the rule she broke
+		!! and if she ran out of trust (i.e ml_delparcoQW['Stage'] = 100)
+		!! she fires her.
+		act 'Leave...': gs 'music_delparco', 'leave'
+	end
+	killvar 'ml_perform'
+end
+
+if $ARGS[0] = 'first_preparation':
+	!! Prepare for the show. Set up the chair, the score holder, guitar, microphone, etc.
+	!! Try to calm down (Willpower check, etc.)
+	act 'Do the show...': gt 'music_delparco', 'first_show'
 end
 
-if $ARGS[0] = 'eveningshow':
+if $ARGS[0] = 'first_show':
 	minut += 60
 	ml_correction_chance = ml_performance['set_quality'] + ((pcs_hotcat - 5)*3) + (pcs_perform/10)
 	ml_success = rand(0,100)
@@ -126,9 +157,30 @@ if $ARGS[0] = 'eveningshow':
 !!	end
 	*nl
 	'(The event is unfinished - do not complain about quality - report only serious bugs)'
+	act 'Finish the show': gt 'music_delparco', 'after_first_gig'	
+end
 
-
-	act 'Leave': gt 'cafe_parco', 'start'
+if $ARGS[0] = 'after_first_gig':
+	!! Talk with Zariyah - feedback based on the outcome of the show, etc.
+	!! Internal thinking, "Do I want to do it?", etc.
+	ml_delparcoQW['Stage'] = 5
+	act 'Leave': gt 'music_delparco', 'leave'
+end
+	
+if $ARGS[0] = 'leave':
+	if ml_delparcoQW['Stage'] = 3:
+		!! Asked for time
+	elseif ml_delparcoQW['Stage'] = 4:
+		!! Accepted the offer
+	elseif ml_delparcoQW['Stage'] = 5:
+		!! First gig done
+	elseif ml_delparcoQW['Stage'] = 98:
+		!! Declined the offer
+	elseif ml_delparcoQW['Stage'] = 100:
+		!! Zariyah fired her
+	end
+	gs 'music_checks', 'reset_checks'
+	act 'Leave the cafe': gt 'cafe_parco', 'start'
 end
 
---- music_delparco ---------------------------------
+--- music_delparco ---------------------------------

+ 6 - 9
locations/music_gigstarts.qsrc

@@ -48,15 +48,13 @@ if $ARGS[0] = 'delparco_start':
 
 	'<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." '
+		'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 too, if you want to talk. 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 '
+		'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'
 
@@ -69,8 +67,7 @@ if $ARGS[0] = 'delparco_start':
 			'"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?"'
+			'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 the manager of Del Parco and we are planning to run some live music evenings. Would you be interested in playing in a more formal setting?"'
 		end
 		gs 'music_actions', 'willpower_cost'
 		if ml_willcost = 0:
@@ -96,7 +93,7 @@ if $ARGS[0] = 'delparco_accept':
 	'<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?"'
 	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.'
+		'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.'

+ 37 - 9
locations/music_performances.qsrc

@@ -17,20 +17,48 @@ FOLK = 6
 DISCO = 7
 FUNK = 8
 
+if ARRSIZE('ml_setlist') < 1: ml_setlist["index"] = 0
 
 !! Set lists
-if $ARGS[0] = 'add_new_set':
-    i = ml_setlist["index"]
-    $ml_setlist["<<i>>-code"] = "SL-<<i>>"
-    $ml_setlist["<<i>>-name"] = $ARGS[1]
-    ml_setlist["<<i>>-length"] = ARGS[2]
-    ml_setlist["<<i>>-quality"] = 0
-    ml_setlist["<<i>>-practice_level"] = 0
-    ml_setlist["<<i>>-last_practice_day"] = 0
+if $ARGS[0] = 'add_new_setlist':
+    $ml_setlist_names[] = $ARGS[1]
+    index = ARRSIZE("$ml_setlist_names") - 1
+    $ml_setlist["<<index>>-name"] = $ARGS[1]
+    ml_setlist["<<index>>-length"] = ARGS[2]
+    ml_setlist["<<index>>-quality"] = 0
+    ml_setlist["<<index>>-practice_level"] = 0
+    ml_setlist["<<index>>-last_practice_day"] = 0
+end 
 
-    ml_setlist["index"] += 1
+!! $ARGS[1]: Gig name
+!! $ARGS[2]: Venue
+!! ARGS[3]: Day of the gig 
+!! ARGS[4]: Hour start hour of the gig
+!! ARGS[5]: Fee paid for the gig
+!! $ARGS[6]: Set list played at the gig - must be present in `ml_setlist[]`
+if $ARGS[0] = 'add_gig':
+    $ml_gig["<<$ARGS[1]>>-venue"] = $ARGS[2] 
+    ml_gig["<<$ARGS[1]>>-day"] = ARGS[3]
+    ml_gig["<<$ARGS[1]>>-hour"] = ARGS[4]
+    ml_gig["<<$ARGS[1]>>-fee"] = ARGS[5]
+    if ARRPOS(0,"ml_setlist",$ARGS[6]) ! -1:
+        $ml_gig["<<$ARGS[1]>>-setlist"] = $ARGS[6]
+    else
+        $ml_gig["<<$ARGS[1]>>-setlist"] = ''
+    end
 end
 
+!! $ARGS[1]: Gig name
+!! $ARGS[6]:Set list - must be present in `ml_setlist[]`
+if $ARGS[0] = 'add_setlist_to_gig':
+    if ARRPOS(0,"ml_setlist",$ARGS[2]) ! -1:
+        $ml_gig["<<$ARGS[1]>>-setlist"] = $ARGS[2]
+    else
+        msg '<<$ARGS[2]>> is not an existing set list.'
+    end
+end
+
+
 !! Songwriting and composition
 
 !! ml_song_written["1-writing_skill"] = 0