﻿# The script of the game goes in this file.

# Declare characters used by this game. The color argument colorizes the
# name of the character.

define fisher = Character("The Fisher", color="FFFFFF")
define client1 = Character("The Patron", color="FFFFFF")
define client2 = Character("The Stranger", color="FFFFFF")
define client3 = Character("The Figure", color="FFFFFF")

define audio.bite = "audio/waterplop.wav"
define audio.pub = "audio/pubnoise.mp3"
define audio.ocean = "audio/oceanwaves.mp3"

image client1 = "foxmaskresize.png"
image client2 = "tragedymaskresize.png"
image client3 = "plaguemaskresize.png"


label start:

    $ inventory = []
    $ day1items = ["compass", "doll", "photograph"]
    $ day2items = ["ring", "key", "coin"]
    $ day3items = ["knife", "ticket", "lock"]

    $ day1item_chosen = ""
    $ day2item_chosen = ""
    $ day3item_chosen = ""

    $ noFishingDay1 = False
    $ noFishingDay2 = False
    $ noFishingDay3 = False

    call day1 from _call_day1

    return

label day1:

    scene bg-pub

    play music pub

    show client1

    client1 "I hear you're the one who can help me."

    hide client1

    "Every day, the tide rolls in on this sleepy town, and I set out to plumb the depths."

    "The haddock run thick in these parts, and the herring hug the cold, grey shore."

    "For any other fisher, there'd be a good living to make."

    "But everyone knows that's not how I keep a roof over my head."

    "I lean back and cross my arms."

    fisher "Depends on what you need help with."

    show client1

    client1 "You're the fisher of lost things, aren't you?"

    hide client1

    fisher "Some people would call me that, sure."

    show client1

    client1 "I've never done something like this. I'm not sure how it works."

    hide client1

    fisher "I'm a new hand at it myself. We'll figure it out together. What do you say?"

    "From the way the patron's shoulders shrink, that doesn't reassure them at all."

    "I gesture to the wooden chair across from me."

    fisher "Sit. Tell me what you're looking for."

    show client1

    client1 "Can you really find anything? No matter how strange?"

    hide client1

    fisher "I will or I won't. The rod decides."

    show client1

    client1 "Err..."

    hide client1

    "The patron eyes the rod that leans against a worn spot in the table."

    show client1

    client1 "All right."

    hide client1

    "They check over their shoulder before they scrape the chair out and sit down."

    "After another pause, they lean in and fold their hands on the tabletop."

    client1 "Do you ever have dreams where you're back in your childhood home? But the rooms are all rearranged, or somebody else lives there?"

    menu:
        "I think everyone has.":
            fisher "I think everyone has."

            "The patron sighs."

            show client1

            client1 "I wish I found that comforting."

            hide client1

            fisher "You won't until you get to the heart of what really bothers you."

        "I don't dream.":
            fisher "I don't dream."

            show client1

            client1 "Really? That's a shame."

            hide client1

            "That's a lie. I dream all the time."

            "But the shadows that stalk me after dark are none of their business."

        "You wouldn't want to know what I dream about.":
            fisher "You wouldn't want to know what I dream about."

            "The patron bows their head."

            show client1

            client1 "Oh. Uh. I'm sorry, then."

            hide client1

            "I don't mean to be unkind, but it's important to keep things businesslike."


    "The patron's hands fidget."

    show client1

    client1 "Anyway, I do. Almost every night, in fact."

    client1 "Lately, I've felt like I'll never be that happy again."

    hide client1

    fisher "We're happy as children because we don't know how the world works."

    show client1

    client1 "And don't you miss that sometimes?"

    hide client1

    "I decide not to respond."

    show client1

    client1 "I used to have this precious keepsake. I hate that I gave it away."

    client1 "I was in such a rush to grow up. If I had it back, maybe it'd put my mind at ease."

    hide client1

    "And there it is. The request. Usually desperate. Always vague."

    "They never have any idea what they're actually asking for."

    fisher "Are you absolutely sure about this?"

    show client1

    client1 "Why wouldn't I be?"

    hide client1

    fisher "When we look into the past, we don't always like what we dredge up."

    show client1

    client1 "You're acting like I'm going to regret it."

    hide client1

    fisher "I don't know. You might."

    "The patron takes a deep breath behind their mask."

    show client1

    client1 "I'm sure. I'm absolutely sure."

    hide client1

    fisher "In which case, I've a condition on my services."

    fisher "Whatever I find is yours to deal with. You can't give it back."

    show client1

    client1 "Why would I do that?"

    hide client1

    fisher "Some people find the sea's gifts are heavier than they thought."

    show client1

    client1 "I've already said I'm in. Why do you keep questioning me?"

    hide client1

    fisher "I'm just saying. I'm not catching something to carry it for someone else."

    "The patron glances at the rod one more time."

    show client1

    client1 "Of course. I never go back on a deal."

    client1 "I'll meet you at the waterfront this evening. Thank you so much."

    hide client1

    fisher "I wouldn't thank me yet."

    show client1

    client1 "You're too humble."

    hide client1

    "I murmur as they leave."

    fisher "Humble's one word for it."

    scene bg-waterfront

    play music ocean

    "I haven't had the fishing rod for very long. Just a couple of cycles now."

    "Still, my feet carry me to the shore, the stony edge of the water."

    "It's much deeper here than it looks."

    menu:
        "Cast the line.":
            play sound bite
            call fishingday1 from _call_fishingday1
        "Don't fish.":
            "I turn the slim wooden rod over in my hands. I don't have to do this."
            "But the masked patron sought me out for a reason. They're suffering."
            "Who am I to tell them what they need?"
            "What if I can help?"

            menu:
                "Yeah. Cast the line.":
                    call fishingday1 from _call_fishingday1_1
                "No. Don't fish.":
                    $ noFishingDay1 = True
                    $ inventory.append("[day1items[0]]")
                    $ inventory.append("[day1items[1]]")
                    $ inventory.append("[day1items[2]]")
                    "I don't cast, but I stand there to think, watching the water sighing in and out."
                    "So the patron wanted something from their childhood."
                    "I can still remember mine, most days. A little cottage by the ocean– but not this ocean. Far, far away."
                    "My parents lived there. They were kind and decent people."
                    "They warned me not to talk to the last Fisher when he passed through town, but I didn't listen."
                    "I wonder if they're doing all right. I can't remember the last time I saw them, no matter how hard I try."
                    "I haven't been back to that town since I followed the Fisher out, lured by the promise of a rod that could find anything lost."
                    "Trouble follows it. Follows me. I couldn't bring it back to them."
                    "I just miss them so much."
                    "I think it until the sun sets, over and over like a prayer."
                    call giveitemday1 from _call_giveitemday1


