From 046629b0edf14b2ad341bb02872d7db4acbee151 Mon Sep 17 00:00:00 2001 From: haranp Date: Wed, 4 Jul 2007 13:07:08 +0000 Subject: 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 --- crawl-ref/source/dat/descript.txt | 5 +++++ crawl-ref/source/dungeon.cc | 10 +++++++++- crawl-ref/source/enum.h | 3 ++- crawl-ref/source/makeitem.cc | 2 ++ crawl-ref/source/mon-data.h | 12 ++++++++++++ crawl-ref/source/mon-util.cc | 3 ++- crawl-ref/source/monplace.cc | 5 +++++ crawl-ref/source/spells4.cc | 3 ++- 8 files changed, 39 insertions(+), 4 deletions(-) (limited to 'crawl-ref') 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; -- cgit v1.2.3-54-g00ecf