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)')
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()')
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)
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()')
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()')
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()')
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!')
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()