Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Thank you for your speedy response, yes I believe I've defined the flowchart segments and I'm using the images provided with the original coding. Please let me know if I mistunderstood anything:

In the script file:

label MarshVisit3:

    $ segment = "Marsh"

    $ new_node("Marsh Start")

    $ unlock_node("Marsh Start")

    $ finished.append("marshv3")

Choice  and branch example:

    menu:

        "That's fine.":

            $ mary_points += 1

            $ finished.append("Consensual Route")

            jump MaryMarshVisit3

        "...I mean.":

            $ story_flags["marsh_route"] = "disrespect"

            $ ann_points += 1

            $ finished.append("Maid Route")

            jump AnnMarshVisit3

    label MaryMarshVisit3:

        $ new_node("That's fine.")

        $ unlock_node("That's fine.")

In the flowchart file:

init python:

    def new_node(n=None):

        global segment, segments

        if segment not in segments:

            segments.append(segment)

        segment = n

    # This is a function that adds a completed ending - usually named after the label it's in - to the endings list. You can call len(endings) to track amount of endings

    def unlock_ending(n=None):

        global endings

        if n not in endings:

            endings.append(n)

    # Use this alongside unlock_ending to make the ending accessible from the flowchart

    def unlock_node(n=None):

        global segments

        if n not in segments:

            segments.append(n)

    ##### STORY NODES #####

    # This is where you fill out information for all nodes in your game

    # The format is: "label": [(x coordinate, y coordinate), "name", "description", "condition"],

    # Coordinates are for the imagemap's buttons to render correctly - they tell the upper-left corner of an imagebutton hotspot

    # condition is a string containing either a Python expression or True - if the expression evaluates to false, the node can't be selected from the menu.

    nodes = {

        "MarshVisit3": [(450, 0), "Marsh Start", "It begins.", "True"],

        "MarshVisit3Return": [(500, 0), "Delayed Marsh Start", "Finally...", "True"],

        "MaryMarshVisit3": [(350, 200), "Consensual Route", "This is enough for me.",],

        "MaryConsentVisit1": [(350, 300), "Consensual Route2", "Better play it safe.", "True"],

        "ConsensualStart": [(350, 400), "Consensual Route3", "Everything's going well...?", "True"],

        "MarshConsentEnd": [(350, 500), "Consensual Route Ending", "Picture perfect.", "story_flags['marsh_route'] == 'consensual'"],

        "AnnMarshVisit3": [(400, 200), "Maid Route", "It would be a waste otherwise... right?", "True"],

        "AnnConsentVisit1": [(400, 300), "Maid Route2", "It should be fine.", "True"],

        "MaidStart": [(400, 400), "Maid Route3", "Well done.", "True"],

        "MarshMaidEnd": [(550, 400), "Maid Routte Ending", "Perfection.", "story_flags['marsh_route'] == 'maid'"],

    }

    gui.flow_hotspot_size = (100, 100) # X and Y size of a node - if your hotspots are sized differently, change this