diff options
author | Griffin Smith <root@gws.fyi> | 2019-09-28T17·20-0400 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-09-28T19·03-0400 |
commit | 1a0f618a829ec356e29176c77ea90a8a5a0157b4 (patch) | |
tree | 90d255974b482f6d59dd26a503d28e7adb090188 /src/Xanthous/Entities/Item.hs | |
parent | 915264acae35e71f79c6193d022baa2455d880d3 (diff) |
Implement the start of creature AI
Add a Brain class, which determines for an entity the set of moves it makes every step of the game, and begin to implement that for gormlaks. The idea here is that every step of the game, a gormlak will move towards the furthest-away wall it can see.
Diffstat (limited to 'src/Xanthous/Entities/Item.hs')
-rw-r--r-- | src/Xanthous/Entities/Item.hs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/Xanthous/Entities/Item.hs b/src/Xanthous/Entities/Item.hs index 6b50f50ad83c..832f0d4d62b3 100644 --- a/src/Xanthous/Entities/Item.hs +++ b/src/Xanthous/Entities/Item.hs @@ -1,4 +1,5 @@ {-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE StandaloneDeriving #-} -------------------------------------------------------------------------------- module Xanthous.Entities.Item ( Item(..) @@ -13,7 +14,14 @@ import Data.Aeson.Generic.DerivingVia -------------------------------------------------------------------------------- import Xanthous.Entities.RawTypes hiding (Item, description) import qualified Xanthous.Entities.RawTypes as Raw -import Xanthous.Entities (Draw(..), Entity(..), DrawRawChar(..)) +import Xanthous.Entities + ( Draw(..) + , Entity(..) + , DrawRawChar(..) + , Brain(..) + , Brainless(..) + , brainVia + ) -------------------------------------------------------------------------------- data Item = Item @@ -27,6 +35,9 @@ data Item = Item Item makeLenses ''Item +-- deriving via (Brainless Item) instance Brain Item +instance Brain Item where step = brainVia Brainless + instance Arbitrary Item where arbitrary = Item <$> arbitrary |