diff options
author | Steve Melenchuk <smelenchuk@gmail.com> | 2014-04-28 17:40:44 -0600 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-04-28 17:40:44 -0600 |
commit | f0d8313a57775a19a39dd8052f3b4b27fc2aa612 (patch) | |
tree | 78ed45aa935b825455baa6d14e2c9f68ec56f894 /crawl-ref/source/throw.cc | |
parent | 730cb5fe10b2ca919f970df9d0060cb200bd28f2 (diff) | |
download | crawl-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.cc | 25 |
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) { |