Safe Haskell | None |
---|
This module implements game engine (for the nomyx language, see Language.Nomyx)
- type GameName = String
- data Game = Game {
- _gameName :: GameName
- _gameDesc :: GameDesc
- _rules :: [RuleInfo]
- _players :: [PlayerInfo]
- _variables :: [Var]
- _events :: [EventHandler]
- _outputs :: [Output]
- _victory :: Maybe VictoryCond
- _logs :: [Log]
- _currentTime :: UTCTime
- data GameDesc = GameDesc {}
- emptyGame :: GameName -> GameDesc -> UTCTime -> Game
- data Var = forall a . (Typeable a, Show a) => Var {
- _vRuleNumber :: RuleNumber
- _vName :: String
- vData :: a
- data EventHandler where
- EH :: Typeable e => {
- _eventNumber :: EventNumber
- _ruleNumber :: RuleNumber
- event :: Event e
- handler :: (EventNumber, EventData e) -> Nomex ()
- _evStatus :: Status
- EH :: Typeable e => {
- data Status
- data Output = Output {}
- data Log = Log {}
- data SubmitRule = SubmitRule RuleName RuleDesc RuleCode
- oStatus :: Lens Output Status
- output :: Lens Output (NomexNE String)
- oPlayerNumber :: Lens Output (Maybe PlayerNumber)
- oRuleNumber :: Lens Output RuleNumber
- outputNumber :: Lens Output OutputNumber
- vName :: Lens Var String
- vRuleNumber :: Lens Var RuleNumber
- evStatus :: Lens EventHandler Status
- ruleNumber :: Lens EventHandler RuleNumber
- eventNumber :: Lens EventHandler EventNumber
- agora :: Lens GameDesc String
- desc :: Lens GameDesc String
- currentTime :: Lens Game UTCTime
- logs :: Lens Game [Log]
- victory :: Lens Game (Maybe VictoryCond)
- outputs :: Lens Game [Output]
- events :: Lens Game [EventHandler]
- variables :: Lens Game [Var]
- players :: Lens Game [PlayerInfo]
- rules :: Lens Game [RuleInfo]
- gameDesc :: Lens Game GameDesc
- gameName :: Lens Game GameName
Game
The state of the game:
Game | |
|
Variables
stores the variable's data
forall a . (Typeable a, Show a) => Var | |
|
Events
data EventHandler whereSource
EH :: Typeable e => EventNumber -> RuleNumber -> Event e -> ((EventNumber, EventData e) -> Nomex ()) -> Status -> EventHandler | |
|
Outputs
Logs
Rules
data SubmitRule Source
events :: Lens Game [EventHandler]Source
players :: Lens Game [PlayerInfo]Source