summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-04 13:07:08 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-04 13:07:08 +0000
commit046629b0edf14b2ad341bb02872d7db4acbee151 (patch)
tree35e91a759394fdec8c892457d7715eacd9a80a0e /crawl-ref
parenta8bc607994f1cfeb8f9fe554c2e89f0b551290af (diff)
downloadcrawl-ref-046629b0edf14b2ad341bb02872d7db4acbee151.tar.gz
crawl-ref-046629b0edf14b2ad341bb02872d7db4acbee151.zip
Added Polyphemus, a unique Cyclops who can show up where high-end uniques
do and is especially common in the Shoals. No talk text yet. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1749 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/dat/descript.txt5
-rw-r--r--crawl-ref/source/dungeon.cc10
-rw-r--r--crawl-ref/source/enum.h3
-rw-r--r--crawl-ref/source/makeitem.cc2
-rw-r--r--crawl-ref/source/mon-data.h12
-rw-r--r--crawl-ref/source/mon-util.cc3
-rw-r--r--crawl-ref/source/monplace.cc5
-rw-r--r--crawl-ref/source/spells4.cc3
8 files changed, 39 insertions, 4 deletions
diff --git a/crawl-ref/source/dat/descript.txt b/crawl-ref/source/dat/descript.txt
index efcf7b41b4..bad66f44f6 100644
--- a/crawl-ref/source/dat/descript.txt
+++ b/crawl-ref/source/dat/descript.txt
@@ -1319,3 +1319,8 @@ Tiamat
A powerful dragon with mighty wings. Her scales seem to shimmer and change colour as you watch.
%%%%
+Polyphemus
+
+...as soon as he had got through with all his work, he clutched up two more of my men, and began eating them for his morning's meal. Presently, with the utmost ease, he rolled the stone away from the door and drove out his sheep, but he at once put it back again--as easily as though he were merely clapping the lid on to a quiver full of arrows.
+ -Homer, _The Odyssey_, Book IX
+%%%%
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 1b314bf98d..3e07b2873f 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -1886,7 +1886,11 @@ static int pick_unique(int lev)
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())
+ which_unique = MONS_POLYPHEMUS;
+
return (which_unique);
}
@@ -1930,6 +1934,10 @@ static int place_uniques(int level_number, char level_type)
BEH_SLEEP, MHITNOT, false, 1, 1, true,
PROX_ANYWHERE, 250, 0, no_monster_zones ))
{
+#ifdef DEBUG_DIAGNOSTICS
+ mprf(MSGCH_DIAGNOSTICS, "Placed %s",
+ menv[not_used].name(DESC_NOCAP_A).c_str());
+#endif
++num_placed;
}
}
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index fe69a86ab6..99ffc763e6 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -2242,7 +2242,8 @@ enum monster_type // (int) menv[].type
MONS_NORRIS,
MONS_FREDERICK,
MONS_MARGERY,
- MONS_BORIS, // 310
+ MONS_POLYPHEMUS, // 310
+ MONS_BORIS,
// BCR - end second batch of uniques.
MONS_DRACONIAN,
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index 614dfeb295..6cc77176cc 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -3336,6 +3336,8 @@ static item_make_species_type give_weapon(monsters *mon, int level,
item.plus += 1 + random2(3);
break;
}
+
+ case MONS_POLYPHEMUS:
case MONS_CYCLOPS:
case MONS_STONE_GIANT:
item_race = MAKE_ITEM_NO_RACE;
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index 6745380eff..907db57e20 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -4451,4 +4451,16 @@
MONUSE_STARTING_EQUIPMENT, SIZE_MEDIUM
},
+{
+ MONS_POLYPHEMUS, 'C', GREEN, "Polyphemus",
+ M_WARM_BLOOD | M_EVIL | M_UNIQUE,
+ MR_NO_FLAGS,
+ 2500, 10, MONS_HILL_GIANT, MONS_CYCLOPS, MH_NATURAL, -3,
+ { {AT_HIT, AF_PLAIN, 35}, {AT_HIT, AF_PLAIN, 30},
+ {AT_NONE, AF_PLAIN, 0}, {AT_NONE, AF_PLAIN, 0} },
+ { 12, 0, 0, 105 },
+ 7, 3, 8, 8, MST_NO_SPELLS, CE_CLEAN, Z_BIG, S_SHOUT, I_HIGH,
+ MONUSE_STARTING_EQUIPMENT, SIZE_GIANT,
+},
+
#endif
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 9f8f9716b7..ed2ba21d84 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -2335,7 +2335,8 @@ item_def *monsters::weapon(int which_attack)
bool monsters::can_throw_rocks() const
{
- return (type == MONS_STONE_GIANT || type == MONS_CYCLOPS);
+ return (type == MONS_STONE_GIANT || type == MONS_CYCLOPS ||
+ type == MONS_POLYPHEMUS);
}
bool monsters::can_use_missile(const item_def &item) const
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index 487f2e246c..a82b3303ab 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -866,6 +866,11 @@ 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;
+
// Journey -- Added Draconian Packs
case MONS_WHITE_DRACONIAN:
case MONS_RED_DRACONIAN:
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index 4b4a7fff23..0201207e34 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -1791,7 +1791,8 @@ static int glamour_monsters(int x, int y, int pow, int garbage)
break;
case 2:
msg += " rubs its eye";
- if (menv[mon].type != MONS_CYCLOPS)
+ if (menv[mon].type != MONS_CYCLOPS &&
+ menv[mon].type != MONS_POLYPHEMUS)
msg += "s";
msg += ".";
break;