From f10f392d6a401690069553209228f203f9c77975 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sat, 10 May 2008 06:51:55 +0000 Subject: Experimentally switch back to glyph colours light red, yellow, and red, respectively, for orcs, orc warriors, and Urug. I don't play ASCII, so this is solely based on player complaints. (But I figure yellow works as a "lighter" version of orange = light red, possibly better than the standard pair brown/yellow.) Also, add gila monsters to the new colour scheme: they're always magenta now. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4989 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/docs/034_monster_glyphs.txt | 59 ++++++++++++++++++----------------- crawl-ref/source/abl-show.cc | 3 +- crawl-ref/source/delay.cc | 4 +-- crawl-ref/source/items.cc | 14 ++++----- crawl-ref/source/mon-data.h | 10 +++--- crawl-ref/source/mon-util.cc | 3 ++ 6 files changed, 49 insertions(+), 44 deletions(-) diff --git a/crawl-ref/docs/034_monster_glyphs.txt b/crawl-ref/docs/034_monster_glyphs.txt index e2f7eb1454..367f24d6aa 100644 --- a/crawl-ref/docs/034_monster_glyphs.txt +++ b/crawl-ref/docs/034_monster_glyphs.txt @@ -2,35 +2,35 @@ # overhaul of monster colours and monster glyphs. # # The goal of this change was to put monsters into more -# consistent groups (e.g. group jackals with hounds, -# move slugs into a group of their own) and to follow -# a more consistent colour scheme where similar -# monster would have similar colours (e.g. orc priest -# and elf priest are both coloured green now) and the -# higher level (and thus more dangerous) version of -# an early monster would get the brighter colour. -# As an example of the latter, the orc sorceror has -# been recoloured to light magenta because the orc -# wizard (the easier orc mage version) glyph is -# coloured magenta. Also, the colours of some pairings -# including small snake/snake and yaktaur/yaktaur -# have been switched, following the same rule. -# Another important point of the change was to avoid -# the use of dark grey, which can be unreadable on some -# systems, and use light grey, white, or blue or another +# consistent groups (e.g. group jackals with hounds, move +# slugs into a group of their own) and to follow a more +# consistent colour scheme where similar monsters would +# have similar colours (e.g. orc priest and elf priest +# are both coloured green now) and the higher level (and +# thus more dangerous) version of an early monster would +# get the brighter colour. +# As an example of the latter, the orc sorceror has been +# recoloured to light magenta because the orc wizard (the +# easier orc mage version) glyph is coloured magenta. +# Also, the colours of some pairings including small +# snake/snake and yaktaur/yaktaur captain have been +# switched, following the same rule. +# Another important point of the change was to avoid the +# use of dark grey, which can be unreadable on some +# systems, and use light grey, white, or blue, or another # colour in its stead, as appropriate. # -# We think that as a result of these changes monsters -# are coloured more consistently, and that their -# difficulty level should be easier to grasp for newbies. +# We think that as a result of these changes monsters are +# coloured more consistently, and that their difficulty +# level should be easier to grasp for newbies. # At the same time we realize that this change might be -# hard on experienced players. Of course we hope that -# you will be able to adapt, but in case there are -# changes you really cannot accept, here are the options -# necessary to make the glyphs of all affected monsters -# show up as they did in version 0.3.4. +# hard on experienced players. Of course we hope that you +# will be able to adapt, but in case there are changes you +# really cannot accept, here are the options necessary to +# make the glyphs of all affected monsters show up as they +# did in version 0.3.4. # -# You'll find a table comparing old and new settings at +# You'll find a table comparing old and new settings at # the end of this file. ########################### @@ -45,9 +45,9 @@ feature = orcish idol { , , darkgrey} ########################### # orcs -mon_glyph = orc : lightred -mon_glyph = Urug : red -mon_glyph = orc warrior : yellow +#mon_glyph = orc : lightred +#mon_glyph = Urug : red +#mon_glyph = orc warrior : yellow mon_glyph = orc priest : lightgreen mon_glyph = orc knight : lightcyan mon_glyph = orc high priest : green @@ -72,6 +72,8 @@ mon_glyph = deep elf master archer : lightmagenta # lizards mon_glyph = giant newt : lightgreen mon_glyph = giant lizard : green +# black means randomly coloured +mon_glyph = gila monster : black # snakes and naga mon_glyph = small snake : lightgreen @@ -200,6 +202,7 @@ mon_glyph = Frederick : darkgrey # lizards # giant newt lightgreen green # giant lizard green lightgreen +# gila monster random (black) magenta # # monster old colour new colour # ------- ---------- ---------- diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc index 98919800d1..b58cb00097 100644 --- a/crawl-ref/source/abl-show.cc +++ b/crawl-ref/source/abl-show.cc @@ -378,7 +378,8 @@ const std::string make_cost_description( ability_type ability ) ret << " HP"; } - if (abil.food_cost && you.is_undead != US_UNDEAD) + if (abil.food_cost && you.is_undead != US_UNDEAD + && (you.is_undead != US_SEMI_UNDEAD || you.hunger_state > HS_STARVING)) { if (!ret.str().empty()) ret << ", "; diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index 7fdfb5d74c..8e9b19e5c4 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -431,8 +431,8 @@ void stop_delay( bool stop_stair_travel ) bleed_onto_floor(you.x_pos, you.y_pos, corpse.plus, delay.duration, false); corpse.sub_type = CORPSE_SKELETON; - corpse.special = 90; - corpse.colour = LIGHTGREY; + corpse.special = 90; + corpse.colour = LIGHTGREY; } did_god_conduct(DID_DRINK_BLOOD, 8); pop_delay(); diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc index 1664396532..7e213f7a0d 100644 --- a/crawl-ref/source/items.cc +++ b/crawl-ref/source/items.cc @@ -95,7 +95,6 @@ void fix_item_coordinates(void) { // nails all items to the ground (i.e. sets x,y) for (int x = 0; x < GXM; x++) - { for (int y = 0; y < GYM; y++) { int i = igrd[x][y]; @@ -107,7 +106,6 @@ void fix_item_coordinates(void) i = mitm[i].link; } } - } } // This function uses the items coordinates to relink all the igrd lists. @@ -430,7 +428,8 @@ void unlink_item( int dest ) } // Okay, item is buried, find item that's on top of it: - for (c = igrd[ mitm[dest].x ][ mitm[dest].y ]; c != NON_ITEM; c = mitm[c].link) + for (c = igrd[ mitm[dest].x ][ mitm[dest].y ]; c != NON_ITEM; + c = mitm[c].link) { // find item linking to dest item if (is_valid_item( mitm[c] ) && mitm[c].link == dest) @@ -448,14 +447,15 @@ void unlink_item( int dest ) #if DEBUG // Okay, the sane ways are gone... let's warn the player: - mpr( "BUG WARNING: Problems unlinking item!!!", MSGCH_DANGER ); + mprf( MSGCH_DANGER, "BUG WARNING: Problems unlinking item '%s', (%d, %d)!!!", + mitm[dest].name(DESC_PLAIN).c_str(), mitm[dest].x, mitm[dest].y ); // Okay, first we scan all items to see if we have something // linked to this item. We're not going to return if we find // such a case... instead, since things are already out of // alignment, let's assume there might be multiple links as well. - bool linked = false; - int old_link = mitm[dest].link; // used to try linking the first + bool linked = false; + int old_link = mitm[dest].link; // used to try linking the first // clean the relevant parts of the object: mitm[dest].base_type = OBJ_UNASSIGNED; @@ -483,7 +483,6 @@ void unlink_item( int dest ) // Now check the grids to see if it's linked as a list top. for (c = 2; c < (GXM - 1); c++) - { for (cy = 2; cy < (GYM - 1); cy++) { if (igrd[c][cy] == dest) @@ -497,7 +496,6 @@ void unlink_item( int dest ) } } } - } // Okay, finally warn player if we didn't do anything. diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index 6a590fe106..4f6ac69ad7 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -869,8 +869,8 @@ }, { - // gila monsters colours: lightmagenta, magenta, lightred, yellow - MONS_GILA_MONSTER, 'l', BLACK, "gila monster", + // old colour: black (randomly lightmagenta, magenta, lightred, or yellow) + MONS_GILA_MONSTER, 'l', MAGENTA, "gila monster", M_COLD_BLOOD, MR_NO_FLAGS, 500, 10, MONS_GIANT_LIZARD, MONS_GILA_MONSTER, MH_NATURAL, -3, @@ -1002,7 +1002,7 @@ // orcs ('o') { - MONS_ORC, 'o', RED, "orc", + MONS_ORC, 'o', LIGHTRED, "orc", M_WARM_BLOOD | M_SPEAKS, MR_NO_FLAGS, 600, 10, MONS_ORC, MONS_ORC, MH_NATURAL, -3, @@ -1035,7 +1035,7 @@ }, { - MONS_ORC_WARRIOR, 'o', LIGHTRED, "orc warrior", + MONS_ORC_WARRIOR, 'o', YELLOW, "orc warrior", M_FIGHTER | M_WARM_BLOOD | M_SPEAKS, MR_NO_FLAGS, 600, 10, MONS_ORC, MONS_ORC, MH_NATURAL, -3, @@ -3794,7 +3794,7 @@ }, { - MONS_URUG, 'o', YELLOW, "Urug", + MONS_URUG, 'o', RED, "Urug", M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -5, diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 92ba348fbb..a10a56b0ab 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -1522,6 +1522,9 @@ void define_monster(monsters &mons) break; } + if (col == BLACK) + col = random_colour(); + if (spells == MST_NO_SPELLS && mons_class_flag(mons.type, M_SPELLCASTER)) spells = m->sec; -- cgit v1.2.3-54-g00ecf