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 move(self, current_x, current_y, x, y, board, sprite_swapper): possible_movements = MovementHelper.get_possible_movement_spaces(self.get_movement_range(), current_x, current_y) # if we can move there and there is a blank sprite if [x,y] in possible_movements and board.get_sprite(x, y).is_blank(): sprite_swapper.swap_sprites(x, y, current_x, current_y, board)