about summary refs log tree commit diff
path: root/users/grfn/xanthous/src/Xanthous/App.hs (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-05-14 r/4073 feat(grfn/xanthous): Use dual-wielding to calculate damageGriffin Smith1-10/+15
When dual-wielding weapons, do damage from both weapons and use both weapons' attack messages. Change-Id: I3c404946d0167c9b5c2bcf58ab5c3429cc5269fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/5605 Autosubmit: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-05-14 r/4070 fix(grfn/xanthous): Don't remove items on cancelGriffin Smith1-2/+4
Only remove items selected to wield from the inventory once they're actually going to be wielded, to avoid cancelling the hand selection from causing the item to disappear Change-Id: I3c4010058ae18b205a68b035d5e189a10ffbd12c Reviewed-on: https://cl.tvl.fyi/c/depot/+/5510 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: grfn <grfn@gws.fyi>
2022-05-14 r/4069 feat(grfn/xanthous): Describe items in hand when wieldingGriffin Smith1-9/+23
Describe the items already in the hand when prompting for which hand to wield an item in Change-Id: Ifdf2703e8695aae5cbf06a3195fb790428954012 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5509 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: grfn <grfn@gws.fyi>
2022-04-16 r/3962 feat(xanthous): Allow selecting hand for wieldingGriffin Smith1-9/+25
When wielding items, allow selecting which hand the item should be wielded in. Currently this has no actual effect on the mechanics of combat - that'll come next. Change-Id: Ic289ca2d8fa6f5fc0ad5bd0b012818a3acd8599e Reviewed-on: https://cl.tvl.fyi/c/depot/+/5470 Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2022-04-14 r/3945 feat(grfn/xanthous): Add a help panelGriffin Smith1-0/+3
Change-Id: I581a37df0a20fa54878da4446007dbe677e057da Reviewed-on: https://cl.tvl.fyi/c/depot/+/5444 Autosubmit: grfn <grfn@gws.fyi> Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-11-25 r/3099 feat(gs/xanthous): Creatures drop their items when they dieGriffin Smith1-2/+14
When a creature is killed, it now drops all the contents of its inventory on the ground. Change-Id: Ie95c397308ba2c9861f10e58b99c91c9cc759c56
2021-11-22 r/3081 refactor(gs/xanthous): Break out inventory into a common moduleGriffin Smith1-0/+6
Creatures are going to have an inventory too now in addition to characters, so all the data types and lenses and stuff that define inventory need to be broken out into a separate module so the Creature entity can use them. Change-Id: I83f1c70d316afaaf2e75901f9dc28f79fd2cd31f Reviewed-on: https://cl.tvl.fyi/c/depot/+/3901 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-11-07 r/3017 feat(gs/xanthous): Allow disabling savingGriffin Smith1-25/+28
Add a command-line parameter to disable the Save command, so people don't save and fill up my disk when I'm running this on the internet. Change-Id: I2408e60de2d99764ac53c21c3ea784282576d400 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3808 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-11-06 r/3011 fix(gs/xanthous): Don't gen dupe tutorial messagesGriffin Smith1-4/+6
Don't generate tutorial messages on levels other than the first. Change-Id: I7681377461b92f5d5015931b0088bef9d358d2e4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3804 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-11-06 r/3010 refactor(gs/xanthous): Use a Word for the level numberGriffin Smith1-1/+1
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 r/3008 feat(gs/xanthous): Default to the current save fileGriffin Smith1-9/+18
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-10-30 r/2996 fix(gs/xanthous): Preserve character state when going up stairsGriffin Smith1-1/+7
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 r/2994 feat(gs/xanthous): Allow throwing rocksGriffin Smith1-17/+61
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 r/2993 feat(gs/xanthous): Send message when restingGriffin Smith1-1/+4
Change-Id: Ib1e7ae6dfcbc2d2e86a28b401e67cd5dd22d6281 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3763 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-06-23 r/2681 feat(xanthous): Describe *where* the item is in the inventoryGriffin Smith1-9/+14
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 r/2680 feat(xanthous): Add a command to describe an item in the inventoryGriffin Smith1-15/+55
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 r/2678 feat(xanthous): Track the volume and density of item typesGriffin Smith1-1/+2
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-18 r/2676 feat(xanthous): Fistfighting builds knuckle callusesGriffin Smith1-4/+11
2000 ticks after the character damages their fists by hitting something, the character now develops calluses on their fists (scaled by *how* damaged they've become) that reduce the chance of them receiving additional damage from hitting things - up to a max of 5, which prevents *all* damage from fistfighting. This is all tracked in a new "Knuckles" struct in a new "Body" struct on the character datatype, which manages stepping itself forward as part of the Brain impl on the character. Change-Id: Ica269f16fb340fb25900d2c77fbad32f10c00be2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3222 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-06-18 r/2675 feat(xanthous): Add an auto-rest commandGriffin Smith1-0/+2
Add a command that automatically rests (essentially just stepping the game forwards) until the character's hitpoints are back to full. Currently due to the time it takes for the character to heal this takes a bit too long - my thought there is to make the per-step delay for autocommands different depending on the specific autocommand. Change-Id: I40378c29d3d9d19e9787af1f015bde65fd08868c Reviewed-on: https://cl.tvl.fyi/c/depot/+/3221 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-06-13 r/2655 refactor(xanthous): Generators -> Generators.LevelGriffin Smith1-3/+3
I'm going to start adding generators for things like text soon, so it makes sense to specifically sequester level generators as their own thing Change-Id: I175025375204fab7d75eba67dd06dab9bd2939d3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3201 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-06-12 r/2653 feat(xanthous): Memoize characterVisiblePositionsGriffin Smith1-3/+1
Memoize the return value of characterVisiblePositions to a new, semi-abstracted "memo" field on the GameState, recalcuclated if the character position ever changes. I'm 90% sure that the perf issues we were encountering were actually caused by characterVisiblePositions getting called once for *every tile* on draw, but this slightly larger change also makes the game perform relatively-usably again. Since this is only recalculated if the character position changes, if we ever get non-transparent entities moving around without the characters influence (maybe something building or knocking down walls?) we'll have an issue there where the vision won't be updated as a result of those changes if they happen while the character is taking a non-moving action - but we can cross that bridge when we come to it. Change-Id: I3fc745ddf0014d6f164f735ad7e5080da779b92a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3185 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-12 r/2485 refactor(users/glittershark): Rename to grfnGriffin Smith1-0/+469
Rename my //users directory and all places that refer to glittershark to grfn, including nix references and documentation. This may require some extra attention inside of gerrit's database after it lands to allow me to actually push things. Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>