diff --git a/fireplace/dsl/selector.py b/fireplace/dsl/selector.py index f03e6832d..2827ee9f5 100644 --- a/fireplace/dsl/selector.py +++ b/fireplace/dsl/selector.py @@ -328,7 +328,10 @@ def __init__(self, direction: Direction, child: SelectorLike): def eval(self, entities, source): result = [] for e in self.child.eval(entities, source): - if getattr(e, "zone", None) == Zone.PLAY: + if ( + getattr(e, "zone", None) == Zone.PLAY + and getattr(e, "type", None) == CardType.MINION + ): if self.direction == self.Direction.LEFT: result += e.left_minion else: diff --git a/tests/test_dalaran.py b/tests/test_dalaran.py index ddb77062d..0104b57a0 100644 --- a/tests/test_dalaran.py +++ b/tests/test_dalaran.py @@ -290,3 +290,20 @@ def test_duel(): game3.player2.summon(WISP) duel = game3.player1.give("DAL_731") assert not duel.is_playable() + + +def test_sweeping_strikes(): + game = prepare_game() + wisp = game.player1.give(WISP).play() + sweeping_strikes = game.player1.give("DAL_062") + sweeping_strikes.play(target=wisp) + game.skip_turn() + wisp.attack(game.player2.hero) + assert game.player2.hero.health == 29 + + game.end_turn() + dummies = [game.player2.give(TARGET_DUMMY).play() for _ in range(3)] + game.end_turn() + wisp.attack(dummies[1]) + for i in range(3): + assert dummies[i].health == 1