Zot Zealot
Posts: 982
Joined: Monday, 29th September 2014, 09:04
Update stair logic (nerf stair dancing)
What bad effects does stair dancing have?
1. It's a no brainer mechanic that crowds out other mechanics because it's so effective.
1a. Parts of the game are explicitly designed to prevent stair dancing so the player can be challenged (V:5, Zot, Tomb)
1b. Other challenging aspects of the game can be neutered (it's trivial to split bands with stairs, to kite back to good terrain even on new levels, etc)
2. It's unintuitive for new players.
2a. "Why do you keep going up and downstairs while fighting the jackals?"
3. It's unaesthetic. Stair dancing abuses a "loading screen barrier" which the player can move through freely but monsters cannot.
Here are two proposals for how to make stair dancing less of a problem for DCSS. (My proposals both remove stair dancing entirely, but solutions which leave some amount of stair dancing are worth discussing too.)
PROPOSAL ONE
(inspired by dcss circus animals fork)
If you are damaged while taking a staircase, you stop taking the staircase.
Enemies can't follow you through stairs.
Hatches are unchanged.
Advantages:
* Totally removes stair dancing
* Simple to understand
Disadvantages:
* Makes the game much harder
* Might need an exception so "><" always works (eg if your last action was using stairs, you can't be interrupted if you use stairs again)
PROPOSAL TWO
(inspired by Brogue)
When you take stairs in LoS of enemies, they follow you. For example if you are standing on stairs and there is a goblin two squares away (@.g), once you take the stairs the goblin will appear next to the stairs one turn later.
Advantages:
* Stair dancing is 99% removed
* Gets rid of the "loading screen barrier" effect of stairs
* Removes the inconsistency where monsters can use stairs when next to you but not otherwise
Disadvantages:
* Technically complex to implement
* Harder for the player to understand. How many turns until the monster comes up? Which monsters can path to the stairs in which order?