Hearthstone Game Mechanic Updates in the October 2017 Update – Hearthside Chat with Josh Durica

Blizzard has released a new Hearthside Chat on YouTube that illustrates two new updates to card mechanics in the next patch!

Here’s a more in-depth explanation of the upcoming changes:

Hearthstone has a lot going on under the hood. The cause-and-effect relationships when cards are played are relatively straightforward and easy to predict, but because of the way certain events are timed, some very surprising things can happen in rare circumstances. We want cards to work the way that you guess they might—in other words, we want the game to work intuitively.

In the upcoming patch, we’re making some changes in pursuit of that goal. We want Hearthstone to continue to be strategically deep: a game of careful choices, calculated risks, and exciting events. So we want to be extra clear that this update isn’t a change in depth; instead it’s one step in an ongoing effort improve Hearthstone’s mechanics.

Hearthstone’s core gameplay won’t change, but what will change are some rare edge-cases.

Please be aware: what follows is a detailed look at Hearthstone’s mechanics by Hearthstone Gameplay Engineer Josh Durica. If you want to delve into the nitty-gritty details regarding how this change will work, read on.

First, A Glossary
Event
Events are interactions that occur throughout gameplay that can cause triggers to activate when they happen.

Example Events:

  • Whenever a Card is Played
  • After a Card is Played
  • Deathrattle (When this minion dies)
  • Whenever a Minion Takes Damage
  • At the End of Your Turn

Trigger
trigger has two parts: an event (usually starts with “Whenever”, “After”, or “At”), and an effect. Sometimes triggers can also have a condition (usually noted with “if” or “while”, but sometimes noted by qualifiers like “your”).

Example triggers:

  • Whenever you cast a spell, gain +1 Attack.
  • After you cast a spell, deal 1 damage to ALL minions.
  • At the end of your turn, give another random friendly minion +1 Health.
  • If you control a Secret at the end of your turn, gain +2/+2.

Zone
In Hearthstone, there are three zones where triggers can happen, and they happen in order: First, any triggers in the Battlefield, then those that occur in a player’s Hand, and finally those that belong to cards in a player’s Deck.

Sequence
Whenever an action is taken, Hearthstone executes a sequence of steps to resolve what happens.

Here’s a simplified example sequence:

      • ACTION: A card is played (this begins the sequence)
      • EVENT: Whenever A Card is Played

    o Whenever A Card is Played triggers resolve

      • Card ability activates
      • EVENT: After a Card is Played event occurs

    o After a Card is Played triggers resolve

Here’s what that sequence would look like using actual cards, if you had a Questing Adventurer and a Flamewaker on the board, and then played Frostbolt:

      • ACTION: Frostbolt is played (this begins the sequence)
      • EVENT: Whenever a Card is Played triggers resolve

    o Questing Adventurer gains +1/+1

    • Frostbolt’s text resolves: Deal 3 damage and freeze
    • EVENT: After a Card is Played triggers resolve

o Flamewaker shoots two missiles

This is a simple example, but a sequence can incorporate many events and triggers.

Keep in mind that dealing damage, destroying a minion, and other things can interrupt sequences with new sequences, like in this more detailed example:

      • ACTION: Frostbolt is played (this begins the sequence)
      • EVENT: Whenever a Card is Played triggers resolve

    o Questing Adventurer gains +1/+1

      • Frostbolt’s text resolves: Deal 3 damage and freeze

    o NEW SEQUENCE: Damage dealt

              • o EVENT: Whenever a Minion Takes Damage triggers resolve
      • EVENT: After a Card is Played triggers resolve

    o Flamewaker shoots 1 missile

      • NEW SEQUENCE: Damage dealt
      • EVENT: Whenever a Card Takes Damage triggers resolve

    o Flamewaker shoots another missile

  • NEW SEQUENCE: Damage dealt
  • EVENT: Whenever a Card Takes Damage triggers resolve

In Pursuit of the Goal
If you watched the video in our recent blog post, then you saw two different examples of cards triggering in counter-intuitive ways because they weren’t present when the sequence that activated them took place. That sets the stage for the primary goal we wanted to accomplish with these changes:

