def do_action(self): if not GameState.get_turntracker().is_player_turn(): if len(GameState.get_turntracker().get_monsters_to_move()) == 0: GameState.get_turntracker().refresh_players_and_monsters() elif self.__selection == None: monster = GameState.get_turntracker().get_monsters_to_move()[0] movement_range = monster.get_movement_range() monster_info = GameState.get_turntracker().get_monster_info(monster) x = monster_info[0] y = monster_info[1] possible_movements = MovementHelper.get_possible_movement_spaces(movement_range, x, y) new_x = -1 new_y = -1 while not OnScreenHelper.is_on_screen(new_x, new_y): random = randint(0, len(possible_movements) - 1) self.__selection = possible_movements[random] new_x = self.__selection[0] new_y = self.__selection[1] self.__monster_info = monster_info SpriteSelector.select_monster_sprite(x, y) else: x = self.__selection[0] y = self.__selection[1] GameState.get_board().reset_selected_item() SpriteSelector.select_monster_sprite(self.__monster_info[0], self.__monster_info[1]) SpriteSelector.select_monster_sprite(x, y) self.__selection = None self.__monster_info = None if len(GameState.get_turntracker().get_monsters_to_move()) == 0: GameState.get_turntracker().refresh_players_and_monsters()
def handle_event(self, event): x = event.x / Constants.DEFAULT_SPRITE_WIDTH() y = event.y / Constants.DEFAULT_SPRITE_HEIGHT() SpriteSelector.select_player_sprite(x, y)