Commit graph

118 commits

Author SHA1 Message Date
Griffin Smith
580e37ff64 refactor(gs/xanthous): Use a Word for the level number
Using a signed Int here is a little silly, since we can never have
negative levels.

Change-Id: Ibe03be5014226e07dfa6f78d8360301bc1b7c9b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3803
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-06 17:34:46 +00:00
Griffin Smith
e0bec49b39 fix(gs/xanthous): Update hie.yaml for new app/ directory
Change-Id: I87c82f22313285085ac53485613b7d9f91b52ed2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3802
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-06 15:52:02 +00:00
Griffin Smith
ff6c008d78 feat(gs/xanthous): Default to the current save file
When saving, default to the save file that was loaded for the game if
any. To support this, this also makes text prompts support a default,
which will be used if no value is input.

Change-Id: I72a826499d6e987b939e3465a2d29167e53416be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3801
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-06 15:52:02 +00:00
Griffin Smith
18315b2fb6 fix(gs/xanthous): Preserve character state when going up stairs
Carry over everything except the character's position when going up
stairs, so that eg the character doesn't lose everything they picked up
and instantly heal to full when going up a level.

Change-Id: I08513578a72f2410a363bbadbb273d95826a3f1b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3766
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-10-30 17:16:21 +00:00
Griffin Smith
ddfea5aca0 fix(gs/emacs): Fix directory for xanthous capture template
Change-Id: Ie06086f919656a3ad3673934a1f1c2d266622621
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3765
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-10-30 17:16:21 +00:00
Griffin Smith
61802fe106 feat(gs/xanthous): Allow throwing rocks
Implement a first pass at a "fire" command, which allows throwing rocks,
the max distance and the damage of which is based on the weight of the
item and the strength of the player.

Currently the actual numbers here likely need some tweaking, as the
rocks are easily throwable at good distances but don't really deal any
damage.

Change-Id: Ic6ad0599444af44d8438b834237a1997b67f220f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3764
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-10-30 17:16:21 +00:00
Griffin Smith
352c75630d feat(gs/xanthous): Send message when resting
Change-Id: Ib1e7ae6dfcbc2d2e86a28b401e67cd5dd22d6281
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3763
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-10-30 17:16:21 +00:00
Griffin Smith
263260bbdf feat(gws.fyi): Host ssh key
Change-Id: I387ead1daa65a3b39c3771f95f5f6734aebabea9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3737
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-20 14:07:34 +00:00
Griffin Smith
d70cb4c641 feat(gs/home): Upgrade discord to 0.0.16
Change-Id: I2300fc7345dcd644b954c1232bc8a5f0a1858d00
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3736
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-20 14:07:24 +00:00
sterni
465c9e7257 refactor(grfn/keyboard): use pkgsCross.avr's default gcc
The default gcc version for pkgsCross.avr.buildPackages is 10.x, which
seems to be able to build the layout derivation just fine.

Change-Id: Ib7790419f38121ea2b1a09c790ef3a04afc0f9f8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3712
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-14 21:23:37 +00:00
Griffin Smith
05074550fe fix(gs/emacs): Fix packer-format-buffer
The previous impl of this was formatting the pre-save contents of the
buffer, effectively preventing saving any changes (oops).

Change-Id: I17d4b8ba0943964d700f7dca81af4f46b149c0b8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3644
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Griffin Smith
b330578b89 feat(gs/home): Install cargo-bloat
Change-Id: I525aa3ddcacb583e6d3a3ba1529d718b43379273
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3643
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Griffin Smith
641d722d43 feat(gs/yeren): Don't encrypt swap partition
This is really just not worth the performance hit

Change-Id: I6f603aa154c562da2803bd8f73b1135faad243be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3642
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Griffin Smith
f746020d58 fix(gs/emacs): Disable idris temporarily
This doesn't work right now, and I'm not currently writing any idris

Change-Id: I7c090ad9f05c5d24f4f80fdd444e8995629aaba4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3641
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Vincent Ambo
87c141d3d7 chore(3p/nixpkgs): Bump channels to 2021-09-20
Included fixes:

