module Content.CaveKind
(
pattern CAVE_ROGUE, pattern CAVE_ARENA, pattern CAVE_LABORATORY, pattern CAVE_NOISE, pattern CAVE_SHALLOW_ROGUE, pattern CAVE_OUTERMOST, pattern CAVE_RAID, pattern CAVE_BRAWL, pattern CAVE_BRAWL_ALT, pattern CAVE_SHOOTOUT, pattern CAVE_HUNT, pattern CAVE_ESCAPE, pattern CAVE_ZOO, pattern CAVE_AMBUSH, pattern CAVE_BATTLE, pattern CAVE_SAFARI_1, pattern CAVE_SAFARI_2, pattern CAVE_SAFARI_3
, pattern CAVE_BRIDGE, pattern CAVE_RESIDENTIAL, pattern CAVE_MUSEUM, pattern CAVE_EXIT, pattern CAVE_CASINO, pattern CAVE_POWER
, groupNamesSingleton, groupNames
,
content
) where
import Prelude ()
import Game.LambdaHack.Core.Prelude
import Data.Ratio
import Content.ItemKind hiding
(content, groupNames, groupNamesSingleton)
import Content.ItemKindActor
import Content.ItemKindEmbed hiding (ESCAPE)
import Content.PlaceKind hiding
(content, groupNames, groupNamesSingleton)
import Content.TileKind hiding
(content, groupNames, groupNamesSingleton)
import Game.LambdaHack.Content.CaveKind
import qualified Game.LambdaHack.Content.ItemKind as IK
import Game.LambdaHack.Content.TileKind
import Game.LambdaHack.Core.Dice
import Game.LambdaHack.Definition.Defs
import Game.LambdaHack.Definition.DefsInternal
groupNamesSingleton :: [GroupName CaveKind]
groupNamesSingleton :: [GroupName CaveKind]
groupNamesSingleton = []
groupNames :: [GroupName CaveKind]
groupNames :: [GroupName CaveKind]
groupNames =
[GroupName CaveKind
CAVE_ROGUE, GroupName CaveKind
CAVE_ARENA, GroupName CaveKind
CAVE_LABORATORY, GroupName CaveKind
CAVE_NOISE, GroupName CaveKind
CAVE_SHALLOW_ROGUE, GroupName CaveKind
CAVE_OUTERMOST, GroupName CaveKind
CAVE_RAID, GroupName CaveKind
CAVE_BRAWL, GroupName CaveKind
CAVE_BRAWL_ALT, GroupName CaveKind
CAVE_SHOOTOUT, GroupName CaveKind
CAVE_HUNT, GroupName CaveKind
CAVE_ESCAPE, GroupName CaveKind
CAVE_ZOO, GroupName CaveKind
CAVE_AMBUSH, GroupName CaveKind
CAVE_BATTLE, GroupName CaveKind
CAVE_SAFARI_1, GroupName CaveKind
CAVE_SAFARI_2, GroupName CaveKind
CAVE_SAFARI_3]
[GroupName CaveKind]
-> [GroupName CaveKind] -> [GroupName CaveKind]
forall a. [a] -> [a] -> [a]
++ [GroupName CaveKind
CAVE_BRIDGE, GroupName CaveKind
CAVE_RESIDENTIAL, GroupName CaveKind
CAVE_MUSEUM, GroupName CaveKind
CAVE_EXIT, GroupName CaveKind
CAVE_CASINO, GroupName CaveKind
CAVE_POWER]
pattern CAVE_ROGUE, CAVE_ARENA, CAVE_LABORATORY, CAVE_NOISE, CAVE_SHALLOW_ROGUE, CAVE_OUTERMOST, CAVE_RAID, CAVE_BRAWL, CAVE_BRAWL_ALT, CAVE_SHOOTOUT, CAVE_HUNT, CAVE_ESCAPE, CAVE_ZOO, CAVE_AMBUSH, CAVE_BATTLE, CAVE_SAFARI_1, CAVE_SAFARI_2, CAVE_SAFARI_3 :: GroupName CaveKind
pattern CAVE_BRIDGE, CAVE_RESIDENTIAL, CAVE_MUSEUM, CAVE_EXIT, CAVE_CASINO, CAVE_POWER :: GroupName CaveKind
pattern $bCAVE_ROGUE :: GroupName CaveKind
$mCAVE_ROGUE :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_ROGUE = GroupName "caveRogue"
pattern $bCAVE_ARENA :: GroupName CaveKind
$mCAVE_ARENA :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_ARENA = GroupName "caveArena"
pattern $bCAVE_LABORATORY :: GroupName CaveKind
$mCAVE_LABORATORY :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_LABORATORY = GroupName "caveLaboratory"
pattern $bCAVE_NOISE :: GroupName CaveKind
$mCAVE_NOISE :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_NOISE = GroupName "caveNoise"
pattern $bCAVE_SHALLOW_ROGUE :: GroupName CaveKind
$mCAVE_SHALLOW_ROGUE :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_SHALLOW_ROGUE = GroupName "caveShallowRogue"
pattern $bCAVE_OUTERMOST :: GroupName CaveKind
$mCAVE_OUTERMOST :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_OUTERMOST = GroupName "caveOutermost"
pattern $bCAVE_RAID :: GroupName CaveKind
$mCAVE_RAID :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_RAID = GroupName "caveRaid"
pattern $bCAVE_BRAWL :: GroupName CaveKind
$mCAVE_BRAWL :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_BRAWL = GroupName "caveBrawl"
pattern $bCAVE_BRAWL_ALT :: GroupName CaveKind
$mCAVE_BRAWL_ALT :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_BRAWL_ALT = GroupName "caveBrawlAlt"
pattern $bCAVE_SHOOTOUT :: GroupName CaveKind
$mCAVE_SHOOTOUT :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_SHOOTOUT = GroupName "caveShootout"
pattern $bCAVE_HUNT :: GroupName CaveKind
$mCAVE_HUNT :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_HUNT = GroupName "caveHunt"
pattern $bCAVE_ESCAPE :: GroupName CaveKind
$mCAVE_ESCAPE :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_ESCAPE = GroupName "caveEscape"
pattern $bCAVE_ZOO :: GroupName CaveKind
$mCAVE_ZOO :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_ZOO = GroupName "caveZoo"
pattern $bCAVE_AMBUSH :: GroupName CaveKind
$mCAVE_AMBUSH :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_AMBUSH = GroupName "caveAmbush"
pattern $bCAVE_BATTLE :: GroupName CaveKind
$mCAVE_BATTLE :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_BATTLE = GroupName "caveBattle"
pattern $bCAVE_SAFARI_1 :: GroupName CaveKind
$mCAVE_SAFARI_1 :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_SAFARI_1 = GroupName "caveSafari1"
pattern $bCAVE_SAFARI_2 :: GroupName CaveKind
$mCAVE_SAFARI_2 :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_SAFARI_2 = GroupName "caveSafari2"
pattern $bCAVE_SAFARI_3 :: GroupName CaveKind
$mCAVE_SAFARI_3 :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_SAFARI_3 = GroupName "caveSafari3"
pattern $bCAVE_BRIDGE :: GroupName CaveKind
$mCAVE_BRIDGE :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_BRIDGE = GroupName "caveBridge"
pattern $bCAVE_RESIDENTIAL :: GroupName CaveKind
$mCAVE_RESIDENTIAL :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_RESIDENTIAL = GroupName "caveResidential"
pattern $bCAVE_MUSEUM :: GroupName CaveKind
$mCAVE_MUSEUM :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_MUSEUM = GroupName "caveMuseum"
pattern $bCAVE_EXIT :: GroupName CaveKind
$mCAVE_EXIT :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_EXIT = GroupName "caveExit"
pattern $bCAVE_CASINO :: GroupName CaveKind
$mCAVE_CASINO :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_CASINO = GroupName "caveCasino"
pattern $bCAVE_POWER :: GroupName CaveKind
$mCAVE_POWER :: forall r. GroupName CaveKind -> (Void# -> r) -> (Void# -> r) -> r
CAVE_POWER = GroupName "cavePower"
content :: [CaveKind]
content :: [CaveKind]
content =
[CaveKind
rogue, CaveKind
residential, CaveKind
arena, CaveKind
casino, CaveKind
museum, CaveKind
laboratory, CaveKind
noise, CaveKind
power, CaveKind
empty, CaveKind
exit, CaveKind
outermost, CaveKind
bridge, CaveKind
shallowRogue, CaveKind
raid, CaveKind
brawl, CaveKind
brawlAlt, CaveKind
shootout, CaveKind
hunt, CaveKind
escape, CaveKind
zoo, CaveKind
ambush, CaveKind
battle, CaveKind
safari1, CaveKind
safari2, CaveKind
safari3]
rogue, residential, arena, casino, museum, laboratory, noise, power, empty, exit, outermost, bridge, shallowRogue, raid, brawl, brawlAlt, shootout, hunt, escape, zoo, ambush, battle, safari1, safari2, safari3 :: CaveKind
rogue :: CaveKind
rogue = CaveKind :: Char
-> Text
-> Freqs CaveKind
-> X
-> X
-> DiceXY
-> DiceXY
-> DiceXY
-> Dice
-> Dice
-> Rational
-> Rational
-> Rational
-> Rational
-> X
-> X
-> Freqs ItemKind
-> Dice
-> Freqs ItemKind
-> Freqs PlaceKind
-> Bool
-> Bool
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> GroupName TileKind
-> Bool
-> X
-> Dice
-> Freqs PlaceKind
-> Freqs PlaceKind
-> Freqs PlaceKind
-> [X]
-> Text
-> CaveKind
CaveKind
{ csymbol :: Char
csymbol = Char
'R'
, cname :: Text
cname = Text
"Maintenance and storage"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
DEFAULT_RANDOM, X
100), (GroupName CaveKind
CAVE_ROGUE, X
1)]
, cXminSize :: X
cXminSize = X
80
, cYminSize :: X
cYminSize = X
42
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
4 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
10) (X
1 X -> X -> Dice
`d` X
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
6)
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
4) (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5)
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
16 Dice
40
, cdarkOdds :: Dice
cdarkOdds = X
1 X -> X -> Dice
`d` X
50 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`dL` X
50
, cnightOdds :: Dice
cnightOdds = Dice
51
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
2
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
8
, cdoorChance :: Rational
cdoorChance = Integer
3Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
4
, copenChance :: Rational
copenChance = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
5
, chidden :: X
chidden = X
7
, cactorCoeff :: X
cactorCoeff = X
50
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
MONSTER, X
50), (GroupName ItemKind
ANIMAL, X
20), (GroupName ItemKind
ROBOT, X
30)]
, citemNum :: Dice
citemNum = X
17 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
25 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
- X
25 X -> X -> Dice
`dL` X
1
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
40), (GroupName ItemKind
IK.CRAWL_ITEM, X
20)
, (GroupName ItemKind
IK.TREASURE, X
40) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
ROGUE, X
1)]
, cpassable :: Bool
cpassable = Bool
False
, labyrinth :: Bool
labyrinth = Bool
False
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
ROGUE_SET
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
FLOOR_CORRIDOR_DARK
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
FLOOR_CORRIDOR_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
TRAPPABLE_WALL
, ccornerTile :: GroupName TileKind
ccornerTile = GroupName TileKind
FILLER_WALL
, cfenceTileN :: GroupName TileKind
cfenceTileN = GroupName TileKind
S_BASIC_OUTER_FENCE
, cfenceTileE :: GroupName TileKind
cfenceTileE = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileS :: GroupName TileKind
cfenceTileS = GroupName TileKind
S_BASIC_OUTER_FENCE
, cfenceTileW :: GroupName TileKind
cfenceTileW = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceApart :: Bool
cfenceApart = Bool
False
, cminStairDist :: X
cminStairDist = X
30
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`d` X
2
, cescapeFreq :: Freqs PlaceKind
cescapeFreq = []
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
WALLED_LIFT, X
50), (GroupName PlaceKind
OPEN_LIFT, X
50)
, (GroupName PlaceKind
TINY_LIFT, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
WALLED_STAIRCASE, X
50), (GroupName PlaceKind
OPEN_STAIRCASE, X
50)
, (GroupName PlaceKind
TINY_STAIRCASE, X
1) ]
, cskip :: [X]
cskip = []
, cdesc :: Text
cdesc = Text
"Winding tunnels stretch into the dark. A few areas are passable but the remainder is packed with tanks and cells of raw materials and machinery."
}
residential :: CaveKind
residential = CaveKind
rogue
{ cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
DEFAULT_RANDOM, X
70), (GroupName CaveKind
CAVE_RESIDENTIAL, X
1)]
, cname :: Text
cname = Text
"Residential area"
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
4) (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
9)
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
20 Dice
20
, cdarkOdds :: Dice
cdarkOdds = Dice
51
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
5
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
ROGUE, X
1), (GroupName PlaceKind
RESIDENTIAL, X
49)]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
FILLER_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`d` X
2
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
WALLED_STAIRCASE, X
50), (GroupName PlaceKind
OPEN_STAIRCASE, X
50)
, (GroupName PlaceKind
TINY_STAIRCASE, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
WALLED_LIFT, X
50), (GroupName PlaceKind
OPEN_LIFT, X
50)
, (GroupName PlaceKind
TINY_LIFT, X
1) ]
, cdesc :: Text
cdesc = Text
"The area has been powered down, except for emergency corridors. Many suites are depressurized and sealed."
}
arena :: CaveKind
arena = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'A'
, cname :: Text
cname = Text
"Recreational deck"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_ARENA, X
1)]
, cXminSize :: X
cXminSize = X
80
, cYminSize :: X
cYminSize = X
25
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
3 X -> X -> Dice
`d` X
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
17) (X
1 X -> X -> Dice
`d` X
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5)
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
10 Dice
15
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
25 Dice
40
, cdarkOdds :: Dice
cdarkOdds = Dice
49 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`d` X
10
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Rational
1
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
20
, chidden :: X
chidden = X
0
, cactorCoeff :: X
cactorCoeff = X
40
, cactorFreq :: Freqs ItemKind
cactorFreq = [ (GroupName ItemKind
EXPLOSIVE_MONSTER, X
50), (GroupName ItemKind
ANIMAL, X
50), (GroupName ItemKind
ROBOT, X
5)
, (GroupName ItemKind
IK.AQUATIC, X
10) ]
, citemNum :: Dice
citemNum = X
16 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
20), (GroupName ItemKind
IK.CRAWL_ITEM, X
20)
, (GroupName ItemKind
IK.TREASURE, X
40)
, (GroupName ItemKind
GARDENING_TOOL, X
100)
, (GroupName ItemKind
IK.ANY_POTION, X
200) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
ARENA, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
ARENA_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
TRAIL_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
TRAIL_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cminStairDist :: X
cminStairDist = X
20
, cmaxStairsNum :: Dice
cmaxStairsNum = X
1 X -> X -> Dice
`d` X
2
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
WALLED_LIFT, X
20), (GroupName PlaceKind
CLOSED_LIFT, X
80)
, (GroupName PlaceKind
TINY_LIFT, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
WALLED_STAIRCASE, X
20), (GroupName PlaceKind
CLOSED_STAIRCASE, X
80)
, (GroupName PlaceKind
TINY_STAIRCASE, X
1) ]
, cdesc :: Text
cdesc = Text
"Debris litters the wide streets and all the stalls are either broken or have their shutters down. Nature is taking over, healing the wounds."
}
casino :: CaveKind
casino = CaveKind
arena
{ cname :: Text
cname = Text
"Casino"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_CASINO, X
1)]
, cXminSize :: X
cXminSize = X
21
, cYminSize :: X
cYminSize = X
21
, cdarkOdds :: Dice
cdarkOdds = Dice
41 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`d` X
10
, cnightOdds :: Dice
cnightOdds = Dice
51
, cactorCoeff :: X
cactorCoeff = X
70
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
MONSTER, X
50), (GroupName ItemKind
ANIMAL, X
25), (GroupName ItemKind
ROBOT, X
50)]
, citemNum :: Dice
citemNum = X
14 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
20)
, (GroupName ItemKind
IK.CRAWL_ITEM, X
20)
, (GroupName ItemKind
IK.TREASURE, X
100) ]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
ARENA_SET_DARK
, cfenceTileN :: GroupName TileKind
cfenceTileN = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileE :: GroupName TileKind
cfenceTileE = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileS :: GroupName TileKind
cfenceTileS = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileW :: GroupName TileKind
cfenceTileW = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cminStairDist :: X
cminStairDist = X
10
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
2
, cdesc :: Text
cdesc = Text
"The establishment is no longer filled with hollow-eyed gamblers; more dangerous things now lurk in the dark."
}
museum :: CaveKind
museum = CaveKind
arena
{ cname :: Text
cname = Text
"Museum"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_MUSEUM, X
1)]
, cXminSize :: X
cXminSize = X
25
, cYminSize :: X
cYminSize = X
25
, cdarkOdds :: Dice
cdarkOdds = Dice
41 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`d` X
10
, cnightOdds :: Dice
cnightOdds = Dice
51
, cactorCoeff :: X
cactorCoeff = X
70
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
MONSTER, X
100), (GroupName ItemKind
ANIMAL, X
25), (GroupName ItemKind
ROBOT, X
25)]
, citemNum :: Dice
citemNum = X
16 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
20)
, (GroupName ItemKind
IK.CRAWL_ITEM, X
20)
, (GroupName ItemKind
IK.TREASURE, X
20)
, (GroupName ItemKind
MUSEAL, X
200) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
MUSEUM, X
1)]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
MUSEUM_SET_DARK
, cfenceTileN :: GroupName TileKind
cfenceTileN = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileE :: GroupName TileKind
cfenceTileE = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileS :: GroupName TileKind
cfenceTileS = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileW :: GroupName TileKind
cfenceTileW = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cminStairDist :: X
cminStairDist = X
10
, cdesc :: Text
cdesc = Text
"History has shown that museal treasures are safer in space than anywhere on Earth. Passengers eagerly attend exhibitions, even if over the weeks of the journey they become increasingly a captive audience. Spaceship crew are not that enthusiastic but even they find reasons to pay visits despite misgivings of museum security. Quite often a museum is the only place within millions of kilometers to house a desperately needed tool, old but sturdy beyond anything a 3D printer can produce."
}
laboratory :: CaveKind
laboratory = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'L'
, cname :: Text
cname = Text
"Laboratory"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_LABORATORY, X
1)]
, cXminSize :: X
cXminSize = X
60
, cYminSize :: X
cYminSize = X
42
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5) (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
7)
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
6 Dice
8
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
12 Dice
40
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
5
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, cdoorChance :: Rational
cdoorChance = Rational
1
, copenChance :: Rational
copenChance = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
2
, cactorFreq :: Freqs ItemKind
cactorFreq = [ (GroupName ItemKind
MONSTER, X
50), (GroupName ItemKind
ANIMAL, X
70), (GroupName ItemKind
ROBOT, X
5)
, (GroupName ItemKind
IK.AQUATIC, X
10) ]
, citemNum :: Dice
citemNum = X
20 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
20), (GroupName ItemKind
IK.CRAWL_ITEM, X
40)
, (GroupName ItemKind
IK.TREASURE, X
40), (GroupName ItemKind
IK.EXPLOSIVE, X
80) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
LABORATORY, X
1)]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
FILLER_WALL
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
LAB_TRAIL_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
LAB_TRAIL_LIT
, cminStairDist :: X
cminStairDist = X
25
, cmaxStairsNum :: Dice
cmaxStairsNum = X
1 X -> X -> Dice
`d` X
2
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
DECON_WALLED_LIFT, X
50)
, (GroupName PlaceKind
DECON_OPEN_LIFT, X
50)
, (GroupName PlaceKind
DECON_TINY_LIFT, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
DECON_WALLED_STAIRCASE, X
50)
, (GroupName PlaceKind
DECON_OPEN_STAIRCASE, X
50)
, (GroupName PlaceKind
DECON_TINY_STAIRCASE, X
1) ]
, cdesc :: Text
cdesc = Text
"Shattered glassware and the sharp scent of spilt chemicals show that something terrible happened here. The reinforced bulkheads muffle furious roars."
}
noise :: CaveKind
noise = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'N'
, cname :: Text
cname = Text
"Computing hardware hub"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_NOISE, X
1)]
, cXminSize :: X
cXminSize = X
25
, cYminSize :: X
cYminSize = X
42
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
7) Dice
8
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
7 Dice
7
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
8 Dice
20
, cdarkOdds :: Dice
cdarkOdds = Dice
51
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
100
, cdoorChance :: Rational
cdoorChance = Rational
1
, chidden :: X
chidden = X
0
, cactorCoeff :: X
cactorCoeff = X
70
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
MONSTER, X
100), (GroupName ItemKind
ANIMAL, X
5), (GroupName ItemKind
ROBOT, X
25)]
, citemNum :: Dice
citemNum = X
16 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
40), (GroupName ItemKind
IK.CRAWL_ITEM, X
40)
, (GroupName ItemKind
IK.TREASURE, X
40), (GroupName ItemKind
IK.ANY_SCROLL, X
200) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
NOISE, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, labyrinth :: Bool
labyrinth = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
NOISE_SET_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cfenceApart :: Bool
cfenceApart = Bool
True
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
DAMP_FLOOR_DARK
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
DAMP_FLOOR_LIT
, cminStairDist :: X
cminStairDist = X
15
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
1
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
CLOSED_LIFT, X
50), (GroupName PlaceKind
OPEN_LIFT, X
50)
, (GroupName PlaceKind
TINY_LIFT, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
CLOSED_STAIRCASE, X
50), (GroupName PlaceKind
OPEN_STAIRCASE, X
50)
, (GroupName PlaceKind
TINY_STAIRCASE, X
1) ]
, cdesc :: Text
cdesc = Text
"Several machines still function, processors whirring through routines scheduled by dead men. Some scattered chips can still be read."
}
power :: CaveKind
power = CaveKind
noise
{ cname :: Text
cname = Text
"Power distribution hub"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_POWER, X
1)]
, cXminSize :: X
cXminSize = X
32
, cYminSize :: X
cYminSize = X
42
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
5 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
9) Dice
9
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
7 Dice
7
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
20 Dice
20
, cnightOdds :: Dice
cnightOdds = Dice
51
, citemNum :: Dice
citemNum = X
16 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [(GroupName ItemKind
IK.COMMON_ITEM, X
20), (GroupName ItemKind
IK.CRAWL_ITEM, X
10), (GroupName ItemKind
GEM, X
80)]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
POWER_SET_DARK
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
OILY_FLOOR_DARK
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
OILY_FLOOR_LIT
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
2
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
GATED_CLOSED_STAIRCASE, X
50)
, (GroupName PlaceKind
GATED_OPEN_STAIRCASE, X
50)
, (GroupName PlaceKind
GATED_TINY_STAIRCASE, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
GATED_CLOSED_LIFT, X
50)
, (GroupName PlaceKind
GATED_OPEN_LIFT, X
50)
, (GroupName PlaceKind
GATED_TINY_LIFT, X
1) ]
, cdesc :: Text
cdesc = Text
"A trickle of energy flows through a hub that could power a city. The air is warm and carries organic stench. Once in a while a young animal scurries across a lit patch of ground, pouncing in low gravity."
}
empty :: CaveKind
empty = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'E'
, cname :: Text
cname = Text
"Construction site"
, cfreq :: Freqs CaveKind
cfreq = []
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
8 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
14) Dice
16
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
9 Dice
9
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
50 Dice
20
, cdarkOdds :: Dice
cdarkOdds = X
1 X -> X -> Dice
`d` X
100 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ X
1 X -> X -> Dice
`dL` X
100
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Integer
3Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
2
, cmaxVoid :: Rational
cmaxVoid = Rational
0
, cdoorChance :: Rational
cdoorChance = Rational
1
, chidden :: X
chidden = X
0
, cactorCoeff :: X
cactorCoeff = X
40
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
MONSTER, X
10), (GroupName ItemKind
ANIMAL, X
5), (GroupName ItemKind
ROBOT, X
85)]
, citemNum :: Dice
citemNum = X
16 X -> X -> Dice
`d` X
2
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
EMPTY, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
EMPTY_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
FLOOR_ARENA_DARK
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
FLOOR_ARENA_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cfenceApart :: Bool
cfenceApart = Bool
True
, cminStairDist :: X
cminStairDist = X
40
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
WALLED_LIFT, X
20), (GroupName PlaceKind
CLOSED_LIFT, X
80)
, (GroupName PlaceKind
TINY_LIFT, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
WALLED_STAIRCASE, X
20), (GroupName PlaceKind
CLOSED_STAIRCASE, X
80)
, (GroupName PlaceKind
TINY_STAIRCASE, X
1) ]
, cdesc :: Text
cdesc = Text
"Not much to see here yet."
}
exit :: CaveKind
exit = CaveKind
empty
{ cname :: Text
cname = Text
"Shuttle servicing level"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_EXIT, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
20) Dice
16
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
25 Dice
20
, cdarkOdds :: Dice
cdarkOdds = Dice
51
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
EXIT, X
1)]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
EXIT_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
TRANSPORT_ROUTE
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
TRANSPORT_ROUTE
, cfenceTileN :: GroupName TileKind
cfenceTileN = GroupName TileKind
S_BASIC_OUTER_FENCE
, cfenceTileE :: GroupName TileKind
cfenceTileE = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileS :: GroupName TileKind
cfenceTileS = GroupName TileKind
AIRLOCK_FENCE
, cfenceTileW :: GroupName TileKind
cfenceTileW = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
2
, cescapeFreq :: Freqs PlaceKind
cescapeFreq = [(GroupName PlaceKind
ESCAPE_FROM_SPACESHIP_DOWN, X
1)]
, cstairFreq :: Freqs PlaceKind
cstairFreq = [(GroupName PlaceKind
WALLED_LIFT, X
20), (GroupName PlaceKind
TINY_LIFT, X
1)]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [(GroupName PlaceKind
WALLED_STAIRCASE, X
20), (GroupName PlaceKind
TINY_STAIRCASE, X
1)]
, cdesc :: Text
cdesc = Text
"Empty husks and strewn entrails of small craft litter the hangar among cranes and welding machines. The distant main fusion thruster array can be seen to the rear of the spaceship through oriels and airlocks of all sizes."
}
outermost :: CaveKind
outermost = CaveKind
empty
{ cname :: Text
cname = Text
"Outermost deck"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_OUTERMOST, X
100)]
, cactorCoeff :: X
cactorCoeff = X
4
, cactorFreq :: Freqs ItemKind
cactorFreq = [ (GroupName ItemKind
ANIMAL, X
3), (GroupName ItemKind
ROBOT, X
1)
, (GroupName ItemKind
IMMOBILE_ROBOT, X
90), (GroupName ItemKind
IMMOBILE_ANIMAL, X
2)
, (GroupName ItemKind
AQUATIC_ANIMAL, X
2) ]
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
50), (GroupName ItemKind
IK.CRAWL_ITEM, X
50)
, (GroupName ItemKind
GARDENING_TOOL, X
600) ]
, cfenceTileN :: GroupName TileKind
cfenceTileN = GroupName TileKind
ORIELS_FENCE
, cfenceTileE :: GroupName TileKind
cfenceTileE = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileS :: GroupName TileKind
cfenceTileS = GroupName TileKind
EMPTY_AIRLOCK_FENCE
, cfenceTileW :: GroupName TileKind
cfenceTileW = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
2
, cdesc :: Text
cdesc = Text
"This is as far as one can go \"down\". The void outside sucks light through the oriel and airlock glass in the walls and floor of this outermost level. Each minute, the dusky melancholic light of the distant Sun attempts for a few seconds to squeeze in but is repelled by artificial lighting.\nThe mucky floor marked by unkempt greenery looks misleadingly straight, its curvature noticeable only across the whole extent of the hull section. Overflowing water basins and series of hanging and stacked tanks double as radiation shields. Hoses writhe on the ground and dangle in thick knots from the ceiling. With proper tools, some of the containers could be opened and working spaces productively employed. There is no junk is space.\nThis deck is the main pressurized cargo bay and storage, with the only other docking hub for small craft located among the giant spaceship's upper levels. Somewhere here must be the airlock you docked your shuttle to and stacked your supplies against."
}
bridge :: CaveKind
bridge = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'B'
, cname :: Text
cname = Text
"Captain's bridge"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_BRIDGE, X
1)]
, cXminSize :: X
cXminSize = X
30
, cYminSize :: X
cYminSize = X
30
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
4 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5) (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5)
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
3) (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
4)
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
16 Dice
20
, cdarkOdds :: Dice
cdarkOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Rational
2
, cactorCoeff :: X
cactorCoeff = X
300
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
ANIMAL, X
100)]
, citemNum :: Dice
citemNum = X
12 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [(GroupName ItemKind
IK.COMMON_ITEM, X
100), (GroupName ItemKind
GARDENING_TOOL, X
800)]
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
FILLER_WALL
, cfenceTileN :: GroupName TileKind
cfenceTileN = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileE :: GroupName TileKind
cfenceTileE = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileS :: GroupName TileKind
cfenceTileS = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cfenceTileW :: GroupName TileKind
cfenceTileW = GroupName TileKind
HABITAT_CONTAINMENT_WALL
, cminStairDist :: X
cminStairDist = X
10
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
1
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
WELDED_WALLED_LIFT, X
50)
, (GroupName PlaceKind
WELDED_OPEN_LIFT, X
50)
, (GroupName PlaceKind
WELDED_TINY_LIFT, X
1) ]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = [ (GroupName PlaceKind
WELDED_WALLED_STAIRCASE, X
50)
, (GroupName PlaceKind
WELDED_OPEN_STAIRCASE, X
50)
, (GroupName PlaceKind
WELDED_TINY_STAIRCASE, X
1) ]
, cdesc :: Text
cdesc = Text
"The bridge is gutted out and nonoperational. You saved space on the shuttle by only packing demolition equipment (and booze, long gone, all flasks flung to fend off the annoying vermin) and now you can't even attempt repairs. You are also short on rations and vials of medicine to treat your recent wounds. Only water is plentiful on the ship: gaseous, liquid, frozen. There are animal cries down below and ominous silence up above."
}
shallowRogue :: CaveKind
shallowRogue = CaveKind
rogue
{ cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_SHALLOW_ROGUE, X
100)]
, cXminSize :: X
cXminSize = X
60
, cYminSize :: X
cYminSize = X
37
, cactorCoeff :: X
cactorCoeff = X
120
, cactorFreq :: Freqs ItemKind
cactorFreq = ((GroupName ItemKind, X) -> Bool)
-> Freqs ItemKind -> Freqs ItemKind
forall a. (a -> Bool) -> [a] -> [a]
filter ((GroupName ItemKind -> GroupName ItemKind -> Bool
forall a. Eq a => a -> a -> Bool
/= GroupName ItemKind
MONSTER) (GroupName ItemKind -> Bool)
-> ((GroupName ItemKind, X) -> GroupName ItemKind)
-> (GroupName ItemKind, X)
-> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (GroupName ItemKind, X) -> GroupName ItemKind
forall a b. (a, b) -> a
fst) (Freqs ItemKind -> Freqs ItemKind)
-> Freqs ItemKind -> Freqs ItemKind
forall a b. (a -> b) -> a -> b
$ CaveKind -> Freqs ItemKind
cactorFreq CaveKind
rogue
, citemNum :: Dice
citemNum = X
14 X -> X -> Dice
`d` X
2
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
40), (GroupName ItemKind
IK.CRAWL_ITEM, X
60)
, (GroupName ItemKind
GARDENING_TOOL, X
700), (GroupName ItemKind
IK.ANY_FLASK, X
200) ]
, cminStairDist :: X
cminStairDist = X
15
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
2
, cskip :: [X]
cskip = [X
0, X
1]
, cdesc :: Text
cdesc = Text
"This close to the outermost deck, residence is not permitted and walls and doors are sturdier to contain a theoretically possible micro-meteorite breach. The entry is not closed off, though, because some passengers can't live without a regular pilgrimage to 'look outside' and the only way to the bottom-most level leads through here. Apparently, gazing at the sharp pin-points of stars and planets through the reinforced oriel glass is incomparable to watching the same through the thin polymer of wall displays.\nAnimals appear to share the fascination of outer decks, perhaps attracted by the increased gravity, nearly Earth-like, unlike elsewhere on the ship. However, they dislike many industrial fluids stored on these floors, so flinging random flasks at them works as an effective deterrent. Moreover, if you throw an unidentified flask, you can be sure you won't waste a badly needed nano medicine, because it's never stored in such large containers. Even tiny vials cost a fortune."
}
raid :: CaveKind
raid = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'S'
, cname :: Text
cname = Text
"Triton City sewers"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_RAID, X
1)]
, cXminSize :: X
cXminSize = X
60
, cYminSize :: X
cYminSize = X
21
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
7) Dice
6
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
4) Dice
5
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
16 Dice
20
, cdarkOdds :: Dice
cdarkOdds = Dice
0
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
FILLER_WALL
, cactorCoeff :: X
cactorCoeff = X
250
, cactorFreq :: Freqs ItemKind
cactorFreq = [(GroupName ItemKind
ANIMAL, X
50), (GroupName ItemKind
ROBOT, X
50)]
, citemNum :: Dice
citemNum = X
9 X -> X -> Dice
`d` X
6
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
30)
, (GroupName ItemKind
STARTING_ARMOR, X
100), (GroupName ItemKind
STARTING_WEAPON, X
300)
, (GroupName ItemKind
WEAK_ARROW, X
100), (GroupName ItemKind
LIGHT_ATTENUATOR, X
50)
, (GroupName ItemKind
IK.S_CURRENCY, X
400), (GroupName ItemKind
IK.ANY_SCROLL, X
100) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
RAID, X
1)]
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cescapeFreq :: Freqs PlaceKind
cescapeFreq = [(GroupName PlaceKind
INDOOR_ESCAPE_UP, X
1)]
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cdesc :: Text
cdesc = Text
"Mold spreads across the walls and scuttling sounds can be heard in the distance."
}
brawl :: CaveKind
brawl = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'S'
, cname :: Text
cname = Text
"Woodland biosphere"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_BRAWL, X
1)]
, cXminSize :: X
cXminSize = X
60
, cYminSize :: X
cYminSize = X
30
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
2 X -> X -> Dice
`d` X
5 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5) Dice
7
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
3 Dice
3
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
7 Dice
5
, cdarkOdds :: Dice
cdarkOdds = Dice
51
, cnightOdds :: Dice
cnightOdds = Dice
0
, cdoorChance :: Rational
cdoorChance = Rational
1
, copenChance :: Rational
copenChance = Rational
0
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
6 X -> X -> Dice
`d` X
6
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
50)
, (GroupName ItemKind
STARTING_WEAPON, X
200), (GroupName ItemKind
STARTING_ARMOR, X
400)
, (GroupName ItemKind
IK.ANY_SCROLL, X
100), (GroupName ItemKind
IK.ANY_POTION, X
600) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
BRAWL, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
BRAWL_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
DIRT_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
DIRT_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
1
, cstairFreq :: Freqs PlaceKind
cstairFreq = [(GroupName PlaceKind
OUTDOOR_TINY_STAIRCASE, X
1)]
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cskip :: [X]
cskip = []
, cdesc :: Text
cdesc = Text
"Shadows pool under the trees and leaves crunch underfoot."
}
brawlAlt :: CaveKind
brawlAlt = CaveKind
brawl
{ cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_BRAWL_ALT, X
1)]
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
100
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
HUNT_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
S_FROZEN_PATH
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
S_FROZEN_PATH
, cskip :: [X]
cskip = [X
0]
, cdesc :: Text
cdesc = Text
"With the Sun so distant, biospheres are stacked vertically rather than horizontally, sharing drainage, not lighting."
}
shootout :: CaveKind
shootout = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'S'
, cname :: Text
cname = Text
"Hydroponic farm"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_SHOOTOUT, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5) Dice
6
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
3 Dice
3
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
5 Dice
5
, cdarkOdds :: Dice
cdarkOdds = Dice
0
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, cdoorChance :: Rational
cdoorChance = Rational
1
, copenChance :: Rational
copenChance = Rational
0
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
6 X -> X -> Dice
`d` X
16
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
30), (GroupName ItemKind
GARDENING_TOOL, X
500)
, (GroupName ItemKind
ANY_ARROW, X
400), (GroupName ItemKind
HARPOON, X
200), (GroupName ItemKind
IK.EXPLOSIVE, X
300) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
SHOOTOUT, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
SHOOTOUT_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
DIRT_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
DIRT_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cdesc :: Text
cdesc = Text
"Once so carefully curated, the planting beds are now overgrown and choked with weeds. The recently imposed high taxes make the traditional ways of life in space unsustainable."
}
hunt :: CaveKind
hunt = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'H'
, cname :: Text
cname = Text
"Swamp biosphere"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_HUNT, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
2 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
5) Dice
6
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
3 Dice
3
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
5 Dice
5
, cdarkOdds :: Dice
cdarkOdds = Dice
51
, cnightOdds :: Dice
cnightOdds = Dice
0
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, cdoorChance :: Rational
cdoorChance = Rational
1
, copenChance :: Rational
copenChance = Rational
0
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
6 X -> X -> Dice
`d` X
10
, citemFreq :: Freqs ItemKind
citemFreq = [(GroupName ItemKind
IK.COMMON_ITEM, X
30), (GroupName ItemKind
ANY_ARROW, X
60), (GroupName ItemKind
HARPOON, X
30)]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
BRAWL, X
50), (GroupName PlaceKind
SHOOTOUT, X
100)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
HUNT_SET_LIT
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
DIRT_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
DIRT_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cdesc :: Text
cdesc = Text
"Mangrove trees and murky water, inspired by a habitat now eradicated from Earth."
}
escape :: CaveKind
escape = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'E'
, cname :: Text
cname = Text
"Red Collar Bros den"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_ESCAPE, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
6) Dice
7
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
5 Dice
4
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
9 Dice
9
, cdarkOdds :: Dice
cdarkOdds = Dice
0
, cnightOdds :: Dice
cnightOdds = Dice
51
, cauxConnects :: Rational
cauxConnects = Rational
2
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
100
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
8 X -> X -> Dice
`d` X
8
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
30), (GroupName ItemKind
STARTING_ARMOR, X
100)
, (GroupName ItemKind
LIGHT_ATTENUATOR, X
300), (GroupName ItemKind
GEM, X
400)
, (GroupName ItemKind
WEAK_ARROW, X
400), (GroupName ItemKind
HARPOON, X
200), (GroupName ItemKind
IK.EXPLOSIVE, X
200) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
ESCAPE, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
ESCAPE_SET_DARK
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
SAFE_TRAIL_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
SAFE_TRAIL_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cescapeFreq :: Freqs PlaceKind
cescapeFreq = [(GroupName PlaceKind
OUTDOOR_ESCAPE_DOWN, X
1)]
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cskip :: [X]
cskip = [X
0]
, cdesc :: Text
cdesc = Text
"Graffiti scrawls across the walls and the heavy scents of stimulants hang in the air."
}
zoo :: CaveKind
zoo = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'Z'
, cname :: Text
cname = Text
"Municipal zoo in flames"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_ZOO, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
1 X -> X -> Dice
`d` X
4 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
7) Dice
8
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
4 Dice
4
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
14 Dice
7
, cdarkOdds :: Dice
cdarkOdds = Dice
0
, cnightOdds :: Dice
cnightOdds = Dice
51
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
4
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
20
, cdoorChance :: Rational
cdoorChance = Integer
7Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, copenChance :: Rational
copenChance = Integer
9Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
9 X -> X -> Dice
`d` X
8
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
100), (GroupName ItemKind
LIGHT_ATTENUATOR, X
1000)
, (GroupName ItemKind
STARTING_ARMOR, X
500), (GroupName ItemKind
STARTING_WEAPON, X
1000) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
ZOO, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
ZOO_SET_DARK
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
SAFE_TRAIL_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
SAFE_TRAIL_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cdesc :: Text
cdesc = Text
"Leaping flames illuminate the cages; not all are empty."
}
ambush :: CaveKind
ambush = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'M'
, cname :: Text
cname = Text
"Ravaged spaceport"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_AMBUSH, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY Dice
11 Dice
6
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
9 Dice
10
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
40 Dice
30
, cdarkOdds :: Dice
cdarkOdds = Dice
51
, cnightOdds :: Dice
cnightOdds = Dice
51
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
10 X -> X -> Dice
`d` X
10
, citemFreq :: Freqs ItemKind
citemFreq = [ (GroupName ItemKind
IK.COMMON_ITEM, X
30), (GroupName ItemKind
MERCENARY_AMMO, X
200)
, (GroupName ItemKind
HARPOON, X
300), (GroupName ItemKind
IK.EXPLOSIVE, X
50) ]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
AMBUSH, X
1)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
AMBUSH_SET_DARK
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
TRAIL_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
TRAIL_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cdesc :: Text
cdesc = Text
"Scarred walls and ransacked lockers show the total breakdown of order."
}
battle :: CaveKind
battle = CaveKind
rogue
{ csymbol :: Char
csymbol = Char
'B'
, cname :: Text
cname = Text
"Old industrial plant"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_BATTLE, X
1)]
, ccellSize :: DiceXY
ccellSize = Dice -> Dice -> DiceXY
DiceXY (X
5 X -> X -> Dice
`d` X
3 Dice -> Dice -> Dice
forall a. Num a => a -> a -> a
+ Dice
11) Dice
7
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
4 Dice
4
, cmaxPlaceSize :: DiceXY
cmaxPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
9 Dice
7
, cdarkOdds :: Dice
cdarkOdds = Dice
0
, cnightOdds :: Dice
cnightOdds = Dice
51
, cauxConnects :: Rational
cauxConnects = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
4
, cmaxVoid :: Rational
cmaxVoid = Integer
1Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
20
, cdoorChance :: Rational
cdoorChance = Integer
2Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, copenChance :: Rational
copenChance = Integer
9Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
%Integer
10
, chidden :: X
chidden = X
0
, cactorFreq :: Freqs ItemKind
cactorFreq = []
, citemNum :: Dice
citemNum = X
6 X -> X -> Dice
`d` X
8
, citemFreq :: Freqs ItemKind
citemFreq = [(GroupName ItemKind
IK.COMMON_ITEM, X
100), (GroupName ItemKind
LIGHT_ATTENUATOR, X
200)]
, cplaceFreq :: Freqs PlaceKind
cplaceFreq = [(GroupName PlaceKind
BATTLE, X
50), (GroupName PlaceKind
ROGUE, X
50)]
, cpassable :: Bool
cpassable = Bool
True
, cdefTile :: GroupName TileKind
cdefTile = GroupName TileKind
BATTLE_SET_DARK
, cdarkCorTile :: GroupName TileKind
cdarkCorTile = GroupName TileKind
SAFE_TRAIL_LIT
, clitCorTile :: GroupName TileKind
clitCorTile = GroupName TileKind
SAFE_TRAIL_LIT
, cwallTile :: GroupName TileKind
cwallTile = GroupName TileKind
OPENABLE_WALL
, cfenceApart :: Bool
cfenceApart = Bool
True
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
0
, cstairFreq :: Freqs PlaceKind
cstairFreq = []
, cstairAllowed :: Freqs PlaceKind
cstairAllowed = []
, cdesc :: Text
cdesc = Text
"Huge machines stand silent and powerless in the dark."
}
safari1 :: CaveKind
safari1 = CaveKind
brawl
{ cname :: Text
cname = Text
"Hunam habitat"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_SAFARI_1, X
1)]
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
5 Dice
3
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
OUTDOOR_WALLED_STAIRCASE, X
20)
, (GroupName PlaceKind
OUTDOOR_CLOSED_STAIRCASE, X
80)
, (GroupName PlaceKind
OUTDOOR_TINY_STAIRCASE, X
1) ]
, cskip :: [X]
cskip = [X
0]
, cdesc :: Text
cdesc = Text
"\"DLC 1. Hunams scavenge in a forest in their usual disgusting way.\""
}
safari2 :: CaveKind
safari2 = CaveKind
escape
{ cname :: Text
cname = Text
"Deep into the jungle"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_SAFARI_2, X
1)]
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
1
, cescapeFreq :: Freqs PlaceKind
cescapeFreq = []
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
OUTDOOR_WALLED_STAIRCASE, X
20)
, (GroupName PlaceKind
OUTDOOR_CLOSED_STAIRCASE, X
80)
, (GroupName PlaceKind
OUTDOOR_TINY_STAIRCASE, X
1) ]
, cskip :: [X]
cskip = [X
0]
, cdesc :: Text
cdesc = Text
"\"DLC 2. In the dark pure heart of the jungle noble animals roam freely.\""
}
safari3 :: CaveKind
safari3 = CaveKind
zoo
{ cname :: Text
cname = Text
"Jungle in flames"
, cfreq :: Freqs CaveKind
cfreq = [(GroupName CaveKind
CAVE_SAFARI_3, X
1)]
, cminPlaceSize :: DiceXY
cminPlaceSize = Dice -> Dice -> DiceXY
DiceXY Dice
5 Dice
4
, cescapeFreq :: Freqs PlaceKind
cescapeFreq = [(GroupName PlaceKind
OUTDOOR_ESCAPE_DOWN, X
1)]
, cmaxStairsNum :: Dice
cmaxStairsNum = Dice
1
, cstairFreq :: Freqs PlaceKind
cstairFreq = [ (GroupName PlaceKind
OUTDOOR_WALLED_STAIRCASE, X
20)
, (GroupName PlaceKind
OUTDOOR_CLOSED_STAIRCASE, X
80)
, (GroupName PlaceKind
OUTDOOR_TINY_STAIRCASE, X
1) ]
, cdesc :: Text
cdesc = Text
"\"DLC 3. Jealous hunams set jungle on fire and flee.\""
}