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