packages feed

fudgets-0.18.3: Demos/SpaceInvaders/InvaderTypes.hs

module InvaderTypes where

data GEvent = Redraw | Key Action UpDown
data Action = MoveLeft | MoveRight | Fire
data UpDown = Up | Down

data Phase = A | B  deriving (Eq,Show)
data Row = R1 | R2 | R3 deriving (Eq,Enum,Show)

rows = [R1,R2,R3]
phases f = (f A,f B)

rowNum :: Row -> Int
rowNum = succ . fromEnum

data Object = Vader Row Phase | VExplode Row | VShot Phase
            | Base | Explode | Ufo
            deriving (Eq,Show)