def event_handler(game_state, player): """ =========================================================================== Handles keyboard/mouse inputs. Called every frame. :param game_state: current state as a string (ie. Main_Menu, Settings, etc) :param player: current instance of player class (should only be one) :return: input action (ie, moving left or right), new game_state =========================================================================== """ now = datetime.datetime.now() global game_is_saved global room_is_populated player_action = 'idle' if Entity.Enemy.numberOfOnscreenEnemies == 0 and not game_is_saved: game_is_saved = save_game(player) for event in pygame.event.get(): if event.type == Helper.UPDATETIME: message = TimeOfDay.TimeOfDay.update_time_of_day(now) if message is not None and len(message) > 0: display_messages.append(message) if event.type == QUIT: game_state = 'Quit' elif event.type == KEYDOWN: if event.key == K_ESCAPE: game_state = 'Main_Menu' elif event.type == MOUSEBUTTONDOWN: player_action = Inputs.read_mouse_down(event.pos) elif event.type == MOUSEBUTTONUP: player_action = Inputs.read_mouse_up(event.pos) if not room_is_populated: room_is_populated = populate_current_room() if not Player.Player.is_moving and not Player.Player.isLeavingRoom: if len(Entity.enemy_list) == 0: Player.Player.isLeavingRoom = True Room.advance_room() clean_room() # random roll for item if random.random() > 0.75: display_messages.append('Received a weapon!') Player.Player.Inventory.add_item( Item.Weapon(add_to_backpack=True)) Player.Player.Backpack.add_item(Player.Player.Inventory) if Room.current_room.position[1] >= Room.current_room_x\ and Player.Player.isLeavingRoom: Player.Player.isLeavingRoom = False game_is_saved = False room_is_populated = False return player_action, game_state
def event_handler(game_state, player): """ =========================================================================== Handles keyboard/mouse inputs. Called every frame. :param game_state: current state as a string (ie. Main_Menu, Settings, etc) :param player: current instance of player class (should only be one) :return: input action (ie, moving left or right), new game_state =========================================================================== """ now = datetime.datetime.now() global game_is_saved global room_is_populated player_action = 'idle' if Entity.Enemy.numberOfOnscreenEnemies == 0 and game_is_saved is False: game_is_saved = save_game(player) for event in pygame.event.get(): if event.type == Helper.UPDATETIME: TimeOfDay.TimeOfDay.update_time_of_day(now) if event.type == QUIT: game_state = 'Quit' elif event.type == KEYDOWN: if event.key == K_ESCAPE: game_state = 'Main_Menu' elif event.key == K_m: print_data() elif event.type == MOUSEBUTTONDOWN: player_action = Inputs.read_mouse_movements(event.pos) if not room_is_populated: room_is_populated = populate_current_room() # if Entity.Enemy.numberOfOnscreenEnemies < 3: # Entity.enemy_list.append(Entity.Enemy()) # elif event.key == K_h and Entity.Enemy.numberOfOnscreenEnemies > 0: # for enemy in Entity.enemy_list: # enemy.__del__() todo: remove if not Player.Player.is_moving and not Player.Player.isLeavingRoom: if len(Entity.enemy_list) == 0: Player.Player.isLeavingRoom = True Room.advance_room() clean_room() if Room.current_room.position[1] >= Room.current_room_x\ and Player.Player.isLeavingRoom: Player.Player.isLeavingRoom = False game_is_saved = False room_is_populated = False return player_action, game_state