implemented homeScorePrompt
This commit is contained in:
parent
bd561bb7a8
commit
0eb56cda81
|
@ -30,6 +30,7 @@ import qualified UI.NCurses as C
|
||||||
|
|
||||||
import Mtlstats.Actions
|
import Mtlstats.Actions
|
||||||
import Mtlstats.Menu
|
import Mtlstats.Menu
|
||||||
|
import Mtlstats.Prompt
|
||||||
import Mtlstats.Types
|
import Mtlstats.Types
|
||||||
|
|
||||||
-- | Event handler
|
-- | Event handler
|
||||||
|
@ -41,6 +42,10 @@ handleEvent e = gets (view progMode) >>= \case
|
||||||
MainMenu -> menuHandler mainMenu e
|
MainMenu -> menuHandler mainMenu e
|
||||||
NewSeason -> menuHandler newSeasonMenu e >> return True
|
NewSeason -> menuHandler newSeasonMenu e >> return True
|
||||||
NewGame gs
|
NewGame gs
|
||||||
| null $ gs ^. gameType ->
|
| null $ gs ^. gameType -> do
|
||||||
menuHandler gameTypeMenu e >> return True
|
menuHandler gameTypeMenu e
|
||||||
|
return True
|
||||||
|
| null $ gs ^. homeScore -> do
|
||||||
|
promptHandler homeScorePrompt e
|
||||||
|
return True
|
||||||
| otherwise -> undefined
|
| otherwise -> undefined
|
||||||
|
|
|
@ -23,7 +23,9 @@ module Mtlstats.Prompt (
|
||||||
-- * Prompt Functions
|
-- * Prompt Functions
|
||||||
drawPrompt,
|
drawPrompt,
|
||||||
promptHandler,
|
promptHandler,
|
||||||
numPrompt
|
numPrompt,
|
||||||
|
-- * Individual prompts
|
||||||
|
homeScorePrompt
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad (when)
|
import Control.Monad (when)
|
||||||
|
@ -73,3 +75,7 @@ numPrompt pStr act = Prompt
|
||||||
, promptAction = \inStr -> forM_ (readMaybe inStr) act
|
, promptAction = \inStr -> forM_ (readMaybe inStr) act
|
||||||
, promptFunctionKey = const $ return ()
|
, promptFunctionKey = const $ return ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
homeScorePrompt :: Prompt
|
||||||
|
homeScorePrompt = numPrompt "Home score: " $
|
||||||
|
modify . (progMode . homeScoreL ?~)
|
||||||
|
|
|
@ -38,6 +38,7 @@ module Mtlstats.Types (
|
||||||
-- ** ProgState Lenses
|
-- ** ProgState Lenses
|
||||||
database,
|
database,
|
||||||
progMode,
|
progMode,
|
||||||
|
inputBuffer,
|
||||||
-- ** GameState Lenses
|
-- ** GameState Lenses
|
||||||
gameType,
|
gameType,
|
||||||
homeScore,
|
homeScore,
|
||||||
|
@ -110,10 +111,12 @@ type Action a = StateT ProgState Curses a
|
||||||
|
|
||||||
-- | Represents the program state
|
-- | Represents the program state
|
||||||
data ProgState = ProgState
|
data ProgState = ProgState
|
||||||
{ _database :: Database
|
{ _database :: Database
|
||||||
-- ^ The data to be saved
|
-- ^ The data to be saved
|
||||||
, _progMode :: ProgMode
|
, _progMode :: ProgMode
|
||||||
-- ^ The program's mode
|
-- ^ The program's mode
|
||||||
|
, _inputBuffer :: String
|
||||||
|
-- ^ Buffer for user input
|
||||||
} deriving (Eq, Show)
|
} deriving (Eq, Show)
|
||||||
|
|
||||||
-- | The game state
|
-- | The game state
|
||||||
|
@ -359,8 +362,9 @@ awayScoreL = lens
|
||||||
-- | Constructor for a 'ProgState'
|
-- | Constructor for a 'ProgState'
|
||||||
newProgState :: ProgState
|
newProgState :: ProgState
|
||||||
newProgState = ProgState
|
newProgState = ProgState
|
||||||
{ _database = newDatabase
|
{ _database = newDatabase
|
||||||
, _progMode = MainMenu
|
, _progMode = MainMenu
|
||||||
|
, _inputBuffer = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
-- | Constructor for a 'GameState'
|
-- | Constructor for a 'GameState'
|
||||||
|
|
|
@ -26,6 +26,7 @@ import Lens.Micro ((^.))
|
||||||
import qualified UI.NCurses as C
|
import qualified UI.NCurses as C
|
||||||
|
|
||||||
import Mtlstats.Menu
|
import Mtlstats.Menu
|
||||||
|
import Mtlstats.Prompt
|
||||||
import Mtlstats.Types
|
import Mtlstats.Types
|
||||||
|
|
||||||
-- | Drawing function
|
-- | Drawing function
|
||||||
|
@ -39,7 +40,8 @@ draw s = do
|
||||||
MainMenu -> drawMenu mainMenu
|
MainMenu -> drawMenu mainMenu
|
||||||
NewSeason -> drawMenu newSeasonMenu
|
NewSeason -> drawMenu newSeasonMenu
|
||||||
NewGame gs
|
NewGame gs
|
||||||
| null $ gs ^. gameType -> drawMenu gameTypeMenu
|
| null $ gs ^. gameType -> drawMenu gameTypeMenu
|
||||||
| otherwise ->undefined
|
| null $ gs ^. homeScore -> drawPrompt homeScorePrompt s
|
||||||
|
| otherwise -> undefined
|
||||||
C.render
|
C.render
|
||||||
void $ C.setCursorMode cm
|
void $ C.setCursorMode cm
|
||||||
|
|
Loading…
Reference in New Issue
Block a user