RustRoguelike
RustRoguelike copied to clipboard
Sound Visual
Currently the sound visual is easy to miss- there should either be something persistent (perhaps only in an overlay), or an ability to replay animations from a turn to see where they occur.
Some ideas: Make an entity for each sound- either the sound as a whole, or more likely for each tile that a sound hits. Drawing the entity would be the marker that the sound occurred. The entities would clean themselves up after one turn.
Store the sound information somewhere- the sound message has an entity id, position, and radius. These could be stored in the Game structure for example, and then displayed or replayed. Perhaps when you use the overlay it would replay the sounds.
The display system receives all messages- it could store sound information without touching the main game. This seems to be the best solution. How the sounds are displayed can be any of the options above.
The DisplayState is an easy place to store this information.
I'm leaning towards a static display of sound, so you don't have to keep replaying it to figure out where it went. Another option is to play it, but keep it "stuck" anywhere it hits so you can see the propagation, but also see where it hit.
For now I may just draw a tile that marks where sounds hit, perhaps different between player and enemies.
Currently sound is shown as a tile highlight on any tile which was hit by any sound. This is stored in display state and cleared at the start of the turn.
Sound visual is too intense- lighten it up at least.
We should re-visit this issue I think