{-# OPTIONS_HADDOCK hide #-} {-# LANGUAGE NoImplicitPrelude #-} module Imj.Game.Hamazed.Level.Types ( Level(..) , LevelFinished(..) , MessageState(..) , GameStops(..) , firstLevel , lastLevel ) where import Imj.Prelude import Imj.Timing data Level = Level { _levelNumber :: !Int -- ^ From 1 to 12 , _levelTarget :: !Int -- ^ The /target number/ , _levelStatus :: !(Maybe LevelFinished) } data LevelFinished = LevelFinished { _levelFinishedResult :: !GameStops -- ^ Lost or won , _levelFinishedWhen :: !SystemTime , _levelFinishedCurrentMessage :: !MessageState } data MessageState = InfoMessage | ContinueMessage deriving(Eq, Show) data GameStops = Lost Text -- ^ 'Text' is the reason why the 'Level' was lost. | Won -- | 12 lastLevel :: Int lastLevel = 12 -- | 1 firstLevel :: Int firstLevel = 1