aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go/game/cardImplementations.go6
-rw-r--r--go/game/cardImplementations_test.go7
2 files changed, 12 insertions, 1 deletions
diff --git a/go/game/cardImplementations.go b/go/game/cardImplementations.go
index fa7259a6..38ae9dcf 100644
--- a/go/game/cardImplementations.go
+++ b/go/game/cardImplementations.go
@@ -253,7 +253,11 @@ func (*relicImpl) onETB(s *LocalState, p Permanent) {
t := newUpkeepTrigger(
p,
func(*LocalState, Event) bool { return p.IsDestroyed() },
- func(*LocalState, Event) bool {
+ func(s *LocalState, _ Event) bool {
+ if s.ActivePlayer() != p.Controller() {
+ return false
+ }
+
controlled := make(map[*Player]int)
for _, t := range AdjacentTiles(p) {
if t.Permanent == nil {
diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go
index 3a6ea9e2..14d27f0f 100644
--- a/go/game/cardImplementations_test.go
+++ b/go/game/cardImplementations_test.go
@@ -538,6 +538,13 @@ func TestRelic(t *testing.T) {
t.Fatal("player did not gain 1 resource")
}
+ s.activePlayerId = o.Id
+ s.changePhase(upkeepPhase)
+ if !s.stack.IsEmpty() {
+ t.Fatal("Relic triggered in opponents upkeep")
+ }
+ s.activePlayerId = p.Id
+
s.addNewUnit(NewCard("base/archer"), Position{1, 1}, o)
s.changePhase(upkeepPhase)
if s.stack.IsEmpty() {