From 2c2a2d84a92cda814e0e56d9408e6cbfd68c4fbb Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sat, 18 Oct 2025 12:59:08 +0200 Subject: support phase change triggers and implement relic --- go/game/cardImplementations_test.go | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'go/game/cardImplementations_test.go') diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index 9b356c5b..3a6ea9e2 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -515,3 +515,50 @@ func TestNo(t *testing.T) { t.Fatal("Approach not countered") } } + +func TestRelic(t *testing.T) { + s, _, p, o := newMockState() + p.Resource = 0 + o.Resource = 0 + s.addNewArtifact(NewCard("equipments/relic"), Position{0, 0}, p) + + s.changePhase(upkeepPhase) + if !s.stack.IsEmpty() { + t.Fatal("Unexpected relic trigger") + } + + s.addNewUnit(NewCard("base/archer"), Position{0, 1}, p) + + s.changePhase(upkeepPhase) + if s.stack.IsEmpty() { + t.Fatal("Relic not triggered") + } + s.stack.pop() + if p.Resource != 1 { + t.Fatal("player did not gain 1 resource") + } + + s.addNewUnit(NewCard("base/archer"), Position{1, 1}, o) + s.changePhase(upkeepPhase) + if s.stack.IsEmpty() { + t.Fatal("Relic not triggered") + } + s.stack.pop() + if p.Resource != 2 && o.Resource != 1 { + t.Fatal("player and opponent did not gain 1 resource each") + } + + s.addNewUnit(NewCard("base/archer"), Position{1, 0}, o) + s.changePhase(upkeepPhase) + if s.stack.IsEmpty() { + t.Fatal("Relic not triggered") + } + s.stack.pop() + if p.Resource != 2 { + t.Fatal("player resource changed") + } + + if o.Resource != 2 { + t.Fatal("opponent did not gain 1 resource") + } +} -- cgit v1.2.3