From d84f9a5e75967ff31021303ae34474cd198d38a3 Mon Sep 17 00:00:00 2001 From: Jude Brown Date: Wed, 2 Dec 2009 15:50:14 +1000 Subject: New monster: giant leech (Eronarn). A blood-sucking amphibious 'w'-glyph. It also submerges, much like swamp worms, but will follow you onto dry land. It has a tile, but after a quick play through of Swamp and using wizard mode to create some, it's quite difficult to see. Hopefully someone can improve the tile for me! --- crawl-ref/source/dat/descript/monsters.txt | 4 ++++ crawl-ref/source/enum.h | 1 + crawl-ref/source/mon-data.h | 13 +++++++++++++ crawl-ref/source/mon-pick.cc | 2 ++ crawl-ref/source/mon-place.cc | 3 +++ crawl-ref/source/rltiles/dc-corpse.txt | 1 + crawl-ref/source/rltiles/dc-mon.txt | 1 + .../source/rltiles/dc-mon/animals/giant_leech.png | Bin 1199 -> 781 bytes crawl-ref/source/tilepick.cc | 4 ++++ 9 files changed, 29 insertions(+) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt index 94b68dec75..ba0cc96cc9 100644 --- a/crawl-ref/source/dat/descript/monsters.txt +++ b/crawl-ref/source/dat/descript/monsters.txt @@ -764,6 +764,10 @@ giant iguana A huge lizard with great crunching jaws. %%%% +giant leech + +A huge blood-sucking leech. How horrible! +%%%% giant lizard A huge lizard with great crunching jaws. diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 0d3f71f50f..8fce0f0b8e 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -2057,6 +2057,7 @@ enum monster_type // (int) menv[].type MONS_PIKEL, MONS_CRAZY_YIUF, MONS_SLAVE, + MONS_GIANT_LEECH, // Testing monsters MONS_TEST_SPAWNER, diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index dacc7471a3..721d0e7821 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -1633,6 +1633,19 @@ static monsterentry mondata[] = { MONUSE_NOTHING, MONEAT_NOTHING, SIZE_BIG }, +// Deliberately excepted in mon-place.cc to allow submerging. +{ + MONS_GIANT_LEECH, 'w', RED, "giant leech", + M_NO_SKELETON | M_BLOOD_SCENT, + MR_NO_FLAGS, + 1100, 10, MONS_WORM, MONS_GIANT_LEECH, MH_NATURAL, -3, + { {AT_BITE, AF_VAMPIRIC, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, + { 6, 5, 5, 0 }, + 5, 15, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_SILENT, + I_PLANT, HT_AMPHIBIOUS_WATER, FL_NONE, 8, DEFAULT_ENERGY, + MONUSE_NOTHING, MONEAT_NOTHING, SIZE_BIG +}, + // small abominations ('x') { MONS_UNSEEN_HORROR, 'x', MAGENTA, "unseen horror", diff --git a/crawl-ref/source/mon-pick.cc b/crawl-ref/source/mon-pick.cc index 022bb53a89..59c27f4e61 100644 --- a/crawl-ref/source/mon-pick.cc +++ b/crawl-ref/source/mon-pick.cc @@ -1591,6 +1591,7 @@ int mons_swamp_level(int mcls) case MONS_SLIME_CREATURE: case MONS_VERY_UGLY_THING: case MONS_VAPOUR: + case MONS_GIANT_LEECH: case MONS_TENTACLED_MONSTROSITY: mlev += 4; break; @@ -1680,6 +1681,7 @@ int mons_swamp_rare(int mcls) case MONS_GIANT_NEWT: case MONS_GIANT_SLUG: case MONS_GIANT_SNAIL: + case MONS_GIANT_LEECH: return 10; case MONS_TENTACLED_MONSTROSITY: diff --git a/crawl-ref/source/mon-place.cc b/crawl-ref/source/mon-place.cc index bbb7799365..c3f487b319 100644 --- a/crawl-ref/source/mon-place.cc +++ b/crawl-ref/source/mon-place.cc @@ -201,6 +201,9 @@ bool monster_can_submerge(const monsters *mons, dungeon_feature_type grid) case HT_LAVA: return (grid == DNGN_LAVA); + case HT_AMPHIBIOUS_WATER: + return (mons->type == MONS_GIANT_LEECH && feat_is_watery(grid)); + default: return (false); } diff --git a/crawl-ref/source/rltiles/dc-corpse.txt b/crawl-ref/source/rltiles/dc-corpse.txt index cf1f9b68dc..14b7bf8b06 100644 --- a/crawl-ref/source/rltiles/dc-corpse.txt +++ b/crawl-ref/source/rltiles/dc-corpse.txt @@ -76,6 +76,7 @@ swamp_worm CORPSE_SWAMP_WORM spiny_worm CORPSE_SPINY_WORM brain_worm CORPSE_BRAIN_WORM rock_worm CORPSE_ROCK_WORM +giant_leech CORPSE_GIANT_LEECH ## Wasps ('y') giant_blowfly CORPSE_GIANT_BLOWFLY diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt index 465a96e3d7..36884e3e7d 100644 --- a/crawl-ref/source/rltiles/dc-mon.txt +++ b/crawl-ref/source/rltiles/dc-mon.txt @@ -75,6 +75,7 @@ spiny_worm MONS_SPINY_WORM lava_worm MONS_LAVA_WORM brain_worm MONS_BRAIN_WORM rock_worm MONS_ROCK_WORM +giant_leech MONS_GIANT_LEECH ## Flying insects ('y') giant_blowfly MONS_GIANT_BLOWFLY diff --git a/crawl-ref/source/rltiles/dc-mon/animals/giant_leech.png b/crawl-ref/source/rltiles/dc-mon/animals/giant_leech.png index 82a6822ed3..7bb57ead17 100644 Binary files a/crawl-ref/source/rltiles/dc-mon/animals/giant_leech.png and b/crawl-ref/source/rltiles/dc-mon/animals/giant_leech.png differ diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index 7fe6cda6cb..1997072b81 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -394,6 +394,8 @@ int tileidx_monster_base(const monsters *mon, bool detected) return TILEP_MONS_BRAIN_WORM; case MONS_SWAMP_WORM: return TILEP_MONS_SWAMP_WORM; + case MONS_GIANT_LEECH: + return TILEP_MONS_GIANT_LEECH; case MONS_SPINY_WORM: return TILEP_MONS_SPINY_WORM; @@ -1761,6 +1763,8 @@ static int _tileidx_corpse(const item_def &item) return TILE_CORPSE_BRAIN_WORM; case MONS_SWAMP_WORM: return TILE_CORPSE_SWAMP_WORM; + case MONS_GIANT_LEECH: + return TILE_CORPSE_GIANT_LEECH; case MONS_ROCK_WORM: return TILE_CORPSE_ROCK_WORM; case MONS_SPINY_WORM: -- cgit v1.2.3-54-g00ecf