summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/item_use.cc
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2010-01-01 23:04:17 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2010-01-01 23:04:17 +1000
commit27eb1eb69656fae951122563fab9d8b2ea37aae6 (patch)
treeccd342e3a24109cc54c4d7b34d1856774954ab72 /crawl-ref/source/item_use.cc
parentd9875be622ef0d4eea8e0a936636bc355912dc74 (diff)
downloadcrawl-ref-27eb1eb69656fae951122563fab9d8b2ea37aae6.tar.gz
crawl-ref-27eb1eb69656fae951122563fab9d8b2ea37aae6.zip
Another ranged combat target: branded launcher + branded ammo.
This specifically allows for the combination of poison + flaming arrows, so that Nessos is not unfairly nerfed. Otherwise, launcher brands will not affect ammunition at all. They will only apply to unbranded ammunition. I'm not too sure on this myself. The idea that a flaming bow does not affect a missile of frost, or vice versa, a freezing bow does not affect a missile of flame is a little bit odd. It's possible that I misunderstood, and if so, this commit should be reverted.
Diffstat (limited to 'crawl-ref/source/item_use.cc')
-rw-r--r--crawl-ref/source/item_use.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 85bd75d4db..cf13353bb6 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -2048,9 +2048,19 @@ bool setup_missile_beam(const actor *agent, bolt &beam, item_def &item,
|| ammo_brand == SPMSL_ELECTRIC;
const bool blessed = bow_brand == SPWPN_HOLY_WRATH
&& ammo_brand != SPMSL_REAPING;
+ const bool flaming = bow_brand == SPWPN_FLAME
+ || ammo_brand == SPMSL_FLAME;
ASSERT(!exploding || !is_artefact(item));
+ if (flaming && poisoned)
+ ; // Do nothing. A specific exclusion to launcher not overwriting
+ // ammunition brands.
+ else
+ // XXX: Launcher brand does not affect its ammunition. This may change.
+ if (ammo_brand != SPMSL_NORMAL && bow_brand != SPWPN_NORMAL)
+ bow_brand = SPWPN_NORMAL;
+
beam.name = item.name(DESC_PLAIN, false, false, false);
// Print type of item as influenced by launcher.