packages feed

nomyx-core-1.0.0: src/Nomyx/Core/Engine.hs

-- | Warning: Nomyx internals (not required to compose rules and play the game)
-- This module implements game engine.
-- the module manages the effects of rules over each others.
module Nomyx.Core.Engine(
   -- * Game management
   GameEvent(..),
   RuleEv(..),
   LoggedGame(..),
   GameName,
   Game(..),
   GameDesc(..),
   RuleEventInfo(..),
   execGameEvent, execGameEvent',
   execWithGame, execWithGame',
   game,
   emptyGame,
   getLoggedGame,
   gameName, gameDesc,
   players,
   getVictorious,

   -- * Variables management
   Var(..),

   -- * Rules management
   activeRules, pendingRules, rejectedRules,

   -- * Events management
   events,
   getEventInfo,
   EvalState(..),
   defaultEvalConf,

   -- * Outputs management
   Output(..),
   Log(..),
   evalOutput,
   isOutput,

   -- * Time
   currentTime,
   getTimeEvents,
   -- * Misc
   tracePN,
   getChoiceEvents,
   runEvaluate,
   withEvent',
   saveModule,
   defaultEvalEnv
   ) where

import           Nomyx.Core.Engine.Evaluation
import           Nomyx.Core.Engine.GameEvents
import           Nomyx.Core.Engine.Test
import           Nomyx.Core.Engine.Types
import           Nomyx.Core.Engine.Utils
import           Imprevu.Evaluation.Utils