* grfn/mugwump: removed superfluous Buildkite agent user
* tazjin/camden: Disabled bitlbee (user config is broken)
* grfn/home/vim: vimUtils expects a `pname`
* 3p/nixpkgs: Pick awscli2 from stable channel

Change-Id: I64ed726b3350f75c7a8a0e6552bcf1d8d9ba7d46
2021-09-21 14:45:11 +03:00
sterni
2f750e4a14 refactor(grfn/xanthous): avoid unnecessary recompilation
hpack is a bit dumb when generating the list of modules for a cabal
file's component if multiple of them live in the same directory.
Specifically it seems to assume that all modules in the source-dirs
of a particular component are also necessary for its compilation.

This is quite bad in the case of xanthous since both library and
executable have source-dirs: src, so all modules will be compiled
twice: Once for the library and then again for the executable
despite it depending on the library (actually 4 times in total
since we need to build a unprofiled and profiled object for each
module…).

To fix this we just move Main.hs into its own directory and change
the executable's source-dirs, so hpack doesn't get confused anymore.
Since all components now have their own source-dirs, unnecessary
redundant compilation should be down to 0. The diff of the cabal
file shows quite nicely how many module recompilation we've gotten
rid of.

Change-Id: I2df4fab9b0299b3a2b5d3005508c79b2d9796039
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3533
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-11 16:00:12 +00:00
Griffin Smith
4c4aa8e413 fix(gs/home): Hardcode home directory
`config.home.homeDirectory` is never set, meaning that when this builds
in CI it just uses the $HOME of the buildkite agent that's running,
causing it to almost always rebuild on new changes - I'm never going to
have a username on a system other than `grfn`, so this is fine to just
hardcode.

Change-Id: I920a0c546f4c06d0429534d116465e8f732218e7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3495
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-09-07 18:57:51 +00:00
Griffin Smith
930a11d009 feat(gs/system): Conditionally add private.nix
I have some secret stuff here (not security-secret, just secret that I'm
installing it in my system) so this has to be conditionally included

Change-Id: Idb12e5bbab507ad3dc5eb610199fd384789c0e20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3491
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-02 17:05:21 +00:00
Griffin Smith
3ce45e8d9f feat(gs/emacs): Use notmuch tree
Change-Id: I20eab33ab10a44b6fc230a1fc1c232208c221554
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3489
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-09-02 17:05:21 +00:00
Griffin Smith
4f1062f0d9 feat(gs/system): Install cargo-udeps
Change-Id: I30b956cfbeb0b8f8553c8ee41c4979d4ec0c363b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3488
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-09-02 17:05:21 +00:00
Griffin Smith
d857d5ad68 refactor(gs/system): Remove chupacabra
This machine no longer exists

Change-Id: I8e549b8397777a01404bd84c10c195e80f281744
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3431
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-08-26 19:41:42 +00:00
Griffin Smith
8201f0f3d8 refactor(gs/system): Remove rebuilder script
I no longer use this, I just use the rebuild-system that all nixos
systems get now.

Change-Id: I2272ff13b21b3194c06b51dbc340c19b8bb336a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3430
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-26 19:10:19 +00:00
Griffin Smith
aad7e7e74b fix(gs/emacs): Don't repeat flycheck nav with evil .
Prevent flycheck-next-error and flycheck-prev-error from being repeated
by evil, since they're movement commands rather than editing commands.
This lets me spam `]e.` if I have to do the same thing to all the errors
in a buffer, for example.

Change-Id: I5993f6d19b71b63e5f4be1f3ce9e0cfd0357cc6e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3425
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-26 13:45:27 +00:00
Griffin Smith
5ba19ec2a2 fix(grfn/system): Fix rust-analyzer target dir
This was missing a path segment, plus calling it rust-analyzer makes it
clearer what's going on

