summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/fight.cc3
-rw-r--r--crawl-ref/source/mon-util.cc7
2 files changed, 4 insertions, 6 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 913119784c..d5c0cc24bb 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -3765,9 +3765,6 @@ void melee_attack::mons_apply_attack_flavour(const mon_attack_def &attk)
break;
case AF_DRAIN_XP:
- if (attacker->id() == MONS_SPECTRAL_THING && coinflip())
- break;
-
if (one_chance_in(30)
|| (damage_done > 5 && coinflip())
|| (attk.damage == 0 && !one_chance_in(3)))
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 369cc7458b..5cea8ebe9b 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -852,10 +852,10 @@ mon_attack_def downscale_zombie_attack(const monsters *mons,
{
attk.flavour = AF_COLD;
}
+ else if (mons->type == MONS_SPECTRAL_THING && coinflip())
+ attk.flavour = AF_DRAIN_XP;
else
- {
- attk.flavour = AF_PLAIN;
- }
+ attk.flavour = AF_PLAIN;
attk.damage = downscale_zombie_damage(attk.damage);
@@ -883,6 +883,7 @@ mon_attack_def mons_attack_spec(const monsters *mon, int attk_number)
ASSERT(smc);
mon_attack_def attk = smc->attack[attk_number];
+
if (attk.flavour == AF_KLOWN)
{
switch (random2(6))