Trigger multipliers as aura data on cards, snapshotted by an Aura Update (Other) after each Death Creation Step and on summon, and applied by one generic routine (activations) when each queued trigger starts. Baron Rivendare is content only (stacking "max"); Brann Bronzebeard is the content-only Expansion Drop. Adds play (now required) and Battlecry. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Module 4 Expansion Drop: Brann Bronzebeard
The lesson's Expansion Drop beat explains the task. This file holds the scenario, the test locations and the check.
- Card: Brann Bronzebeard, 3-mana 2/4, "Your Battlecries trigger twice." (Brann Bronzebeard, hearthstone.wiki.gg).
- Tests:
tests/rust/test_04x.rsandtests/ts/test_04x.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 4 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.
The reference gives Brann the same stacking policy as Baron Rivendare ("max"). The course's sources don't state how two Branns combine, and this test uses one Brann, so the choice isn't checked.
Scenario
test_04x_brann_doubles_battlecry
- Setup:
newGamewith a deck of 5Test Fillerfor player 0. SummonBrann Bronzebeardfor player 0 (id B). AddNovice Engineer("Battlecry: Draw a card.") to player 0's hand (id E). CallclearLog(). - Action:
play(E). - Assertions:
hand(0)has 2 cards; call them C1 and C2, in hand order.- The log is exactly, in this order:
Summoned{id: E},Triggered{source: E, trigger: "battlecry"},Drew{player: 0, id: C1},Triggered{source: E, trigger: "battlecry"},Drew{player: 0, id: C2}. The Battlecry is queued once and activates twice back to back, exactly as a Deathrattle does under Baron Rivendare. board(0)is[B, E].