aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-08-06 09:33:50 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-06 09:33:50 +0200
commitafbdb034287adf961d20761b941a94946760337b (patch)
tree5eaa0b234618d1e18c43f774236eb2e55c232e85
parent3b0c89358104d9d12a5c7a8ff516b811c7b03057 (diff)
downloadmuhqs-game-afbdb034287adf961d20761b941a94946760337b.tar.gz
muhqs-game-afbdb034287adf961d20761b941a94946760337b.zip
fix parsing of solid artifacts
-rw-r--r--go/game/artifact.go17
-rw-r--r--go/game/card_test.go9
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")
+ }
}