aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
Diffstat (limited to 'go')
-rw-r--r--go/game/attack.go4
-rw-r--r--go/game/attack_test.go2
-rw-r--r--go/game/card.go6
-rw-r--r--go/game/costs.go4
-rw-r--r--go/game/equipment.go2
-rw-r--r--go/game/map.go10
-rw-r--r--go/game/movement.go4
-rw-r--r--go/game/unit.go2
-rw-r--r--go/go.mod6
-rw-r--r--go/go.sum12
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=