summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/cloud.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/cloud.cc')
-rw-r--r--crawl-ref/source/cloud.cc41
1 files changed, 25 insertions, 16 deletions
diff --git a/crawl-ref/source/cloud.cc b/crawl-ref/source/cloud.cc
index 1c6af41739..a6006c0b35 100644
--- a/crawl-ref/source/cloud.cc
+++ b/crawl-ref/source/cloud.cc
@@ -428,11 +428,12 @@ cloud_type cloud_type_at(const coord_def &c)
cloud_type random_smoke_type()
{
// including black to keep variety
- switch ( random2(3) )
+ switch ( random2(4) )
{
case 0: return CLOUD_GREY_SMOKE;
case 1: return CLOUD_BLUE_SMOKE;
case 2: return CLOUD_BLACK_SMOKE;
+ case 3: return CLOUD_PURPLE_SMOKE;
}
return CLOUD_DEBUGGING;
}
@@ -461,6 +462,8 @@ cloud_type beam2cloud(beam_type flavour)
return CLOUD_GREY_SMOKE;
case BEAM_POTION_BLUE_SMOKE:
return CLOUD_BLUE_SMOKE;
+ case BEAM_POTION_PURPLE_SMOKE:
+ return CLOUD_PURPLE_SMOKE;
case BEAM_STEAM:
case BEAM_POTION_STEAM:
return CLOUD_STEAM;
@@ -483,21 +486,22 @@ beam_type cloud2beam(cloud_type flavour)
switch (flavour)
{
default:
- case CLOUD_NONE: return BEAM_NONE;
- case CLOUD_FIRE: return BEAM_FIRE;
- case CLOUD_FOREST_FIRE: return BEAM_FIRE;
- case CLOUD_STINK: return BEAM_POTION_STINKING_CLOUD;
- case CLOUD_COLD: return BEAM_COLD;
- case CLOUD_POISON: return BEAM_POISON;
- case CLOUD_BLACK_SMOKE: return BEAM_POTION_BLACK_SMOKE;
- case CLOUD_GREY_SMOKE: return BEAM_POTION_GREY_SMOKE;
- case CLOUD_BLUE_SMOKE: return BEAM_POTION_BLUE_SMOKE;
- case CLOUD_STEAM: return BEAM_STEAM;
- case CLOUD_MIASMA: return BEAM_MIASMA;
- case CLOUD_CHAOS: return BEAM_CHAOS;
- case CLOUD_RAIN: return BEAM_POTION_RAIN;
- case CLOUD_MUTAGENIC: return BEAM_POTION_MUTAGENIC;
- case CLOUD_RANDOM: return BEAM_RANDOM;
+ case CLOUD_NONE: return BEAM_NONE;
+ case CLOUD_FIRE: return BEAM_FIRE;
+ case CLOUD_FOREST_FIRE: return BEAM_FIRE;
+ case CLOUD_STINK: return BEAM_POTION_STINKING_CLOUD;
+ case CLOUD_COLD: return BEAM_COLD;
+ case CLOUD_POISON: return BEAM_POISON;
+ case CLOUD_BLACK_SMOKE: return BEAM_POTION_BLACK_SMOKE;
+ case CLOUD_GREY_SMOKE: return BEAM_POTION_GREY_SMOKE;
+ case CLOUD_BLUE_SMOKE: return BEAM_POTION_BLUE_SMOKE;
+ case CLOUD_PURPLE_SMOKE: return BEAM_POTION_PURPLE_SMOKE;
+ case CLOUD_STEAM: return BEAM_STEAM;
+ case CLOUD_MIASMA: return BEAM_MIASMA;
+ case CLOUD_CHAOS: return BEAM_CHAOS;
+ case CLOUD_RAIN: return BEAM_POTION_RAIN;
+ case CLOUD_MUTAGENIC: return BEAM_POTION_MUTAGENIC;
+ case CLOUD_RANDOM: return BEAM_RANDOM;
}
}
@@ -710,6 +714,7 @@ void in_a_cloud()
case CLOUD_GREY_SMOKE:
case CLOUD_BLUE_SMOKE:
case CLOUD_TLOC_ENERGY:
+ case CLOUD_PURPLE_SMOKE:
case CLOUD_BLACK_SMOKE:
mpr("You are engulfed in a cloud of smoke!");
break;
@@ -825,6 +830,7 @@ bool is_harmless_cloud(cloud_type type)
case CLOUD_BLACK_SMOKE:
case CLOUD_GREY_SMOKE:
case CLOUD_BLUE_SMOKE:
+ case CLOUD_PURPLE_SMOKE:
case CLOUD_TLOC_ENERGY:
case CLOUD_MIST:
case CLOUD_RAIN:
@@ -876,6 +882,8 @@ std::string cloud_name(cloud_type type)
return "grey smoke";
case CLOUD_BLUE_SMOKE:
return "blue smoke";
+ case CLOUD_PURPLE_SMOKE:
+ return "purple smoke";
case CLOUD_TLOC_ENERGY:
return "translocational energy";
case CLOUD_STEAM:
@@ -1002,6 +1010,7 @@ int get_cloud_colour(int cloudno)
which_colour = LIGHTBLUE;
break;
+ case CLOUD_PURPLE_SMOKE:
case CLOUD_TLOC_ENERGY:
which_colour = MAGENTA;
break;