diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-08-06 09:33:50 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-06 09:33:50 +0200 |
| commit | afbdb034287adf961d20761b941a94946760337b (patch) | |
| tree | 5eaa0b234618d1e18c43f774236eb2e55c232e85 | |
| parent | 3b0c89358104d9d12a5c7a8ff516b811c7b03057 (diff) | |
| download | muhqs-game-afbdb034287adf961d20761b941a94946760337b.tar.gz muhqs-game-afbdb034287adf961d20761b941a94946760337b.zip | |
fix parsing of solid artifacts
| -rw-r--r-- | go/game/artifact.go | 17 | ||||
| -rw-r--r-- | go/game/card_test.go | 9 |
2 files changed, 11 insertions, 15 deletions
diff --git a/go/game/artifact.go b/go/game/artifact.go index 8c9b74e0..35c05893 100644 --- a/go/game/artifact.go +++ b/go/game/artifact.go @@ -1,10 +1,5 @@ package game -import ( - "log" - "strconv" - "strings" -) type Artifact struct { permanentBase @@ -27,16 +22,8 @@ func NewArtifact(card *Card, tile *Tile, owner *Player) *Artifact { }, } - effects := card.getEffects() - for _, e := range effects { - if strings.HasPrefix(e, "Solid") { - tokens := strings.Split(e, " ") - var err error - a.Solid, err = strconv.Atoi(tokens[1]) - if err != nil { - log.Panicf("Invalid Solid definition %s\n", e) - } - } + if s, err := card.getXEffect("solid"); err == nil { + a.Solid = s.x } return a diff --git a/go/game/card_test.go b/go/game/card_test.go index 3e9c8f6f..c3c05197 100644 --- a/go/game/card_test.go +++ b/go/game/card_test.go @@ -26,6 +26,7 @@ func TestCardReporters(t *testing.T) { recruit := NewCard("base/recruit") ritual := NewCard("magic/ritual!") sword := NewCard("base/sword") + palisade := NewCard("base/palisade") if !archer.IsBuyable() || !ritual.IsBuyable() || recruit.IsBuyable() || !sword.IsBuyable() { t.Fatal("unexpected buyability result") @@ -50,4 +51,12 @@ func TestCardReporters(t *testing.T) { if archer.hasPlacementConstrain("swimmming") { t.Fatal("archer is not swimming") } + + x, err := palisade.getXEffect("solid") + if err != nil { + t.Fatal("xEffect error returned") + } + if x.x != 6 || !x.set { + t.Fatal("invalid palisade solid effect") + } } |
