summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/settings/052_monster_glyphs.txt7
-rw-r--r--crawl-ref/source/enum.h2
-rw-r--r--crawl-ref/source/mon-data.h14
-rw-r--r--crawl-ref/source/mon-place.cc2
-rw-r--r--crawl-ref/source/show.cc8
-rw-r--r--crawl-ref/source/showsymb.cc6
6 files changed, 34 insertions, 5 deletions
diff --git a/crawl-ref/settings/052_monster_glyphs.txt b/crawl-ref/settings/052_monster_glyphs.txt
index 091890a9f7..563b1b9205 100644
--- a/crawl-ref/settings/052_monster_glyphs.txt
+++ b/crawl-ref/settings/052_monster_glyphs.txt
@@ -24,8 +24,13 @@ mon_glyph = trapdoor spider : brown
mon_glyph = wolf spider : brown
# tier 4 demons
-mon_glpyh = smoke demon : lightgrey 4
+mon_glyph = smoke demon : lightgrey 4
# tier 3 demons
mon_glyph = hellion : fire 3
mon_glyph = ynoxinul : cyan 3
+
+# jellies
+mon_glyph = acid blob : lightgreen
+# not in 0.5, but it would conflict with acid blobs
+mon_glyph = merged slime creature : green
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index d95cbc0b72..e44dc3accc 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -1702,7 +1702,7 @@ enum monster_type // (int) menv[].type
MONS_BEAST,
MONS_IRON_DEVIL,
MONS_SIXFIRHY, // 90
- //
+ MONS_MERGED_SLIME_CREATURE, // used only for recoloring
//
//
//
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index 26ab9513fb..af633ae2bc 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -2540,6 +2540,18 @@ static monsterentry mondata[] = {
MONUSE_NOTHING, MONEAT_NOTHING, SIZE_SMALL
},
+{ // not an actual monster, it's here just to allow recoloring
+ MONS_MERGED_SLIME_CREATURE, 'J', LIGHTGREEN, "merged slime creature",
+ M_NO_FLAGS,
+ MR_RES_POISON | MR_RES_ASPHYX,
+ 0, 5, MONS_JELLY, MONS_SLIME_CREATURE, MH_NATURAL, -3,
+ { {AT_HIT, AF_PLAIN, 22}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 11, 3, 5, 0 },
+ 1, 4, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT,
+ I_PLANT, HT_AMPHIBIOUS_LAND, FL_NONE, 10, DEFAULT_ENERGY,
+ MONUSE_NOTHING, MONEAT_NOTHING, SIZE_SMALL
+},
+
{
MONS_PULSATING_LUMP, 'J', RED, "pulsating lump",
M_SENSE_INVIS,
@@ -2603,7 +2615,7 @@ static monsterentry mondata[] = {
},
{
- MONS_ACID_BLOB, 'J', LIGHTGREEN, "acid blob",
+ MONS_ACID_BLOB, 'J', LIGHTCYAN, "acid blob",
M_SENSE_INVIS | M_SPECIAL_ABILITY | M_ACID_SPLASH,
MR_RES_POISON | MR_RES_ASPHYX | MR_RES_ACID,
0, 12, MONS_JELLY, MONS_ACID_BLOB, MH_NATURAL, -7,
diff --git a/crawl-ref/source/mon-place.cc b/crawl-ref/source/mon-place.cc
index cf5f0cfe5d..a59ba91b20 100644
--- a/crawl-ref/source/mon-place.cc
+++ b/crawl-ref/source/mon-place.cc
@@ -1127,6 +1127,8 @@ static int _place_monster_aux(const mgen_data &mg,
return (-1);
}
}
+ else if (mon->type == MONS_MERGED_SLIME_CREATURE) // shouldn't ever happen
+ mon->type = MONS_SLIME_CREATURE;
// Generate a brand shiny new monster, or zombie.
if (mons_class_is_zombified(mg.cls))
diff --git a/crawl-ref/source/show.cc b/crawl-ref/source/show.cc
index 342c424dcd..375d3f5cf2 100644
--- a/crawl-ref/source/show.cc
+++ b/crawl-ref/source/show.cc
@@ -366,8 +366,12 @@ void show_def::_update_monster(const monsters* mons)
_set_backup(e);
grid(e).cls = SH_MONSTER;
- grid(e).mons = (!crawl_state.arena && you.misled()) ?
- mons->get_mislead_type() : mons->type;
+ if (!crawl_state.arena && you.misled())
+ grid(e).mons = mons->get_mislead_type();
+ else if (mons->type == MONS_SLIME_CREATURE && mons->number > 1)
+ grid(e).mons = MONS_MERGED_SLIME_CREATURE;
+ else
+ grid(e).mons = mons->type;
grid(e).colour = get_mons_glyph(mons).col;
#ifdef USE_TILE
diff --git a/crawl-ref/source/showsymb.cc b/crawl-ref/source/showsymb.cc
index 6019065d7e..36f5261c0b 100644
--- a/crawl-ref/source/showsymb.cc
+++ b/crawl-ref/source/showsymb.cc
@@ -56,6 +56,10 @@ glyph get_show_glyph(show_type object)
static int _get_mons_colour(const monsters *mons)
{
int col = mons->colour;
+
+ if (mons->type == MONS_SLIME_CREATURE && mons->number > 1)
+ col = mons_class_colour(MONS_MERGED_SLIME_CREATURE);
+
if (!crawl_state.arena && you.misled())
{
const monsterentry* mdat = get_monster_data(mons->get_mislead_type());
@@ -141,6 +145,8 @@ glyph get_mons_glyph(const monsters *mons)
if (!crawl_state.arena && you.misled())
g.ch = mons_char(mons->get_mislead_type());
+ else if (mons->type == MONS_SLIME_CREATURE && mons->number > 1)
+ g.ch = mons_char(MONS_MERGED_SLIME_CREATURE);
else
g.ch = mons_char(mons->type);
g.col = _get_mons_colour(mons);