summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/throw.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2014-04-28 17:40:44 -0600
committerSteve Melenchuk <smelenchuk@gmail.com>2014-04-28 17:40:44 -0600
commitf0d8313a57775a19a39dd8052f3b4b27fc2aa612 (patch)
tree78ed45aa935b825455baa6d14e2c9f68ec56f894 /crawl-ref/source/throw.cc
parent730cb5fe10b2ca919f970df9d0060cb200bd28f2 (diff)
downloadcrawl-ref-f0d8313a57775a19a39dd8052f3b4b27fc2aa612.tar.gz
crawl-ref-f0d8313a57775a19a39dd8052f3b4b27fc2aa612.zip
Handle action counts and exercise properly for ranged (78291).
Diffstat (limited to 'crawl-ref/source/throw.cc')
-rw-r--r--crawl-ref/source/throw.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/crawl-ref/source/throw.cc b/crawl-ref/source/throw.cc
index 4b82e57846..bc95bcd805 100644
--- a/crawl-ref/source/throw.cc
+++ b/crawl-ref/source/throw.cc
@@ -841,6 +841,31 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
: SPWPN_NORMAL;
const int ammo_brand = get_ammo_brand(item);
+ switch (projected)
+ {
+ case LRET_LAUNCHED:
+ {
+ const item_def *launcher = you.weapon();
+ ASSERT(launcher);
+ practise(EX_WILL_LAUNCH, range_skill(*launcher));
+ if (is_unrandom_artefact(*launcher)
+ && get_unrand_entry(launcher->special)->type_name)
+ {
+ count_action(CACT_FIRE, launcher->special);
+ }
+ else
+ count_action(CACT_FIRE, launcher->sub_type);
+ break;
+ }
+ case LRET_THROWN:
+ practise(EX_WILL_THROW_MSL, wepType);
+ count_action(CACT_THROW, wepType | (OBJ_MISSILES << 16));
+ break;
+ case LRET_FUMBLED:
+ practise(EX_WILL_THROW_OTHER);
+ break;
+ }
+
// check for returning ammo from launchers
if (returning && projected == LRET_LAUNCHED)
{