label fishingday1:

        scene bg-fisheditem

        play music ocean

        "I cast out into the ocean and wait."

        "So the patron wanted something from their childhood?"

        "I can still remember mine, most days. A little cottage by the ocean– but not this ocean. Far, far away."

        "The line goes taut in my hands. I reel it in."

        call screen ImageDisplayLarge("normalcompass500.png")

        $ inventory.append("[day1item[0]]")

        "Off the cold iron fishing hook dangles a compass: the promise of adventure, of a whole journey ahead. It's a little waterlogged, but the needle still spins."

        "I put the compass in my wicker basket."

        fisher "This could be what the patron wanted, but I'm not sure."

        "I cast again."

        "My parents lived in that cottage by that far-away water. They were kind and decent people."

        "They warned me not to talk to the last Fisher when he passed through town, but I didn't listen."

        play sound bite

        call screen ImageDisplayLarge("normaldoll500.png")
        $ inventory.append("[day1items[1]]")

        "The hook skewered the cloth skirt of a little doll. She's sodden but all in one piece, and very pretty."

        "I set her in the basket."

        fisher "Let's try one more time."

        "The waves hiss in and out, grey as the fishing hook. Grey as the sky."

        "I wonder if my parents are doing all right. I can't remember the last time I saw them, no matter how hard I try."

        "I haven't been back to that town since I followed the Fisher out, lured by the promise of a rod that could find anything lost."

        "Trouble follows it. Follows me. I couldn't bring it back to them."

        "Water splashes as my rod snags something else."

        play sound bite

        call screen ImageDisplayLarge("normalphoto500.png")
        $ inventory.append("[day1items[2]]")

        "It's a photograph. Somehow even despite the water, the image is still clear: a family portrait with young children. Everyone is nestled close together."

        "I put it in the basket with the others and then stare over the water for a few minutes."

        "I miss my parents. I miss them so much."


        menu:
            "Look in your basket.":
                label day1inventorymenu:
                    menu:
                        "Look at the [day1items[0]].":
                            call screen ImageDisplayLarge("normalcompass500.png")
                            call day1inventorymenu from _call_day1inventorymenu
                        "Look at the [day1items[1]]":
                            call screen ImageDisplayLarge("normaldoll500.png")
                            call day1inventorymenu from _call_day1inventorymenu_1
                        "Look at the [day1items[2]]":
                            call screen ImageDisplayLarge("normalphoto500.png")
                            call day1inventorymenu from _call_day1inventorymenu_2
                        "Put the basket away.":
                            "That's enough of that."

        call giveitemday1 from _call_giveitemday1_1
        return

