- History event type filtering based on level. This was my main goal this week and is partially complete. The power of items and difficulty of enemies that are spawned by the history generator are now limited based on the current dungeon level. I found a number of additional scenarios that need filtering applied as well, so there’s more work to do on this. It’s been challenging figuring out how to integrate history generation, map generation, and difficulty. But, this is critical for proper game balance.
- Map generation improvements. Map Elements, the objects that define how the map is populated with actors, items, and objects, now support Cell Types. Cell Types define the base tile in a cell, such as a floor or wall. Most Cell Types are determined when the map structure is generated, but there are some cases where Cell Types can change later in the map generation process. For example, rubble is added to a cell by replacing the Floor Cell Type with the Rubble Cell Type. A second map generation improvement this week was enabling object cluster counts to be specified as a percentage of cells in a room. This was implemented to prevent large rooms from being too sparse.
- Rumor generation. This is an experimental feature. After history generation completes, a significant living actor or item that is part of the history is randomly selected to be the subject of a rumor. This rumor, which is always true, is presented to the player at the start of the level. The purpose is to start the player with a specific objective. An example is “Rumor has it that a terrible minotaur guards a hoard of gold and precious gems somewhere in this cave.” Again, this is an experiment; I may or may not keep it in the game. Being a byproduct of history generation, it was simple to implement.
- The player stops moving after getting hit. When the player clicks on a cell, a queue is created containing the cells along the path to the clicked cell. If the path is adjacent to an enemy, the player will get hit in each cell adjacent to the enemy. This is frustrating. Now, when the player is hit the first time, the movement queue is cleared.
- Bug fixes
- No history events respond to actor became blind/insane history event triggers.
- Entity binding criterion for status effects not working properly.
- Kill count includes destroyed objects.
Next week, I’ll wrap up history event filtering and fix the remaining history events that aren’t being selected by the history generator.