diff options
author | Griffin Smith <root@gws.fyi> | 2019-11-30T03·59-0500 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-11-30T03·59-0500 |
commit | 8a1235c3dcf7fe69b2e2ea3eea326858d26d38b9 (patch) | |
tree | 398c6dce549602c9890fbded64e3bdf2646b2a1f /src/Xanthous/Entities/Environment.hs | |
parent | 7d8ce026a2acc5a4d208110750be188f0ce5591c (diff) |
Use menus for combat and picking up items
Refactor a bunch of stuff around to allow for polymorphically surfacing an EntityChar for all entities, and use this to write a generic `entityMenu` function, which generates a menu from the chars of a list of entities - and use that to fully implement (removing `undefined`) menus for both attacking and picking things up when there are multiple entities on the relevant tile.
Diffstat (limited to 'src/Xanthous/Entities/Environment.hs')
-rw-r--r-- | src/Xanthous/Entities/Environment.hs | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/Xanthous/Entities/Environment.hs b/src/Xanthous/Entities/Environment.hs index 811919963122..8baa07650f7c 100644 --- a/src/Xanthous/Entities/Environment.hs +++ b/src/Xanthous/Entities/Environment.hs @@ -14,17 +14,9 @@ import Brick.Widgets.Border.Style (unicode) import Brick.Types (Edges(..)) import Data.Aeson -------------------------------------------------------------------------------- -import Xanthous.Entities - ( Draw(..) - , entityIs - , Entity(..) - , SomeEntity - , Brain(..) - , Brainless(..) - , brainVia - ) import Xanthous.Entities.Draw.Util import Xanthous.Data +import Xanthous.Game.State -------------------------------------------------------------------------------- data Wall = Wall @@ -45,6 +37,7 @@ instance Brain Wall where step = brainVia Brainless instance Entity Wall where blocksVision _ = True description _ = "a wall" + entityChar _ = "┼" instance Arbitrary Wall where arbitrary = pure Wall @@ -90,3 +83,4 @@ instance Brain Door where step = brainVia Brainless instance Entity Door where blocksVision = not . view open description _ = "a door" + entityChar _ = "d" |