label giveitemday1:

    scene bg-waterfrontnight

    play music ocean

    "The patron comes to find me just after sundown, when the tide is out."

    "They edge from foot to foot in anticipation like they're a child again."

    show client1

    client1 "Did it work?"

    hide client1

    if noFishingDay1 != True:
        fisher "It's not a question of working."

        fisher "Things are always being lost. There's always something to find."

        show client1

        client1 "So what did you find?"

        hide client1

        menu:
            "Give them the compass.":
                $ day1item_chosen = day1items[0]
                $ inventory.remove("[day1items[0]]")
                fisher "This is what you lost. The sense of possibility and endless time."
            "Give them the doll.":
                $ day1item_chosen = day1items[1]
                $ inventory.remove("[day1items[1]]")
                fisher "This is what you lost. The comfort of simpler times and easier friends."
            "Give them the photograph.":
                $ day1item_chosen = day1items[2]
                $ inventory.remove("[day1items[2]]")
                fisher "This is what you lost. A sapling family, budding before it blossoms and the fruit falls away to create its own trees."

        "They take it with eager hands."

        show client1

        client1 "Yes, this is it! This is exactly it!"

        client1 "I can already remember those bygone days. The scent of my mother's perfume. The oak tree outside my bedroom window in the spring."

        client1 "What use would I have for the life I live now if I could only live that one again?"

        hide client1

        "I don't answer."

        "Humming to themself, they turn, cradling their keepsake, and walk back to town."

        call day2 from _call_day2

    else:
        fisher "I didn't fish."

        show client1

        client1 "What? But that's what you do."

        hide client1

        fisher "Not today. I didn't feel like it."

        show client1

        client1 "Didn't feel like it? You already told me that you would!"

        client1 "I need what you were supposed to find! I need it!"

        hide client1

        fisher "It won't make you feel better."

        show client1

        client1 "What are you-?"

        hide client1

        fisher "Let me tell you about my parents."

        fisher "They didn't have much money, but they always said we were rich in love, and they seemed to believe it."

        fisher "When my clothes tore, they mended them by the fire with a song."

        fisher "When I asked for a story before bed, they always obliged."

        fisher "What do you think would happen if I went back to see them?"

        show client1

        client1 "Wouldn't they do those things for you again?"

        hide client1

        fisher "Wouldn't that be terrible?"

        fisher "At my age, unable to sew my own rips or sleep in my own bed without help?"

        fisher "Still relying on my parents as their joints begin to creak?"

        fisher "Who will be the one to take care of them when they can't see by candlelight, or their hands shake too much for a needle?"

        fisher "Be glad that your keepsake is gone, and that you're different now."

        "I can't read their expression behind the mask. Maybe they're shocked, maybe furious."

        "But instead of an argument, after several long seconds, they nod once and walk back to town."
        call day2 from _call_day2_1

######## DAY TWO ##########

