packages feed

SpacePrivateers-0.1.0.0: GameDefinition/Content/CaveKind.hs

-- | Cave layouts for Space Privateers.
module Content.CaveKind ( cdefs ) where

import Data.Ratio

import Game.LambdaHack.Common.ContentDef
import Game.LambdaHack.Common.Dice
import Game.LambdaHack.Common.Misc
import Game.LambdaHack.Content.CaveKind

cdefs :: ContentDef CaveKind
cdefs = ContentDef
  { getSymbol = csymbol
  , getName = cname
  , getFreq = cfreq
  , validate = validateCaveKind
  , content =
      [rogue, munitorium]
  }
rogue,        munitorium :: CaveKind

rogue = CaveKind
  { csymbol         = 'R'
  , cname           = "General quarters"
  , cfreq           = [("dng", 100), ("caveRogue", 1)]
  , cxsize          = fst normalLevelBound + 1
  , cysize          = snd normalLevelBound + 1
  , cgrid           = DiceXY (3 * d 2) (d 2 + 2)
  , cminPlaceSize   = DiceXY (2 * d 2 + 2) 4
  , cmaxPlaceSize   = DiceXY 15 10
  , cdarkChance     = d 54 + dl 20
  , cnightChance    = 51
  , cauxConnects    = 1%3
  , cmaxVoid        = 1%6
  , cminStairDist   = 30
  , cdoorChance     = 1%2
  , copenChance     = 1%10
  , chidden         = 8
  , cactorFreq      = [("merchant", 50), ("chaos", 45), ("spawn", 5)]
  , citemNum        = 10 * d 2
  , citemFreq       = [("useful", 70), ("treasure", 30)]
  , cplaceFreq      = [("rogue", 100)]
  , cpassable       = False
  , cdefTile        = "fillerWall"
  , cdarkCorTile    = "floorCorridorDark"
  , clitCorTile     = "floorCorridorLit"
  , cfillerTile     = "fillerWall"
  , couterFenceTile = "basic outer fence"
  , clegendDarkTile = "legendDark"
  , clegendLitTile  = "legendLit"
  }
munitorium = rogue
  { csymbol         = 'M'
  , cname           = "Munitorium"
  , cfreq           = [("dng", 15), ("munitorium", 1)]
  , cgrid           = DiceXY 3 3
  , cminPlaceSize   = DiceXY 15 4
  , cmaxPlaceSize   = DiceXY 25 10
  , cdarkChance     = dl 5
  , cnightChance    = d 20
  , cactorFreq      = [("merchant", 80), ("chaos", 5), ("spawn", 15)]
  , citemNum        = 8 * d 2
  , citemFreq       = [("weapon", 70), ("armour", 20), ("useful", 10)]
  , cplaceFreq      = [("rogue", 100)]
  , cpassable       = True
  , cdefTile        = "arenaSet"
  , cdarkCorTile    = "floorArenaDark"
  , clitCorTile     = "floorArenaLit"
}