Open jeremysalwen opened 4 years ago
Proposed battle: Replicating Menace vs Unstable Ghoul
They will trade. Will the unstable ghoul always hit the tokens, never hit the tokens, or sometimes hit the tokens (based on order of play, attackers, etc?)
Note you will need to fight many times and perhaps resummon to change summon order of the cards relative to each other, in order to be sure, since it may not be a simple rule.
One case of defending deathrattle triggering first (damaging deathrattle) and summon happened later.
One case of attacking deathrattle triggering first (summoning deathrattle) and damage happened after.
Kaboom bot attacking scallyway, killed summoned scallywag.
replicating menace attacked kaboom bot, replicating menace triggered first.
unstable ghoul attacks replicating menace, ghoul triggers second and kills everything.
kaboom bot attacks menace, then kills token.
replicating menace attacks unstable ghoul, unstable ghoul triggers first, and hits no summoned tokens.
ghoul attacks ratpack, ghoul triggers first
my macaw attacked jeremy's replicating menace, my macaw's kaboom bot triggered first
(There was only a replicating menace on the other side, so the kaboom bot whiffed)
https://www.reddit.com/r/BobsTavern/comments/j1cidh/i_finally_got_it_after_about_a_week_of_trying/
Ok, this is pretty crazy, but I think it gives us some useful information. After Unstable Ghoul triggers, it looks like the attacking player's deathrattles trigger first, left-to-right, and then the defending player's deathrattles trigger. Note that the opponent's Selfless Hero doesn't give divine shield to either of the minions summoned by The Tide Razor, presumably because of left-to-right ordering.
Also note that board space opens up after the ghoul's deathrattle kills some stuff, but no board space opens up between Kaboom Bot triggers (and thus the pirate ship only summons 2 minions), which makes it seem like a queue of deathrattle triggers resolve before death is checked.
It does appear that the ship's deathrattle triggers before the opponent's kaboom bot based on the animation, which is weird.
This is one instance of an "exodia" deathrattle build, though the more common version was with Beasts, if you want to search for more videos like this.
Interesting, I will keep digging.
Good find!
It could be that the queue is emptied before death is resolved or it could be that when an action is put into the queue it is put in with the current game state. I think that these mean slightly different things if we think about whether a secondary event knows if the other creatures are dead. Like imagine that the kaboom bots were had killed something with a deathrattle, would that thing know what was dead when its deathrattle was triggered? Also this seems to make sense with what we had noticed before that kaboombot deathrattle triggers wouldn't target enemy summons that had been summoned after their death. Actually I'm not sure we confirmed that.
Also, the selfless hero deathrattle targets the kaboom bots that were summoned after the selfless hero died.
Well the Kaboom Bots did kill the opponent's Kaboom Bot, which dealt damage to a minion that was summoned afterwards, so there's our answer.
The Selfless Hero I was referring to is the opponent's.
I wasn't correcting you. I was saying that your selfless hero targets your own summoned bots, which is not what I would expect.
Got it, I misunderstood.
Yeah, ok. So, it probably isn't taking the state when it was killed with it.
The kaboom bots don't seem to overkill anything either. Maybe this is common knowledge.
Which guy does the summoning at the end in the opponent's board?
The Tide Razor (pirate ship)
https://youtu.be/9NNuJcal8vY?t=1091
This one seems like it's left-to-right as well.
Ok, I see what you're saying. It's like....
The unstable ghoul happens -> The tide razor deathrattle gets queued up along with a bunch of friendly triggers. Everything that died from the ghould gets wiped from the board Now we're in the queue of things that directly resulted from the ghoul All of the friendly effects happen left to right then the tide razor triggers then we resolve all the deaths that happened as a result of the second queue Then it's the third step where the kaboom bot that was killed by one of the friendly kaboom bots triggers
https://youtu.be/0-ux3G3Tq8A?t=1013
Left-to-right again.
Oh yeah that makes sense because the Tide Razor was queued before the Kaboom Bot died.
https://youtu.be/ecZvTirsoMo?t=72
Left-to-right all but confirmed by the devs. The only question now is ordering of player vs opponent simultaneous deathrattles. In all of these videos it seems like player resolves first, but in our in-game testing it wasn't consistent either way. Maybe this is just how Unstable Ghoul works. Are there any other cards/heroes that deal simultaneous damage to minions on both sides?
https://youtu.be/jbgRI-q-s5A?t=317 (watch at 0.25 speed!)
Ok in this one the opponent's Nadina clearly triggers before the player's Kaboom Bot. Very strange.
Oh, no, you know what it was. It was that kaboom bot wont target anything with <= 0 life even though death isn't resolved yet.
I think that we should come up with an architecture and invalidate it.
Right now were thinking something like:
Something happens that causes multiple events.
those events go into a queue.
those events resolve
as they resolve their consequential events (sub events?) go into another queue.
the first queue finishes
death is checked
the next queue begins to resolve
its sub events are put into another queue to be resolved after the deaths of the second queue are resolved
etc.
Which video are you talking about?
I'm just saying abstractly this structure could explain the behavior we're seeing.
Which one is the Nadia?
I mean which Kaboom Bot
Nadina is the furthest-left opponent minion. It gives divine shield to friendly dragons as a deathrattle.
Any kaboom bot. Like, in the first video the two golden kaboom bots with a golden Rivendare fire a total of 8 bombs instead of 12. because everything has run out of health. Like they have been marked for death with those little jolly rogers at the bottom of their cards and just haven't been cleared away yet.
Ok, I see, that is kind of weird. It's like one player just has first priority or something.
Yeah, so minions can be 'dead' but still on the board while events resolve.
Yeah.
It seems to me that instead of a resolve_death function for each individual card, we should just have one function that checks both boards for dead minions from left-to-right and marks deaths all at once.
We need two separate attributes. One for being dead and another for being in play.
I think just checking health <= 0 works for being dead.
What if some other effect heals them?
Wait, I actually don't know.
Well we have seen that a buff effect can revive a minion with < 0 health. Macaw/Goldrinn, for example.
I think we can have a queue for deathrattles. So instead of resolving deathrattles immediately, we add the card to the queue, and resolve it once everyone else who has priority is resolved.
Jeremy it's more than just that. Read the comment chain.
Ok, I read through everything.
A few notes:
Good eye. I've noticed that there is always a Selfless Hero deathrattle animation even if there are no valid targets. This could potentially be useful as a 1-toughness minion to track ordering.
Here is the list of minions that can deal damage to multiple minions at once: Red Whelp, Kaboom Bot, Unstable Ghoul, Soul Juggler, Cave Hydra (via cleave, which may or may not work the same way), Herald of Flame, Foe Reaper (via cleave). I think it should be easy enough to devise experiments for most of these. I'll also note that in a couple of the videos I posted the players talked about positioning as they were setting up their boards.
This seemed to me like the best place to put this example; should we make a new issue for general simultaneous deathrattle ordering?
Weird, my bullet points should be 1, 5, and 6 here but github keeps updating them to 1,2,3.
https://www.youtube.com/watch?v=_vJQTJVzfws 7:10, at least attacker defender seems to be pure coin flip.
One thing I realize now is that even though the unstable ghoul from before may damage everything from left to right that's not the order that they actually die in.
Which video are you referring to?
I'm responding to Jeremy's fifth point which refers to the first exodia video.
Who triggers the deathrattle first? Is it always attacker? Always defender? or is it based on order of play?