label day2:

    "EVERYTHING PAST THIS POINT IS PLACEHOLDER TEXT."

    scene bg-pub

    "This is default reflection narration."

    if noFishingDay1 == True:
        "Memories lost text."
    else:
        show client2
        client2 "Telling you what happened to [client1]."

        if day1item_chosen == "compass":
            client2 "Text goes here."
            fisher "Response."
        elif day1item_chosen == "photograph":
            client2 "Text goes here."
            fisher "Response."
        elif day1item_chosen == "doll":
            client2 "Text goes here."
            fisher "Response."

    "This is default narration."

    client2 "Client request."

    fisher "This is default Fisher text."

    fisher "{i}(This is formatting for Fisher's thoughts.){/i}"

    menu:
        "Tell them why it's a bad idea.":
            fisher "Okay but here's why this is a bad idea."
            client2 "Yeah I don't care. Fish, Fisher!"
        "Tell them why it's a bad idea, but in option b.":
            fisher "It's a bad idea, but in option b."
            client2 "No idea what you're talking about right now."
        "Tell them why it's a bad idea, but in option c.":
            fisher "It a--"
            client2 "Don't care!"

    fisher "Fine, I'll do it. But Bad Shit will happen."

    client1 "K w/e."

    fisher "{i}(Guess it's time to go to the beach and fulfill my sucky destiny.){/i}"

    scene bg-waterfront

    "This is default narration."

    if noFishingDay1 == True:
            menu:
                "Cast the line.":
                    # sound effect here
                    call fishingday2 from _call_fishingday2
                "Actually... I don't want to do this.":
                        "For real, tho?"
                        menu:
                            "You're right, I'll just fish.":
                                $ noFishingDay2 = False
                                call fishingday2 from _call_fishingday2_1
                            "Yeah. Fuck this.":
                                $ noFishingDay2 = True
                                "I sit by the edge of the waterfront and think sad thoughts about my parents. Saaad thoughts."
                                call giveitemday2 from _call_giveitemday2
    else:
        menu:
            "Cast the line.":
                # sound effect here
                call fishingday2 from _call_fishingday2_2

    return

label fishingday2:

        scene bg-fisheditem

        "This is default narration."

        call screen ImageDisplayLarge("normalcompass500.png")

        $ inventory.append("[day2item[0]]")

        "This is default narration."

        menu:
            "Cast the line.":
                # sound effect here
                "This is default narration."
                call screen ImageDisplayLarge("normalcompass500.png")
                $ inventory.append("[day2items[1]]")
                "This is default narration."

        menu:
            "Cast the line.":
                # sound effect here
                "This is default narration."
                call screen ImageDisplayLarge("normalcompass500.png")
                $ inventory.append("[day2items[2]]")
                "This is default narration."

        "You feel the fishing pole go dormant."

        menu:
            "Look in your bag.":
                "This will eventually be a proper inventory with pictures."
                "For now it's Cal making sure variables work."
                "You find:\n [day1items[0]]\n [day1items[1]]\n [day2items[0]]\n [day2items[1]]\n [day2items[2]]"

        fisher "I guess I'd better finish up here."

        call giveitemday2 from _call_giveitemday2_1
        return

label giveitemday2:

    scene bg-waterfrontnight

    client1 "Yo, you got my item?"

    if noFishingDay2 != True:
        fisher "Yeah, I've got it."
        "I need to choose what to give them."
        menu:
            "Choose the [day2items[0]].":
                $ day1item_chosen = day2items[0]
                $ inventory.remove("[day2items[0]]")
                "Default narration."
                client1 "Response."
            "Choose the [day2items[1]].":
                $ day1item_chosen = day2items[1]
                $ inventory.remove("[day2items[1]]")
                "Default narration."
                client1 "Response."
            "Choose the [day2items[2]].":
                $ day1item_chosen = day2items[2]
                $ inventory.remove("[day2items[2]]")
                "Default narration."
                client1 "Response."
    else:
        fisher "You know what's better than the actual thing you asked for? Me talking."
        client1 "Uh what."
        fisher "Let me tell you all about my childhood!"

    fisher "Think I'll call it a night."
    call day3 from _call_day3

######## DAY THREE ##########

label day3:

    scene bg-pub

    "This is default reflection narration."

    if noFishingDay2 == True:
        "Memories lost text."
    else:
        client3 "Telling you what happened to [client2]."

        if day2item_chosen == "ring":
            client3 "Text goes here."
            fisher "Response."
        elif day2item_chosen == "key":
            client3 "Text goes here."
            fisher "Response."
        elif day2item_chosen == "coin":
            client3 "Text goes here."
            fisher "Response."

    "This is default narration."

    client3 "Client request."

    fisher "This is default Fisher text."

    fisher "{i}(This is formatting for Fisher's thoughts.){/i}"

    menu:
        "Tell them why it's a bad idea.":
            fisher "Okay but here's why this is a bad idea."
            client3 "Yeah I don't care. Fish, Fisher!"
        "Tell them why it's a bad idea, but in option b.":
            fisher "It's a bad idea, but in option b."
            client3 "No idea what you're talking about right now."
        "Tell them why it's a bad idea, but in option c.":
            fisher "It a--"
            client3 "Don't care!"

    fisher "Fine, I'll do it. But Bad Shit will happen."

    client3 "K w/e."

    fisher "{i}(Guess it's time to go to the beach and fulfill my sucky destiny.){/i}"

    scene bg-waterfront

    "This is default narration."

    if noFishingDay2 == True:
            menu:
                "Cast the line.":
                    # sound effect here
                    call fishingday3 from _call_fishingday3
                "Actually... I don't want to do this.":
                        "For real, tho?"
                        menu:
                            "You're right, I'll just fish.":
                                $ noFishingDay3 = False
                                call fishingday3 from _call_fishingday3_1
                            "Yeah. Fuck this.":
                                $ noFishingDay3 = True
                                "I sit by the edge of the waterfront and think sad thoughts about my parents. Saaad thoughts."
                                call giveitemday3 from _call_giveitemday3
    else:
        menu:
            "Cast the line.":
                # sound effect here
                call fishingday3 from _call_fishingday3_2

    return