Change-Id: I8f71fe1b438d72f743472ab10ec939f686ad0da1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3424
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-26 13:45:27 +00:00
Griffin Smith
a1205f0565 feat(gs/home): Alias tf->terraform
Change-Id: Ic79fec6b19c185a6e094dfc9571ea783a1e07148
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3423
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-26 13:45:27 +00:00
sterni
559ee9467b chore(3p): bump NixOS channels to 2020-08-18
Wanted to port my emacs config to depot, but missing a dependency from
the channel. Adjustments:

* Downgrade grfn's Kernel to 5.10: The ck1 patch is not yet available
  for 5.13 unfortunately and the 5.12 set has been removed upstream.

Change-Id: Ifaf315427bda2af590549ca0abec02a79f19a3ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3375
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-24 12:13:06 +00:00
sterni
32de4cbd93 refactor(users/grfn/gws.fyi): implement isDirectory in pure nix
Another day, another import from derivation avoided by
builtins.unsafeDiscardStringContext!

Change-Id: I67274b1ba13ba980bb3346b22f2955c702aa3151
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3372
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-08-24 12:13:06 +00:00
Griffin Smith
5627c67bed fix(gws.fyi): eg -> ie
Thanks sterni!

Change-Id: I7a6ee7586fac45fe62e1d4016e1520e66381caf1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3373
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-18 14:27:51 +00:00
Griffin Smith
15163fdc16 feat(gws.fyi): Add a recipe for tomato paste
Someone asked for this, so here it is.

Change-Id: I00c52deb8c3f4e8f786cf4763b39d862ad041f6d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3371
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-18 03:23:04 +00:00
Griffin Smith
8dd5ee26d7 feat(gws.fyi): Allow building whole org directories
Allow building entire directories containing org files as html
directories with org-export-html

Change-Id: I805da6b2da7e8ea67da13c858f962f36ed120972
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3370
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-18 03:22:46 +00:00
Griffin Smith
b43366ed50 feat(gs/home): Install cargo-rr
Change-Id: If32e485f7ee8f4ae1e4b68be33aa1261c5cf2dbd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3290
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Griffin Smith
387425744d feat(gs/emacs): Set popup rules for gud buffers
Change-Id: I74730a924b7cf6652dd64704aa36f850160d8bae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3289
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Griffin Smith
2d6e4cda13 feat(gs/emacs): Put rust-analyzer in a different target dir
This stops it from interfering with command line invocations of things
like cargo test

Change-Id: Icc24a27ac5e17bb88ed539c13fc33204ef55ce82
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3288
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Griffin Smith
3d5c10f7b1 feat(gs/emacs): Bind g RET to lsp-rust-analyzer-run
Change-Id: I667f9033824d4a32abedfb275ea35a06a371ab12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3287
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Vincent Ambo
e7de89e06a chore(3p/nixpkgs): Bump nixpkgs channels to 2021-08-04
I used //tools/depot-nixpkgs-update for this - thanks again, sterni!

Included fixes:

