Raise exceptions for out-of-bounds points that are passed into Map helper methods
This commit is contained in:
		
							parent
							
								
									4b09d467d1
								
							
						
					
					
						commit
						42cfb78ba3
					
				
					 1 changed files with 15 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -25,8 +25,9 @@ class Map:
 | 
			
		|||
        self.configuration = config
 | 
			
		||||
 | 
			
		||||
        map_size = config.map_size
 | 
			
		||||
        shape = map_size.numpy_shape
 | 
			
		||||
        self._bounds = Rect(Point(), map_size)
 | 
			
		||||
 | 
			
		||||
        shape = map_size.numpy_shape
 | 
			
		||||
        self.tiles = np.full(shape, fill_value=Empty, order='F')
 | 
			
		||||
 | 
			
		||||
        self.up_stairs = generator.up_stairs
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +48,7 @@ class Map:
 | 
			
		|||
    @property
 | 
			
		||||
    def bounds(self) -> Rect:
 | 
			
		||||
        '''The bounds of the map'''
 | 
			
		||||
        return Rect(Point(), self.size)
 | 
			
		||||
        return self._bounds
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def size(self) -> Size:
 | 
			
		||||
| 
						 | 
				
			
			@ -87,11 +88,21 @@ class Map:
 | 
			
		|||
 | 
			
		||||
    def tile_is_walkable(self, point: Point) -> bool:
 | 
			
		||||
        '''Return True if the tile at the given point is walkable'''
 | 
			
		||||
        return self.tile_is_in_bounds(point) and self.tiles[point.x, point.y]['walkable']
 | 
			
		||||
        if not self.tile_is_in_bounds(point):
 | 
			
		||||
            raise ValueError(f'Point {point!s} is not in bounds')
 | 
			
		||||
        return self.tiles[point.numpy_index]['walkable']
 | 
			
		||||
 | 
			
		||||
    def point_is_visible(self, point: Point) -> bool:
 | 
			
		||||
        '''Return True if the point is visible to the player'''
 | 
			
		||||
        if not self.tile_is_in_bounds(point):
 | 
			
		||||
            raise ValueError(f'Point {point!s} is not in bounds')
 | 
			
		||||
        return self.visible[point.numpy_index]
 | 
			
		||||
 | 
			
		||||
    def point_is_explored(self, point: Point) -> bool:
 | 
			
		||||
        '''Return True if the tile at the given point has been explored by the player'''
 | 
			
		||||
        return self.tile_is_in_bounds(point) and self.explored[point.x, point.y]
 | 
			
		||||
        if not self.tile_is_in_bounds(point):
 | 
			
		||||
            raise ValueError(f'Point {point!s} is not in bounds')
 | 
			
		||||
        return self.explored[point.numpy_index]
 | 
			
		||||
 | 
			
		||||
    def highlight_points(self, points: Iterable[Point]):
 | 
			
		||||
        '''Update the highlight graph with the list of points to highlight.'''
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue