summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2009-11-28 00:00:48 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2009-11-28 00:02:39 +1000
commitc7857e47b91bbdd3f33379100df02fdff420337a (patch)
treee6faea693f7feee4e128b45f543e866db102fb4a
parentff7569cb8f6e15e95db49d4810d0766dd47dad31 (diff)
downloadcrawl-ref-c7857e47b91bbdd3f33379100df02fdff420337a.tar.gz
crawl-ref-c7857e47b91bbdd3f33379100df02fdff420337a.zip
Re-add Purple Smoke cloud type (sorear).
This is visually identical to translocational energy, but will have uses in portal vaults (specifically, wizlabs).
-rw-r--r--crawl-ref/source/beam.cc6
-rw-r--r--crawl-ref/source/cloud.cc41
-rw-r--r--crawl-ref/source/dat/mini.des10
-rw-r--r--crawl-ref/source/enum.h2
-rw-r--r--crawl-ref/source/tilepick.cc1
-rw-r--r--crawl-ref/source/tutorial.cc1
6 files changed, 45 insertions, 16 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 4309d8f4b9..5ca97ddc8c 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -2996,6 +2996,9 @@ static int _potion_beam_flavour_to_colour(beam_type flavour)
case BEAM_POTION_BLUE_SMOKE:
return (LIGHTBLUE);
+ case BEAM_POTION_PURPLE_SMOKE:
+ return (MAGENTA);
+
case BEAM_POTION_RANDOM:
default:
// Leave it the colour of the potion, the clouds will colour
@@ -3333,6 +3336,7 @@ void bolt::affect_place_explosion_clouds()
case BEAM_POTION_BLACK_SMOKE:
case BEAM_POTION_GREY_SMOKE:
case BEAM_POTION_BLUE_SMOKE:
+ case BEAM_POTION_PURPLE_SMOKE:
case BEAM_POTION_RAIN:
case BEAM_POTION_MUTAGENIC:
cl_type = beam2cloud(flavour);
@@ -3348,6 +3352,7 @@ void bolt::affect_place_explosion_clouds()
case 4: cl_type = CLOUD_BLACK_SMOKE; break;
case 5: cl_type = CLOUD_GREY_SMOKE; break;
case 6: cl_type = CLOUD_BLUE_SMOKE; break;
+ case 7: cl_type = CLOUD_PURPLE_SMOKE; break;
default: cl_type = CLOUD_STEAM; break;
}
break;
@@ -6260,6 +6265,7 @@ std::string beam_type_name(beam_type type)
case BEAM_POTION_BLACK_SMOKE: return ("black smoke");
case BEAM_POTION_GREY_SMOKE: return ("grey smoke");
case BEAM_POTION_BLUE_SMOKE: return ("blue smoke");
+ case BEAM_POTION_PURPLE_SMOKE: return ("purple smoke");
case BEAM_POTION_RAIN: return ("rain");
case BEAM_POTION_RANDOM: return ("random potion");
case BEAM_POTION_MUTAGENIC: return ("mutagenic fog");
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;
diff --git a/crawl-ref/source/dat/mini.des b/crawl-ref/source/dat/mini.des
index b924b83143..29ce8dda47 100644
--- a/crawl-ref/source/dat/mini.des
+++ b/crawl-ref/source/dat/mini.des
@@ -35,6 +35,16 @@ default-depth: D:8-27
##############################################################################
# Minivault balancer
#
+NAME: mini_test
+MARKER: G = lua:fog_machine { cloud_type= "purple smoke", \
+ pow_min = 10, pow_max = 20, delay_min = 15, delay_max = 35, \
+ size = 3, walk_dist = 2, spread_rate= 25 }
+MAP
+..
+Gw
+ww
+ENDMAP
+
NAME: mini_dummy
DEPTH: 1-50, !D:1-27
TAGS: dummy
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 0c999b435d..e080bbd3c2 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -262,6 +262,7 @@ enum beam_type // beam[].flavour
BEAM_POTION_GREY_SMOKE,
BEAM_POTION_MUTAGENIC,
BEAM_POTION_BLUE_SMOKE,
+ BEAM_POTION_PURPLE_SMOKE,
BEAM_POTION_RAIN,
BEAM_POTION_RANDOM,
@@ -427,6 +428,7 @@ enum cloud_type
CLOUD_BLACK_SMOKE,
CLOUD_GREY_SMOKE,
CLOUD_BLUE_SMOKE,
+ CLOUD_PURPLE_SMOKE,
CLOUD_TLOC_ENERGY,
CLOUD_FOREST_FIRE,
CLOUD_STEAM,
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 87d3153210..b7b79f50bd 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -2595,6 +2595,7 @@ static int _tileidx_cloud(int type, int decay)
ch = TILE_CLOUD_BLUE_SMOKE;
break;
+ case CLOUD_PURPLE_SMOKE:
case CLOUD_TLOC_ENERGY:
ch = TILE_CLOUD_TLOC_ENERGY;
break;
diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc
index b7c1b16b6a..9d42708f00 100644
--- a/crawl-ref/source/tutorial.cc
+++ b/crawl-ref/source/tutorial.cc
@@ -4458,6 +4458,7 @@ static void _tutorial_describe_cloud(int x, int y)
case CLOUD_GREY_SMOKE:
case CLOUD_BLUE_SMOKE:
case CLOUD_TLOC_ENERGY:
+ case CLOUD_PURPLE_SMOKE:
case CLOUD_MIST:
ostr << "harmless. ";
break;