From 18dfde76df708631089d39f63394f3a8c1dc9df7 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 5 Sep 2025 17:21:39 +0200 Subject: implement discard event and reformer --- go/game/cardImplementations_test.go | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'go/game/cardImplementations_test.go') diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index b3ac5811..51aab02f 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -346,3 +346,51 @@ func TestPowerToThePeople(t *testing.T) { t.Fatal("Not gained 4 resource") } } + +func TestReformer(t *testing.T) { + s, _, player, _ := newMockState() + + r := s.addNewUnit(NewCard("exp1/reformer"), Position{0, 0}, player) + + c1 := NewCard("base/sword") + player.Hand.AddCard(c1) + + ra := r.FullActions[0] + s.ResolveAction(ra) + s.handleTriggers() + + if len(s.triggers) != 1 { + t.Fatal("No active reformer trigger") + } + + player.discardCard(c1) + if len(s.events) != 1 { + t.Fatal("No discard event fired") + } + + s.handleTriggers() + if s.stack.IsEmpty() { + t.Fatal("reformer draw not triggered") + } + + if len(s.triggers) != 1 { + t.Fatal("Reformer trigger removed") + } + + s.stack.pop() + if player.Hand.IsEmpty() { + t.Fatal("no card drawn") + } + + player.DiscardPile.MoveCard(c1, player.Hand) + da := NewFreeDiscardAction(player) + da.Target().AddSelection(player.Hand.Cards()[0]) + da.Target().AddSelection(player.Hand.Cards()[1]) + s.declareAction(da) + s.stack.pop() + s.handleTriggers() + s.stack.pop() + if player.Hand.Size() != 2 { + t.Fatal("not two cards drawn") + } +} -- cgit v1.2.3