Safe Haskell | None |
---|---|
Language | Haskell2010 |
Game.LambdaHack.Server.ItemRev
Description
Server types and operations for items that don't involve server state nor our custom monads.
- type ItemRev = HashMap ItemKnown ItemId
- buildItem :: FlavourMap -> DiscoveryKindRev -> Id ItemKind -> ItemKind -> LevelId -> Item
- newItem :: COps -> FlavourMap -> DiscoveryKindRev -> UniqueSet -> Freqs ItemKind -> Int -> LevelId -> AbsDepth -> AbsDepth -> Rnd (Maybe (ItemKnown, ItemFull, ItemDisco, ItemSeed, GroupName ItemKind))
- type UniqueSet = EnumSet (Id ItemKind)
- type DiscoveryKindRev = EnumMap (Id ItemKind) ItemKindIx
- serverDiscos :: COps -> Rnd (DiscoveryKind, DiscoveryKindRev)
- type ItemSeedDict = EnumMap ItemId ItemSeed
- data FlavourMap
- emptyFlavourMap :: FlavourMap
- dungeonFlavourMap :: COps -> Rnd FlavourMap
Documentation
type ItemRev = HashMap ItemKnown ItemId Source #
Reverse item map, for item creation, to keep items and item identifiers in bijection.
buildItem :: FlavourMap -> DiscoveryKindRev -> Id ItemKind -> ItemKind -> LevelId -> Item Source #
Build an item with the given stats.
newItem :: COps -> FlavourMap -> DiscoveryKindRev -> UniqueSet -> Freqs ItemKind -> Int -> LevelId -> AbsDepth -> AbsDepth -> Rnd (Maybe (ItemKnown, ItemFull, ItemDisco, ItemSeed, GroupName ItemKind)) Source #
Generate an item based on level.
Item discovery types
type DiscoveryKindRev = EnumMap (Id ItemKind) ItemKindIx Source #
The reverse map to DiscoveryKind
, needed for item creation.
serverDiscos :: COps -> Rnd (DiscoveryKind, DiscoveryKindRev) Source #
type ItemSeedDict = EnumMap ItemId ItemSeed Source #
The map of item ids to item seeds, needed for item creation.
The FlavourMap
type
data FlavourMap Source #
Flavours assigned by the server to item kinds, in this particular game.
Instances
dungeonFlavourMap :: COps -> Rnd FlavourMap Source #
Randomly chooses flavour for all item kinds for this game.