schep
Level: Smitemaster

Rank Points: 865
Registered: 03-01-2005
IP: Logged
File: Bomb Test.hold (795 bytes) Downloaded 63 times. License: Other From: Unspecified
|
Re: Hitting bombs while standing on doors. (+1)
Interesting bug. Here's a room that demonstrates how unintuitive the current behavior is. A door that closes or opens during an explosion has its effects executed in the engine when some squares have already been dealt with, and it affects the squares that haven't yet been exploded.
It's not entirely clear what should happen in this situation, but I think it ought as much as possible preserve the illusions that the explosion happens in all directions at once and that each individual connected door opens and closes as a unit.
And I don't have an answer, but two ideas come to mind:
1. Implement things as though the explosion spreads more quickly than doors can begin to move and lasts longer than they take to finish moving. So when a bomb blows up, the explosion first kills and lights what it can, then any orbs activated move their doors, and if any doors open up new regions in the bomb's range, more things may get burned. This could get complicated, especially if an opening door exposes another orb. And if a door around an orb closes, then opens during the same explosion, should the orb activate twice? (Probably not, at least to avoid the halting problem.)
2. Implement things as though the explosion is exhausted before doors begin to move. So yes, Beethro can hit the bomb while standing on a closed door and survive even if a nearby orb drops him in among the hot embers. But it avoids the problems of the other idea, and doesn't sound too hard to implement (queue orb activations to be dealt with after all the explosions have been calculated, right?)
And then there's the related question of when one explosion activates two orbs which attempt to open and close the same door. You might try for sorting by distance to the bomb somewhere in there, but there will always be some reliance on direction. But this situation is one I wouldn't expect to be predictable in the first place.
|