123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- #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 '<center><a href="exec: gs ''music_actions'', ''available_actions''"><img title="Click to to see available music activities." height = 120 src="images/system/icons/icon_transp_guitaraction01.png"></a></center>'
- else
- pl '<center><a href="exec: gs ''music_actions'', ''available_actions''"><img title="Click to to see available music activities." height = 120 src="images/system/icons/icon_transp_singeraction01.png"></a></center>'
- 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'
- '<center><img <<$set_imgh>> src="images/pc/activities/music/guitarpractice_1.jpg"></center>'
- '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) (<<will_cost>> 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'
- '<center><img <<$set_imgh>> src="images/pc/activities/music/guitarpractice_1.jpg"></center>'
- '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 (<font color="red"><<will_cost>> Willpower - you are not alone</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
- 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) (<<will_cost>> 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 (<font color="red"><<will_cost>> Willpower - you are not alone</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):
- if ml_time_left < 15:
- act 'Practice guitar (<font color="red">You are too tired</font>)': '<br><font color="red">You have played so much today that your brain and hands are too tired to practice any more.</font>'
- elseif ml_not_alone ! 0 and will_cost ! 0:
- if will_cost <= pcs_willpwr:
- act 'Practice guitar (15 minutes) (<<will_cost>> 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 (<font color="red"><<will_cost>> Willpower - you are not alone</font>)': '<br><font color="red">You feel too embarrassed to pick up your guitar in front of people</font>'
- 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 (<font color="red">You are not able to play for an hour yet.</font>)': '<br><font color="red">You don''t have the endurance yet to play for an hour.</font>'
- elseif ml_time_left < 60:
- act 'Start busking (<font color="red">You are too tired</font>)': '<br><font color="red">You have played so much today, that your brain and hands are too tired to play a whole stream.</font>'
- elseif will_cost ! 0:
- if will_cost <= pcs_willpwr:
- act 'Start busking (60 minutes) (<<will_cost>> Willpower)':
- inhib_exp += rand(1,3)
- gs 'willpower', 'pay', 'self'
- gs 'stat'
- gs 'music_buskingevents', 'busking'
- end
- else
- act 'Start busking (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t feel comfortable enough to play in front of people right now.</font>'
- 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 (<font color="red">No online account</font>)': '<br><font color="red">You will have to set up an online account first to stream.</font>'
- elseif $access = 'denied':
- act 'Live stream (<font color="red">No internet access</font>)': '<br><font color="red">You have no internet access.</font>'
- elseif ml_streaming['lastday'] = daystart:
- act 'Live stream (<font color="red">Already streamed today</font>)': '<br><font color="red">You already streamed today.</font>'
- elseif ml_not_alone = 1 and $location_type = 'private' :
- act 'Live stream (<font color="red">You are not alone, can''t stream right now</font>)': '<br><font color="red">You are not alone in the room, which makes starting a stream impossible until they leave.</font>'
- elseif ml_performance['max_perform_minutes'] < 60:
- act 'Live stream (<font color="red">You are not able to play for an hour yet.</font>)': '<br><font color="red">You don''t have the endurance yet to play for an hour.</font>'
- elseif ml_time_left < 60:
- act 'Live stream (<font color="red">You are too tired</font>)': '<br><font color="red">You have played so much today, that your brain and hands are too tired to play a whole stream.</font>'
- 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) (<<will_cost>> Willpower)':
- inhib_exp += rand(1,3)
- gs 'willpower', 'pay', 'self'
- gs 'stat'
- gt 'music_onlinemusic', 'live_stream'
- end
- else
- 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
- !! 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 (<font color="red">You are not able to play for half an hour yet.</font>)': '<br><font color="red">You don''t have the endurance yet to play for half an hour continuously.</font>'
- elseif ml_time_left < 30:
- act 'Record a song (<font color="red">You are too tired</font>)': '<br><font color="red">You have played so much today, that your brain and hands are too tired to record anything right now.</font>'
- 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) (<<will_cost>> 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 (<font color="red"><<will_cost>> Willpower - you are not alone</font>)': '<br><font color="red">You don''t feel comfortable recording in front of other people right now.</font>'
- 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 (<<will_cost>> 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) (<<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] = '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 (<<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
- 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 ---------------------------------
|