fireplace
fireplace copied to clipboard
Fix Anub'ar Ambusher/Cult Master interaction
The interaction should be (video here and here):
- if Cult Master was played first: Ambusher dies, Cult Master draws a card, Cult Master is bounced
- if Ambusher was played first: Ambusher dies, Cult Master is bounced (no card draw)
Currently a card is always drawn.
Test case:
def test_anubar_ambusher_cult_master():
game = prepare_game()
game.player1.discard_hand()
cultmaster1 = game.player1.summon("EX1_595")
ambusher1 = game.player1.summon("FP1_026")
assert len(game.player1.hand) == 0
ambusher1.destroy()
assert len(game.player1.hand) == 2
assert cultmaster1 in game.player1.hand
game.end_turn(); game.end_turn()
game.player1.discard_hand()
ambusher2 = game.player1.summon("FP1_026")
cultmaster2 = game.player1.summon("EX1_595")
assert len(game.player1.hand) == 0
ambusher2.destroy()
assert len(game.player1.hand) == 1
assert cultmaster2 in game.player1.hand
This is, between other things, a problem with the death ordering in fireplace which is unimplemented. A played order stack needs to be implemented.
Shouldn't this simply be correct if we call observers in the order they were added (=order of play)? I'm not sure how Fireplace currently does it, and why it shouldn't consider order of play.
yes
fixed