summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/dungeon.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 5b39faa997..a1aa225703 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -6517,8 +6517,14 @@ static int exciting_colour()
static int newwave_weapon_colour(const item_def &item)
{
int item_colour = BLACK;
- // unrandom artefacts get predefined colours
- if ( is_random_artefact(item) )
+ // fixed artefacts get predefined colours
+
+ char *itname = (char*) item_name( item, DESC_PLAIN );
+ char *item_runed = strstr( strlwr(itname), strlwr((char*) "runed") );
+ char *heav_runed = strstr( strlwr(itname), strlwr((char*) "heavily") );
+
+ if ( is_random_artefact(item) &&
+ (item_runed == NULL || heav_runed != NULL) )
return exciting_colour();
if (is_range_weapon( item ))
@@ -6835,7 +6841,8 @@ void item_colour( item_def &item )
else
item.colour = weapon_colour(item);
- if (is_random_artefact( item ) && one_chance_in(5))
+ if (is_random_artefact( item ) && one_chance_in(5)
+ && Options.classic_item_colours)
item.colour = random_colour();
break;