Allure-0.4.8: src/Content/TileKind.hs
{-# LANGUAGE OverloadedStrings #-}
-- Copyright (c) 2008--2011 Andres Loeh, 2010--2012 Mikolaj Konarski
-- This file is a part of the computer game Allure of the Stars
-- and is released under the terms of the GNU Affero General Public License.
-- For license and copyright information, see the file LICENSE.
--
-- | Terrain tiles for Allure of the Stars.
module Content.TileKind ( cdefs ) where
import Game.LambdaHack.Common.Color
import Game.LambdaHack.Common.ContentDef
import qualified Game.LambdaHack.Common.Effect as Effect
import Game.LambdaHack.Common.Feature
import Game.LambdaHack.Content.TileKind
cdefs :: ContentDef TileKind
cdefs = ContentDef
{ getSymbol = tsymbol
, getName = tname
, getFreq = tfreq
, validate = tvalidate
, content =
[wall, hardRock, pillar, wallSuspect, doorClosed, doorOpen, stairsUp, stairsDown, escapeUp, unknown, floorCorridorLit, floorCorridorDark, floorItemLit, floorItemDark, floorActorItemLit, floorActorItemDark, floorRed, floorBlue, floorGreen]
}
wall, hardRock, pillar, wallSuspect, doorClosed, doorOpen, stairsUp, stairsDown, escapeUp, unknown, floorCorridorLit, floorCorridorDark, floorItemLit, floorItemDark, floorActorItemLit, floorActorItemDark, floorRed, floorBlue, floorGreen :: TileKind
wall = TileKind
{ tsymbol = '#'
, tname = "granite wall"
, tfreq = [ ("litLegend", 100), ("darkLegend", 100), ("fillerWall", 1)
, ("noiseSet", 55), ("combatSet", 5) ]
, tcolor = BrWhite
, tcolor2 = defFG
, tfeature = [HiddenAs "suspect wall"]
}
hardRock = TileKind
{ tsymbol = '#'
, tname = "hard rock"
, tfreq = [("hard rock", 1)]
, tcolor = BrBlack
, tcolor2 = BrBlack
, tfeature = [Impenetrable]
}
pillar = TileKind
{ tsymbol = 'O'
, tname = "pillar"
, tfreq = [("litLegend", 100), ("darkLegend", 100)]
, tcolor = BrWhite
, tcolor2 = defFG
, tfeature = []
}
wallSuspect = TileKind
{ tsymbol = '#'
, tname = "moldy wall"
, tfreq = [("suspect wall", 1)]
, tcolor = BrWhite
, tcolor2 = defFG
, tfeature = [ Suspect
, ChangeTo "closed door" -- never triggered, hack 47
]
}
doorClosed = TileKind
{ tsymbol = '+'
, tname = "closed door"
, tfreq = [("litLegend", 100), ("darkLegend", 100), ("closed door", 1)]
, tcolor = Brown
, tcolor2 = BrBlack
, tfeature = [ Exit, Openable
, ChangeTo "open door"
, HiddenAs "suspect wall"
]
}
doorOpen = TileKind
{ tsymbol = '\''
, tname = "open door"
, tfreq = [("litLegend", 100), ("darkLegend", 100), ("open door", 1)]
, tcolor = Brown
, tcolor2 = BrBlack
, tfeature = [Walkable, Clear, Exit, Closable, ChangeTo "closed door"]
}
stairsUp = TileKind
{ tsymbol = '<'
, tname = "staircase up"
, tfreq = [("litLegend", 100), ("darkLegend", 100)]
, tcolor = BrWhite
, tcolor2 = defFG
, tfeature = [ Walkable, Clear, Lit, Exit, Ascendable
, Cause $ Effect.Ascend 1 ]
}
stairsDown = TileKind
{ tsymbol = '>'
, tname = "staircase down"
, tfreq = [("litLegend", 100), ("darkLegend", 100)]
, tcolor = BrWhite
, tcolor2 = defFG
, tfeature = [ Walkable, Clear, Lit, Exit, Descendable
, Cause $ Effect.Descend 1 ]
}
escapeUp = TileKind
{ tsymbol = '<'
, tname = "exit airlock up"
, tfreq = [("litLegend", 100), ("darkLegend", 100)]
, tcolor = BrYellow
, tcolor2 = BrYellow
, tfeature = [ Walkable, Clear, Lit, Exit, Cause Effect.Escape ]
}
unknown = TileKind
{ tsymbol = ' '
, tname = "unknown space"
, tfreq = [("unknown space", 1)]
, tcolor = defFG
, tcolor2 = BrWhite
, tfeature = []
}
floorCorridorLit = TileKind
{ tsymbol = '.'
, tname = "floor"
, tfreq = [("floorArenaLit", 1), ("noiseSet", 100)]
, tcolor = BrWhite
, tcolor2 = defFG
, tfeature = [Walkable, Clear, Lit]
}
floorCorridorDark = floorCorridorLit
{ tfreq = [("darkCorridor", 1)]
, tcolor = BrYellow
, tcolor2 = BrBlack
, tfeature = [Walkable, Clear]
}
floorItemLit = floorCorridorLit
{ tfreq = [("combatSet", 100)]
, tfeature = CanItem : tfeature floorCorridorLit
}
floorItemDark = floorCorridorDark
{ tfreq = []
, tfeature = CanItem : tfeature floorCorridorDark
}
floorActorItemLit = floorItemLit
{ tfreq = [("litLegend", 100), ("floorRoomLit", 1)]
, tfeature = CanActor : tfeature floorItemLit
}
floorActorItemDark = floorItemDark
{ tfreq = [("darkLegend", 100)]
, tfeature = CanActor : tfeature floorItemDark
}
floorRed = floorCorridorLit
{ tname = "emergency walkway"
, tfreq = [("path", 20)]
, tcolor = BrRed
, tcolor2 = Red
, tfeature = Path : tfeature floorCorridorLit
}
floorBlue = floorRed
{ tname = "transport route"
, tfreq = [("path", 100)]
, tcolor = BrBlue
, tcolor2 = Blue
}
floorGreen = floorRed
{ tname = "greenery path"
, tfreq = [("path", 100)]
, tcolor = BrGreen
, tcolor2 = Green
}