module Constants where
import Data.Word
import Graphics.UI.SDL as SDL
gameName :: String
gameName = "Break-a-ball"
width :: Double
width = 1024
height :: Double
height = 600
gameWidth :: Double
gameWidth = width
gameHeight :: Double
gameHeight = height
-- Energy transmission between objects in collisions
velTrans :: Double
velTrans = 1.00
-- Max speed
maxVNorm :: Double -> Double
maxVNorm n
| n >= 100 = 800
| n >= 50 = 733
| n >= 25 = 666
| otherwise = 600
ballWidth, ballHeight :: Double
ballWidth = 100
ballHeight = 100
ballMargin :: Double
ballMargin = 3
ballSize :: Integral a => a
ballSize = 25
-- Colors
fontColor :: SDL.Color
fontColor = SDL.Color 94 86 91
ballColor :: Word32
ballColor = 0xDD875FFF
velColor :: Word32
velColor = 0xCCBBFFFF
playerWidth :: Double
playerWidth = 30
playerHeight :: Double
playerHeight = 80
fireColor :: Word32
fireColor = 0xFFDDC34F
playerRightColor :: Word32
playerRightColor = 0xFFD2D454
playerLeftColor :: Word32
playerLeftColor = 0xFFB2D454
playerStandColor :: Word32
playerStandColor = 0xFFE5D454
playerBlinkRightColor :: Word32
playerBlinkRightColor = 0x88D2D454
playerBlinkLeftColor :: Word32
playerBlinkLeftColor = 0x88B2D454
playerBlinkStandColor :: Word32
playerBlinkStandColor = 0x88F2D454
backgroundColor :: Word32
backgroundColor = 0x88EDE9CB
blockColor :: Word32
blockColor = 0xFF85AABC
playerSpeed :: Double
playerSpeed = 200
fireSpeed :: Double
fireSpeed = 400
initialLives :: Int
initialLives = 5
-- Debugging collisions
collisionDebugColor :: Word32
collisionDebugColor = 0x88D2D4FF
collisionDebugThickness :: Num a => a
collisionDebugThickness = 3
debugCollisions :: Bool
debugCollisions = False