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

Safe HaskellNone



Actors perceiving other actors and the dungeon level.



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.




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.