Safe Haskell | None |
---|---|
Language | Haskell2010 |
Server types and operations for items that don't involve server state nor our custom monads.
- type ItemRev = HM.HashMap ItemKnown ItemId
- buildItem :: FlavourMap -> DiscoveryKindRev -> Id ItemKind -> ItemKind -> LevelId -> Item
- newItem :: COps -> FlavourMap -> DiscoveryKindRev -> Freqs ItemKind -> LevelId -> AbsDepth -> AbsDepth -> Rnd (Maybe (ItemKnown, ItemFull, ItemSeed, GroupName ItemKind))
- type DiscoveryKindRev = EM.EnumMap (Id ItemKind) ItemKindIx
- serverDiscos :: COps -> Rnd (DiscoveryKind, DiscoveryKindRev)
- type ItemSeedDict = EM.EnumMap ItemId ItemSeed
- data FlavourMap
- emptyFlavourMap :: FlavourMap
- dungeonFlavourMap :: COps -> Rnd FlavourMap
Documentation
type ItemRev = HM.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 -> Freqs ItemKind -> LevelId -> AbsDepth -> AbsDepth -> Rnd (Maybe (ItemKnown, ItemFull, ItemSeed, GroupName ItemKind)) Source
Generate an item based on level.
Item discovery types
type DiscoveryKindRev = EM.EnumMap (Id ItemKind) ItemKindIx Source
The reverse map to DiscoveryKind
, needed for item creation.
serverDiscos :: COps -> Rnd (DiscoveryKind, DiscoveryKindRev) Source
type ItemSeedDict = EM.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.
dungeonFlavourMap :: COps -> Rnd FlavourMap Source
Randomly chooses flavour for all item kinds for this game.