diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-10-18 13:13:04 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-10-18 13:13:04 +0200 |
| commit | 848dceaef3578c874633611b81eae465c9255f52 (patch) | |
| tree | b2ee1d8c348246ce4897c03ea374ca88669dab0f /go/game | |
| parent | ce0392cbe4d84b0fb78179686efa770c695cc5e9 (diff) | |
| download | muhqs-game-848dceaef3578c874633611b81eae465c9255f52.tar.gz muhqs-game-848dceaef3578c874633611b81eae465c9255f52.zip | |
fix relic triggering in all upkeeps
Diffstat (limited to 'go/game')
| -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() { |