* temporary workaround for building notmuch python package, fixed in
  upstream already (but channel hasn't advanced there)
* Disable fprintd in grfn.system.yeren, as the fprintd-tod package
  currently has a version mismatch in nixpkgs

Co-authored-by: Griffin Smith <grfn@gws.fyi>
Change-Id: If6d71b08ace9db57daadfe3b69b9cd4aec6a5a4e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3274
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-08-08 01:28:36 +00:00
Griffin Smith
93b2518b1c fix(gs/emacs): Explicitly bind g d to lsp-find-definition in rust
Change-Id: I1d3cbccf1e976df1c08a6e34b736392208351a26
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3272
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-02 21:09:54 +00:00
Griffin Smith
e22bd20e27 feat(gs/emacs): Switch org-ellipsis character
The old one's displaying as an emoji, upsettingly

Change-Id: I50980e4b9f2a58463e749a8adcc32f0f9ca1d154
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3261
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-30 16:37:23 +00:00
sterni
02aaed54f6 chore(3p): bump unstable channel to 2021-07-03
Didn't bother to update the stable channel as it is unused currently.

Changes required:

* tazjin/frog, grfn/modules/obs:
  Remove obs-v4l2sink as it has been integrated into upstream OBS and
  the package removed from nixpkgs subsequently (at least according to
  the `builtins.throw`-message).

Change-Id: I4335ed060eef2c4ff8ac55a68d894bcc3d8ef4a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3243
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-07-16 13:57:04 +00:00
Griffin Smith
f32cc0ecb1 fix(gs/system): Add mime handler for telegramdesktop
Telegram adds this itself, which means the file is different from what
home-manager knows about, which means running home-manager switch
breaks unless this is here.

Change-Id: Iad507bf63365a630b7eef349228b633f5b83d78b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3251
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
2c6b00330f refactor(gs/emacs): Drop flow config
Change-Id: Ide0f3c4de34e6d9cb90038094407f1aa99ccf96f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3250
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
af7d26f08d fix(gs/emacs): Shift around loading of org config
I don't know why this is causing issues, I really don't. But I get
agenda items without having to reload this file now.

Change-Id: I38fd4f7942430a07231cadbc0320e1ba786616e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3249
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
b5339a7e51 fix(gs/emacs): Pass --read-envelope-from to sendmail
Change-Id: I8e4c0171336cad3ed817956b07b371aba706ab9f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3248
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
e00a7263fb feat(gs/emacs): Don't display info-level flycheck errors
These end up being things like "hey, you used a proc macro" which isn't
useful to me, and clogs up the rest of my error navigation.

Change-Id: I9ccfddcce9683184f2479ae1aa30a8414f7e7c51
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3242
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-06 18:32:08 +00:00
Griffin Smith
ad8d38c64c fix(xanthous): Fix display of square/cubic units
Previously this'd display `5 m m³`, because it'd show the underlying
value then add the unit suffix on at the end

Change-Id: Idd240ddfebc212460f9fb529eff72732a5dafe2a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3241
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-06 18:32:08 +00:00
Griffin Smith
e62f578687 fix(gs/emacs): Fix headlines-from-assigned-to-me
If org-tracker-headlines-from-search is called non-interactively, it
only *returns* the org headlines as a string, rather than inputting them
at point.

Change-Id: Ia43d516f35a11383b206a57f345a6aeedfe86831
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3230
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
7437a18188 fix(xanthous): Only use alphabetic chars for menu items
Previously, we were using `smallestNotIn` for selecting new characters
for menu items with duplicate chatacters - this uses the 'Bounded'
instance for the type, which for Char meant the first character we would
always select was \NUL - making it look like the menu item had no
character, and making it impossible to actually select the menu item.
This introduces an AlphaChar newtype, which is a wrapper around Char
whose Bounded and Enum instances only use alphabetic characters (a-ZA-Z)
and uses that for menu characters instead.

Change-Id: If34ed9e9ce84f2bcb1cb87432cc6273f40b69f72
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3229
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
76258fbfa1 feat(xanthous): Describe *where* the item is in the inventory
When describing items in the inventory, both in detail and when
producing menus from those items, describe not just the item itself but
also *where* in the inventory the item is (either in the backpack, or
wielded in either or both of the hands). This uses a new
InventoryPosition datatype, and a method to get a list of items in the
inventory associated with their inventory position. When *removing*
items from the inventory (to wield, drop, or eat them), we want to make
sure we remove from the right position, so this also introduces
a `removeItemAtPosition` method to make that happen correctly.

Finally, some of the tests for this stuff was getting really slow - I
narrowed this down to runaway arbitrary generation for message
Templates, so I've tweaked the Arbitrary instance for that type to
generate smaller values.

Change-Id: I24e9948adae24b0ca9bf13955602108ca9079dcc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3228
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
f0c167d361 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
2021-06-23 21:52:08 +00:00
Griffin Smith
d8bd8e7eea feat(xanthous) Generate random volume+density for items
Generate random volumes and densities for items based on the ranges for
those two quantities in the raw when building instances of items.

Since this is the first time creating an item is impure, this also lifts
entity generation into a (random) monadic context

Change-Id: I2de4880e8144f7ff9e1304eb32806ed1d7affa18
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3226
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
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