tvl-depot/users/grfn/xanthous
Griffin Smith 8b97683f6e feat(xanthous): Track the volume and density of item types
Allow the itemType raw to have density and volume fields, both of which
represent *intervals* of both density and volume (because both can
hypothetically vary a bit). The idea here is that when we're making
an *instance* of one of these items, we pick a random value in the
range.

Lots of stuff in this commit is datatype and typeclass instances to
support things like intervals being fields on datatypes that get
serialized to saved games - including a manual definition of Ord for
Item since Ord isn't well-defined for intervals

Change-Id: Ia088f2f75cdce9d00560297e5c269e3310b85bc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3225
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
..
.github refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
bench refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
build refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
src feat(xanthous): Track the volume and density of item types 2021-06-23 21:52:08 +00:00
test feat(xanthous): Track the volume and density of item types 2021-06-23 21:52:08 +00:00
.envrc refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
.gitignore refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
default.nix refactor(users/grfn): build all haskell packages without ifd 2021-04-13 10:34:24 +00:00
hie.yaml refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
LICENSE refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
nixpkgs.nix refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
package.yaml feat(xanthous): Track the volume and density of item types 2021-06-23 21:52:08 +00:00
pkg.nix feat(xanthous): Add a generator for random english syllables 2021-06-13 01:24:47 +00:00
README.org refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
Setup.hs refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
shell.nix feat(xanthous): Install qpdf in the shell 2021-06-18 17:51:43 +00:00
xanthous.cabal feat(xanthous): Track the volume and density of item types 2021-06-23 21:52:08 +00:00

Xanthous

Building

$ nix build

Running

$ ./result/bin/xanthous [--help]

Keyboard commands

Keyboard commands are currently undocumented, but can be found in [this file. Movement uses the nethack-esque hjklybnu.

Development

Use lorri, or run everything in a nix-shell

# Build (for dev)
$ cabal new-build

# Run the game
$ cabal new-run xanthous

# Run tests
$ cabal new-run test

# Run a repl
$ cabal new-repl