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

Safe HaskellNone

Game.Antisplice.Monad.Vocab

Description

Provides a monad that collects vocab during dungeon construction and reproduces it later.

Synopsis

Documentation

data Token Source

Algebraic type for primitive and complex tokens.

Constructors

Unintellegible String 
Verb String 
Prep String 
Noun String 
Adj String 
Ordn Int String 
Fixe String 
Skilln String 
Nounc [String] (Maybe Int) String

Complex noun, with attributes and maybe ordinal index.

Instances

newtype VocabT m a Source

The vocab monad. Carries the currently noun vocab as its state.

Constructors

Vocab 

Fields

runVocabT :: TST Token -> m (a, TST Token)
 

Instances

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

class Monad m => MonadVocab m whereSource

Tyepclass for all vocab-memorizing monads.

Methods

lookupVocab :: String -> m TokenSource

Lookup a word and return its token.

insertVocab :: String -> (String -> Token) -> m ()Source

Learn a new word.

vocabKnown :: String -> m BoolSource

Check if a word is already known.