From e828bafa67e06c97dad7b9fcf2851e6ab5b00f28 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sun, 4 Jan 2009 20:50:21 +0000 Subject: Introduce a number of new uniques taken from a patch by castamir. These are: * Roxanne (statue spellcaster) * Sonja (Kobold assassin) * Eustachio (human summoner, was: Francisco) * Azrael (efreet, was: Abdul) * Ilsuiw (Merfolk witch * Prince Ribbit (blink frog prince) * Nergalle (orc sorceress) * Saint Roka (orc priest of Beogh) Tweaked make_book_theme_randart() to allow for one forced spell and owner's name. Used to occasionally give Roxanne a randart book containing Statue Form. (Was: always book of earth) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8207 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/dungeon.cc | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) (limited to 'crawl-ref/source/dungeon.cc') diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index aae4d56d59..09d02f83fa 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -3222,8 +3222,8 @@ static bool _make_room(int sx,int sy,int ex,int ey,int max_doors, int doorlevel) return (true); } -// Doesn't include Polyphemus (only appears in the Shoals), Murray (Hell), -// or Tiamat (Zot). +// Doesn't include Polyphemus or Ilsuiw (only appear in the Shoals), +// Murray (Hell), or Tiamat (Zot). static monster_type _choose_unique_by_depth(int step) { int ret; @@ -3239,29 +3239,32 @@ static monster_type _choose_unique_by_depth(int step) break; case 2: // depth <= 9 ret = random_choose(MONS_BLORK_THE_ORC, MONS_EDMUND, MONS_PSYCHE, - MONS_EROLCHA, -1); + MONS_EROLCHA, MONS_PRINCE_RIBBIT, -1); break; case 3: // depth <= 13 ret = random_choose(MONS_PSYCHE, MONS_EROLCHA, MONS_DONALD, MONS_URUG, - MONS_MICHAEL, -1); + MONS_MICHAEL, MONS_PRINCE_RIBBIT, -1); break; case 4: // depth <= 16 ret = random_choose(MONS_URUG, MONS_MICHAEL, MONS_JOSEPH, MONS_SNORG, MONS_ERICA, MONS_JOSEPHINE, MONS_HAROLD, - MONS_NORBERT, MONS_JOZEF, -1); + MONS_NORBERT, MONS_JOZEF, MONS_AZRAEL, + MONS_EUSTACHIO, MONS_SONJA, -1); break; case 5: // depth <= 19 ret = random_choose(MONS_SNORG, MONS_ERICA, MONS_JOSEPHINE, MONS_HAROLD, MONS_NORBERT, MONS_JOZEF, MONS_AGNES, MONS_MAUD, MONS_LOUISE, MONS_FRANCIS, MONS_FRANCES, - -1); + MONS_AZRAEL, MONS_EUSTACHIO, MONS_NERGALLE, + MONS_SONJA, -1); break; case 6: // depth > 19 default: ret = random_choose(MONS_LOUISE, MONS_FRANCIS, MONS_FRANCES, MONS_RUPERT, MONS_WAYNE, MONS_DUANE, MONS_XTAHUA, MONS_NORRIS, MONS_FREDERICK, MONS_MARGERY, - MONS_BORIS, -1); + MONS_BORIS, MONS_ROXANNE, MONS_NERGALLE, + MONS_SAINT_ROKA, -1); } return static_cast(ret); @@ -3281,16 +3284,22 @@ static monster_type _pick_unique(int lev) // If applicable, replace it with one of the uniques appearing // only in some branches. - if (player_in_branch(BRANCH_VESTIBULE_OF_HELL) && one_chance_in(7)) - which_unique = MONS_MURRAY; - - if (player_in_branch(BRANCH_HALL_OF_ZOT) && one_chance_in(3)) - which_unique = MONS_TIAMAT; - - if (player_in_branch(BRANCH_SHOALS) && player_branch_depth() > 1 - && coinflip()) + if (player_in_branch(BRANCH_VESTIBULE_OF_HELL)) + { + if (one_chance_in(7)) + which_unique = MONS_MURRAY; + } + else if (player_in_branch(BRANCH_HALL_OF_ZOT)) { - which_unique = MONS_POLYPHEMUS; + if (one_chance_in(3)) + which_unique = MONS_TIAMAT; + } + else if (player_in_branch(BRANCH_SHOALS)) + { + if (player_branch_depth() > 1 && coinflip()) + which_unique = MONS_POLYPHEMUS; + else if (player_branch_depth() > 2 && coinflip()) + which_unique = MONS_ILSUIW; } return static_cast(which_unique); @@ -3349,6 +3358,7 @@ static int _place_uniques(int level_number, char level_type) ++num_placed; } } + return num_placed; } -- cgit v1.2.3-54-g00ecf