#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
!! the library, or at the church, etc.
elseif ($location_type = 'private' or ($location_type = 'public_outdoors' and sunWeather = 1 and temper > 15)) and ml_no_music = 0 and ml_activities['enabled'] = 1:
if hour < 8:
'It''s too early to do anything noisy like playing the guitar or singing.'
elseif hour > 22:
'It''s too late to do anything noisy like playing the guitar or singing.'
else
if ml_settings['its_me'] = 1:
if ml_guitar['hasguitar'] = 1 and (ml_guitar['carried'] = 1 or $ml_guitar['location'] = $loc):
pl '
'
else
pl ''
end
else
act 'Available musical activities': gs 'music_actions', 'available_actions'
end
end
if ml_guitar['hasguitar'] = 1 and $location_type = 'private': gs 'music_actions', 'put_down_pick_up'
end
end
if $ARGS[0] = 'available_actions':
cla
ml_time_left = ml_performance['max_perform_minutes']-ml_performance['performed_minutes']
if $location_type = 'public_outdoors':
!! In public, Sveta is never alone
gs 'music_actions', 'not_alone'
!! Clear out accidentally stuck $access if Sveta is outdoors.
killvar 'access'
end
if $access = '': gs 'internet_mobile', 'get_access'
!! $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
gs 'music_actions', 'play_something'
gs 'music_actions', 'practice_guitar'
if $location_type = 'public_outdoors': gs 'music_actions', 'busking'
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.
!! 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':
gs 'music_actions', 'stream_music'
gs 'music_actions', 'set_up_account'
!! gs 'music_actions', 'upload_music'
gs 'music_actions', 'delete_music'
end
act 'Finish': gs 'music_actions', 'finish'
end
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 will_cost = 0:
!! TODO: This should be a new screen with some video or image or something
act 'Play something on the guitar (10 minutes)':
*clr & cla
pcs_mood += 10
minut += 10
gs 'stat'
'> src="images/pc/activities/music/guitarpractice_1.jpg">'
'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': gs 'music_actions', 'finish'
end
elseif will_cost <= pcs_willpwr:
act 'Play something on the guitar (10 minutes) (<> Willpower - you are not alone)':
*clr & cla
inhib_exp += rand(1,2)
gs 'willpower', 'pay', 'self'
gs 'stat'
pcs_mood += 5
minut += 10
gs 'stat'
'> src="images/pc/activities/music/guitarpractice_1.jpg">'
'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': gs 'music_actions', 'finish'
end
else
act 'Play something on the guitar (<> Willpower - you are not alone)': '
You feel too embarrassed to pick up your guitar in front of people'
end
end
if ml_not_alone = 0 or will_cost = 0:
act 'Sing something (10 minutes)':
*clr & cla
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 head to keep the tempo, 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': gs 'music_actions', 'finish'
end
elseif will_cost <= pcs_willpwr:
act 'Sing something (10 minutes) (<> Willpower - you are not alone)':
*clr & cla
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 head to keep the tempo, 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': gs 'music_actions', 'finish'
end
else
act 'Sing something (<> Willpower - you are not alone)': '
You feel too embarrassed to sing in front of people'
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):
if ml_time_left < 15:
act 'Practice guitar (You are too tired)': '
You have played so much today that your brain and hands are too tired to practice any more.'
elseif ml_not_alone ! 0 and will_cost ! 0:
if will_cost <= pcs_willpwr:
act 'Practice guitar (15 minutes) (<> Willpower - you are not alone)':
inhib_exp += rand(1,2)
gs 'willpower', 'pay', 'self'
gs 'stat'
gt 'music_bedroomPractice', 'guitar'
end
else
act 'Practice guitar (<> Willpower - you are not alone)': '
You feel too embarrassed to pick up your guitar in front of people'
end
else
act 'Practice guitar (15 minutes)': gt 'music_bedroomPractice', 'guitar'
end
end
end
if $ARGS[0] = 'busking':
*nl
'With the weather being pleasant and sunny, there are groups of people moving around the streets. You could play some music, practice performing songs and maybe make some money too.'
if ml_performance['max_perform_minutes'] < 60:
act 'Start busking (You are not able to play for an hour yet.)': '
You don''t have the endurance yet to play for an hour.'
elseif ml_time_left < 60:
act 'Start busking (You are too tired)': '
You have played so much today, that your brain and hands are too tired to play a whole stream.'
elseif will_cost ! 0:
if will_cost <= pcs_willpwr:
act 'Start busking (60 minutes) (<> Willpower)':
inhib_exp += rand(1,3)
gs 'willpower', 'pay', 'self'
gs 'stat'
gs 'music_buskingevents', 'busking'
end
else
act 'Start busking (<> Willpower)': '
You don''t feel comfortable enough to play in front of people right now.'
end
else
act 'Start busking (60 minutes)': gs 'music_buskingevents', 'busking'
end
end
if $ARGS[0] = 'stream_music':
!! Streaming music
!! NOTE: The check for guitar is done in the 'live_stream', without a guitar Sveta will sing
if ml_online['account'] = 0:
act 'Live stream (No online account)': '
You will have to set up an online account first to stream.'
elseif $access = 'denied':
act 'Live stream (No internet access)': '
You have no internet access.'
elseif ml_streaming['lastday'] = daystart:
act 'Live stream (Already streamed today)': '
You already streamed today.'
elseif ml_not_alone = 1 and $location_type = 'private' :
act 'Live stream (You are not alone, can''t stream right now)': '
You are not alone in the room, which makes starting a stream impossible until they leave.'
elseif ml_performance['max_perform_minutes'] < 60:
act 'Live stream (You are not able to play for an hour yet.)': '
You don''t have the endurance yet to play for an hour.'
elseif ml_time_left < 60:
act 'Live stream (You are too tired)': '
You have played so much today, that your brain and hands are too tired to play a whole stream.'
else
gs 'music_actions', 'willpower_cost'
if will_cost = 0:
act 'Live stream (60 minutes)': gt 'music_onlinemusic', 'live_stream'
elseif will_cost <= pcs_willpwr:
act 'Live stream (60 minutes) (<> Willpower)':
inhib_exp += rand(1,3)
gs 'willpower', 'pay', 'self'
gs 'stat'
gt 'music_onlinemusic', 'live_stream'
end
else
act 'Live stream (<> Willpower)': '
You don''t have enough willpower to use this action.'
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.
!! 4. Computer based recording is removed for now, some changes are needed
if $ARGS[0] = 'record_music':
!! Recording music
if ml_performance['max_perform_minutes'] < 30:
act 'Record a song (You are not able to play for half an hour yet.)': '
You don''t have the endurance yet to play for half an hour continuously.'
elseif ml_time_left < 30:
act 'Record a song (You are too tired)': '
You have played so much today, that your brain and hands are too tired to record anything right now.'
else
gs 'music_actions', 'willpower_cost'
if will_cost = 0:
act 'Record a song with your phone (30 minutes)': gt 'music_onlinemusic', 'record_song'
elseif will_cost <= pcs_willpwr:
act 'Record a song with your phone (30 minutes) (<> Willpower' + iif(ml_not_alone, ' - you are not alone)', ')'):
inhib_exp += rand(1,2)
gs 'willpower', 'pay', 'self'
gs 'stat'
gt 'music_onlinemusic', 'record_song'
end
else
act 'Record a song (<> Willpower - you are not alone)': '
You don''t feel comfortable recording in front of other people right now.'
end
end
end
!! TODO: Split from recording music, editing is a separate thing
if $ARGS[0] = 'edit_recording':
if mc_inventory['tech_computer'] = 1 and mc_inventory['tech_webcam'] = 1 and ml_studio['scarlet-3rd-gen'] = 1:
act 'Edit a song (<> Willpower)':
inhib_exp += rand(1,2)
gs 'willpower', 'pay', 'self'
gs 'stat'
gt 'music_onlinemusic', 'recordAndEditSong'
end
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 will_cost = 0:
act 'Rehearse your sets (30 minutes)': gt 'music_bedroompractice', 'rehearse'
elseif will_cost <= pcs_willpwr:
act 'Rehearse your sets (30 minutes) (<> Willpower)':
inhib_exp += rand(1,2)
gs 'willpower', 'pay', 'self'
gs 'stat'
gt 'music_bedroompractice', 'rehearse'
end
else
act 'Rehearse your sets (30 minutes) (<> Willpower)': '
You don''t have enough willpower to use this action.'
end
end
end
if $ARGS[0] = 'set_up_account':
if ml_online['account'] = 0 and subscription[$access['subscription']] > 0:
act 'Set up an online music account (0:30)': gt 'music_onlinemusic', 'set_up_account'
end
end
if $ARGS[0] = 'upload_music':
!!Uploading recorded music if there are any not uploaded yet
if ml_uploadablemusic > 0 and subscription[$access['subscription']] > 0 and ml_online['account'] = 1:
if will_cost = 0:
act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
elseif will_cost <= pcs_willpwr:
act 'Upload music (<> Willpower)': gt 'music_onlinemusic', 'uploadmusic'
else
act 'Upload music (<> Willpower)': '
You don''t have enough willpower to use this action.'
end
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 will_cost already includes Sveta''s performance ability!
if $ARGS[0] = 'willpower_cost':
killvar 'will_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', 'pcs_perform', $diff
end
end
if $ARGS[0] = 'clear_restrictions':
killvar 'will_cost'
killvar 'ml_not_alone'
killvar 'ml_no_music'
end
if $ARGS[0] = 'finish':
killvar 'will_cost'
killvar 'ml_not_alone'
killvar 'ml_no_music'
killvar 'ml_time_left'
gt $loc, $loc_arg
end
--- music_actions ---------------------------------