label fishingday3:

        scene bg_fisheditem

        "This is default narration."

        call screen ImageDisplayLarge("normalcompass500.png")

        $ inventory.append("[day3item[0]]")

        "This is default narration."

        menu:
            "Cast the line.":
                # sound effect here
                "This is default narration."
                call screen ImageDisplayLarge("normalcompass500.png")
                $ inventory.append("[day3items[1]]")
                "This is default narration."

        menu:
            "Cast the line.":
                # sound effect here
                "This is default narration."
                call screen ImageDisplayLarge("normalcompass500.png")
                $ inventory.append("[day2items[3]]")
                "This is default narration."

        "You feel the fishing pole go dormant."

        menu:
            "Look in your bag.":
                "This will eventually be a proper inventory with pictures."
                "For now it's Cal making sure variables work."
                "You find:\n [day1items[0]]\n [day1items[1]]\n [day2items[0]]\n [day2items[1]]\n [day2items[2]]"

        fisher "I guess I'd better finish up here."

        call giveitemday3 from _call_giveitemday3_1
        return

label giveitemday3:

    scene bg-waterfrontnight

    client1 "Yo, you got my item?"

    if noFishingDay3 != True:
        fisher "Yeah, I've got it."
        "I need to choose what to give them."
        menu:
            "Choose the [day3items[0]].":
                $ day1item_chosen = day3items[0]
                $ inventory.remove("[day3items[0]]")
                "Default narration."
                client3 "Response."
            "Choose the [day3items[1]].":
                $ day1item_chosen = day3items[1]
                $ inventory.remove("[day3items[1]]")
                "Default narration."
                client3 "Response."
            "Choose the [day3items[2]].":
                $ day1item_chosen = day3items[2]
                $ inventory.remove("[day3items[2]]")
                "Default narration."
                client3 "Response."
    else:
        fisher "You know what's better than the actual thing you asked for? Me talking."
        client3 "Uh what."
        fisher "Let me tell you all about my childhood!"

    fisher "Think I'll call it a night."
    call day4 from _call_day4

label day4:

    scene bg-fisherbridge

    if noFishingDay3 == False:

        "Grey sky again. I feel so tired, it's like I haven't slept."

        "What did I dream about? What did I do yesterday?"

        "I peek into my basket."

        # check inventory

        "It's bad today. It's really bad."

        "And now I remember, uneasily, like the first cold wind before a storm."

        "I have to find someone to pass this curse on to, if I'm going to survive."

        menu:
            "The one in the plague mask, who searched for nostalgia.":
                ""
                $ curseditemreturned = day1itefisherhosen
            "The one in the theater mask, who searched for stability.":
                ""
                $ curseditemreturned = day2itefisherhosen
            "The one in the fox mask, who searched for endings.":
                ""
                $ curseditemreturned = day3itefisherhosen

        "Yes. That's who will carry this burden next."

        "I will be free."

        "But first, once– just once– I want to fish for myself."

        call day4fishing from _call_day4fishing

    else:

        "Text."

label day4fishing:

    scene bg-waterfront

    menu:
        "Cast the line one last time.":
            scene bg-fisheditem
            call determinefate from _call_determinefate

label determinefate:

    # put in code for fishing up item. Needs to use day1itefisherhosen, day2itefisherhosen, day3itefisherhosen

    if curseditemreturned == "ring":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "key":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "coin":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "doll":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "compass":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "photograph":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "knife":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "ticket":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."

    elif curseditemreturned == "lock":
        call screen ImageDisplayLarge("normalcompass500.png")
        "Text goes here."
