HearthSim / hs-bugs

Unofficial Hearthstone issue tracker
https://hearthsim.info
65 stars 3 forks source link

Position of minions created by Deathrattles is unintuitive #305

Open Patashu opened 8 years ago

Patashu commented 8 years ago

When only one minion dies, the position of its summoned minions is intuitive. However, as soon as multiple minions die at once, the results may defy expectations, like a [[Nerubian]] appearing between two [[Spectral Spider]]s. Here are the rules ''Hearthstone'' uses:

1) During the Death Creation Step, all minions that are mortally wounded or 'pending destroy' have their Death Events created in play order. 2) When a Death Event is created, the minion is removed from play and moved to the Graveyard, and it remembers its board position. (Note that that the n-th played minion ignores the first to (n-1)-th played minions when counting it's new position, because they already left play.) 3) During the subsequent Death Phase, their Death Events are resolved in play order. Any minions summoned by Deathrattles triggering on the Death Event are summoned in the board position the Death Event remembered from when it was created. (Note that previous triggers changing the board state is not taken into account - the remembered board position is used without modification.)

Examples of these rules in action can be observed by studying the video Hearthstone - Dreadsteed vs Knife Juggler.

''Example: 3:05''

1) The 2nd and 7th Dreadsteed die. The 7th was just spawned, so the 2nd was played first. 2) The 2nd dies and calculates its Death Event position: 2. 3) The previously 7th minion dies, but as the 2nd Dreadsteed already died, it calculates the new board position, ignoring the 2nd one which already died, as 6. 4) Now they spawn in the same order: 2nd first, then 6th.

Another example is in this video Hearthstone Deathrattle Chevron Puzzle Solution which is the solution to this puzzle Flamestrike Deathrattle Chevron.

1) The Savannah Highmane is played first, followed by the Haunted Creeper and finally the Harvest Golem. 2) Two additional minions are played afterwards to control the board position during death events of the Savannah Highmane, Haunted Creeper and Harvest Golem. 3) A Flamestrike is played, killing all minions. 4) The Savannah Highmane dies at position 0 (0-indexed) and is removed. 5) The Haunted Creeper dies at position 1. This is because after the Savannah Highmane has been removed, the left-most Elven Archer occupies position 0 and the Haunted Creeper occupies position 1. The Haunted Creeper is then removed. 6) The Harvest Golem dies at position 2 as positions 0 and 1 are occupied by Elven Archers. 7) The two Elven Archers die and are removed. 8) The Savannah Highmane's deathrattle triggers first as it was the earliest played minion. The two Hyenas spawn at position 0. 9) The Haunted Creeper's deathrattle triggers next and the two Spectral Spiders spawn at position 1. This happens to be between the two Hyenas. Resulting in the configuration Hyena, Spectral Spider, Spectral Spider, Hyena. 10) Finally, the Harvest Golem's deathrattle triggers and a Damaged Golem spawns at position 2, which is in between the two Spectral Spiders.

Another example:

PattuX commented 8 years ago

I have been watching the Dreadsteed clip for quite a while and think i found the pattern. I believe the ordering here is: All enemy Knife Juggler triggers go off. All mortally wounded minions disapper from board. First played minion dies and calculates DR board position. Second played minion dies and calculates DR board position. etc. Note that that the n-th played minion ignores the first to (n-1)-th played minions when counting it's new position. First played minion resolves DR. Second played minion resolves DR. etc. Now the already new spawned DRs go into the calculation tho. If position > board size it always spawns right.

Example: 3:05 The 2nd and 7th Dreadsteed die. The 7th was just spawned, so the 2nd was played first. The 2nd dies and calculates its DR position: 2. The previously 7th minion dies, but as the 2nd DS already died, it calculates the new board position, ignoring the 2nd one which already died, as 6. Now they spawn in the same order: 2nd first, then 6th.

For the forum report: Unfortunately he doesn't give the play order, but from my theory it has to be Creeper - Raptor - Creeper (obviously last, Summonning Sickness) The first Creeper dies and spawns at Positions 3 and 3. Raptor at 2, Creeper#2 at 1 and 1. First Creeper spawns at 1 and 2 as Board is empty. Raptor spawns at 2, so in between. Sencond Creeper summons at 1 twice, creating two Spiders at 1 and 2 and pushing everything else to the right. For the second example it's easy: Raptor is at Position 1, spawns at Position 1.

Feel free to disprove me. Keep in mind to remember play order for this.

culinko commented 8 years ago

I have seen Nerubian spawning between two Spectral Spiders on the stream a couple moments ago.

PattuX commented 8 years ago

5.0 video

PattuX commented 8 years ago

This holds true for Redemption

Patashu commented 8 years ago

Confirmed in 6.0.

https://www.youtube.com/watch?v=bRQh_gm7Oi4&t=2460

In this video, the Dreadsteed dies on the left of the red portal but spawns on the right of it.

Why?

Because when it dies, it sees and remembers a Zone_Position of 2. When it respawns, Zone_Position 2 is left of the red portal.

PattuX commented 7 years ago

https://www.youtube.com/watch?v=0mEw2_w4wOg?t=10m2s

troggnostupidhs commented 7 years ago

Does this count?

I played Void Terror between two Sludge Belchers

hearthstone screenshot 08-13-17 13 26 01

And both Slimes summoned on the left

hearthstone screenshot 08-13-17 13 26 04

Patashu commented 7 years ago

Yeah that counts feel free to update the milestone

Kybxd commented 6 years ago

More accurately, the rule seems to be: When a minion leaves board, it remembers its Position. And its deathrattle uses the Position it remembers last time.

Where do feign-death effects summon minions: https://youtu.be/eM2z_Peepgo In this video we can see:

Edit: Vanish is similar to Death Creation Step. The n-th played minion ignores the first to (n-1)-th played minions when counting it's new position, because they already left play. (This might also apply to Recycle, Entomb and Phychic Scream.)

troggnostupidhs commented 6 years ago

Good info, the video does a good job of showing the behavior.

troggnostupidhs commented 5 years ago

https://playhearthstone.com/en-us/blog/22546493

Minion summoning Deathrattles triggered by non-death effects will now more consistently place those minions to their immediate right.

troggnostupidhs commented 5 years ago

anyone want to test?

Jetz72 commented 4 years ago

https://playhearthstone.com/en-us/blog/23239986/hearthstone-update-december-5-descent-of-dragons

Fixed an issue where minions summoned from Deathrattle effects would sometimes not appear in the correct position.

Surely this time it's really potentially fixed!