The main use case I had in mind was using "waves" based on the asteroid prototype for eroding terrain away into ocean (something that seems hard to do any other way), but I can also see it being neat for explosions.
A guess at the particulars for how it might be implemented:
- Tile health becomes an (optional) property of the surface position, sort of like the hidden tile ID.
- Only tiles tagged as foundations can have tile health they give to the position (it's still optional even then), and that health is used even if the foundation is covered.
- When a tile is destroyed from losing health, with something covering a foundation (references the prototype's is_foundation), it skips the foundation and breaks down to the double-hidden tile.
- The damage_tile method, and its interaction with asteroids, subsequently work on all surfaces.