diff options
-rw-r--r-- | crawl-ref/settings/052_monster_glyphs.txt | 7 | ||||
-rw-r--r-- | crawl-ref/source/enum.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/mon-data.h | 14 | ||||
-rw-r--r-- | crawl-ref/source/mon-place.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/show.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/showsymb.cc | 6 |
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); |