Safe Haskell | None |
---|
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 -> Freqs -> LevelId -> AbsDepth -> AbsDepth -> Rnd (Maybe (ItemKnown, ItemFull, ItemSeed, Int, GroupName))
- 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 ItemIdSource
Reverse item map, for item creation, to keep items and item identifiers in bijection.
buildItem :: FlavourMap -> DiscoveryKindRev -> Id ItemKind -> ItemKind -> LevelId -> ItemSource
Build an item with the given stats.
newItem :: COps -> FlavourMap -> DiscoveryKindRev -> Freqs -> LevelId -> AbsDepth -> AbsDepth -> Rnd (Maybe (ItemKnown, ItemFull, ItemSeed, Int, GroupName))Source
Generate an item based on level.
Item discovery types
type DiscoveryKindRev = EnumMap (Id ItemKind) ItemKindIxSource
The reverse map to DiscoveryKind
, needed for item creation.
type ItemSeedDict = EnumMap ItemId ItemSeedSource
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 FlavourMapSource
Randomly chooses flavour for all item kinds for this game.