module Item where import Data.WrapAround import Moving import Animation import Data.Maybe import Graphics.Gloss.Data.Picture import Graphics.Gloss.Data.Color import ResourceTracker import System.Random data ItemType = Health | FourWay | Cannon | Spread | RapidFire | Nuke deriving (Show) data Item = Item ItemType ResourceTracker WrapPoint deriving (Show) instance Colliding Item where collisionRadius _ = 11.0 instance Locatable Item where center (Item _ _ a) = a instance Moving Item where velocity _ = (0.0, 0.0) instance Animation Item where image (Item ty rt _) _ = fromMaybe (Scale 0.20 0.20 (Color white (Text "Error! Missing image!"))) (getImage rt pic) where pic = case ty of Health -> "item-health.bmp" FourWay -> "item-fourway.bmp" Cannon -> "item-cannon.bmp" Spread -> "item-spread.bmp" RapidFire -> "item-rapidfire.bmp" Nuke -> "item-nuke.bmp" randomItemType :: IO (ItemType) randomItemType = do let min = (0 :: Int) let max = (5 :: Int) r <- randomRIO (min, max) return $ case r of 0 -> Health 1 -> FourWay 2 -> Cannon 3 -> Spread 4 -> RapidFire otherwise -> Nuke