RustRoguelike
RustRoguelike copied to clipboard
Environment Interactions
I think that it is worth thinking about potential situations where the player's environment interactions lead to small chain reactions. These can be as simple as pushing over a column to turn a soft grassy tile into a rubble tile, or pushing one column into another and causing both to fall.
The idea is that if environmental objects interact with one another, the world will feel more interconnected and real.
This could be a path to take with traps-- maybe all traps modify the environment in some way.
Interesting. I hadn't considered columns hitting each other. If we can come up with things like this I can look into what the implementation would be like.
I feel like this leads to using the messaging system heavily to keep the reaction going.
I imagine in this case that the monsters should be able to react to the actions of other monsters that have cascading effects- if a column hit another column, a monster see both of those as free space in its turn. To do this, i think there may need to be a separate "action queue" different from the message queue. The message queue happens all at once at the end of the turn, and mostly just plays animations (it also notifies monsters of sounds made during a turn, which is a complication here). The action queue would be something that is pushed to for each action (player or monster i imagine), and then immediatly pulled from until it is empty. As actions are pulled, then may result in pushing additional actions to the front of the queue (making is a deque technically) This would allow monsters and the player to still resolve actions in order while allowing chains of actions like columns hitting columns to continue until there are no outstanding actions to resolve.
This is implemented- the thing now is putting in chains of interactions.
What kinds of things could the traps do, for example?
this is discussed elsewhere