def level_three_start(player, enemies_list, file_name): # Creating objects and items item_one = items.create_banana(1, 14) item_two = items.create_grape(73, 6) item_three = items.create_sword(9, 14) # Creating interactions objects_one = [player, item_one] objects_two = [player, item_two] objects_three = [player, item_three] is_running = True ui.display_board(engine.create_board("Messages/message_lvl3.txt")) time.sleep(3) while is_running: key = key_pressed() clear_screen() if key == 'q': assert False board = engine.create_board(file_name) player = engine.player_coordinates_change(key, player, board) board = engine.put_player_on_board(board, player) if player['x'] == 77 and player['y'] == 14: player['level'] = 4 is_running = False for index in range(len(enemies_list)): enemy = enemies_list[index] if enemy['HP'] > 0: enemy = engine.enemy_movement(board, enemy) board = engine.put_enemies_on_board(board, enemy) fight = engine.enemy_board_interaction(board, enemy, player) player = fight[0] enemy = fight[1] enemies_list[index] = enemy if item_one['on_board'] == 1: board = engine.put_items_on_board(board, item_one) player = objects_one[0] item_one = objects_one[1] objects_one = engine.item_board_interaction(board, item_one, player) if item_two['on_board'] == 1: board = engine.put_items_on_board(board, item_two) player = objects_two[0] item_two = objects_two[1] objects_two = engine.item_board_interaction(board, item_two, player) if item_three['on_board'] == 1: board = engine.put_items_on_board(board, item_three) player = objects_three[0] item_three = objects_three[1] objects_three = engine.item_board_interaction(board, item_three, player) if player['HP'] <= 0: return player ui.display_board(board) ui.display_inventory(player) return player
def main(): """ Main function of the game, transforms user's input into player's movement and plot changes. Returns: Nothing """ message, message_type, name = "", "no_type", "" show_inventory = False show_legend = True is_running = True global boards game_introduction() player = create_player() while is_running: util.clear_screen() board = engine.create_board(boards[player["current_board"]], player) ui.display_board(board, boards[player["current_board"]]["name"], player, quests, show_inventory, show_legend, legend, message) engine.validate_answer(name, player, boards, message_type) key = util.key_pressed() board = engine.remove_player_from_board(board, player) player, show_inventory, show_legend, is_running, boards = react_to_pressed_key( key, board, boards, player, show_inventory, show_legend, is_running) message, message_type, name = engine.plot_development( player, boards, board) is_running = engine.check_health_is_zero_or_below(player, is_running)
def main(): util.clear_screen() player = create_player() player_inv = create_player_inventory() sword = create_sword() monster = create_monster() engine.get_player_stats(player) util.clear_screen() is_running = True while is_running: board1 = engine.create_board(gate1=(16, 29), gate2=(16, 0)) everyone_in_room1 = [sword, monster, player] # player should be the last one(!) coordinates_who_is_alive = collect_coordinates_who_is_alive( everyone_in_room1) # print(coordinates_who_is_alive) # This line is for test phase(!) engine.put_everyone_on_board(board1, coordinates_who_is_alive) ui.display_player_info_and_control_info(player) ui.display_board(board1) key = util.key_pressed() if key == 'q': is_running = False elif key == 'I': x = "" while x == "": ui.display_inv(player_inv) x = util.key_pressed() else: engine.refresh_player_coord(key, player, player_inv, board1, everyone_in_room1) util.clear_screen()
def play_game(): board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) player = create_player() wolf = create_wolf() ham = create_ham() list_of_movement_wolf = movement_wolf(wolf, board) is_running = True prev_field_data = None while is_running: key = key_pressed() if key == 'q': is_running = False else: player, prev_field_data, ham = change_player_positions( player, key, ham) board, prev_field_data = colision(board, player, prev_field_data, wolf, ham) board = engine.put_player_on_board(board, player, prev_field_data) wolf = change_wolf_positions(wolf, board, ham, list_of_movement_wolf) board = engine.put_wolf_on_board(board, wolf) board = engine.put_ham_on_board(board, ham) ui.display_board(board) z = ham["status"] print(f"HAPE = {hp} Mana = {mana} Potion = {pot} HamStat = {z}")
def process_game(level, player): enemies = create_enemies(level) items = create_items(level) is_running = True while is_running: board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) engine.put_player_on_board(board, player) engine.put_objects_on_board(board, items) engine.put_enemies_on_board(board, enemies) ui.display_board(board) ui.display_attributes(player, level) key = util.key_pressed() if key == 'q': is_running = False elif key == 's' or key == "w" or key == 'a' or key == 'd': handle_exit(player, level, key) move_if_valid(key, player, board) handle_meets(enemies, player) if not is_player_alive(player): print("Sorry, you died.") is_running = False handle_meets_with_items(items, player) move_enemies(enemies, player) elif key == 'c': player["health"] += 10000 else: continue
def init(): player = stats.create_player(PLAYER_START_X, PLAYER_START_Y, PLAYER_ICON) board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT, "map1") clear_screen(0) #ui.show_logo_animation(LOGO) #ui.show_story() main(player, board)
def main(): for song in playlist: player = vlc.MediaPlayer(song) player.play() player = create_player() player_stats = lore.start_lore() board = engine.create_board() util.clear_screen() for i in range(3): board = engine.create_board() monsters_alive = [] # store the still alive monster ids floorsize = enemy.pick_valid_places(board) max_monsters = enemy.max_monster_on_map(floorsize) enemys = enemy.pick_monster(enemy.monsters_dict, enemy.hero_dict, max_monsters) enemy.monster_placement(floorsize, enemys, board, monsters_alive) engine.put_player_on_board(board, player, monsters_alive, enemy.monsters_dict, floorsize, player_stats) ui.display_board(board) util.clear_screen() final_choreography()
def main(): player = create_player() is_running = True while is_running: key = key_pressed() if key == 'q': is_running = False if key == 'z': clear_screen() else: board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) board = engine.put_player_on_board(board, player) ui.display_board(board)
def main(): player = create_player() board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) ui.display_board(board, player) util.clear_screen() is_running = True while is_running: engine.put_player_on_board(board, player) ui.display_board(board, player) key = util.key_pressed().lower() engine.clear_player_previous_position(board, player[ROW], player[COL]) row = player[ROW] col = player[COL] if key == 'q': is_running = False elif key == 'd': #move right if engine.can_player_move(player, board, row, col + 1): player[COL] += 1 elif key == 'a': #move left if engine.can_player_move(player, board, row, col - 1): player[COL] -= 1 elif key == 'w': #move up if engine.can_player_move(player, board, row - 1, col): player[ROW] -= 1 elif key == 's': #move down if engine.can_player_move(player, board, row + 1, col): player[ROW] += 1 else: pass player, board = engine.check_if_change_board(player, board) util.clear_screen()
def change_player_positions(player, key, ham): board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) list_of_movement = movement(player, board) x = player["x"] y = player["y"] prev_field_data = None if key in list_of_movement: if prev_field_data == None: prev_field_data = [x, y, board[y][x]] if key == "w": player["y"] = player["y"] - 1 elif key == "s": player["y"] = player["y"] + 1 elif key == "a": player["x"] = player["x"] - 1 elif key == "d": player["x"] = player["x"] + 1 elif key == "h": ham["x"] = player["x"] ham["y"] = player["y"] ham["icon"] = 'H' ham["status"] = True return player, prev_field_data, ham
def main(): # initial level level = 'BOARD_1' # initial key key = '' menu_start.run() ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = False while level != 'WIN' and level != 'QUIT' and level != 'LOSE': util.clear_screen() pass_key_input = False view.print_table(players.data_to_print(dictionaries.player)) # Set up board global BOARD_1 global BOARD_2 global BOARD_3 # global items_u_will_use # global coordonate_of_items_that_u_will_use # player = create_player() BOARD_1 = engine.create_board() BOARD_2 = engine.create_board() BOARD_3 = engine.create_board() BOARD_1, items_u_will_use_1, coordonate_of_items_that_u_will_use_1 = engine.create_final_board(BOARD_1, little_boss_1) BOARD_2, items_u_will_use_2, coordonate_of_items_that_u_will_use_2 = engine.create_final_board(BOARD_2, little_boss_2) BOARD_3, items_u_will_use_3, coordonate_of_items_that_u_will_use_3 = engine.create_final_board(BOARD_3, boss) BOARD_1 = engine.create_board() BOARD_2 = engine.create_board() BOARD_3 = engine.create_board() util.clear_screen() is_running = True while is_running: print() print("U entered first level") print() items_u_will_use_1, coordonate_of_items_that_u_will_use_1 = engine.items_and_coordonates_that_u_can_use(BOARD_1) (BOARD_1, items_u_will_use, coordonate_of_items_that_u_will_use_1) = engine.create_final_board(BOARD_1, little_boss_1) (BOARD_1, items_u_will_use_1, coordonate_of_items_that_u_will_use_1) = engine.put_player_on_board(BOARD_1, little_boss_1) engine.move_something_and_gate(BOARD_1, player, little_boss_1, gate_1) if player['player_life'] > 0: print() print("U entered second level") print() items_u_will_use_2, coordonate_of_items_that_u_will_use_2 = engine.items_and_coordonates_that_u_can_use(BOARD_2) (BOARD_2, items_u_will_use_2, coordonate_of_items_that_u_will_use_2) = engine.create_final_board(BOARD_2, little_boss_2) engine.move_something_and_gate(BOARD_2, player, little_boss_2, gate_2) if player['player_life'] > 0: print() print("U entered the third level") print() items_u_will_use_3, coordonate_of_items_that_u_will_use_3 = engine.items_and_coordonates_that_u_can_use(BOARD_3) (BOARD_3, items_u_will_use_3, coordonate_of_items_that_u_will_use_3) = engine.create_final_board(BOARD_3, boss) engine.move_something_and_gate(BOARD_3, player, boss, gate_3) # ui.display_board(board) key = util.key_pressed() if key == 'q': is_running = False # elif key == 'i': # print(inventory) is_running = False # util.clear_screen() print(key) # break # ui.display_board(board) key = util.key_pressed() # if key == 'q': # is_running = False # elif key == 'i': # print(inventory) # util.clear_screen() print(key) # Display essential info ui.print_player_essential_atributes(dictionaries.player) # Display board ui.display_board(board) # Message panel intoduction (always displayed) ui.print_message(' MESSAGE PANEL \n' + 17 * '-' + '\n') # Interaction whit items # Display inventory if key == 'i': ui.print_message('This is your inventory content: ') ui.print_table(dictionaries.inventory) # Interaction with other characters # Insert secret code if key == "c": engine.use_secret_code(dictionaries.player, dictionaries.others, level, dictionaries.codes) # Gate and level change handling # if engine.player_enters_gate() != level: # util.clear_screen() # level = engine.player_enters_gate() if level == 'BOARD_2' or level == 'BOARD_3': dictionaries.player['position_y'] = 15 dictionaries.player['position_x'] = 3 if level == 'WIN': pass_key_input = True pass else: ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = True # Player input if pass_key_input is False: key = util.key_pressed() # Movement if pass_key_input is False: pass # engine.movement() # Check if quit if key == 'q': quit_assertion = '' while quit_assertion != 'y' and quit_assertion != 'n': util.clear_screen() print('Are you sure you want to quit? ( Y / N )') quit_assertion = util.key_pressed() if quit_assertion == 'y': level = 'QUIT' elif quit_assertion == 'n': pass else: pass if dictionaries.player['player_life'] == 0: level = 'LOSE' if level == 'WIN': util.clear_screen() ui.display_board(board) print(text2art("VICTORY!", font='block', chr_ignore=True)) elif level == 'LOSE': util.clear_screen() ui.display_board(board) print(text2art("GAME OVER!", font='block', chr_ignore=True)) time.sleep(10.7) print('\n\n\n Goodbye, see you soon!') time.sleep(1.0)
def main(): player = create_player() board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) util.clear_screen() level = 1 inventory = { "Pierogi": 5, "Bigos": 5, "Złom": 5, "Sliptape": 5, "Ropa": 5, "Działko": 5 } if level == 1: # import text from ASCII file title = ui.get_ascii("./ascii_files/poland_can_into_space.txt") # displays ASCII file with color defined by number ui.display_ascii(title, font_colors=[34], spacing=5) input(" ") os.system('cls') print("\n\n") txt = "Rok 2030. Trwa wyścig światowych mocarstw o każdy kawłek lądu. Pewnej nocy na niebie pojawia się tajemnicza anomalia... " ui.print_text(txt, font_color=33) # import text from ASCII file anomaly = ui.get_ascii("./ascii_files/saturn.txt") # displays ASCII file with color defined by number ui.display_ascii(anomaly, font_colors=[35], spacing=5) input(" ") os.system('cls') # import text from ASCII file im = ui.get_ascii("./ascii_files/roz1.txt") # displays ASCII file with color defined by number ui.display_ascii(im, font_colors=[31], spacing=1) input(" ") os.system('cls') txt = (''' Po Twojej głowie wędruje wyłącznie jedna myśl. To jest mój czas. Muszę polecieć i zbadać tajemniczą anomalię. Postanawiasz przerobić swojego Golfa 1.9 TDI pieszczotliwie nazywanego Gulfem na statek kosmiczny i niezwłocznie wyruszyć w drogę.''' ) ui.print_text(txt, font_color=33) input(" ") os.system('cls') mum_house = engine.generate_game_board_1(board) is_running = True while is_running: x = player['player_x_position'] y = player['player_y_position'] engine.add_to_inventory(player, mum_house, inventory) temporary_board = deepcopy(mum_house) engine.put_player_on_board(temporary_board, player) ui.display_board(temporary_board) engine.display_players_card(inventory) # print(f"Player position: ({x},{y})") key = util.key_pressed() if key == 'q': is_running = False else: engine.player_moves(key, mum_house, player) util.clear_screen() pass_condition = engine.chceck_inventory(inventory, level) if engine.exit_board(level, player) == True: if pass_condition == True: is_running = False level = 2 else: is_running = True if level == 2: txt = ( '''Wyszedłeś na miasto. Uzupełnij zasoby, zdobądź paliwo, osłony i działa do statku.''' ) ui.print_text(txt, font_color=33) input(" ") os.system('cls') city = engine.generate_game_board_2(board) is_running = True while is_running: x = player['player_x_position'] y = player['player_y_position'] engine.add_to_inventory(player, city, inventory) temporary_board = deepcopy(city) engine.put_player_on_board(temporary_board, player) ui.display_board(temporary_board) engine.display_players_card(inventory) # print(f"Player position: ({x},{y})") key = util.key_pressed() if key == 'q': is_running = False else: engine.player_moves(key, city, player) util.clear_screen() inventory = engine.exchange_of_goods(player, inventory) engine.ferdek(player) inventory = engine.get_blasters(player, inventory) pass_condition = engine.chceck_inventory(inventory, level) if engine.exit_board(level, player) == True: if pass_condition == True: engine.going_to_the_moon() level = 3 is_running = False elif engine.exit_board(level, player) == False: is_running = True if level == 3: player['player_x_position'] = PLAYER_START_X player['player_y_position'] = PLAYER_START_Y board = engine.create_board(21, 15) util.clear_screen() board_level_2 = engine.maze_generator(board) engine.put_quizzes(board_level_2) engine.put_memes(board_level_2) is_running = True level_2 = True while is_running: engine.level_2_start() while level_2: engine.quiz_function(board_level_2, player) engine.meme_function(board_level_2, player) temporary_board = deepcopy(board_level_2) engine.put_player_on_board(temporary_board, player) engine.display_maze_status(player) ui.display_maze(temporary_board, player) key = util.key_pressed() if key == 'q': is_running = False else: engine.player_moves(key, temporary_board, player) util.clear_screen() level_4 = player['player_*'] if level_4 > 7: level = 4 is_running = False level_2 = False if level == 4: txt = ( "Po latach podrózy i licznych przeszkodach na horyzoncie ukazuje się anomalia. Aby do niej dotrzeć musisz zmierzyć się z obcymi..." ) ui.print_text(txt, font_color=33) input() os.system("cls||clear") level_3 = True player['player_x_position'] = PLAYER_START_X player['player_y_position'] = PLAYER_START_Y board_level_3 = engine.create_board(BOARD_WIDTH_lvl3, BOARD_HEIGHT_lvl3) im = ui.get_ascii( "./ascii_files/battle.txt") #import text from ASCII file ui.display_ascii( im, font_colors=[31], spacing=1) #displays ASCII file with color defined by number input() os.system('cls') counter = 0 engine.intro_lvl3() while level_3: counter += 1 temporary_board = deepcopy(board_level_3) engine.put_player_on_board(temporary_board, player) level_3 = engine.play_level3(temporary_board, player, counter) if level_3: ui.display_board(temporary_board) is_running = False util.clear_screen() level = 5 if level == 5: engine.end_game()
def main(): util.clear_screen() # player info setup name = input(f"{first_line}Podaj swoje imię: ") interaction.characters["hero"]["name"] = name util.clear_screen() text = f"{first_line}Witaj przybyszu!\n\tSłyszałem, że zwą Cię {name}.\ \n\n\tDzisiaj Twój chrześniak ma urodziny. Gówniak musi, MUSI dostać świeżaka.\ \n\tRozpieszczony smarkacz..." open_text(text) text = f"{first_line}Jak ja nie lubię szczeniaka, \ ale jak mus to mus, w końcu chrześniak." open_text(text) text = f"{first_line}Niestety, we wszystkich sklepach z rozjechanym \ robakiem już nie mają naklejek.\ \n\tZostaje Ci zebrać w inny sposób te wszystkie naklejki.\ \n\n\tRuszaj do boju, bo bez tego wstrętnego świeżaka nie uda Ci się wbić \ na imprezę.\ \n\tW końcu 8. urodziny to nie przelewki!" open_text(text, 20) text = f"{first_line}Przygotuj się na ciężkie boje, bo te wszystkie moherowe berety,\ \n\tJanusze oraz cała gimbaza nie dadzą Ci ich za darmo.\ \n\n\tAle najbardziej musisz uważać na strażników miejskich \ (cholerne pasożyty, nawet piwa nie można się napić) i Madki.\ \n\tZ nimi to już nie przelewki.\ \n\n\tNa szczęście pracownicy biedronki są zawsze po Twojej stronie, \ w końcu kończyli razem z Tobą studia." open_text(text, 20) text = f"{first_line}A więc ruszaj do boju, bo PICCOLO i 0,5l \ wody gazowanej już się dla Ciebie chłodzą!" open_text(text, 5) open_text("", 5, True) # level 1 board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) engine.get_spawn_pos(board, player) util.clear_screen() engine.put_friends_on_board(board, engine.friend_list) engine.put_enemies_on_board(board, engine.enemy_list) engine.next_level_pass(board, player) is_running = True while is_running: engine.put_player_on_board(board, player) ui.display_stats() ui.display_board(board) key = util.key_pressed() if key == "q": exit_game = "" while exit_game not in ["Y", "N"]: util.clear_screen() print(f"{first_line}Czy na pewno chcesz wyjść z gry? Y/N") exit_game = util.key_pressed().upper() if exit_game == "Y": is_running = False else: # movement level_change = engine.movement(key, player, board) if level_change: can_he_pass = engine.levels_generator(level_change) if can_he_pass: board = engine.create_board(BOARD_WIDTH, BOARD_HEIGHT) engine.get_spawn_pos(board, player) engine.next_level_pass(board, player, can_he_pass) engine.put_friends_on_board(board, engine.friend_list) engine.put_enemies_on_board(board, engine.enemy_list, can_he_pass) util.clear_screen() engine.mobs_movement(board, engine.mobs_on_board, player) engine.mobs_movement(board, engine.friends_on_board, player)
def play(player): while True: if player.level == 'enchanted_garden': board = engine.create_board(player) win, player = levels.enchanted_garden(board, player) if win == 1: player.level = 'wild_wilds' write_save_file('classes/save/player.pkl', player) continue else: player = read_save_file('classes/save/player.pkl') continue elif player.level == 'wild_wilds': board = engine.create_board(player) win, player = levels.wild_wilds(board, player) if win == 1: player.level = "castle_main_hall" write_save_file('classes/save/player.pkl', player) continue else: player = read_save_file('classes/save/player.pkl') continue elif player.level == "castle_main_hall": board = engine.create_board(player) win, player = levels.castle_main_hall(board, player) if win == 1: player.level = "castle_basement" write_save_file('classes/save/player.pkl', player) continue else: player = read_save_file('classes/save/player.pkl') continue elif player.level == "castle_basement": board = engine.create_board(player) win, player = levels.castle_basement(board, player) if win == 1: player.level = "castle_main_hall_2" write_save_file('classes/save/player.pkl', player) continue else: player = read_save_file('classes/save/player.pkl') continue elif player.level == "castle_main_hall_2": board = engine.create_board(player) win, player = levels.castle_main_hall_2(board, player) if win == 1: player.level = "tower" write_save_file('classes/save/player.pkl', player) continue else: player = read_save_file('classes/save/player.pkl') continue elif player.level == "tower": board = engine.create_board(player) win, player = levels.tower(board, player) if win == 1: player.level = "outro" continue else: player = read_save_file('classes/save/player.pkl') continue elif player.level == "outro": board = engine.create_board(player) outro(board, player)
def level_one_start(player, enemies_list, file_name): # Creating objects and items item_one = items.create_apple(10, 1) item_two = items.create_banana(23, 6) item_three = items.create_knife(15, 14) item_four = items.create_shoes(63, 5) item_five = items.create_apple(35, 27) item_six = items.create_banana(77, 2) # Creating interactions objects_one = [player, item_one] objects_two = [player, item_two] objects_three = [player, item_three] objects_four = [player, item_four] objects_five = [player, item_five] objects_six = [player, item_six] is_running = True ui.display_board(engine.create_board("Messages/message_lvl1.txt")) time.sleep(1) while is_running: key = key_pressed() clear_screen() if key == 'q': assert False board = engine.create_board(file_name) lift = player['capacity'] lift_list = lift.split("/") engine.put_gate(board, player) if int(lift_list[0]) < 100: player = engine.player_coordinates_change(key, player, board) board = engine.put_player_on_board(board, player) if player['x'] == 77 and player['y'] == 28: player['level'] = 2 is_running = False for index in range(len(enemies_list)): enemy = enemies_list[index] if enemy['HP'] > 0: enemy = engine.enemy_movement(board, enemy) board = engine.put_enemies_on_board(board, enemy) fight = engine.enemy_board_interaction(board, enemy, player) player = fight[0] enemy = fight[1] enemies_list[index] = enemy if item_one['on_board'] == 1: board = engine.put_items_on_board(board, item_one) player = objects_one[0] item_one = objects_one[1] objects_one = engine.item_board_interaction(board, item_one, player) if item_two['on_board'] == 1: board = engine.put_items_on_board(board, item_two) player = objects_two[0] item_two = objects_two[1] objects_two = engine.item_board_interaction(board, item_two, player) if item_three['on_board'] == 1: board = engine.put_items_on_board(board, item_three) player = objects_three[0] item_three = objects_three[1] objects_three = engine.item_board_interaction(board, item_three, player) if item_four['on_board'] == 1: board = engine.put_items_on_board(board, item_four) player = objects_four[0] item_four = objects_four[1] objects_four = engine.item_board_interaction(board, item_four, player) if item_five['on_board'] == 1: board = engine.put_items_on_board(board, item_five) player = objects_five[0] item_five = objects_five[1] objects_five = engine.item_board_interaction(board, item_five, player) if item_six['on_board'] == 1: board = engine.put_items_on_board(board, item_six) player = objects_six[0] item_six = objects_six[1] objects_six = engine.item_board_interaction(board, item_six, player) if player['HP'] <= 0: print("Game over") return player engine.put_gate(board, player) ui.display_board(board) ui.display_inventory(player) return player
def main(): global player player = create_player() while player['level'] == 1 and player['HP'] > 0: try: file_name = 'Levels/lvl1.txt' enemies_list = enemies.create_enemies_list(file_name) player = level_one_start(player, enemies_list, file_name) except AssertionError: break if player["HP"] <= 0: clear_screen() ui.display_board(engine.create_board("Messages/restart.txt")) key = key_pressed() if key == "n": return player if key == "y": player["HP"] = 50 player['x'] = 1 player['y'] = 1 while player['level'] == 2 and player["HP"] > 0: try: file_name = 'Levels/lvl2.txt' enemies_list = enemies.create_enemies_list(file_name) player = level_two_start(player, enemies_list, file_name) except AssertionError: break if player["HP"] <= 0: clear_screen() ui.display_board(engine.create_board("Messages/restart.txt")) if key == "n": return player if key == "y": player["HP"] = 50 player['x'] = 1 player['y'] = 1 while player['level'] == 3 and player['HP'] > 0: try: file_name = 'Levels/lvl3.txt' enemies_list = enemies.create_enemies_list(file_name) player = level_three_start(player, enemies_list, file_name) except AssertionError: break if player["HP"] <= 0: clear_screen() ui.display_board(engine.create_board("Messages/restart.txt")) key = key_pressed() if key == "n": return player if key == "y": player["HP"] = 50 player['x'] = 1 player['y'] = 1 while player['level'] == 4 and player['HP'] > 0: clear_screen() player = engine.boss(player) if player['HP'] == 0: clear_screen() ui.display_board(engine.create_board("Messages/restart.txt")) key = key_pressed() if key == "n": return player if key == "y": player['HP'] = 100 return player
def main(): MUSIC_FILE = "Cookie Monster Sings C is for Cookie.wav" mixer.init() mixer.music.load(MUSIC_FILE) mixer.music.play() view.print_images(data_manager.read_file_record('ascii-art.txt')) view.start_descriptions() # initial level level = 'BOARD_1' # initial key key = '' menu_start.run() ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = False while level != 'WIN' and level != 'QUIT' and level != 'LOSE': util.clear_screen() pass_key_input = False view.print_table(players.data_to_print(dictionaries.player)) # Set up board board = engine.create_board(dictionaries.BOARD[level]) board = engine.put_other_on_board(board, dictionaries.others, level) board = engine.put_item_on_board(board, dictionaries.items, level) board = engine.put_player_on_board(board, dictionaries.player) # Display essential info ui.print_player_essential_atributes(dictionaries.player) # Display board ui.display_board(board) # Message panel intoduction (always displayed) ui.print_message(' MESSAGE PANEL \n' + 17 * '-' + '\n') # Interaction whit items engine.item_vs_player(dictionaries.inventory, dictionaries.items, dictionaries.player, level, dictionaries.items) # Display inventory if key == 'i': ui.print_message('This is your inventory content: ') ui.print_table(dictionaries.inventory) # Display statistics if key == "p": engine.show_statistics(dictionaries.player) # Interaction with other characters if engine.player_meets_other(dictionaries.others, dictionaries.player, level, board) != False: other = engine.player_meets_other(dictionaries.others, dictionaries.player, level, board) if dictionaries.others[other]['other_type'] == 'enemy': engine.fight(dictionaries.player, dictionaries.others, other, dictionaries.inventory, dictionaries.items) elif dictionaries.others[other]['other_type'] == 'quiz': engine.player_vs_other_quiz( dictionaries.player, other, dictionaries.others, dictionaries.inventory, dictionaries.others[other]['questions']) # Insert secret code if key == "c": engine.use_secret_code(dictionaries.player, dictionaries.others, level, dictionaries.codes) # Gate and level change handling if engine.player_enters_gate( level, dictionaries.BOARD, dictionaries.player, key, dictionaries.inventory, dictionaries.others) != level: util.clear_screen() level = engine.player_enters_gate(level, dictionaries.BOARD, dictionaries.player, key, dictionaries.inventory, dictionaries.others) if level == 'BOARD_2' or level == 'BOARD_3': dictionaries.player['position_y'] = 15 dictionaries.player['position_x'] = 3 if level == 'WIN': pass_key_input = True pass else: ui.print_message('\n\n\n LEVEL %s \n\n\n' % (level[-1])) time.sleep(1.0) util.clear_screen() pass_key_input = True # Player input if pass_key_input == False: key = util.key_pressed() # Movement if pass_key_input == False: engine.movement(board, dictionaries.player, key, dictionaries.others) # Check if quit if key == 'q': quit_assertion = '' while quit_assertion != 'y' and quit_assertion != 'n': util.clear_screen() print('Are you sure you want to quit? ( Y / N )') quit_assertion = util.key_pressed() if quit_assertion == 'y': level = 'QUIT' elif quit_assertion == 'n': pass else: pass if dictionaries.player['player_life'] == 0: level = 'LOSE' if level == 'WIN': util.clear_screen() ui.display_board(board) print(text2art("VICTORY!", font='block', chr_ignore=True)) elif level == 'LOSE': util.clear_screen() ui.display_board(board) print(text2art("GAME OVER!", font='block', chr_ignore=True)) time.sleep(10.7) ui.authors_presentation() players.add_results(players.count_points(), "results.txt") print('\n\n\n Goodbye, see you soon!') time.sleep(1.0) with Image.open("cookiemonster.jpg") as img: img.show()
player['x'] = 1 player['y'] = 1 while player['level'] == 4 and player['HP'] > 0: clear_screen() player = engine.boss(player) if player['HP'] == 0: clear_screen() ui.display_board(engine.create_board("Messages/restart.txt")) key = key_pressed() if key == "n": return player if key == "y": player['HP'] = 100 return player if __name__ == '__main__': while True: clear_screen() start_screen.main() clear_screen() player = main() clear_screen() t_end = time.time() + 5 if player['level'] == 5: ui.display_board(engine.create_board("Messages/win.txt")) time.sleep(5) if player['level'] != 5: ui.display_board(engine.create_board("Messages/lose.txt")) time.sleep(5)
def main(): pygame.mixer.init() engine.sound(engine._songs[0]) level = 1 game_window = ui.create_new_game_window(ui.SCREEN_WIDTH, ui.SCREEN_HEIGHT) player = create_player() board = engine.create_board(level) # PRINT INTRO MENU SCREEN (AND QUIT GAME IF USER CHOOSE SO) if introduction_screen.intro_menu_select(game_window) == -1: return 0 # VARIABLES TO HOLD KEYBOARD AND MOUSE INPUT key = libtcod.Key() mouse = libtcod.Mouse() libtcod.console_clear(game_window) try: if level == 1: engine.sound(engine._songs[2]) while not libtcod.console_is_window_closed(): # WAIT FOR INPUT libtcod.sys_check_for_event(libtcod.EVENT_KEY_PRESS, key, mouse) # DISPLAY BOARD + PLAYER ON BOARD ui.display_board(board, game_window) ui.display_bar(player, game_window, board) engine.put_player_on_board(game_window, ui.SCREEN_WIDTH, ui.SCREEN_HEIGHT, board, player) # GATHER KEY INPUT action = handle_keys(key) move = action.get( 'move') # nazwy - do przeczytania np. should_move, is_exit go_to_inventory = action.get('go_to_inventory') fullscreen = action.get('fullscreen') exit = action.get('exit') # HANDLE USER INPUT if player["hps"] == 0: ui.final_screen(game_window, 'loose') if move: dx, dy = move player = engine.verify_move_is_possible( dx, dy, board, player, level, monsters.monsters_overview()) footsteps_sound = pygame.mixer.Sound("walk.wav") footsteps_sound.set_volume(0.2) footsteps_sound.play(maxtime=1000) if engine.is_next_level(player["position"]["x"], player["position"]["y"], board, ui.EXIT_SYMBOL): level += 1 board = engine.create_board(level) player['position']['x'] = player_def.PLAYER_START_X player['position']['y'] = player_def.PLAYER_START_Y player['lvl'] += 1 player['experience'] += level * 15 player['strenght'] += level * 15 if go_to_inventory: ui.display_inventory(player, game_window) if fullscreen: libtcod.console_set_fullscreen( not libtcod.console_is_fullscreen()) if exit: return True except IndexError: print('You went out of board bounds, please start the game again')
def create_player(): player = Person(" @", 0, 0, 0, 0, 0, 0, 0, 0, 'Tutorial') board = engine.create_board(player) tutorial(board, player) board = engine.create_board(player) gender(board, player) board = engine.create_board(player) c_type, save = char_type(board, player) util.clear_screen() while True: print() name = input('Give your character a name(max 15 characters): ') if len(name) > 15: print('Sadly it is more than 15 characters.') continue break if player.level == 2: if c_type == 1: icon = CharacterTypes.wizzard_him player = Person(icon, name, 500, 250, 75, 25, [Spells.fire, Spells.blizzard, Spells.meteor, Spells.heal], [{'item': Collectables.potion, 'quantity': 4}, {'item': Collectables.elixir, 'quantity': 2}, {'item': Collectables.mystic, 'quantity': 1}], [], 'enchanted_garden') print_character(player, " Wizard") elif c_type == 2: icon = CharacterTypes.elf_him player = Person(icon, name, 750, 165, 110, 20, [Spells.fire, Spells.heal, Spells.cure], [{'item': Collectables.elixir, 'quantity': 5}, {'item': Collectables.potion, 'quantity': 2}, {'item': Collectables.super_potion, 'quantity': 1}, {'item': Collectables.bow, 'quantity': 30}, {'item': Collectables.knife, 'quantity': 3}], [], 'enchanted_garden') print_character(player, "n Elf") elif c_type == 3: icon = CharacterTypes.zombie_him player = Person(icon, name, 850, 50, 140, 25, [Spells.zombie_bite], [{'item': Collectables.grenade, 'quantity': 5}, {'item': Collectables.bomb, 'quantity': 50}, {'item': Collectables.spider, 'quantity': 3}], [], 'enchanted_garden') print_character(player, " Zombie") elif player.level == 1: if c_type == 1: icon = CharacterTypes.wizzard_her player = Person(icon, name, 475, 260, 70, 27, [Spells.fire, Spells.blizzard, Spells.meteor, Spells.heal], [{'item': Collectables.potion, 'quantity': 4}, {'item': Collectables.elixir, 'quantity': 2}, {'item': Collectables.mystic, 'quantity': 1}], [], 'enchanted_garden') print_character(player, " Witch") elif c_type == 2: icon = CharacterTypes.elf_her player = Person(icon, name, 725, 180, 105, 22, [Spells.fire, Spells.heal, Spells.cure], [{'item': Collectables.elixir, 'quantity': 5}, {'item': Collectables.potion, 'quantity': 2}, {'item': Collectables.super_potion, 'quantity': 1}, {'item': Collectables.bow, 'quantity': 30}, {'item': Collectables.knife, 'quantity': 3}], [], 'enchanted_garden') print_character(player, "n Elf") elif c_type == 3: icon = CharacterTypes.zombie_her player = Person(icon, name, 900, 50, 140, 23, [Spells.zombie_bite], [{'item': Collectables.grenade, 'quantity': 5}, {'item': Collectables.bomb, 'quantity': 1}, {'item': Collectables.spider, 'quantity': 3}], [], 'enchanted_garden') print_character(player, " Zombie") print_message([f'Welcome {player.name}!', '', 'Once upon a time, we had a great Kingdom,', 'the Thunder Kingdom,', 'what was meant to keep peace and balance.', "", "One day from the shadow dimension of illusions", "a mysterious Big Orb appeared! :(", "It corrupted our King's mind in order to ruin the Kingdom.", f"Brave {player.name} the land needs you to bring back the peace,", "and restore the Thunder King's mind!"]) return player, save