diff options
Diffstat (limited to 'internal/game/cmd_option.go')
| -rw-r--r-- | internal/game/cmd_option.go | 20 |
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 "" |
