def main(): cur_state = State() if not cur_state.game_state: cur_state.main_menu() player = cur_state.game_state['player'] player_location = player.location party = cur_state.game_state['party'] party_status = False for character in party: if character.cur_stats['health'] > 0: party_status = True while party_status: current_location = getattr(navigation, player_location.replace(" ", ""))() action_input = input('Choose an action: ') available_actions = current_location.available_actions() found_action = False for action in available_actions: if action_input.lower() == 'exit': sys.exit() if (action_input.lower() == action.hotkey.lower()) or \ (action_input.lower() in [a.lower() for a in action.alt]): os.system('clear') # For OSX / Linux os.system('cls') # For Windows found_action = True actions.do_action(action, action.action_class, **action.kwargs) break if not found_action: os.system('clear') # For OSX / Linux os.system('cls') # For Windows cur_state = State() cur_state.load_quicksave() player = cur_state.game_state['player'] player_location = player.location cur_state.save_game()