award shutouts

This commit is contained in:
Jonathan Lamothe
2019-11-28 01:42:22 -05:00
parent eedeaed8fc
commit 4941e0e64f
3 changed files with 65 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ module Mtlstats.Actions.NewGame
, awardAssist
, resetGoalData
, assignPMins
, awardShutouts
) where
import qualified Data.Map as M
@@ -171,3 +172,20 @@ assignPMins mins s = fromMaybe s $ do
(psPMin +~ mins)
)
. (gameSelectedPlayer .~ Nothing)
-- | Awards a shutout to any 'Goalie' who played and didn't allow any
-- goals
awardShutouts :: ProgState -> ProgState
awardShutouts s = foldl
(\gs (gid, stats) -> if stats^.gsGoalsAllowed == 0
then gs
& database.dbGoalies %~ modifyNth gid
( ( gYtd.gsShutouts %~ succ )
. ( gLifetime.gsShutouts %~ succ )
)
& progMode.gameStateL.gameGoalieStats %~ M.adjust
(gsShutouts %~ succ)
gid
else gs)
s
(M.toList $ s^.progMode.gameStateL.gameGoalieStats)

View File

@@ -106,9 +106,10 @@ verifyDataC = Controller
return C.CursorInvisible
, handleController = \e -> do
case ynHandler e of
Just True -> do
modify $ progMode.gameStateL.dataVerified .~ True
modify updateGameStats
Just True -> modify
$ (progMode.gameStateL.dataVerified .~ True)
. updateGameStats
. awardShutouts
Just False -> modify $ progMode.gameStateL .~ newGameState
Nothing -> return ()
return True