minesweeper-0.8.8: Transition/Action.hs
module Transition.Action
( triggers
, triggers'
) where
import When
import Event
import State
import State.Functions
import Data.Maybe
import Data.List
-----------------------------
triggers' = [(p, Triggered t, w) | (p, t, w) <- triggers]
triggers :: [(State -> Bool, Triggered, State -> When)]
triggers =
[ (isActive, Tick, const $ Later 1)
, (interruptWillShown, InterruptVisible, const $ Later 0.5)
, (fade, FadeTick, const $ Later 0.1)
, (revealInProgress, BusyTick, const $ Later 0.1)
, (revealInProgress, RevealDone, AfterEval . fromJust . revResult . fromJust . revealing)
]
interruptWillShown st
| Just (False, _) <- interrupt st = True
| otherwise = False
revealInProgress = isJust . revealing
fade = not . null . redness