Commit graph

11 commits

Author SHA1 Message Date
Griffin Smith
ecd33e0c90 Add ViewPatterns to default-extensions
Seems relatively harmless
2020-05-11 23:03:11 -04:00
Griffin Smith
5337d7c0eb Lower the maximum gormlak coefficient
Little too easy to generate tons of gormlaks and then immediately die.
2020-01-25 10:57:38 -05:00
Griffin Smith
b6f170c02c Generate more reasonable doors
Generate doors at more reasonable positions, by:

- Only generating doors at the *ends* of hallways, where there's a
  tee-shaped opening
- Never generating two doors adjacent to each other
2020-01-08 23:15:32 -05:00
Griffin Smith
0f79a06733 Add staircases, and moving between levels
Currently we just pick randomly between the cave and dungeon level
generators. There's a lot of bugs here, but it's *sorta* working, so I'm
leaving it as is.
2020-01-05 12:55:15 -05:00
Griffin Smith
84f32efad4 Track entity collision in the Entity class
Rather than having a single function in the Game.Lenses module for
determining what collision type if any an entity has, track it in the
Entity typeclass itself. This is both more extensible and a better
separation of concerns and gets rid of one of the two needs for a
circular import. Yay!

As part of this, I realized nothing was being done to prevent doors from
being placed on tiles that already had walls (since now that was
properly causing a collision!) so I've fixed that as well.
2020-01-03 18:28:43 -05:00
Griffin Smith
dcf44f29f5 Place doors on the level
Pick a random subset of cells on the level that have a wall on two
opposite sides and are clear on the other two sides, and place closed,
unlocked doors on those cells.
2019-12-30 12:30:12 -05:00
Griffin Smith
71b628c604 Add messages on the ground
Add support for a "GroundMessage" entity type, support for a Read
command to read them, and randomly place an initial, tone-setting
tutorial message on the ground near the character at the beginning of
the game.
2019-11-30 19:55:43 -05:00
Griffin Smith
d632a30d05 Implement combat
Put a bunch of gormlaks randomly on the level, and implement combat via
damaging those gormlaks by one point.
2019-09-21 12:43:54 -04:00
Griffin Smith
4db3a68efe Add doors and an open command
Add a Door entity and an Open command, which necessitated supporting the
direction prompt. Currently nothing actually puts doors on the map,
which puts a slight damper on actually testing this out.
2019-09-20 19:38:46 -04:00
Griffin Smith
62a2e05ef2 Add items and inventory
Add a new "Item" entity, which pulls from the previously-existent
ItemType raw, and add a "PickUp" command which takes the (currently
*only*) item off the ground and puts it into the inventory.
2019-09-19 13:56:14 -04:00
Griffin Smith
c06edf3cc6 Place the chacracter in the level at startup time
Randomly select a position in the largest contiguous region of the
generated level in which to place the character at startup time.
2019-09-13 15:24:05 -04:00