SpacePrivateers-0.1.0.0: GameDefinition/Content/RuleKind.hs
{-# LANGUAGE TemplateHaskell #-}
-- | Game rules and assorted game setup data for Space Privateer.
module Content.RuleKind ( cdefs ) where
import Language.Haskell.TH.Syntax
import System.FilePath
-- Cabal
import qualified Paths_SpacePrivateers as Self (getDataFileName, version)
import Game.LambdaHack.Common.ContentDef
import Game.LambdaHack.Common.Vector
import Game.LambdaHack.Content.RuleKind
cdefs :: ContentDef RuleKind
cdefs = ContentDef
{ getSymbol = rsymbol
, getName = rname
, getFreq = rfreq
, validate = validateRuleKind
, content =
[standard]
}
standard :: RuleKind
standard = RuleKind
{ rsymbol = 's'
, rname = "standard Space Privateers ruleset"
, rfreq = [("standard", 100)]
, raccessible = Nothing
, raccessibleDoor =
Just $ \spos tpos -> not $ isDiagonal $ spos `vectorToFrom` tpos
, rtitle = "Space Privateers"
, rpathsDataFile = Self.getDataFileName
, rpathsVersion = Self.version
, rcfgUIName = "config.ui"
, rcfgUIDefault = $(do
let path = "GameDefinition" </> "config.ui" <.> "default"
qAddDependentFile path
x <- qRunIO (readFile path)
lift x)
, rmainMenuArt = $(do
let path = "GameDefinition/MainMenu.ascii"
qAddDependentFile path
x <- qRunIO (readFile path)
lift x)
, rfirstDeathEnds = False
, rfovMode = Digital
, rsaveBkpClips = 500
, rleadLevelClips = 100
, rscoresFile = "scores"
, rsavePrefix = "save"
, rsharedStash = True
}