-- | -- This module contians the main nobs to control the game play. -- -- All length data is relative to the screen width. module Lseed.Constants where groundLevel :: Double groundLevel = 0.03 budSize :: Double budSize = 0.01 stipeLength :: Double stipeLength = 0.05 blossomSize :: Double blossomSize = 0.03 stipeWidth :: Double stipeWidth = 0.01 -- | Light and growths interpolation frequency ticksPerDay :: Integer ticksPerDay = 9 -- | Plant length growth per Day and Light -- -- 1 means: Can grow one stipeLength during one day, when catching the sunlight -- with one branch of (projected) length screenwidth growthPerDayAndLight :: Double growthPerDayAndLight = 15.0 -- | Plants up to this size get an boost in growths smallPlantBoostSize :: Double smallPlantBoostSize = 0.5 -- | Minimum growths for plants of size less then smallPlantBoostSize smallPlantBoostLength :: Double smallPlantBoostLength = 0.2 -- | Cost (in light units) per (length for maintaining the plant)^2, to limit the growth of the plants costPerLength :: Double costPerLength = 0.0005 -- | Cost (in length growths equivalent) per seed to be grown seedGrowthCost :: Double seedGrowthCost = 1.0 -- | Branch translucency. Proportion of light that is let through by a plant lightFalloff :: Double lightFalloff = 0.4 -- | Length of one day, in seconds dayLength :: Double dayLength = 8.0 -- | ε eps = 1e-9 -- | Minimum radial angular distance between two branches minAngle :: Double minAngle = pi/20 -- | Derived constants tickLength = dayLength / fromIntegral ticksPerDay