diff options
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r-- | crawl-ref/source/fight.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc index 4ccd1cb207..8e095747d7 100644 --- a/crawl-ref/source/fight.cc +++ b/crawl-ref/source/fight.cc @@ -311,7 +311,7 @@ static bool chop_hydra_head( const actor *attacker, attacker->conj_verb(verb).c_str(), defender->name(DESC_NOCAP_THE).c_str() ); - defender->hit_points = -1; + defender->hurt(attacker, defender->hit_points); } else { @@ -2670,10 +2670,13 @@ void melee_attack::wasp_paralyse_defender() if (attacker->id() == MONS_YELLOW_WASP) paralyse_roll += 3; - if (!defender->res_poison() && one_chance_in(paralyse_roll)) - defender->paralyse( roll_dice(1, 3) ); - else - defender->slow_down( roll_dice(1, 3) ); + if (defender->res_poison() <= 0) + { + if (one_chance_in(paralyse_roll)) + defender->paralyse( roll_dice(1, 3) ); + else + defender->slow_down( roll_dice(1, 3) ); + } } void melee_attack::splash_monster_with_acid(int strength) @@ -2841,7 +2844,7 @@ void melee_attack::mons_apply_attack_flavour(const mon_attack_def &attk) case AF_CONFUSE: if (attk.type == AT_SPORE) { - if (defender->res_poison()) + if (defender->res_poison() > 0) break; if (--atk->hit_dice <= 0) |