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

Safe HaskellNone

Game.Antisplice.Stereos

Contents

Synopsis

Primitives

statsStereo :: ((StatKey -> Int) -> StatKey -> Int) -> PlayerStereoSource

Create a stereotype that carries a stats modifier

skillsStereo :: [Skill] -> PlayerStereoSource

Create a stereotype that carries skills

skillStereoM :: Monad m => m Skill -> m PlayerStereoSource

Create a stereotype that carries a skill from a monadic composition

Dealing with players

addStereo :: MonadPlayer m => Atom PlayerStereo -> m ()Source

Add the given stereotype to the current player.

replaceStereo :: MonadPlayer m => Atom PlayerStereo -> Atom PlayerStereo -> m ()Source

Remove one stereotype and add another

Registration

registerStereo :: MonadAtoms m => PlayerStereo -> m (Atom PlayerStereo)Source

Register the given stereotype and return its atom.

registerStereoM :: MonadAtoms m => StereoBuilderT m () -> m (Atom PlayerStereo)Source

Process the builder chain and register the resulting stereotype

Builder

newtype StereoBuilderT m a Source

For monadic stereotype construction

Constructors

StereoBuilder 

mergeStereo :: Monad m => PlayerStereo -> StereoBuilderT m ()Source

Merge the given pure stereotype into the built one

mergeStereoM :: Monad m => m PlayerStereo -> StereoBuilderT m ()Source

Merge the given monadic stereotype into the built one

mergeSkill :: MonadVocab m => Skill -> StereoBuilderT m ()Source

Merge the given pure skill into the built stereotype

mergeSkillM :: MonadVocab m => m Skill -> StereoBuilderT m ()Source

Merge the given monadic skill into the built stereotype

Default stereos

defaultStereo :: MonadVocab m => m PlayerStereoSource

Default stereotype.