about summary refs log tree commit diff
path: root/src/Xanthous/Entities/Entities.hs
AgeCommit message (Collapse)AuthorFilesLines
2019-11-29 Use menus for combat and picking up itemsGriffin Smith1-1/+1
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.
2019-11-29 Implement saving+loading the gameGriffin Smith1-0/+54
Implement ToJSON and FromJSON for all of the various pieces of the game state, and add a pair of functions saveGame/loadGame implementing a prism to save the game as zlib-compressed JSON. To test this, there's now Arbitrary, CoArbitrary, and Function instances for all the parts of the game state - to get around circular imports with the concrete entities this unfortunately is happening via orphan instances, plus an hs-boot file to break a circular import that was just a little too hard to remove by moving things around. Ugh.