diff options
-rw-r--r-- | crawl-ref/docs/arena.txt | 13 | ||||
-rw-r--r-- | crawl-ref/docs/level_design.txt | 3 | ||||
-rw-r--r-- | crawl-ref/source/arena.cc | 8 |
3 files changed, 18 insertions, 6 deletions
diff --git a/crawl-ref/docs/arena.txt b/crawl-ref/docs/arena.txt index 5fbd93d078..3a1cbee8ee 100644 --- a/crawl-ref/docs/arena.txt +++ b/crawl-ref/docs/arena.txt @@ -5,7 +5,7 @@ entertainment. It can be invoked on the command line like this: crawl -arena "kobold v goblin" Which will cause one kobold to fight one goblin, with crawl shutting down once -one of them has won. To be considered valid, a monster's name has to fully +one of them has won. To be considered valid, a monster's name has to fully match its definition, e.g. "Blork the orc" rather than simply "Blork". To make them fight for three rounds you can do: @@ -25,7 +25,7 @@ will give team A a rat and a cockroach and team B a kobold and a goblin; a victory is declared when all of one team is dead and at lest one member of the other team is still alive. -Some monsters have a band (that is, a group of monsters) that will be +Some monsters have a band (that is, a group of monsters) that will be generated with them during normal play. You can use the suffix "band" to make a monster appear with its band (if one exists). For example: @@ -49,6 +49,9 @@ For example: will choose two random monsters from the 10th level of the Lair and pit them against three random monsters from the 7th level of the Vaults. +The branches need to use the official abbreviations also used e.g. in the +overmap (Ctrl-O): D, Temple, Orc, Elf, Lair, Swamp, Shoal, Slime, Snake, Hive, +Vault, Blade, Crypt, Tomb, Hell, Dis, Geh, Coc, Tar, Zot. To let the game pick monsters completely at random, use "random" as a monster name. If you use the tag random_uniques all monsters thus chosen @@ -146,11 +149,11 @@ The parameters include: Creatures spell (including test spawners) then arena cycles through the list of valid monsters, rather than taking rarity into account. -* random_uniques: If the team is made up of random monsters - (e.g. "random v random") the chosen monsters will be uniques. Also, +* random_uniques: If the team is made up of random monsters + (e.g. "random v random") the chosen monsters will be uniques. Also, any monster using Shadow Creatures will summon uniques. -* "ban_gylphs:ABC" prevents monsters with the listed ASCII glyphs from +* "ban_glyphs:ABC" prevents monsters with the listed ASCII glyphs from being placed in the arena. For instance, "ban_glyphs:&C" prevents demon lords and giants/cyclopses/titans/etc from being placed. diff --git a/crawl-ref/docs/level_design.txt b/crawl-ref/docs/level_design.txt index f25f018cf6..8ca85fdba1 100644 --- a/crawl-ref/docs/level_design.txt +++ b/crawl-ref/docs/level_design.txt @@ -394,6 +394,9 @@ WEIGHT: (number with 10 being default) PLACE: Used to specify certain special levels. Existing special levels include most branch ends. + The branches need to use the official abbreviations also used e.g. in + the overmap (Ctrl-O): D, Temple, Orc, Elf, Lair, Swamp, Shoal, Slime, + Snake, Hive, Vault, Blade, Crypt, Tomb, Hell, Dis, Geh, Coc, Tar, Zot. PLACE can also be used to specify arbitrary places, like D:3, which will force the map (or one of the maps with PLACE: D:3) to be picked diff --git a/crawl-ref/source/arena.cc b/crawl-ref/source/arena.cc index 09bc41ef25..1e825db7e7 100644 --- a/crawl-ref/source/arena.cc +++ b/crawl-ref/source/arena.cc @@ -341,7 +341,8 @@ namespace arena std::string arena_place = strip_tag_prefix(spec, "arena_place:"); if (!arena_place.empty()) { - try { + try + { place = level_id::parse_level_id(arena_place); } catch (const std::string &err) @@ -350,12 +351,17 @@ namespace arena arena_place.c_str(), err.c_str()); } + if (place.level_type == LEVEL_LABYRINTH) + { throw (std::string("Can't set arena place to the " "labyrinth.")); + } else if (place.level_type == LEVEL_PORTAL_VAULT) + { throw (std::string("Can't set arena place to a portal " "vault.")); + } } std::string glyphs = strip_tag_prefix(spec, "ban_glyphs:"); |