implemented startNewGame
This commit is contained in:
parent
ca60d71006
commit
c300542635
|
@ -41,4 +41,6 @@ resetYtd
|
|||
|
||||
-- | Starts a new game
|
||||
startNewGame :: ProgState -> ProgState
|
||||
startNewGame = undefined
|
||||
startNewGame
|
||||
= (progMode .~ NewGame newGameState)
|
||||
. (database . dbGames .~ 0)
|
||||
|
|
|
@ -40,7 +40,4 @@ handleEvent e = do
|
|||
case m of
|
||||
MainMenu -> menuHandler mainMenu e
|
||||
NewSeason -> menuHandler newSeasonMenu e >> return True
|
||||
NewGame -> newGame e >> return True
|
||||
|
||||
newGame :: C.Event -> StateT ProgState C.Curses ()
|
||||
newGame = undefined
|
||||
NewGame _ -> return True
|
||||
|
|
|
@ -24,7 +24,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||
module Mtlstats.Types (
|
||||
-- * Types
|
||||
ProgState (..),
|
||||
GameState (..),
|
||||
ProgMode (..),
|
||||
GameType (..),
|
||||
Database (..),
|
||||
Player (..),
|
||||
PlayerStats (..),
|
||||
|
@ -34,6 +36,10 @@ module Mtlstats.Types (
|
|||
-- ** ProgState Lenses
|
||||
database,
|
||||
progMode,
|
||||
-- ** GameState Lenses
|
||||
gameType,
|
||||
homeScore,
|
||||
visitorScore,
|
||||
-- ** Database Lenses
|
||||
dbPlayers,
|
||||
dbGoalies,
|
||||
|
@ -63,6 +69,7 @@ module Mtlstats.Types (
|
|||
gsTies,
|
||||
-- * Constructors
|
||||
newProgState,
|
||||
newGameState,
|
||||
newDatabase,
|
||||
newPlayer,
|
||||
newPlayerStats,
|
||||
|
@ -93,11 +100,24 @@ data ProgState = ProgState
|
|||
, _progMode :: ProgMode
|
||||
} deriving (Eq, Show)
|
||||
|
||||
-- | The game state
|
||||
data GameState = GameState
|
||||
{ _gameType :: Maybe GameType
|
||||
, _homeScore :: Maybe Int
|
||||
, _visitorScore :: Maybe Int
|
||||
} deriving (Eq, Show)
|
||||
|
||||
-- | The program mode
|
||||
data ProgMode
|
||||
= MainMenu
|
||||
| NewSeason
|
||||
| NewGame
|
||||
| NewGame GameState
|
||||
deriving (Eq, Show)
|
||||
|
||||
-- | The type of game
|
||||
data GameType
|
||||
= HomeGame
|
||||
| AwayGame
|
||||
deriving (Eq, Show)
|
||||
|
||||
-- | Represents the database
|
||||
|
@ -271,19 +291,28 @@ instance ToJSON GoalieStats where
|
|||
"ties" .= t
|
||||
|
||||
makeLenses ''ProgState
|
||||
makeLenses ''GameState
|
||||
makeLenses ''Database
|
||||
makeLenses ''Player
|
||||
makeLenses ''PlayerStats
|
||||
makeLenses ''Goalie
|
||||
makeLenses ''GoalieStats
|
||||
|
||||
-- | Constructor for a new 'ProgState'
|
||||
-- | Constructor for a 'ProgState'
|
||||
newProgState :: ProgState
|
||||
newProgState = ProgState
|
||||
{ _database = newDatabase
|
||||
, _progMode = MainMenu
|
||||
}
|
||||
|
||||
-- | Constructor for a 'GameState'
|
||||
newGameState :: GameState
|
||||
newGameState = GameState
|
||||
{ _gameType = Nothing
|
||||
, _homeScore = Nothing
|
||||
, _visitorScore = Nothing
|
||||
}
|
||||
|
||||
-- | Constructor for a 'Database'
|
||||
newDatabase :: Database
|
||||
newDatabase = Database
|
||||
|
|
|
@ -36,8 +36,5 @@ draw s = do
|
|||
case s ^. progMode of
|
||||
MainMenu -> drawMenu mainMenu
|
||||
NewSeason -> drawMenu newSeasonMenu
|
||||
NewGame -> newGame
|
||||
NewGame _ -> return ()
|
||||
C.render
|
||||
|
||||
newGame :: C.Update ()
|
||||
newGame = return ()
|
||||
|
|
|
@ -49,7 +49,17 @@ startNewSeasonSpec = describe "startNewSeason" $ do
|
|||
s ^. database . dbGames `shouldBe` 0
|
||||
|
||||
startNewGameSpec :: Spec
|
||||
startNewGameSpec = describe "startGame" $ return ()
|
||||
startNewGameSpec = describe "startNewGame" $ do
|
||||
let
|
||||
s = newProgState
|
||||
& database . dbGames .~ 1
|
||||
& startNewGame
|
||||
|
||||
it "should set the number of games to 0" $
|
||||
s ^. database . dbGames `shouldBe` 0
|
||||
|
||||
it "should set the mode to NewGame" $
|
||||
s ^. progMode `shouldBe` NewGame newGameState
|
||||
|
||||
resetYtdSpec :: Spec
|
||||
resetYtdSpec = describe "resetYtd" $
|
||||
|
|
Loading…
Reference in New Issue
Block a user