From 8425522026477c0a0f74127ff441dba3933c92c9 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 4 Sep 2025 15:26:03 +0200 Subject: replace yaml.v3 with goccy/go-yaml --- go/game/attack.go | 4 ++-- go/game/attack_test.go | 2 +- go/game/card.go | 6 +++--- go/game/costs.go | 4 ++-- go/game/equipment.go | 2 +- go/game/map.go | 10 ++++++---- go/game/movement.go | 4 ++-- go/game/unit.go | 2 +- go/go.mod | 6 ++---- go/go.sum | 12 ++---------- 10 files changed, 22 insertions(+), 30 deletions(-) diff --git a/go/game/attack.go b/go/game/attack.go index 9fa71087..0e5c66ab 100644 --- a/go/game/attack.go +++ b/go/game/attack.go @@ -98,8 +98,8 @@ func (a Attack) String() string { } func parseAttack(attack any) Attack { - if damage, ok := attack.(int); ok { - return Attack{attacks: []int{damage}} + if damage, ok := attack.(uint64); ok { + return Attack{attacks: []int{int(damage)}} } attackStr := attack.(string) diff --git a/go/game/attack_test.go b/go/game/attack_test.go index 52ba41a0..0a6113c6 100644 --- a/go/game/attack_test.go +++ b/go/game/attack_test.go @@ -5,7 +5,7 @@ import ( ) func TestParseIntAttack(t *testing.T) { - a := parseAttack(1) + a := parseAttack(uint64(1)) if a.MaxRange() != 1 { t.Fatal("unexpected max range (1):", a.MaxRange()) } diff --git a/go/game/card.go b/go/game/card.go index fe7f6ca8..bdacd51b 100644 --- a/go/game/card.go +++ b/go/game/card.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "gopkg.in/yaml.v3" + "github.com/goccy/go-yaml" "muhq.space/muhqs-game/go/assets" "muhq.space/muhqs-game/go/log" ) @@ -295,8 +295,8 @@ func (card *Card) getCanonicalValues(key string) []string { } case string: values = []string{typedValues} - case int: - values = []string{strconv.Itoa(typedValues)} + case uint64: + values = []string{strconv.Itoa(int(typedValues))} case []string: values = typedValues } diff --git a/go/game/costs.go b/go/game/costs.go index 38064e8c..daa2c213 100644 --- a/go/game/costs.go +++ b/go/game/costs.go @@ -54,8 +54,8 @@ func (c *ResourceCosts) Costs(s *LocalState, choosenVariadicCosts ...int) int { func ParseCardResourceCosts(_costs any, effects []string) *ResourceCosts { switch c := _costs.(type) { - case int: - return &ResourceCosts{fixed: c} + case uint64: + return &ResourceCosts{fixed: int(c)} case string: costs := ParseResourceCosts(c) if !costs.IsVariadic() { diff --git a/go/game/equipment.go b/go/game/equipment.go index ce21750f..4dcfad41 100644 --- a/go/game/equipment.go +++ b/go/game/equipment.go @@ -17,7 +17,7 @@ func newEquipmentFromPath(cardPath string, containing any, owner *Player) *Equip func newEquipment(card *Card, containing any, owner *Player) *Equipment { e := &Equipment{ *NewArtifact(card, nil, owner), - card.Values["durability"].(int), + int(card.Values["durability"].(uint64)), } if containing != nil { diff --git a/go/game/map.go b/go/game/map.go index ea733833..6002eb96 100644 --- a/go/game/map.go +++ b/go/game/map.go @@ -11,7 +11,7 @@ import ( "strconv" "strings" - "gopkg.in/yaml.v3" + "github.com/goccy/go-yaml" "muhq.space/muhqs-game/go/assets" "muhq.space/muhqs-game/go/log" @@ -74,9 +74,11 @@ func ParseMap(data []byte) (*Map, error) { m.StartDeckList = mapYml.StartDeckList } - rows := strings.Split(mapYml.Map, "\n") - for y := range len(rows) { - row := rows[y] + // Trim trailing newlines + mapDef := strings.TrimRight(mapYml.Map, "\n") + + rows := strings.Split(mapDef, "\n") + for y, row := range rows { m.Tiles = append(m.Tiles, []Tile{}) for x := range len(rows[y]) { pos := Position{x, y} diff --git a/go/game/movement.go b/go/game/movement.go index c7a5d9ff..fc2b4961 100644 --- a/go/game/movement.go +++ b/go/game/movement.go @@ -19,8 +19,8 @@ func INVALID_MOVEMENT() Movement { func parseMovement(desc any) Movement { var movementStr string switch typedDesc := desc.(type) { - case int: - return Movement{typedDesc, false} + case uint64: + return Movement{int(typedDesc), false} case string: movementStr = typedDesc case map[string]any: diff --git a/go/game/unit.go b/go/game/unit.go index b77c1974..2ab9fcf8 100644 --- a/go/game/unit.go +++ b/go/game/unit.go @@ -50,7 +50,7 @@ func NewUnit(card *Card, tile *Tile, owner *Player) *Unit { u := &Unit{ permanentBase: newPermanentBase(card, tile, owner), - Health: card.Values["health"].(int), + Health: int(card.Values["health"].(uint64)), Movement: movement, Attack: attack, upkeep: upkeep, diff --git a/go/go.mod b/go/go.mod index bf061f26..91a8c7d7 100644 --- a/go/go.mod +++ b/go/go.mod @@ -6,10 +6,9 @@ toolchain go1.24.6 require ( github.com/RyanCarrier/dijkstra v1.4.0 + github.com/goccy/go-yaml v1.18.0 github.com/hajimehoshi/ebiten/v2 v2.8.8 - golang.org/x/image v0.30.0 golang.org/x/net v0.43.0 - gopkg.in/yaml.v3 v3.0.1 ) require ( @@ -18,9 +17,8 @@ require ( github.com/ebitengine/purego v0.8.4 // indirect github.com/go-text/typesetting v0.3.0 // indirect github.com/jezek/xgb v1.1.1 // indirect - github.com/kr/pretty v0.1.0 // indirect + golang.org/x/image v0.30.0 // indirect golang.org/x/sync v0.16.0 // indirect golang.org/x/sys v0.35.0 // indirect golang.org/x/text v0.28.0 // indirect - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect ) diff --git a/go/go.sum b/go/go.sum index 816466ef..2d80e451 100644 --- a/go/go.sum +++ b/go/go.sum @@ -10,17 +10,14 @@ github.com/go-text/typesetting v0.3.0 h1:OWCgYpp8njoxSRpwrdd1bQOxdjOXDj9Rqart9ML github.com/go-text/typesetting v0.3.0/go.mod h1:qjZLkhRgOEYMhU9eHBr3AR4sfnGJvOXNLt8yRAySFuY= github.com/go-text/typesetting-utils v0.0.0-20241103174707-87a29e9e6066 h1:qCuYC+94v2xrb1PoS4NIDe7DGYtLnU2wWiQe9a1B1c0= github.com/go-text/typesetting-utils v0.0.0-20241103174707-87a29e9e6066/go.mod h1:DDxDdQEnB70R8owOx3LVpEFvpMK9eeH1o2r0yZhFI9o= +github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= +github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/hajimehoshi/bitmapfont/v3 v3.2.0 h1:0DISQM/rseKIJhdF29AkhvdzIULqNIIlXAGWit4ez1Q= github.com/hajimehoshi/bitmapfont/v3 v3.2.0/go.mod h1:8gLqGatKVu0pwcNCJguW3Igg9WQqVXF0zg/RvrGQWyg= github.com/hajimehoshi/ebiten/v2 v2.8.8 h1:xyMxOAn52T1tQ+j3vdieZ7auDBOXmvjUprSrxaIbsi8= github.com/hajimehoshi/ebiten/v2 v2.8.8/go.mod h1:durJ05+OYnio9b8q0sEtOgaNeBEQG7Yr7lRviAciYbs= github.com/jezek/xgb v1.1.1 h1:bE/r8ZZtSv7l9gk6nU0mYx51aXrvnyb44892TwSaqS4= github.com/jezek/xgb v1.1.1/go.mod h1:nrhwO0FX/enq75I7Y7G8iN1ubpSGZEiA3v9e9GyRFlk= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= golang.org/x/image v0.30.0 h1:jD5RhkmVAnjqaCUXfbGBrn3lpxbknfN9w2UhHHU+5B4= @@ -33,8 +30,3 @@ golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -- cgit v1.2.3