aboutsummaryrefslogtreecommitdiff
path: root/go/game/cardImplementations_test.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-09-05 17:21:39 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2025-09-05 17:21:39 +0200
commit18dfde76df708631089d39f63394f3a8c1dc9df7 (patch)
treecdc4f061a09ecab7aca7567626a13373e28dd667 /go/game/cardImplementations_test.go
parentc9dc8b00a9ed5067ee9f311c14b199b2f9bd93db (diff)
downloadmuhqs-game-18dfde76df708631089d39f63394f3a8c1dc9df7.tar.gz
muhqs-game-18dfde76df708631089d39f63394f3a8c1dc9df7.zip
implement discard event and reformer
Diffstat (limited to 'go/game/cardImplementations_test.go')
-rw-r--r--go/game/cardImplementations_test.go48
1 files changed, 48 insertions, 0 deletions
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")
+ }
+}