summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2009-12-02 15:50:14 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2009-12-02 16:22:45 +1000
commitd84f9a5e75967ff31021303ae34474cd198d38a3 (patch)
tree093a093f180c6408db5bedc664fa12750385c588 /crawl-ref
parentc30b21d1404d7b78978af36466e21db785753188 (diff)
downloadcrawl-ref-d84f9a5e75967ff31021303ae34474cd198d38a3.tar.gz
crawl-ref-d84f9a5e75967ff31021303ae34474cd198d38a3.zip
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!
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/dat/descript/monsters.txt4
-rw-r--r--crawl-ref/source/enum.h1
-rw-r--r--crawl-ref/source/mon-data.h13
-rw-r--r--crawl-ref/source/mon-pick.cc2
-rw-r--r--crawl-ref/source/mon-place.cc3
-rw-r--r--crawl-ref/source/rltiles/dc-corpse.txt1
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt1
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/giant_leech.pngbin1199 -> 781 bytes
-rw-r--r--crawl-ref/source/tilepick.cc4
9 files changed, 29 insertions, 0 deletions
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
--- a/crawl-ref/source/rltiles/dc-mon/animals/giant_leech.png
+++ b/crawl-ref/source/rltiles/dc-mon/animals/giant_leech.png
Binary files 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: