antisplice-0.12.1.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 

Instances

MonadTrans StereoBuilderT 
MonadError SplErr m0 => MonadError SplErr (StereoBuilderT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (StereoBuilderT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (StereoBuilderT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (StereoBuilderT m0) 
ChannelPrinter PlayerId m0 => ChannelPrinter PlayerId (StereoBuilderT m0) 
(MonadDungeon m0, ChannelPrinter PlayerId m0) => Broadcaster PlayerId (StereoBuilderT m0) 
Monad m => Monad (StereoBuilderT m) 
Functor m => Functor (StereoBuilderT m) 
MonadIO m0 => MonadIO (StereoBuilderT m0) 
MonadCounter m0 => MonadCounter (StereoBuilderT m0) 
MonadAtoms m0 => MonadAtoms (StereoBuilderT m0) 
MonadVocab m0 => MonadVocab (StereoBuilderT m0) 
MonadPrinter m0 => MonadPrinter (StereoBuilderT m0) 
MonadFinalizer m0 => MonadFinalizer (StereoBuilderT m0) 
MonadScanner m0 => MonadScanner (StereoBuilderT m0) 
MonadExpand m0 => MonadExpand (StereoBuilderT m0) 
ExpanderEnv m0 => ExpanderEnv (StereoBuilderT m0) 
MonadRandom m0 => MonadRandom (StereoBuilderT m0) 
MonadClock m0 => MonadClock (StereoBuilderT m0) 
ExtendedPrinter m0 => ExtendedPrinter (StereoBuilderT m0) 
MonadDungeon m0 => MonadDungeon (StereoBuilderT m0) 
MonadPlayer m0 => MonadPlayer (StereoBuilderT m0) 
MonadObject m0 => MonadObject (StereoBuilderT m0) 
MonadRoom m0 => MonadRoom (StereoBuilderT m0) 
MonadSpawn m0 => MonadSpawn (StereoBuilderT m0) 
HistoryEnv m0 => HistoryEnv (StereoBuilderT m0) 

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 :: PlayerStereoSource

Default stereotype.