Safe Haskell | None |
---|---|
Language | Haskell2010 |
AI strategy abilities.
Synopsis
- data Ability
- = AbMove
- | AbMelee
- | AbDisplace
- | AbAlter
- | AbWait
- | AbMoveItem
- | AbProject
- | AbApply
- type Skills = EnumMap Ability Int
- zeroSkills :: Skills
- unitSkills :: Skills
- addSkills :: Skills -> Skills -> Skills
- scaleSkills :: Int -> Skills -> Skills
- tacticSkills :: Tactic -> Skills
- blockOnly :: Skills
- meleeAdjacent :: Skills
- meleeAndRanged :: Skills
- ignoreItems :: Skills
Documentation
Actor and faction abilities corresponding to client-server requests.
Instances
Bounded Ability Source # | |
Enum Ability Source # | |
Eq Ability Source # | |
Ord Ability Source # | |
Defined in Game.LambdaHack.Common.Ability | |
Show Ability Source # | |
Generic Ability Source # | |
Binary Ability Source # | |
NFData Ability Source # | |
Defined in Game.LambdaHack.Common.Ability | |
Hashable Ability Source # | |
Defined in Game.LambdaHack.Common.Ability | |
type Rep Ability Source # | |
Defined in Game.LambdaHack.Common.Ability type Rep Ability = D1 (MetaData "Ability" "Game.LambdaHack.Common.Ability" "LambdaHack-0.8.1.1-B7gvMzZweCFaQcfmLNwOP" False) (((C1 (MetaCons "AbMove" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "AbMelee" PrefixI False) (U1 :: * -> *)) :+: (C1 (MetaCons "AbDisplace" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "AbAlter" PrefixI False) (U1 :: * -> *))) :+: ((C1 (MetaCons "AbWait" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "AbMoveItem" PrefixI False) (U1 :: * -> *)) :+: (C1 (MetaCons "AbProject" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "AbApply" PrefixI False) (U1 :: * -> *)))) |
type Skills = EnumMap Ability Int Source #
Skill level in particular abilities.
This representation is sparse, so better than a record when there are more item kinds (with few abilities) than actors (with many abilities), especially if the number of abilities grows as the engine is developed. It's also easier to code and maintain.
zeroSkills :: Skills Source #
unitSkills :: Skills Source #
tacticSkills :: Tactic -> Skills Source #
ignoreItems :: Skills Source #