Life Drain bug - premature damage reduction

What you were expecting to happen, and what actually happened?

When killing an enemy with the life drain trait via a spell that kills your own troop (ie Sacrificial Priest, Bombot), the troop with life drain will resurrect itself with 4 health after taking lethal damage, even if the lethal damage was above starting life + 4. Troops should not resurrect themselves.

EDIT: I now believe this is a case of damage being reduced prematurely. All damage should be applied and any overkill should only be reduced via displayed number only. Detailed in below post:

What are the steps to make it happen again?

Kill a life drain-traited troop (Anubite Warrior, Ghoul, Night Terror, etc) with lethal damage from Bombot or Sacrificial Priest

Old bug, should’ve been fixed a long time ago =/ Funny thing is that it happens almsot every time, but not every time.

1 Like

As an addendum to this, I’ve noticed that if the troop is in the first position and Bombot hits it with a skull before the AOE damage, the bug will not happen.

2 Likes

If true that sounds like a unique insight on this nasty little bug !!!

Does this only happen if the skull damage kills the troop? or as long as it does damage even without killing it?

I think it has to deal at least the 4 skull damage it would’ve recovered. I haven’t tested it enough, though.

EDIT: I hit the first enemy with 3 skull damage from Bombot’s explosion and it died, despite its Life Drain… So I’m not quite right there.

1 Like

My theory is this:

If the skull damage from the explosion kills the enemy, then it will die regardless of life drain.
If the enemy dies from the Bombot’s “Destroy myself” then it will survive if it has life drain.

The core to this is the order in which the spell plays out. The wording is “Explode 2 random Gems. Deal [(Magic / 2) + 3] damage to all enemies, boosted by my Armor and destroy myself.” Going off the full stop after explode gems, I’m assume it resolves all damage then and there. and THEN it proceeds to do the Damage to all enemies from destroying itself, which only gets resolved after the whole effect (damage and self destruction) is done.

Part 1:
Explode 2 gems.
Traits fire if applicable.
Deal any damage from skulls
Traits fire if applicable.
Collect mana from gems.
Traits fire if applicable.
Resolve any deaths.
Traits fire if applicable.

Part 2:
Deal damage to all enemies.
Traits fire if applicable.
Destroy myself.
Traits fire if applicable.
Resolve any deaths.
Traits fire if applicable.

Since, in part 2, the traits fire before it checks for deaths, the Enemy sits at 0 HP after it’s dealt damage, and then it’s trait fires when the bombot dies, healing it up to 4 HP, so when it checks for deaths the enemy is not dead, but at 4 HP.

4 Likes

The enemy that died after receiving 3 skull damage had full health. I know it was 3 skull damage because the numbers pop separately.

EDIT: I mean, I think you’re on the right track, but that’s still not quite it, because it seems that any skull damage prevents Life Drain from activating.

1 Like

Here’s a video of 2 troops with Life Drain. The Leader dies, the other doesn’t:

Worth noticing: Bombot had total of 118 Armor+Life. It takes damage when it explodes, but it’s -1 and -107, or -117 and -0, and they show at the same time. With Spider Queen, the skull damage shows slightly earlier.

Maybe you can come up with another theory? =)

1 Like

Yeah, that was why I was trying to clarify if it was a case of any skull damage or just lethal. And it does seem that any skull damage as you said, which makes my theory fall apart. Will take a look at the video in a couple minutes and see if I can come up with another theory.

(Just notice that I edited the numbers that show as Bombot’s received damaged in my reply above)

Ok new theory (based on the screenshot):

Spell fires
The game calculates all the damage that will be going out (both from explosion and from the self destruct). But doesn’t apply it yet.

The game resolves the explosion of gems, dealing the damage to the first troop form skulls. But because it has also calculated the damage it will receive from the self destruct, it factors that in as well, and decides the troop is deal at the point the skull damage hits it.

At this point, the damage going out has been calculated to all troops, but only resolved on the first troop. So Night Terror is still on full life.

The game then applies the damage from the self destruct and then kills the bombot. The damage kills the Night Terror, but because the game doesn’t check for death until it’s done the whole effect, the Night Terror’s life drain triggers, bringing it back to life.

Short Version:
The game calculates ALL damage at the start, but only applies it at the point at which the troop takes the damage. Because the spell is in two parts, the Spider Queen takes (all the) damage and dies before the second part of the spell resolves and the Bombot dies, and therefor not triggering Spider Queen’s Life Drain.

EDIT: A way to test this would be to have a case where both the first and second troop die to skull damage (if that’s possible… it might be a case of all skull damage goes to the first troop regardless…) and then a third troop die to the explosion, all with life drain, to see which survive and which don’t.

1 Like

The skull damage never hits the second troop, only if it’s because of a cascade, but that case doesn’t work for us because the spell calculations and resolutions would be over already.

But I like your theory. Could it be what caused a stunned IK to resurrect? I mean, calculate damage, checks that it would die, dead = no status effects, then trait had the chance to activate.

Could very well be. I haven’t run into IK very much and I don’t have his third trait, so I can’t really say I’ve seen it happen yet.

It was allegedly fix about a couple of months back, but I haven’t used many troops that cause stun.

Also, if Bombot’s explosion does NOT destroy skulls, the first troop survives with their Life Drain.

Bombot causes several problems for the game, with the code in its current state. In addition to the Life Drain bug (which, according to testing I did a few months ago, does not affect Dwarven Slayer), there’s another peach I discovered recently: the death of Bombot triggers Kerberos’ Warg summon. For this to happen, the game needs to have (a) already cleared the dead enemy troops from the board (else there wouldn’t be a spot for the Warg), but (b) not resolved that Bombot died yet.

What I don’t understand is how Bombot’s death triggers both Life Drain (which must occur before enemy troops are cleared) and Gate Guardian (which must occur after enemy troops are cleared).

I noticed that as well. Usually, the warg spawns on top of the first troop that dies (when Warg dies, you’ll see the ghost of the previous troop)

Also, it just happened that the first troop survived after being hit by skulls and bombot’s explosion… It’s getting weird.

EDIT: Happened again. It happened when there was a Spider Queen both on position 1 and 2.

Revisiting this after taking a couple weeks off from exploration. I think I may have some better insight now on exactly what is occurring. I think the gist of the problem is that overkill damage is being reduced to exact number, rather than actually applying all damage at damage step and simply displaying a reduced number.

  1. Cast bombot
  2. Because bombot must die, damage must be calculated at this point
  3. Damage is calculated for life drain troop and improperly reduced to exact armor + hp
  4. Bombot dies
  5. Life drain triggers, granting +4 life
  6. Improperly reduced damage applied; life drain troop survives because of the bonus

Of course, none of this still explains why single skull point of skull damage will disrupt the issue.