implemented setHomeGame and setAwayGame
This commit is contained in:
+17
-1
@@ -19,13 +19,17 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-}
|
||||
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
|
||||
module Mtlstats.Actions
|
||||
( startNewSeason
|
||||
, resetYtd
|
||||
, startNewGame
|
||||
, setHomeGame
|
||||
, setAwayGame
|
||||
) where
|
||||
|
||||
import Lens.Micro ((.~), (%~))
|
||||
import Lens.Micro (over, (&), (.~), (%~))
|
||||
|
||||
import Mtlstats.Types
|
||||
|
||||
@@ -44,3 +48,15 @@ startNewGame :: ProgState -> ProgState
|
||||
startNewGame
|
||||
= (progMode .~ NewGame newGameState)
|
||||
. (database . dbGames .~ 0)
|
||||
|
||||
-- | Sets the game type to 'HomeGame'
|
||||
setHomeGame :: ProgState -> ProgState
|
||||
setHomeGame = over progMode $ \case
|
||||
NewGame gs -> NewGame (gs & gameType .~ Just HomeGame)
|
||||
_ -> NewGame $ newGameState & gameType .~ Just HomeGame
|
||||
|
||||
-- | Sets the game type to 'AwayGame'
|
||||
setAwayGame :: ProgState -> ProgState
|
||||
setAwayGame = over progMode $ \case
|
||||
NewGame gs -> NewGame (gs & gameType .~ Just AwayGame)
|
||||
_ -> NewGame $ newGameState & gameType .~ Just AwayGame
|
||||
|
||||
@@ -22,7 +22,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
module Mtlstats.Events (handleEvent) where
|
||||
|
||||
import Control.Monad.Trans.State (StateT, gets, modify)
|
||||
import Lens.Micro ((.~))
|
||||
import Lens.Micro ((^.), (.~))
|
||||
import Lens.Micro.Extras (view)
|
||||
import qualified UI.NCurses as C
|
||||
|
||||
@@ -38,6 +38,8 @@ handleEvent
|
||||
handleEvent e = do
|
||||
m <- gets $ view progMode
|
||||
case m of
|
||||
MainMenu -> menuHandler mainMenu e
|
||||
NewSeason -> menuHandler newSeasonMenu e >> return True
|
||||
NewGame _ -> return True
|
||||
MainMenu -> menuHandler mainMenu e
|
||||
NewSeason -> menuHandler newSeasonMenu e >> return True
|
||||
NewGame gs -> if null $ gs ^. gameType
|
||||
then menuHandler gameTypeMenu e >> return True
|
||||
else undefined
|
||||
|
||||
+12
-2
@@ -25,11 +25,12 @@ module Mtlstats.Menu (
|
||||
menuHandler,
|
||||
-- * Menus
|
||||
mainMenu,
|
||||
newSeasonMenu
|
||||
newSeasonMenu,
|
||||
gameTypeMenu
|
||||
) where
|
||||
|
||||
import Control.Monad.Trans.State (StateT, modify)
|
||||
import Lens.Micro ((^.))
|
||||
import Lens.Micro ((^.), (.~))
|
||||
import qualified UI.NCurses as C
|
||||
|
||||
import Mtlstats.Actions
|
||||
@@ -67,3 +68,12 @@ newSeasonMenu = Menu "*** SEASON TYPE ***" ()
|
||||
, MenuItem '2' "Playoffs" $
|
||||
modify startNewGame
|
||||
]
|
||||
|
||||
-- | The game type menu (home/away)
|
||||
gameTypeMenu :: Menu ()
|
||||
gameTypeMenu = Menu "*** GAME TYPE ***" ()
|
||||
[ MenuItem '1' "Home Game" $
|
||||
modify setHomeGame
|
||||
, MenuItem '2' "Away Game" $
|
||||
modify setAwayGame
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user