summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/attack.cc
diff options
context:
space:
mode:
authorNicholas Feinberg <pleasingfung@gmail.com>2014-05-29 21:50:45 -0700
committerNicholas Feinberg <pleasingfung@gmail.com>2014-05-29 22:46:05 -0700
commit7a813ab0ddbdd5081f0dd3561dcf7643e3ee8b82 (patch)
treeefb519fed35bdcc5e5a0e2b5b908b0348c1c54c3 /crawl-ref/source/attack.cc
parentfd0dc405fee0f2d307e8b134f5d0acbc8ccff674 (diff)
downloadcrawl-ref-7a813ab0ddbdd5081f0dd3561dcf7643e3ee8b82.tar.gz
crawl-ref-7a813ab0ddbdd5081f0dd3561dcf7643e3ee8b82.zip
Rework Confusing Touch
In its previous state, it was fiddly, misleading, and kind of overpowered. So: Raise it to level 2 (& remove it from Cantrips, replacing it with Corona). Remove the stacking-duration effect & increase the initial duration. Set damage of all hits to 0, and make the first successful (confusing) hit end the effect. This should still be useful, but in a level 2 kind of way. We'll see how that pans out.
Diffstat (limited to 'crawl-ref/source/attack.cc')
-rw-r--r--crawl-ref/source/attack.cc14
1 files changed, 4 insertions, 10 deletions
diff --git a/crawl-ref/source/attack.cc b/crawl-ref/source/attack.cc
index ad8bd818de..266f41ae48 100644
--- a/crawl-ref/source/attack.cc
+++ b/crawl-ref/source/attack.cc
@@ -1340,6 +1340,8 @@ int attack::player_apply_slaying_bonuses(int damage, bool aux)
int attack::player_apply_final_multipliers(int damage)
{
+ if (you.duration[DUR_CONFUSING_TOUCH] && wpn_skill == SK_UNARMED_COMBAT)
+ return 0;
return damage;
}
@@ -1420,9 +1422,6 @@ int attack::calc_base_unarmed_damage()
else
damage += you.skill_rdiv(wpn_skill);
- if (you.duration[DUR_CONFUSING_TOUCH] && wpn_skill == SK_UNARMED_COMBAT)
- damage -= 3;
-
if (damage < 0)
damage = 0;
}
@@ -1512,9 +1511,8 @@ int attack::calc_damage()
damage_done = player_apply_fighting_skill(damage_done, false);
damage_done = player_apply_misc_modifiers(damage_done);
damage_done = player_apply_slaying_bonuses(damage_done, false);
- damage_done = player_apply_final_multipliers(damage_done);
-
damage_done = player_stab(damage_done);
+ damage_done = player_apply_final_multipliers(damage_done);
damage_done = apply_defender_ac(damage_done);
set_attack_verb();
@@ -1859,11 +1857,7 @@ bool attack::apply_damage_brand(const char *what)
if (attacker->is_player() && damage_brand == SPWPN_CONFUSE
&& you.duration[DUR_CONFUSING_TOUCH])
{
- you.duration[DUR_CONFUSING_TOUCH] -= roll_dice(3, 5)
- * BASELINE_DELAY;
-
- if (you.duration[DUR_CONFUSING_TOUCH] < 1)
- you.duration[DUR_CONFUSING_TOUCH] = 1;
+ you.duration[DUR_CONFUSING_TOUCH] = 1;
obvious_effect = false;
}
break;