In v2.1 I introduced bumpable stairs. This was for two reasons: first of all it is more convenient to just bump the stairs but the most important reason was because it made the space key ambiguous while standing on stairs. Sometimes you wanted to wait and sometimes you wanted to descend or ascend. The new system places stairs inside walls like in Brogue.
However, this new system has caused me a lot of trouble. It messed up my previous path detection algorithms and introduced a number of rare bugs, of which I still haven’t fixed all. It made a lot of generation code more complex. For example, I had to make sure every stairway had exactly one entry and exit point, which can get you the confusing message “you cannot ascend the stairs from this direction”.
Now as I am planing to add more level generation algorithms, this type of stair placement gives me more headaches and it is really making development difficult. I guess that’s what I get for stealing ideas :p (in Brogue it works well because it was designed with those kind of stairs from the start).
The Old System
Because of the problems outlined above I have decided to go back to the old system: stairs are now placed on floors again instead of in walls. This gives me a lot more flexibility and much more stable code.
However, as I mentioned there was a reason I replaced the old system: pressing ‘space’ while on stairs would immediately take them instead of waiting. This can be problematic especially in corridors. To overcome this annoyance I have… added a keybinding (gasp!!). Ok… I know I am probably the only one worrying about having too many keybindings in TGGW, but I admit another keybinding was really necessary in this case.
The ‘a’ key (for activate) activates floor features such as stairs, portals and fountains. Actually, you don’t have to use ‘a’ either. The ‘rest’ option in the menu also changes to ‘activate’ whenever you’re on a feature that can be activated (that also means you can no longer rest on such, but I don’t know why you’d want to do that?).
This change also means that you can choose to wait on other features that activates without activating them. Yay!