Esempio n. 1
0
def dungeon_controller():
    scene_start()
    opening_dialog_two()
    while global_game_states.current_scene == 'dungeon':
        received = input()
        if received.startswith('input Look_in_DirtPile'):
            received = received.split(' ')
            container = received[2] 
            look_inside_nonfurniture_action(container)
        elif ((global_game_states.acquired_CellDoorKey) and (['Cell Door Key', 'Cell Door Key'] in global_game_states.player_inventory)):
            action('EnableIcon(UsePrisonDoor, door, Prison.CellDoor, Open, true)')
            global_game_states.acquired_CellDoorKey = False
        elif received.startswith('input Look_Inside_Chest'):
            received = received.split(' ')
            container = received[2]
            look_inside_furniture_action(container)
        elif received.startswith('input UsePrisonDoor'):
            received = received.split(' ')
            door = received[2]
            use_PrisonDoor_action(door)
        elif received.startswith('input Read '):
            book = received[11:]
            read_book(book)
        elif received.startswith('input Leave'):
            received = received.split(' ')
            exit_door = received[2]
            leave_action(exit_door)
        elif received.startswith('input CheckBody'):
            midscene_narration('Guard Lyra is unconscious but still breathing. She will live.')
        elif received.startswith('input ChangeClothes'):
            change_clothes_action()
        else:
            check_master_actions(received)
def opening_cutscene():
    # Cutscene Setup
    action('SetCameraFocus(QueensCastle.DiningTable)')
    action('HideMenu()')
    action('EnableInput()')
    midscene_narration('Welcome to the Queen\'s birthday bash!')
    action('FadeIn()')

    # King's dialogue
    set_left_right('King Phillip', 'Queen Margerie')
    set_dialog(
        'Happy Birthday Darling! I\'ve invited all of your closest friends and family to celebrate! \\n[Next| Next]',
        ['Next'], True)
    set_dialog(
        'Enjoy your night Margerie. You\'ve earned it after ruling Felguard faithfully by my side for the last 20 years. \\n[Next| Next]'
    )
    set_dialog(
        'In honor of the momentous occasion I got Carlita the Castle Witch to give you a very special present! \\n[Next| Next]'
    )
    action('HideDialog()')

    # Witch casting spell
    action('WalkToSpot(Witch Carlita, 303.1, 0.1, 5.2)')
    action('Cast(Witch Carlita, Queen Margerie)')
    action('EnableEffect(Queen Margerie, Heart)')
    time.sleep(2.5)

    # Finishing Dialog
    set_left_right('King Phillip', 'Queen Margerie')
    set_dialog('Let the party commence! \\n[Next| Next]', ['Next'], True)
    action('HideDialog()')
    action('SetCameraFocus(John)')
    action('SetCameraMode(follow)')
Esempio n. 3
0
def change_clothes_action():
    action('HideList()')
    action('FadeOut')
    action('SetClothing(John, Bandit)')
    action('DisableIcon(Change of Clothes, Change Clothes)')
    action('DisableIcon(Look_Inside_Chest, Prison.Chest)')
    remove_item('Change of Clothes')
    global_game_states.wearing_disguise = True
    midscene_narration('John has changed into more discrete clothes.')
    action('FadeIn()')
Esempio n. 4
0
def king_reads_clues():
    # Start the bulletin string
    clue_bulletin = (
        "Official Evidence Proclamation\\nThe following evidence has officially been approved by the king to charge"
        " " + global_game_states.accused +
        " with the murder of Queen Margerie. The king hereby sentences "
        " " + global_game_states.accused + " to death.\\n\\n")
    # Add each selected clue
    for clue in global_game_states.selected_clues:
        clue_bulletin += clue
        clue_bulletin += '\\n'
    midscene_narration(clue_bulletin)
Esempio n. 5
0
def opening_dialog_two():
    action('SetCameraFocus(John)')
    action('SetCameraMode(follow)')
    action('DisableInput()')
    action('Face(John, Prison.CellDoor)')
    midscene_narration('John has been arrested by the Queen\'s Guard.')
    action('FadeIn()')
    set_left_right('Guard Lyra', 'John')
    set_dialog('I hope you\'re happy. You just killed the most beloved Queen this kingdom has ever had. I can\'t even look at you.\\n' +
    ' [Next | What are you talking about] \\n[Next | I didn\'t do anything]', ['Next'], True)
    action('HideDialog()')
    action('EnableInput()')
