aboutsummaryrefslogtreecommitdiff
path: root/internal/game/cmd_option.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/cmd_option.go')
-rw-r--r--internal/game/cmd_option.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/internal/game/cmd_option.go b/internal/game/cmd_option.go
index 55a04de..d35ca12 100644
--- a/internal/game/cmd_option.go
+++ b/internal/game/cmd_option.go
@@ -62,6 +62,14 @@ func (g *Game) doOption(sess *net.Session, input string) {
}
value := strings.ToLower(parts[1])
+ if def.Name == "card_size" {
+ switch value {
+ case "1", "5", "7", "9":
+ default:
+ sess.WriteLine("Invalid value for card_size: use 1, 5, 7, or 9.")
+ return
+ }
+ }
parsed, ok := parseOptionValue(def, value)
if !ok {
valid := formatValidValues(def)
@@ -73,11 +81,17 @@ func (g *Game) doOption(sess *net.Session, input string) {
p.Options = make(map[string]any)
}
p.Options[def.Name] = parsed
+ if def.Name == "unicode" && parsed == false {
+ p.Options["card_size"] = 5
+ }
if sess.Account.Options == nil {
sess.Account.Options = make(map[string]any)
}
sess.Account.Options[def.Name] = parsed
+ if def.Name == "unicode" && parsed == false {
+ sess.Account.Options["card_size"] = 5
+ }
acc, err := g.AccountStore.LoadAccount(sess.Account.Name)
if err == nil {
@@ -85,6 +99,9 @@ func (g *Game) doOption(sess *net.Session, input string) {
acc.Options = make(map[string]any)
}
acc.Options[def.Name] = parsed
+ if def.Name == "unicode" && parsed == false {
+ acc.Options["card_size"] = 5
+ }
g.AccountStore.SaveAccount(acc)
}
sess.WriteLine(fmt.Sprintf("%s set to %s.", def.Name, formatOptionValue(p, def)))
@@ -119,6 +136,9 @@ func formatValidValues(def *player.OptionDef) string {
}
return "string"
case player.OptInt:
+ if def.Name == "card_size" {
+ return "1/5/7/9"
+ }
return "num"
}
return ""