diff options
author | Adam Borowski <kilobyte@angband.pl> | 2010-01-13 13:07:02 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2010-01-13 20:43:59 +0100 |
commit | 6b9548eb3df8a83b90f5d8ed6822b806719dd137 (patch) | |
tree | 690ddf057359bcf775b480d9b8f1bb26393e2d5d /crawl-ref | |
parent | 9a308a7dd9f9abb274e2024d41239c587dd7eb77 (diff) | |
download | crawl-ref-6b9548eb3df8a83b90f5d8ed6822b806719dd137.tar.gz crawl-ref-6b9548eb3df8a83b90f5d8ed6822b806719dd137.zip |
Make merged slime creatures light green, acid blobs light cyan.
You can override that, both the colour and the glyph. The code
is exceedingly hairy (the check is tripled!), thanks to glyphs
sometimes stored as character:colour, sometimes as type:colour.
Diffstat (limited to 'crawl-ref')
-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); |