summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2010-01-13 13:07:02 +0100
committerAdam Borowski <kilobyte@angband.pl>2010-01-13 20:43:59 +0100
commit6b9548eb3df8a83b90f5d8ed6822b806719dd137 (patch)
tree690ddf057359bcf775b480d9b8f1bb26393e2d5d /crawl-ref
parent9a308a7dd9f9abb274e2024d41239c587dd7eb77 (diff)
downloadcrawl-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.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);