If you want to trigger off something, you need to be present and valid when that something first happens.

A more technical way to say this is: In order for a trigger to activate from a sequence, it needs to be present and valid at the time the sequence began.

This means any card featuring a trigger that appears in the middle of a sequencecan’t activate during that sequenceSo, when you play a card (or when a card is destroyed, or an attack occurs, etc.) you only need to consider what is currently on the board instead of guessing what the board state might be in the middle of the sequence. The Mindgames + Wild Pyromancer interaction showcased in the video is an example of an interaction improved by this change.

The valid qualifier is more subtle, but equally important. Before any trigger can activate, it needs to be validated. Each trigger has its own specific validation step, which allows the trigger to filter when it should and shouldn’t activate. For example, the Whenever a Card is Played event occurs when any card of any type (Minion, Spell, Weapon, etc.) is played. However, we want a card like Flamewaker to only triggerwhen a friendly spell is cast, so the Flamewaker’s validation step checks the card type and controller of the card played. In other words, Flamewaker’s trigger is only valid if the card played was a spell cast by Flamewaker’s controller.

Before our changes, we would validate triggers whenever their related eventoccurred, even if that was in the middle of the sequence. After the mechanics update, all triggers are validated when the sequence begins, and then they are only allowed to activate if they were valid from the start.

For further insight, let’s look at a bug that will be addressed by the update:

Currently, if you have a Djinni of Zephyrs on the board and cast Entomb on an enemy minion, your Djinni of Zephyrs will trigger, sending itself back to your deck. Not great for you or the Djinni! Djinni of Zephyrs triggers off the After a Card is Played event, and his validation step should only pass if the card played was a spell cast on a different friendly minion. Entomb is a spell, but it was cast on an enemy minion, so why does Djinni trigger?

Remember: the After a Card is Played event occurs after the ability on the played card resolves. In this case, that card is Entomb, and its ability moves the enemy minion into your deck. When the enemy minion enters your deck, it becomes a friendly minion. So, by the time the After a Card is Played event occurs, Djinni’s trigger is valid, because the minion is now friendly.

After the mechanics update, Djinni’s trigger is validated at the beginning of the sequence when the enemy minion is still on the battlefield, and because the triggerisn’t valid at that point (since Entomb counts as being cast on an enemy minion), it’s prevented from triggering when the After a Card is Played event occurs.

There is one final change we should mention, which is a tweak to when we validate triggers across different zones. Currently, the order in which triggers are validatedand activated looks like this:

1) Validate Player 1 Battlefield triggers and then activate those that are valid.
2) Validate Player 1 Hand triggers and then activate those that are valid.
3) Validate Player 1 Deck triggers and then activate those that are valid.
4) Validate Player 2 Battlefield triggers and then activate those that are valid.
5) Validate Player 2 Hand triggers and then activate those that are valid.
6) Validate Player 2 Deck triggers and then activate those that are valid.

That approach meant new triggers could appear in the middle of a sequence and still be activated, and a trigger’s validation could even be affected by previous triggers’activations. The Bolvar Fordragon/Spirit Echo interaction detailed in the video was an example of a weird interaction caused by this.

After the update, the order now looks like this:

1) Validate all Battlefield triggers
2) Validate all Hand triggers
3) Validate all Deck triggers
4) Activate Player 1 valid Battlefield triggers
5) Activate Player 1 valid Hand triggers
6) Activate Player 1 valid Deck triggers
7) Activate Player 2 valid Battlefield triggers
8) Activate Player 2 valid Hand triggers
9) Activate Player 2 valid Deck triggers

This means all triggers are validated before any trigger is allowed to activate. Since all triggers are validated using the same game state, then triggers that appear in the middle aren’t allowed to fire. It’s important to note that the order in which triggersare activated is unchanged.

Here are some more examples of sequences and their results before and after the mechanics update:

