#music_actions

if $ARGS[0] = 'music_icon':
    !! Everywhere
    if alko > 5:
        '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:        
        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.'
        elseif ml_guitar['hasguitar'] = 1 and (ml_guitar['carried'] = 1 or $ml_guitar['location'] = $loc):
            pl '<center><a href="exec: gs ''music_actions'', ''start''"><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'', ''start''"><img title="Click to to see available music activities." height = 120 src="images/system/icons/icon_transp_singeraction01.png"></a></center>'
        end
        if ml_guitar['hasguitar'] = 1 and $location_type = 'private': gs 'music_actions', 'put_down_pick_up'
    end
end

if $ARGS[0] = 'start': 
    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 ml_not_alone ! 0: gs 'music_actions', 'willpower_cost'
    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'
    gs 'music_actions', 'stream_music'

    !! NOTE: When content gates are added
    !!if ml_activities['setlist'] = 1: gs 'music_actions', 'rehearse_gig'
    !!if ml_activities['busking'] = 1: gs 'music_actions', 'busking'
    !!if ml_activities['streaming'] = 1: 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.
    !!if ml_activities['recording'] = 1: gs 'music_actions', 'record_music'
      

    if $access ! 'denied': gs 'music_actions', 'set_up_account'
    if $access ! 'denied': gs 'music_actions', 'upload_music'
    gs 'music_actions', 'delete_music'

    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 ml_willcost = 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', 'start' 
            end
        elseif ml_willcost  <= 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', 'start' 
            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
    end
    if  ml_not_alone = 0 or ml_willcost = 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 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': gs 'music_actions', 'start'
        end
    elseif ml_willcost  <= 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 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': gs 'music_actions', 'start'
        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 ml_willcost ! 0:
            if pcs_willpwr < ml_willcost:
                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_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  ml_willcost ! 0:
        if ml_willcost <= 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_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
        if ml_willcost = 0:
            act 'Live stream (60 minutes)': gt 'music_onlinemusic', 'live_stream'
        elseif ml_willcost  <= 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_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>'    
    elseif ml_willcost = 0:
            act 'Record a song with your phone (30 minutes)': gt 'music_onlinemusic', 'record_song'
    elseif ml_willcost  <= pcs_willpwr:
        act 'Record a song with your phone (30 minutes) (<<will_cost>> Willpower - 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

!! TODO: Split from recording music, editing is a separate thing
if $ARGS[0] = 'edit_recording':
    if komp = 1 and webcamera = 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 ml_willcost = 0:
            act 'Rehearse your sets (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] = '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 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
    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

if $ARGS[0] = 'clear_restrictions':
    killvar 'ml_willcost'
    killvar 'ml_not_alone'
    killvar 'ml_no_music'
end

if $ARGS[0] = 'finish':
    killvar 'ml_willcost'
    killvar 'ml_not_alone'
    killvar 'ml_no_music'
    killvar 'ml_time_left'
    gt $loc, $loc_arg
end
--- music_actions ---------------------------------