Esempio n. 6
0
def read_book(book):
    set_left_right('John', 'null')
    NextDialogOption = ''
    
    # Dialog for Prison Ledger
    if book == 'Prison Ledger':
        approach(book)
        action('DisableInput()')
        action('PlaySound(Book)')

        # Allows navigation of different entires in the Prison Ledger based on user input
        NextDialogOption = set_dialog('There are several entries that you could read to discover more clues about the Queen\'s death\\n' + 
        '[AlchemistInfo | Read about the Alchemist] \\n[ChamberMaid | Read about the Chamber Maid, personal servant to the Queen] \\n[GrandMa' +
        'esterInfo | Read about the Grand Maester] \\n[Exit | Stop reading]\\n', ['AlchemistInfo', 'ChamberMaid', 'GrandMaesterInfo', 'Exit'], True)
        if NextDialogOption == 'input Selected AlchemistInfo':
            NextDialogOption = set_dialog('The wine has been sent to the local alchemist for inspection.\\n [Next | Next]')
            add_clue('The Alchemist analyzed the poison used to kill the Queen', 'A Testimonial by the Alchemist')
        elif NextDialogOption == 'input Selected ChamberMaid':
            NextDialogOption = set_dialog('The Chamber Maid claims she saw the suspect put something in the Queen\'s drink.\\n[Next | Next]')
        elif NextDialogOption == 'input Selected GrandMaesterInfo':
            NextDialogOption = set_dialog('The Grand Maester claimed that the currently jailed suspect was falsely accused, but provided no evidence to the guards. \\n[Next | Next]')
            add_clue('The Grand Maester seems to believe something strange is going on', 'Starting Investigations')
        action('EnableInput()')
        action('HideDialog()')
        #midscene_narration('Clues regarding the Queen\'s murder such as the one obtained here will be stored and can be accessed from anywhere in the game by pressing \'E\'.')
        
    elif book == 'Note From King':
        action('PlaySound(Book)')
        NextDialogOption = set_dialog('I know in my heart that you are innocent, just as I know that my dear Queen Margerie was stolen from me by some dark force.' +
        ' Take this key, escape your cell, and do whatever it takes to uncover the identity of the true murderer. I command it.\\n-King Phillip \\n[Next | Next]', ['Next'], True)
        action('HideDialog()')

    elif book == 'Dire News':
        action('PlaySound(Book)')
        midscene_narration('This missive describes the untimely and tragic death of the Queen. Penned by Royal Successor Tiana.')

        # If the guard is not attacked, she will remark on the player's prolonged stay within the dungeon
        if global_game_states.dungeon_guard_lives:
            action('HideDialog()')
            action('DisableInput()')
            action('Face(Guard Lyra, John)')
            action('Face(John, Guard Lyra)')
            set_left_right('John', 'Guard Lyra')
            action('SetExpression(Guard Lyra, angry)')
            set_dialog('If you\'re really trying to help the King, you might wanna actually leave before I throw you back in your cell. Just a thought.\\n[Next | Right, I\'ll be quick.]', ['Next'], True)
            action('HideDialog()')
            action('EnableInput()')
Esempio n. 7
0
def select_clues():
    action('HideDialog()')

    # Opening Prompt
    midscene_narration(
        'Select the clues you will use to convict ' +
        global_game_states.accused +
        '. Right click on the clues you want to use and ' +
        ' select the Use Clue action. Be careful, exiting this screen will prevent you from selecting anymore clues.'
    )
    display_clues_action()
    received = ' '

    # While the user has no closed the list
    while not received == 'input Close List':
        received = input()

        # If they select the action to add the clue to evidence
        if received.startswith('input UseClue'):
            # Get the item
            selected_clue = received[14:]

            # Loop through all the clues
            for clue_item in global_game_states.current_clues:
                # If the item has not already been added and it matches the clue, Disable the icon and add it to evidence
                if clue_item[0] == selected_clue and clue_item[
                        1] not in global_game_states.selected_clues:
                    global_game_states.selected_clues.append(clue_item[1])
                    action('DisableIcon(UseClue, ' + clue_item[0] + ')')
        # Else the user wishes to read the clue
        elif received.startswith('input ClueRead'):
            clue_item = received[15:]
            for clue in global_game_states.current_clues:
                if clue_item == clue[0]:
                    midscene_narration(clue[1])
        # Close Narration
        elif received == 'input Close Narration':
            action('HideNarration()')
    action('HideList()')
