Safe Haskell | None |
---|---|
Language | Haskell2010 |
Game.LambdaHack.Content.PlaceKind
Contents
Description
The type of place kinds. Every room in the game is an instantiated place kind.
Synopsis
- data PlaceKind = PlaceKind {}
- makeData :: ContentData TileKind -> [PlaceKind] -> [GroupName PlaceKind] -> [GroupName PlaceKind] -> ContentData PlaceKind
- data Cover
- data Fence
- data PlaceEntry
- deadEndId :: ContentId PlaceKind
- overridePlaceKind :: [(Char, GroupName TileKind)] -> PlaceKind -> PlaceKind
- override2PlaceKind :: [(Char, GroupName TileKind)] -> [(Char, GroupName TileKind)] -> PlaceKind -> PlaceKind
- validateSingle :: ContentData TileKind -> PlaceKind -> [Text]
- validateAll :: [PlaceKind] -> ContentData PlaceKind -> [Text]
Documentation
Parameters for the generation of small areas within a dungeon level.
Constructors
PlaceKind | |
Fields
|
makeData :: ContentData TileKind -> [PlaceKind] -> [GroupName PlaceKind] -> [GroupName PlaceKind] -> ContentData PlaceKind Source #
A method of filling the whole area (except for CVerbatim and CMirror, which are just placed in the middle of the area) by transforming a given corner.
Constructors
CAlternate | reflect every other corner, overlapping 1 row and column |
CStretch | fill symmetrically 4 corners and stretch their borders |
CReflect | tile separately and symmetrically quarters of the place |
CVerbatim | just build the given interior, without filling the area |
CMirror | build the given interior in one of 4 mirrored variants |
Instances
The choice of a fence type for the place.
Constructors
FWall | put a solid wall fence around the place |
FFloor | leave an empty space, like the room's floor |
FGround | leave an empty space, like the cave's ground |
FNone | skip the fence and fill all with the place proper |
Instances
data PlaceEntry Source #
Places are rooms and other dungeon features, their names can be seen
on a level map by aiming at a position that is an entry to the place
(an individual entrance point, an approach area around the place
or a phantom entry not on the map, but only used for statistics
to witness the place exists). Entries are proxies for initial places
created on the level (which may be otherwise eradicated by burrowing
the walls, etc.) and so used for dungeon statistics.
The statistics are presented in the Dashboard/displace place lore
menu.
Constructors
PEntry (ContentId PlaceKind) | |
PAround (ContentId PlaceKind) | |
PExists (ContentId PlaceKind) |
Instances
override2PlaceKind :: [(Char, GroupName TileKind)] -> [(Char, GroupName TileKind)] -> PlaceKind -> PlaceKind Source #
Internal operations
validateSingle :: ContentData TileKind -> PlaceKind -> [Text] Source #
Catch invalid place kind definitions. In particular, verify that the top-left corner map is rectangular and not empty.
validateAll :: [PlaceKind] -> ContentData PlaceKind -> [Text] Source #
Validate all place kinds.