Add a drop command

Add a drop command, bound to 'd', which prompts the character for an
item in their inventory, removes it from the inventory, and places it on
the ground. Along the way I had to fix a bug in the
`EntityMap.atPosition` lens, which was always appending to the existing
entities at the position on set, without removing the entities that were
already there - the rabbit hole of quickchecking the lens laws here also
lead to replacing the target of this lens with a newtype called
`VectorBag`, which ignores order (since the entitymap makes no
guarantees about order of entities at a given position).
This commit is contained in:
Griffin Smith 2019-12-23 12:19:51 -05:00
parent bf7d139c1a
commit 052bc8455a
10 changed files with 197 additions and 27 deletions

View file

@ -41,7 +41,6 @@ dependencies:
- MonadRandom
- mtl
- optparse-applicative
- parallel
- random
- random-fu
- random-extras