Esempio n. 8
0
def opening_dialog():
    midscene_narration(
        'John must explore the city to solve the Queen\'s Murder.')
    midscene_narration(
        'You can now accuse every person you meet of killing Queen Margerie. Be careful, once you commit to accusing'
        + ' an individual, you can\'t go back!')
Esempio n. 9
0
def end_cutscene():

    #Setup the scene
    end_cutscene_setup()

    # King's Dialog
    action('FadeIn()')
    set_left_right('King Phillip', 'null')
    action('EnableInput()')
    set_dialog(
        'We are gathered here today to face the person who has killed my dearest Margerie. \\n[Next | Next]',
        ['Next'], True)
    set_dialog(
        'My trusted advisor, John, has gathered the necessary evidence to bring '
        + global_game_states.accused + ' to justice. \\n[Next | Next]')
    # Select the clues to accuse
    select_clues()

    # Bulletin of the clues selected
    king_reads_clues()
    set_dialog(
        'It brings me no joy in sentencing you to death, but you have committed the greatest atrocity to this kingdom. \\n[Next | Next]',
        ['Next'], True)
    action('HideDialog()')

    #Set up accused dialogue
    action('SetCameraMode(focus)')
    action('SetCameraFocus(' + global_game_states.accused + ')')
    set_left_right(global_game_states.accused, 'null')

    # Check who the accused is, and display unique dilaogue and end game scores
    if global_game_states.accused == 'Maester Purcell':
        # Purcell's Dialogue
        set_dialog(
            'No...I don\'t even remember who Margerie is. \\n[Next | Next]',
            ['Next'], True)
        set_dialog(
            'Oh, darn this senile act. It\'s hard to act this stupid anyway. \\n[Next | Next]'
        )
        set_dialog(
            'Margerie was going to be the downfall of the kingdom. Her progressive ideas were tearing the land apart. \\n[Next | Next]'
        )
        set_dialog(
            'I was doing you all a favor. Get on with it. \\n[Next | Next]')
        # Execution
        commence_execution()
        # Score screen
        midscene_narration('Accusation Score: 5/5. Perfect! ')
    elif global_game_states.accused == 'Tiana':
        # Tiana's Dialogue
        set_dialog('I WAS MEANT TO BE THE TRUE QUEEN! \\n[Next | Next]',
                   ['Next'], True)
        set_dialog(
            'This isn\'t fair. I would have ruled the kingdom better. Margerie was just lucky she was born first. \\n[Next | Next]'
        )
        set_dialog(
            'Please it\'s not too late to change your mind! \\n[Next | Next]')
        # Execution
        commence_execution()
        # Score screen
        midscene_narration(
            'Accusation Score: 4/5. Nice job! However, the master perpetrator remained free!'
        )
    elif global_game_states.accused == 'Chamber Maid Scarlet':
        # Scarlet's Dialogue
        set_dialog(
            'Please sir, I was threatened with my life!  \\n[Next | Next]',
            ['Next'], True)
        set_dialog('It was me or her! I\'m innocent! \\n[Next | Next]')
        # Execution
        commence_execution()
        # Score screen
        midscene_narration(
            'Accusation Score: 3/5. Decent! However, the master perpetrator remained free!'
        )
    elif global_game_states.accused == 'Alchemist Henry':
        # Henry's Dialogue
        set_dialog(
            'I was just doing a job! How was I supposed to know what it was going to be used for! \\n[Next | Next]',
            ['Next'], True)
        set_dialog(
            'The law in this land is straight backwards! \\n[Next | Next]')
        # Execution
        commence_execution()
        # Score screen
        midscene_narration(
            'Accusation Score: 2/5. You can do better! The real masterminds remain free!'
        )
    else:
        # Random's Dialogue
        set_dialog('What evidence is there against me! \\n[Next | Next]',
                   ['Next'], True)
        set_dialog('You\'re putting blind faith in a madman! \\n[Next | Next]')
        set_dialog('I swear I\'m innocent! \\n[Next | Next]')
        # Execution
        commence_execution()
        # Score screen
        midscene_narration(
            'Accusation Score: 1/5.  \\nDefinitely room for improvement! The actual perpetrators remain free!\\n\\n'
        )
    midscene_narration('Thanks for playing!')
    action('ShowMenu()')
def castle_controller():
    # Generic scene start actions
    scene_start()

    # Play the opening cutscene
    opening_cutscene()

    # Gameplay controls
    midscene_narration(
        'Welcome to Our Game! \\nImportant controls: \\n\\nI - Bring up player inventory \\nE - Bring up player clues'
    )

    # Counter to keep track of dialog interactions before Queens death
    trigger_death = 0

    # Loop while the scene is still the castle
    while global_game_states.current_scene == 'castle':

        # Get input from Camelot
        received = input()

        # Check the action received from Camelot
        if received == 'input ReadLedger GuestLedger':
            # Contents of ledger
            action('PlaySound(Book)')
            midscene_narration(
                'Nobleman Jeremy - Holder of lands to the south. Childhood friend of Queen Margerie\\nNoblewoman Celcilia -'
                +
                'Wife of Nobleman Jeremy\\nMerchant Bert - The most prominent merchant in all of Felguard\\nGrand Maester Purcell - Felguard\'s '
                + 'longest serving maester\\nWitch Carlita - The castle mage')
            trigger_death += 1
        elif received == 'input ReadInvitation Party Invitation':
            # Reading invitation
            action('PlaySound(Book)')
            midscene_narration(
                'You are cordially invited to the Queen\'s Birthday Party. It will truly be one for the ages.'
            )
        elif received == 'input InspectCup QueensCup':
            # Clue for investigating cup
            midscene_narration(
                'You notice the wine in the cup is a slightly different shade then the wine you had.'
            )
            action('CreateItem(Wine Cup Color, GoldCup)')
            add_clue('The Queen\'s Cup of wine had an odd coloring to it',
                     'Wine Cup Color')
        elif received == 'input OpenCloset QueensCastle.BackDoor':
            # Enter storage if you have key, else tell player its locked
            if global_game_states.castle_key:
                action('Exit(John, QueensCastle.BackDoor, true)')
                action('Enter(John, CastleStorage.Door, true)')
            else:
                midscene_narration('The door is locked!')
        elif received == 'input CheckClosetKeyBag ClosetKeyBag':
            action('PlaySound(Pocket)')
            # Bag is empty if before Queen death, contains key if after
            if global_game_states.queen_death and not global_game_states.castle_key:
                action('Take(John, ClosetKey, ClosetKeyBag)')
                action('Pocket(John, ClosetKey)')
                midscene_narration('You find a key in the bag!')
                global_game_states.player_inventory.append(
                    ['ClosetKey', 'A mysterious key'])
                global_game_states.castle_key = True
            else:
                midscene_narration('The bag is empty')
        elif received == 'input InspectTester Tester':
            # Taste tester clue
            midscene_narration(
                'You recognize the body of the Queen\'s taste tester')
            action('CreateItem(Taste Testers Death, OpenScroll)')
            add_clue('The Queen\'s taste tester was dead in the closet',
                     'Taste Testers Death')
        elif received == 'input OpenStorageChest CastleStorage.Chest':
            # Poison bottle clue
            midscene_narration(
                'You find an empty potion bottle. The label is marked with a skull and crossbones'
            )
            action('CreateItem(Empty Potion Bottle,PurplePotion)')
            add_clue(
                'In castle storage, you found a suspicious looking potion bottle',
                'Empty Potion Bottle')
        elif received == 'input ReadAlchemistLetter AlchemistLetter':
            # Alchemist Letter clue
            action('PlaySound(Book)')
            midscene_narration(
                'The letter reads: To ensure a lethal dose, use about 10mL\\n-AH'
            )
            action('CreateItem(Letter from AH, OpenScroll)')
            add_clue(
                'A letter in the castle storage referenced a poison written by a mysterious AH',
                'Letter from AH')
        elif received == 'input ExitStorage CastleStorage.Door':
            # Exit Storage and reenter castle.
            action('Exit(John, CastleStorage.Door, true)')
            action('Enter(John, QueensCastle.BackDoor, true)')
            time.sleep(1.0)

            # Play arrest cutscene
            arrest_cutscene()
        elif received == 'input TriggerGuards QueensCastle.Door':
            # Play arrest cutscene if you try to leave
            arrest_cutscene()
        else:
            # Add counter if talk action
            if received.startswith('input Talk'):
                trigger_death += 1

            # Check default master actions
            check_master_actions(received)

        # Trigger queen death if 3 interactions
        if trigger_death > 2 and not global_game_states.queen_death:
            global_game_states.queen_death = True
            death_cutscene()