antisplice-0.17.0.0: An engine for text-based dungeons.

Safe HaskellNone

Game.Antisplice.MaskedSkills

Description

Provides operators for composing masked consumers

Synopsis

Documentation

data MaskedConsumer r Source

A special consumer whose conditions and actions rely on evaluation result masks

Constructors

MasCon [PredMaskCond r] [PostMaskHandler r] 

data PostMaskHandler r Source

A special handler that relies on an evaluation result post-processing mask

Constructors

forall po pr pt . (PostMask po r pr, Tuplify pr pt) => PMHandler po (pt -> Handler) 

data PredMaskCond r Source

A special condition that relies on an evaluation result predicate mask

Constructors

forall p . PredMask p r => PMCond p 

(&->) :: (PostMask po r pr, Tuplify pr pt) => po -> (pt -> Handler) -> MaskedConsumer rSource

Composes a masked consumer from an evaluation result post-processing mask and a handler that relies on its result

(-&?->) :: (CombiMask cm r pm pom, PredMask pm r, PostMask pom r por, Tuplify por pot) => cm -> (pot -> Handler) -> r -> MaskedConsumer rSource

Composes a masked consumer from an evaluation result combi mask and a handler that relies on its possible result. Takes a third parameter for the correct type. In most cases you'll want &?-> instead.

(&?->) :: (CombiMask cm r pm pom, PredMask pm r, PostMask pom r por, Tuplify por pot) => cm -> (pot -> Handler) -> MaskedConsumer rSource

Composes a masked consumer from an evaluation result combi mask and a handler that relies on its possible result.

(+?) :: PredMask p r => MaskedConsumer r -> p -> MaskedConsumer rSource

Adds an evaluation result predicate mask to a masked consumer.

(+&) :: MaskedConsumer r -> MaskedConsumer r -> MaskedConsumer rSource

Concatenates two masked consumers.