Adventure Docs
Fall 2025
API

# Area

o1.adventure.Area
class Area(var `name`: String, var `description`: String)

The class `Area` represents locations in a text adventure game world. A game world consists of areas. In general, an “area” can be pretty much anything: a room, a building, an acre of forest, or something completely different. What different areas have in common is that players can be located in them and that they can have exits leading to other, neighboring areas. An area also has a name and a description.

## Parameters

description

  a basic description of the area (typically not including information about items)

name

  the name of the area

## Attributes

Graph
Supertypes
  class Object
  trait Matchable
  class Any

## Members list

### Value members

#### Concrete methods

def addItem(`item`: Item): Unit

Places an item in the area so that it can be, for instance, picked up.

Places an item in the area so that it can be, for instance, picked up.

## Attributes

def contains(`itemName`: String): Boolean

Determines if the area contains an item of the given name.

Determines if the area contains an item of the given name.

## Attributes

def fullDescription: String

Returns a multi-line description of the area as a player sees it. This includes a basic description of the area as well as information about exits and items. If there are no items present, the return value has the form "DESCRIPTION\n\nExits available: DIRECTIONS SEPARATED BY SPACES". If there are one or more items present, the return value has the form "DESCRIPTION\nYou see here: ITEMS SEPARATED BY SPACES\n\nExits available: DIRECTIONS SEPARATED BY SPACES". The items and directions are listed in an arbitrary order.

Returns a multi-line description of the area as a player sees it. This includes a basic description of the area as well as information about exits and items. If there are no items present, the return value has the form "DESCRIPTION\n\nExits available: DIRECTIONS SEPARATED BY SPACES". If there are one or more items present, the return value has the form "DESCRIPTION\nYou see here: ITEMS SEPARATED BY SPACES\n\nExits available: DIRECTIONS SEPARATED BY SPACES". The items and directions are listed in an arbitrary order.

## Attributes

def neighbor(`direction`: String): Option[Area]

Returns the area that can be reached from this area by moving in the given direction. The result is returned in an `Option`; `None` is returned if there is no exit in the given direction.

Returns the area that can be reached from this area by moving in the given direction. The result is returned in an `Option`; `None` is returned if there is no exit in the given direction.

## Attributes

def removeItem(`itemName`: String): Option[Item]

Removes the item of the given name from the area, assuming an item with that name was there to begin with. Returns the removed item wrapped in an `Option` or `None` in the case there was no such item present.

Removes the item of the given name from the area, assuming an item with that name was there to begin with. Returns the removed item wrapped in an `Option` or `None` in the case there was no such item present.

## Attributes

def setNeighbor(`direction`: String, `neighbor`: Area): Unit

Adds an exit from this area to the given area. The neighboring area is reached by moving in the specified direction from this area.

Adds an exit from this area to the given area. The neighboring area is reached by moving in the specified direction from this area.

## Attributes

def setNeighbors(`exits`: Vector[(String, Area)]): Unit

Adds exits from this area to the given areas. Calling this method is equivalent to calling the `setNeighbor` method on each of the given direction–area pairs.

Adds exits from this area to the given areas. Calling this method is equivalent to calling the `setNeighbor` method on each of the given direction–area pairs.

## Parameters

exits

  contains pairs consisting of a direction and the neighboring area in that direction

## Attributes

See also

  setNeighbor

override def toString: String

Returns a single-line description of the area for debugging purposes.

Returns a single-line description of the area for debugging purposes.

## Attributes

Definition Classes
  Any

#### Concrete fields

var description: String
var name: String