LambdaHack-0.2.8: A roguelike game engine in early and active development

Safe HaskellNone

Game.LambdaHack.Common.Perception

Description

Actors perceiving other actors and the dungeon level.

Synopsis

Documentation

data Perception Source

The type representing the perception of a faction on a level. The total visibility holds the sum of FOVs of all actors of a given faction on the level and serves only as a speedup. The fields are not strict because often not all are used.

Constructors

Perception 

Fields

perActor :: PerActor

visible points for each actor

ptotal :: PerceptionVisible

sum over all actors

psmell :: PerceptionVisible

sum over actors that can smell

totalVisible :: Perception -> EnumSet PointSource

The set of tiles visible by at least one hero.

smellVisible :: Perception -> EnumSet PointSource

The set of tiles smelled by at least one hero.

actorSeesLoc :: Perception -> ActorId -> Point -> BoolSource

Whether an actor can see a position.

type FactionPers = EnumMap LevelId PerceptionSource

Perception of a single faction, indexed by level identifier.

type Pers = EnumMap FactionId FactionPersSource

Perception indexed by faction identifier. This can't be added to FactionDict, because clients can't see it.