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 data Arena = Arena { lance :: Maybe Lance , lastFocus :: WrapPoint , stars :: [Star] , wrapMap :: WrapMap , 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 } blankArena width height = let wmap = wrapmap width height in Arena { lance = Nothing , lastFocus = wrappoint wmap (0, 0) , stars = [] , Universe.wrapMap = wmap , asteroids = [] , lanceProjectiles = [] , afterFX = [] , simpleUnits = [] , smartUnits = [] , unitProjectiles = [] , items = [] }