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)