summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monplace.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-04 20:50:21 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-04 20:50:21 +0000
commite828bafa67e06c97dad7b9fcf2851e6ab5b00f28 (patch)
tree77fbcd20c3485501851302796dfa70640a5e2c90 /crawl-ref/source/monplace.cc
parent07828b78525d85498811687311f0a9cff5901e03 (diff)
downloadcrawl-ref-e828bafa67e06c97dad7b9fcf2851e6ab5b00f28.tar.gz
crawl-ref-e828bafa67e06c97dad7b9fcf2851e6ab5b00f28.zip
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
Diffstat (limited to 'crawl-ref/source/monplace.cc')
-rw-r--r--crawl-ref/source/monplace.cc37
1 files changed, 37 insertions, 0 deletions
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index dd15159111..1437bf68bb 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -1417,6 +1417,7 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
break;
case MONS_ORC_WARLORD:
+ case MONS_SAINT_ROKA:
band_size = 5 + random2(5); // warlords have large bands
// intentional fall through
case MONS_ORC_KNIGHT:
@@ -1582,58 +1583,72 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
band = BAND_NAGAS;
band_size = 3 + random2(4);
break;
+
case MONS_WAR_DOG:
band = BAND_WAR_DOGS;
band_size = 2 + random2(4);
break;
+
case MONS_GREY_RAT:
band = BAND_GREY_RATS;
band_size = 4 + random2(6);
break;
+
case MONS_GREEN_RAT:
band = BAND_GREEN_RATS;
band_size = 4 + random2(6);
break;
+
case MONS_ORANGE_RAT:
band = BAND_ORANGE_RATS;
band_size = 3 + random2(4);
break;
+
case MONS_SHEEP:
band = BAND_SHEEP;
band_size = 3 + random2(5);
break;
+
case MONS_GHOUL:
band = BAND_GHOULS;
band_size = 2 + random2(3);
break;
+
case MONS_HOG:
band = BAND_HOGS;
band_size = 1 + random2(3);
break;
+
case MONS_GIANT_MOSQUITO:
band = BAND_GIANT_MOSQUITOES;
band_size = 1 + random2(3);
break;
+
case MONS_DEEP_TROLL:
band = BAND_DEEP_TROLLS;
band_size = 3 + random2(3);
break;
+
case MONS_HELL_HOG:
band = BAND_HELL_HOGS;
band_size = 1 + random2(3);
break;
+
case MONS_BOGGART:
band = BAND_BOGGARTS;
band_size = 2 + random2(3);
break;
+
case MONS_BLINK_FROG:
band = BAND_BLINK_FROGS;
band_size = 2 + random2(3);
break;
+
case MONS_SKELETAL_WARRIOR:
band = BAND_SKELETAL_WARRIORS;
band_size = 2 + random2(3);
break;
+
case MONS_CYCLOPS:
if (one_chance_in(5) || player_in_branch(BRANCH_SHOALS))
{
@@ -1641,10 +1656,12 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
band_size = 2 + random2(3);
}
break;
+
case MONS_POLYPHEMUS:
band = BAND_DEATH_YAKS;
band_size = 3 + random2(3);
break;
+
case MONS_HARPY:
band = BAND_HARPIES;
band_size = 2 + random2(3);
@@ -1665,6 +1682,7 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
band_size = random_range(2, 4);
}
break;
+
case MONS_DRACONIAN_CALLER:
case MONS_DRACONIAN_MONK:
case MONS_DRACONIAN_SCORCHER:
@@ -1678,11 +1696,22 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
band_size = random_range(3, 6);
}
break;
+
case MONS_TIAMAT:
band = BAND_DRACONIAN;
// yup, scary
band_size = random_range(3,6) + random_range(3,6) + 2;
break;
+
+ case MONS_ILSUIW:
+ band = BAND_ILSUIW;
+ band_size = 3 + random2(3);
+ break;
+
+ case MONS_AZRAEL:
+ band = BAND_AZRAEL;
+ band_size = 4 + random2(5);
+ break;
} // end switch
if (band != BAND_NO_BAND && band_size == 0)
@@ -1973,6 +2002,14 @@ static monster_type _band_member(band_type band, int power)
MONS_RED_DRACONIAN ); // 3 in 34
break;
}
+ case BAND_ILSUIW:
+ mon_type = coinflip()? MONS_MERFOLK : MONS_MERMAID;
+ break;
+
+ case BAND_AZRAEL:
+ mon_type = coinflip()? MONS_FIRE_ELEMENTAL : MONS_HELL_HOUND;
+ break;
+
default:
break;
}