summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/stairs.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2013-12-19 03:55:33 +0100
committerAdam Borowski <kilobyte@angband.pl>2013-12-19 04:28:48 +0100
commit07949ec7b9c0b9583012be218f9b887257a10cd9 (patch)
treebe6270c2797d4bc2fe34330d8434911dafd13899 /crawl-ref/source/stairs.cc
parentaa5c47c9a804f14a71abdfa8d3057094a08b7e15 (diff)
downloadcrawl-ref-07949ec7b9c0b9583012be218f9b887257a10cd9.tar.gz
crawl-ref-07949ec7b9c0b9583012be218f9b887257a10cd9.zip
Replace Ziggurat fees with a 3-rune lock.
This way you need a good deal less scumming if you want to try multiple Ziggurats -- completely or not. The number of runes required comes from historic data of people who left Ziggurats at particular urune count: 0: 7 1: 7 2: 19 3: 117 (earliest completion) 4: 175 5: 224 6: 164 7: 134 8: 112 9: 162 10: 177 11: 164 12: 106 13: 56 14: 100 15: 329
Diffstat (limited to 'crawl-ref/source/stairs.cc')
-rw-r--r--crawl-ref/source/stairs.cc19
1 files changed, 15 insertions, 4 deletions
diff --git a/crawl-ref/source/stairs.cc b/crawl-ref/source/stairs.cc
index 6ce822d283..48ef638ef2 100644
--- a/crawl-ref/source/stairs.cc
+++ b/crawl-ref/source/stairs.cc
@@ -803,6 +803,20 @@ void down_stairs(dungeon_feature_type force_stair, bool force_known_shaft)
you.opened_zot = true;
}
+ if (stair_find == DNGN_ENTER_ZIGGURAT)
+ {
+ #define ZIG_RUNES 3
+ int nrune = 0;
+ for (int i = 0; i < NUM_RUNE_TYPES; i++)
+ if (you.runes[i])
+ nrune++;
+ if (nrune < ZIG_RUNES)
+ {
+ mprf("You need at least %d runes to enter this place.", ZIG_RUNES);
+ return;
+ }
+ }
+
// Bail if any markers veto the move.
if (_marker_vetoes_level_change())
return;
@@ -848,10 +862,7 @@ void down_stairs(dungeon_feature_type force_stair, bool force_known_shaft)
}
const coord_def stair_pos = you.pos();
- // XXX: Obsolete, now that labyrinth entrances are only placed via Lua
- // with timed markers. Leaving in to reduce the chance of an
- // accidental permanent labyrinth entry. [rob]
- if (stair_find == DNGN_ENTER_LABYRINTH)
+ if (stair_find == DNGN_ENTER_LABYRINTH || stair_find == DNGN_ENTER_ZIGGURAT)
dungeon_terrain_changed(you.pos(), DNGN_STONE_ARCH);
if (stair_find == DNGN_ENTER_LABYRINTH