module Universe where import Lance import Star import Data.WrapAround import SpaceJunk import Combat import AfterEffect import Unit ( SimpleUnit , SmartUnit ) import ResourceTracker import Item import Common import Sound.ALUT import {-# SOURCE #-} Display (AWS) data Arena = Arena { lance :: Maybe Lance , focus :: WP , wrapMap :: WM , asteroids :: [SpaceJunk] , lanceProjectiles :: [Projectile] , afterFX :: [AfterEffect] , simpleUnits :: [SimpleUnit] , smartUnits :: [SmartUnit] , unitProjectiles :: [Projectile] , items :: [Item] } data Universe = Universe { arena :: Arena , level :: Int , levels :: [Arena] , lives :: Integer , delayRemaining :: Double , resourceTracker :: ResourceTracker , skipLevel :: Bool , levelMessageTimer :: Maybe Time , panelActivationTimer :: Time , startGameTimer :: Time , queueBlipSound :: Bool , blipSoundSource :: Maybe Source , aws :: AWS } blankArena width height = let wmap = wrapmap width height in Arena { lance = Nothing , focus = wrappoint wmap (0, 0) , Universe.wrapMap = wmap , asteroids = [] , lanceProjectiles = [] , afterFX = [] , simpleUnits = [] , smartUnits = [] , unitProjectiles = [] , items = [] }