Card Played
Example Interaction:
Player 1 has a Mad Scientist on the board, and a Mirror Entity in their deck.
Player 2 plays Stampeding Kodo.
Before Update
1) Stampeding Kodo kills Mad Scientist.
2) Mad Scientist pulls Mirror Entity into play.
3) Mirror Entity triggers, copying Stampeding Kodo.
After Update
1) Stampeding Kodo kills Mad Scientist.
2) Mad Scientist pulls Mirror Entity into play.
3) Mirror Entity does NOT trigger, because it did not exist when Stampeding Kodo was played.

Minion Destroyed
Example Interaction:
Player 1 has a Piloted Sky Golem and a Wisp on the board (played in that order).
Player 1 plays Deathwing.
The Piloted Sky Golem spawn a Cult Master from its Deathrattle.
Before Update:
The Cult Master’s power triggers off of the Wisp’s death, and Player 1 draws a card.
After Update:
The Cult Master does not trigger off the Wisp’s death, because it wasn’t present to see the Wisp destroyed.

Summon Minion
Example Interaction:
Player 1 has Starving Buzzard and Rotface on the board.
Player 1 also has a Flame Leviathan on top of their deck.
Player 1 plays Savannah Highmane.
Starving Buzzard triggers off of Savannah Highmane, causing Player 1 to draw Flame Leviathan.
Flame Leviathan triggers, dealing 2 damage to all characters.
Rotface triggers off the damage and summons Spiritsinger Umbra.
Before Update:
Spirit Singer Umbra triggers off the Savannah Highmane and summons two hyenas.
After Update:
Spiritsinger Umbra does not trigger off the Savannah Highmane, because she was not present when Savannah Highmane was played.

Thanks for Reading!
Of course, our work to make Hearthstone better won’t stop here!
Like the majority of odd interactions, each of these situations represents an edge case. While this update will address every situation we illustrated (among many others), there are still bound to be more. Keep in mind these are substantial changes to the core systems that underlie Hearthstone! We need to make them incrementally, and with the utmost care, but you can rest assured that we’ll continue to make improvements over time.

Source

Leave a Reply

7 Comments

  1. Squirrel
    October 17, 2017 at 6:06 AM

    Please fix Prince T and mistcallers interaction with cthune.

    Currently twin emperor and similar cards will not trigger off a cthune that is buffed by those cards; until the card is drawn!??! That is not a design choice. It is just a bug.

    Blizzard isn’t apple. They can’t just pass their bugs off as a features.

    Ty Ty

    #cthunelife,#keepcthunealive,#spaghettimonster4life,#pewpewsmatter

  2. VirginMinion
    October 15, 2017 at 6:56 PM

    They gotta fix the problem with defile as well, for example when a beast dies and scavenging hyena is on board the hyena should get +2/+1 after defile is casted again.

    • CD001
      October 16, 2017 at 4:36 AM

      To my mind the way that should work is a new stack with each activation of Defile… so with a board like Alleycat, Tabbycat and Scavenging Hyaena:

      > Defile kills the cats and deals 1 damage to the Hyaena
      > Scavenging Hyaena gets +4/+2 (6/3)
      > Defile triggers again (new stack) dealing 1 damage to the Hyaena leaving it at 6/2

      This video from August looks like it’s bugged as all hell though (don’t know whether it’s been fixed):

      https://plays.tv/video/5997a1cc72b90f7bfc/defile-scavenging-hyena-bug-?section=feed

      With a Jewelled Macaw (2/1), Scavenging Hyaena (3/2) and Leokk (2/4 giving +1 attack to the others):

      > Defile kills the Macaw
      > Defile triggers again and kills the Hyaena
      > Hyaena gets +2/+1 from the Macaw and myseriously resurrects
      > Defile triggers again (as it killed the Hyaena) and kills the Hyaena again
      > Hyaena doesn’t get +2/+1 as it was the creature that died
      > Defile triggers again from the second Hyaena kill and kills Leokk

      If that was a new stack each time it should have left the Hyaena at 5/1 and Leokk at 2/3.

  3. ImE
    October 13, 2017 at 8:16 AM

    so some bug fixes = game mechanic updates? Sounds legit…

  4. Emi
    October 12, 2017 at 7:00 PM

    Thank you Blizzard!

    • Joopiter
      October 12, 2017 at 11:23 PM

      Wow, obvious and expected changes after ONLY four years 😀