feat(xanthous): Add a command to describe an item in the inventory
Add a new DescribeInventory command, bound to I, to prompt for an item in the inventory (anywhere in the inventory, including wielded) and display a (new) panel describing it in detail. This description includes the description, the long description, and the item's physical properties (volume, density, and weight). Change-Id: Idc1a05ab16b4514728d42aa6b520f93bea807c07 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3227 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
This commit is contained in:
parent
d8bd8e7eea
commit
f0c167d361
8 changed files with 139 additions and 31 deletions
|
|
@ -10,6 +10,7 @@ module Xanthous.Entities.Item
|
|||
, newWithType
|
||||
, isEdible
|
||||
, weight
|
||||
, fullDescription
|
||||
) where
|
||||
--------------------------------------------------------------------------------
|
||||
import Xanthous.Prelude
|
||||
|
|
@ -61,3 +62,15 @@ isEdible = Raw.isEdible . view itemType
|
|||
-- density of its material
|
||||
weight :: Item -> Grams
|
||||
weight item = (item ^. density) |*| (item ^. volume)
|
||||
|
||||
-- | Describe the item in full detail
|
||||
fullDescription :: Item -> Text
|
||||
fullDescription item = unlines
|
||||
[ item ^. itemType . Raw.description
|
||||
, ""
|
||||
, item ^. itemType . Raw.longDescription
|
||||
, ""
|
||||
, "volume: " <> tshow (item ^. volume)
|
||||
, "density: " <> tshow (item ^. density)
|
||||
, "weight: " <> tshow (weight item)
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue