From 67faa0f3bf6fb047d19372c9b671a45887b99f6e Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 3 Sep 2025 12:37:52 +0200 Subject: implement the patrician --- go/game/cardImplementations_test.go | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'go/game/cardImplementations_test.go') diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index eb3ec567..4a353443 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -256,3 +256,43 @@ func TestBanner(t *testing.T) { t.Fatal("wormtongue not sped up by banner") } } + +func TestPatrician(t *testing.T) { + s, _, player, _ := newMockState() + p := s.addNewUnit(NewCard("exp1/patrician"), Position{1, 0}, player) + fas := p.FreeActions + if len(fas) != 5 { + t.Fatal("patrician does not have 5 free actions") + } + + player.Resource = 5 + s.declareAction(fas[0]) + if player.Resource != 3 { + t.Fatal("patrician move did not cost 2 resource") + } + s.stack.pop() + if p.Movement.Range != 2 { + t.Fatal("patrician movement is not increased") + } + + player.Resource = 5 + s.declareAction(fas[1]) + if player.Resource != 2 { + t.Fatal("patrician attack did not cost 3 resource") + } + s.stack.pop() + if p.Attack.DamageInRange(1) != 1 { + t.Fatal("patrician has no melee") + } + + player.Resource = 5 + s.declareAction(fas[2]) + if player.Resource != 0 { + t.Fatal("patrician armor did not cost 5 resource") + } + s.stack.pop() + x, err := p.XEffect("armor") + if err != nil || x != 1 { + t.Fatal("patrician has no armor") + } +} -- cgit v1.2.3