diff options
author | Nicholas Feinberg <pleasingfung@gmail.com> | 2014-05-29 21:50:45 -0700 |
---|---|---|
committer | Nicholas Feinberg <pleasingfung@gmail.com> | 2014-05-29 22:46:05 -0700 |
commit | 7a813ab0ddbdd5081f0dd3561dcf7643e3ee8b82 (patch) | |
tree | efb519fed35bdcc5e5a0e2b5b908b0348c1c54c3 /crawl-ref/source/attack.cc | |
parent | fd0dc405fee0f2d307e8b134f5d0acbc8ccff674 (diff) | |
download | crawl-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.cc | 14 |
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; |