summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spells3.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-22 15:53:37 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-22 15:53:37 +0000
commit2a73bdc6a3be5efa46dfdf32bb86edfcf5d0bd4c (patch)
tree8f0fc9dad7bcda05c27e23aca77ec987ed21c8c5 /crawl-ref/source/spells3.cc
parent9a1e7565ec8802a38a9649744920923fc262dff7 (diff)
downloadcrawl-ref-2a73bdc6a3be5efa46dfdf32bb86edfcf5d0bd4c.tar.gz
crawl-ref-2a73bdc6a3be5efa46dfdf32bb86edfcf5d0bd4c.zip
Improve player beam tracer for firing through friendlies:
* name the monster you're firing through ("your goblin zombie") * use maximum possible range * make it work for spells and abilities, as well Still todo: * apply the same logic to firing missiles * don't prompt for monsters that wouldn't be harmed (e.g. living allies for Dispel Undead, etc.) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5177 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/spells3.cc')
-rw-r--r--crawl-ref/source/spells3.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc
index 0d5f064560..aa9063d5e7 100644
--- a/crawl-ref/source/spells3.cc
+++ b/crawl-ref/source/spells3.cc
@@ -308,12 +308,12 @@ int airstrike(int power, dist &beam)
return (success);
} // end airstrike()
-int cast_bone_shards(int power, bolt &beam)
+bool cast_bone_shards(int power, bolt &beam)
{
bool success = false;
if (you.equip[EQ_WEAPON] == -1
- || you.inv[you.equip[EQ_WEAPON]].base_type != OBJ_CORPSES)
+ || you.inv[you.equip[EQ_WEAPON]].base_type != OBJ_CORPSES)
{
canned_msg(MSG_SPELL_FIZZLES);
}
@@ -326,6 +326,9 @@ int cast_bone_shards(int power, bolt &beam)
power *= 15;
power += mons_weight( you.inv[you.equip[EQ_WEAPON]].plus );
+ if (!player_tracer(ZAP_BONE_SHARDS, power, beam))
+ return (false);
+
mpr("The skeleton explodes into sharp fragments of bone!");
dec_inv_item_quantity( you.equip[EQ_WEAPON], 1 );