diff options
author | Adam Borowski <kilobyte@angband.pl> | 2013-12-19 03:55:33 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2013-12-19 04:28:48 +0100 |
commit | 07949ec7b9c0b9583012be218f9b887257a10cd9 (patch) | |
tree | be6270c2797d4bc2fe34330d8434911dafd13899 /crawl-ref/source/stairs.cc | |
parent | aa5c47c9a804f14a71abdfa8d3057094a08b7e15 (diff) | |
download | crawl-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.cc | 19 |
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 |