Deferred death: damage and destroy only mark minions; the Death Creation Step removes them when the outermost Phase ends, and Death Phases resolve Deathrattles in order of play until no new deaths occur. Deathrattle summons use the board position the Death Event remembered. Harness adds destroy(target). Expansion Drop: Twisting Nether as content only. test_02_mortally_wounded_still_triggers no longer asserts the Acolyte is still on the board: from Module 3 on it leaves at the end of the Sequence, and verify-references runs Module 2's tests against the Module 3 reference. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Module 3 Expansion Drop: Twisting Nether
The lesson's Expansion Drop beat explains the task. This file holds the scenario, the test locations and the check.
- Card: Twisting Nether, 8-mana spell, "Destroy all minions and locations." (Twisting Nether, hearthstone.wiki.gg). The course has no locations, so in this course it destroys all minions.
- Tests:
tests/rust/test_03x.rsandtests/ts/test_03x.test.ts. Copy the one for your track into your workspace'stests/. - Reference answer:
solution/rust/src/content/mod.rsandsolution/ts/src/content/index.ts. Each is the Module 3 reference content with one card added. Nothing undersrc/engine/changes, and neither does the harness. - Check: commit your workspace before you start, then run
node tools/expansion-check.mjs <your-workspace> <that-commit>from the course repository. It fails if any file undersrc/engine/changed.
Scenario
test_03x_twisting_nether_destroys_all
- Setup:
newGamewith a deck of 5Test Fillerfor player 0. SummonLoot Hoarderfor player 0 (id H), thenHarvest Golemfor player 0 (id G), thenTest Fillerfor player 1 (id F). CallclearLog(). - Action: player 0 casts
Twisting Nether. - Assertions:
board(0)has one minion; call it D.hand(0)has one card; call it C.- The log is exactly, in this order:
SpellCast{card: "Twisting Nether"},Destroyed{id: H},Destroyed{id: G},Destroyed{id: F},DeathPhase{round: 1},Triggered{source: H, trigger: "deathrattle"},Drew{player: 0, id: C},Triggered{source: G, trigger: "deathrattle"},Summoned{id: D}. All three minions, on both sides, leave play together before any Deathrattle resolves. D is summoned after the Death Creation Step, so the destroy never touches it, and there is no second Death Phase. nameOf(D)is"Damaged Golem", andboard(1)is empty.zoneOfis graveyard for H, G and F.health(H)is 1,health(G)is 3 andhealth(F)is 1: nothing was damaged.