QKA35CKWOL2G6EXCIWOTCRCID3ANW5TRFFUMFWANCT6GHNK5EVDAC
P57SSZVSEUR22RXYA2S44VWPIYU2RPYT244QBP4QDLHZBW7CMHZAC
WV7UHA3KCZ5FOIFXFVCTSPVPR6YR5FAG2RSGCQCF6INYG5OYYHYAC
WT66JDIRTLLP37SHTV4GI3V64JFJ4D25LNRLGCHFG6CLEFKJ3QGQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
7TC5S2NB46NFPXQKVXUYA26DZ2OE42WWE7RUSBJHXQPUGAWHIFMAC
LG7XJWUXOV4ZBMOTZX7R5NUC5IONVNCF5O42M4QVYLHNZ62AV25AC
IYMUEJG2VI3TV7HVAZIU2L4DVQY7VNSIFVV4I3QIVP7H66EVJISAC
3523HSJ5BHDJWA4LG27ZJS3QAECBV3NDHUUPIEEU5FVT33L2TGEAC
LJFI2JIGND5STQQXWGFQ75YLPW34PSHGJGZBHYG5ZVYMO7FZYOYAC
5FHWTG7M6FW4B3I33YI7QSM3OZIB6ZGC6TI6JISSLY5Y43HI56VAC
AYU5OVG2HZO46KDAPKUWAVHS5HTYFKUWIMIRMTHAXVVFEDJE7YPAC
J27WJM3LQLLUDP3DY3URHH52DQYEYUFMYGKSJ4LSZMW4HLMKVQ2QC
ZLQAAP55CJ77XIJN3DZVPT4GTTVLIBFJLIJJKI6L5UBSHX7VUK6AC
3KRKUK3HCBBZWS5MXFAMM4R5PGWWTSURBSFXEEZPRRCFAZ5EZTCAC
ATDAT2AONG2BDLZFBJZB4WVNRUFQAU7RDIVUBAZ6STAV62NX5R4AC
F3JXHG37SKCXMJVQCR7EWRNHABPOLNOHE3MRUIRT2EPMZG2MCMFQC
ZP2KE7A2LE7Z2S7AC45WE4CXDSEVDTWIMV2EM4IBUKXYJIDU6R7QC
5US6HAZNUVFLJCSX3YLML7U4ZR7HHXU3VM7U6JJEEULNCIPD7B6QC
RWCCZ64BG3HSOTM54ANIGENC3F3AIR42LJFRYSAKMCPCIUSOZY5QC
case CLOUD_RAIN:
// Fiery monsters dislike the rain.
if (monster->is_fiery() && extra_careful)
return (true);
// We don't care about what's underneath the rain cloud if we can fly.
if (monster->flight_mode() != FL_NONE)
return (false);
// These don't care about deep water.
if (monster_habitable_grid(monster, DNGN_DEEP_WATER))
return (false);
if (c.type == CLOUD_RAIN)
{
// Rain clouds can occasionally leave shallow water or deepen it:
// If we're near lava, chance of leaving water is lower;
// if we're near deep water already, chance of leaving water
// is slightly higher.
if (one_chance_in((5 + count_neighbours(c.pos, DNGN_LAVA)) -
count_neighbours(c.pos, DNGN_DEEP_WATER)))
{
dungeon_feature_type feat;
if (grd(c.pos) == DNGN_FLOOR)
feat = DNGN_SHALLOW_WATER;
else if (grd(c.pos) == DNGN_SHALLOW_WATER && you.pos() != c.pos
&& one_chance_in(3))
// Don't drown the player!
feat = DNGN_DEEP_WATER;
else
feat = grd(c.pos);
if (grd(c.pos) != feat)
{
if (you.pos() == c.pos)
mpr("The rain has left you waist-deep in water!");
dungeon_terrain_changed(c.pos, feat);
}
}
}
bool in_what_cloud(cloud_type type)
{
int cl = env.cgrid(you.pos());
if (env.cgrid(you.pos()) == EMPTY_CLOUD)
return (false);
if (env.cloud[cl].type == type)
return (true);
return (false);
}
cloud_type in_what_cloud()
{
int cl = env.cgrid(you.pos());
if (env.cgrid(you.pos()) == EMPTY_CLOUD)
return (CLOUD_NONE);
return (env.cloud[cl].type);
}