Beams aimed at the ground will hit creatures submerged in shallow water, but enchantments will do nothing, lightning will ground harmlessly, and other conjurations will do 2/3rd their normal damage.
Made target_unshifted_dirs turn off default_target, and vice versa, since the options don't go well together.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1518 c06c8d41-db1a-0410-9941-cceddc491573
5K2ANIEXD3CPJM4XNKNPZINP2G4NT7SJBKRN62WNBUKJXFERTILQC
UPJVSMMMHGRDUIJG4MZX6IBLQ4ODBF5Z3PF3RHDYTSAEOCVDZM5AC
UN4CXQWERF622PXUR3ZM4CJWR6R7OOFVELMY22WLVVT7RD3G2XYAC
M47QBURKKRV2JFK6U7GQNVWK7RUTBVPBJ5FHURC55SKQSXAUFSBAC
45QV77UI6QFW4234P365LD3FGJYRVWTT5455DPB324NG2NFQMKTQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
EAQJ2VSSFA3MKDR7ELP7M5VHTHGN2DCBPPZHXRAXDRKKAX2R6SHQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
LW4N5EHKL776DURXZMAM6JEW3JPWWX5BSNP7TCZHTLCDOQTTGFCAC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
CAGCTYIUYWDHQAJOLVLKOEV5HG6K5ZG7IDHONLIG6BDNCWZJAK4AC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC
AOAJ6D3OKSELEYKAT55XCVU5LYJ7SMCZKC6DIEGLLB3TF2LEENWQC
QNKMXCJSGRBEPE6ZNPEXU5EQIOME6EI4DECVC56GLOBCMGWWE6MQC
DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC
RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC
EHSY6DVGUMI6C67WKET3GDJVLWJWGYBYQONNDK5JVT7BCTHBEZVAC
"<h>Targeting (like zapping wands/spells):\n"
"The keys from examining surroundings\n"
"work here, too. Additional keys are\n"
"<h>Targeting (zapping wands, casting spells, etc.):\n"
"The keys from examine surroundings also work here.\n"
"In addition, you can use:\n"
static bool affectsWall(const bolt &beam, int wall_feature);
static bool isBouncy(struct bolt &beam, unsigned char gridtype);
static bool affects_wall(const bolt &beam, int wall_feature);
static bool isBouncy(bolt &beam, unsigned char gridtype);
static void beam_drop_object( struct bolt &beam, item_def *item, int x, int y );
static bool beam_term_on_target(struct bolt &beam, int x, int y);
static void beam_explodes(struct bolt &beam, int x, int y);
static int affect_wall(struct bolt &beam, int x, int y);
static int affect_place_clouds(struct bolt &beam, int x, int y);
static void affect_place_explosion_clouds(struct bolt &beam, int x, int y);
static int affect_player(struct bolt &beam);
static void affect_items(struct bolt &beam, int x, int y);
static int affect_monster(struct bolt &beam, struct monsters *mon);
static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon);
static void beam_drop_object( bolt &beam, item_def *item, int x, int y );
static bool beam_term_on_target(bolt &beam, int x, int y);
static void beam_explodes(bolt &beam, int x, int y);
static int affect_wall(bolt &beam, int x, int y);
static int affect_place_clouds(bolt &beam, int x, int y);
static void affect_place_explosion_clouds(bolt &beam, int x, int y);
static int affect_player(bolt &beam);
static void affect_items(bolt &beam, int x, int y);
static int affect_monster(bolt &beam, monsters *mon);
static int affect_monster_enchantment(bolt &beam, monsters *mon);
static int range_used_on_hit(struct bolt &beam);
static void explosion1(struct bolt &pbolt);
static void explosion_map(struct bolt &beam, int x, int y,
static int range_used_on_hit(bolt &beam);
static void explosion1(bolt &pbolt);
static void explosion_map(bolt &beam, int x, int y,
if (!beam.is_big_cloud
&& (!beam.is_explosion || beam.in_explosion_phase))
monsters *mons = &menv[mid];
// Monsters submerged in shallow water can be targeted by beams
// aimed at that spot.
if (!mons->submerged()
|| (beam.aimed_at_spot && beam.target() == mons->pos()
&& grd(mons->pos()) == DNGN_SHALLOW_WATER))
// Water absorbs some of the damage for submerged monsters.
if (submerged)
{
// Can't hurt submerged water creatures with electricity.
if (beam.flavour == BEAM_ELECTRICITY)
{
if (see_grid(mon->x, mon->y))
mprf("The %s arcs harmlessly into the water.",
beam.name.c_str());
return (BEAM_STOP);
}
hurt = hurt * 2 / 3;
}
If set to true, targeting will use the old Stone Soup 0.1 / Crawl 4.0
targeting keymap where unshifted direction keys fire in that direction
immediately. The default is to use the new targeting keymap where
unshifted direction keys move the targeting cursor (and shifted
directions fire in the given direction immediately).
If set to true, targeting will use the old Stone Soup 0.1 /
Crawl 4.0 targeting keymap where unshifted direction keys fire
in that direction immediately. The default is to use the new
targeting keymap where unshifted direction keys move the
targeting cursor (and shifted directions fire in the given
direction immediately).
If you use target_unshifted_dirs, default_target will be
automatically disabled.