diff options
Diffstat (limited to 'go')
| -rw-r--r-- | go/game/cardImplementations.go | 6 | ||||
| -rw-r--r-- | go/game/cardImplementations_test.go | 7 |
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() { |
