From 8a1235c3dcf7fe69b2e2ea3eea326858d26d38b9 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Fri, 29 Nov 2019 22:59:15 -0500 Subject: 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. --- src/Xanthous/Entities/Item.hs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/Xanthous/Entities/Item.hs') diff --git a/src/Xanthous/Entities/Item.hs b/src/Xanthous/Entities/Item.hs index ddd387af8c78..465110069c1d 100644 --- a/src/Xanthous/Entities/Item.hs +++ b/src/Xanthous/Entities/Item.hs @@ -15,14 +15,7 @@ import Data.Aeson.Generic.DerivingVia -------------------------------------------------------------------------------- import Xanthous.Entities.RawTypes hiding (Item, description, isEdible) import qualified Xanthous.Entities.RawTypes as Raw -import Xanthous.Entities - ( Draw(..) - , Entity(..) - , DrawRawChar(..) - , Brain(..) - , Brainless(..) - , brainVia - ) +import Xanthous.Game.State -------------------------------------------------------------------------------- data Item = Item @@ -47,6 +40,7 @@ instance Arbitrary Item where instance Entity Item where blocksVision _ = False description = view $ itemType . Raw.description + entityChar = view $ itemType . Raw.char newWithType :: ItemType -> Item newWithType = Item -- cgit 1.4.1