diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-10-18 12:59:08 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-10-18 12:59:08 +0200 |
| commit | 2c2a2d84a92cda814e0e56d9408e6cbfd68c4fbb (patch) | |
| tree | 91f5f79807d1aee3993e965d72b6707dbbef77f2 /go/game/cardImplementations_test.go | |
| parent | 6a0013c62f24654529fd589a7de486bf1888a63b (diff) | |
| download | muhqs-game-2c2a2d84a92cda814e0e56d9408e6cbfd68c4fbb.tar.gz muhqs-game-2c2a2d84a92cda814e0e56d9408e6cbfd68c4fbb.zip | |
support phase change triggers and implement relic
Diffstat (limited to 'go/game/cardImplementations_test.go')
| -rw-r--r-- | go/game/cardImplementations_test.go | 47 |
1 files changed, 47 insertions, 0 deletions
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") + } +} |
