From 848dceaef3578c874633611b81eae465c9255f52 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sat, 18 Oct 2025 13:13:04 +0200 Subject: fix relic triggering in all upkeeps --- go/game/cardImplementations.go | 6 +++++- go/game/cardImplementations_test.go | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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() { -- cgit v1.2.3