aboutsummaryrefslogtreecommitdiff
path: root/go/game/cardImplementations_test.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-10-18 12:59:08 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2025-10-18 12:59:08 +0200
commit2c2a2d84a92cda814e0e56d9408e6cbfd68c4fbb (patch)
tree91f5f79807d1aee3993e965d72b6707dbbef77f2 /go/game/cardImplementations_test.go
parent6a0013c62f24654529fd589a7de486bf1888a63b (diff)
downloadmuhqs-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.go47
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")
+ }
+}