From d1d2243527ff2fb7fcbf67f96622e9bd5c279d89 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 15 Aug 2025 21:36:14 +0200 Subject: fix armor parsing and effective XEffect calculation --- go/game/permanent.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'go/game/permanent.go') diff --git a/go/game/permanent.go b/go/game/permanent.go index 54404b77..051e0f74 100644 --- a/go/game/permanent.go +++ b/go/game/permanent.go @@ -171,27 +171,31 @@ func (p *permanentBase) HasEffect(effect string) bool { } func (p *permanentBase) XEffect(effect string) (int, error) { + found := false x := 0 xE, err := p.card.getXEffect(effect) - if err != nil { - return 0, err + if err == nil { + x = xE.x + found = true } - x = xE.x if x < 0 { log.Panic("initial negativ x effect") } for _, e := range p.tmpEffects { + log.Println(effect, e) if !strings.Contains(e, effect) { continue } tmpX, err := parseXEffect(e) if err != nil { - return 0, err + continue } + found = true + // TODO: implement layers if tmpX.set { x = tmpX.x @@ -200,7 +204,11 @@ func (p *permanentBase) XEffect(effect string) (int, error) { } } - return x, err + if found { + return x, nil + } else { + return 0, err + } } func (p *permanentBase) Marks(mark PermanentMark) int { -- cgit v1.2.3