horsegen: generate races

This commit is contained in:
2026-01-30 23:25:44 -05:00
parent 9dd18ed972
commit 34edcf97a7
11 changed files with 4316 additions and 646 deletions

View File

@@ -11,7 +11,7 @@ import (
"unicode"
)
//go:embed character.kk.template skill.kk.template character.go.template skill.go.template
//go:embed character.kk.template skill.kk.template character.go.template skill.go.template race.kk.template race.go.template
var templates embed.FS
// LoadTemplates sets up templates to render game data to source code.
@@ -93,6 +93,21 @@ func ExecSkill(t *template.Template, region string, kk, g io.Writer, groups []Na
return err
}
func ExecRace(t *template.Template, region string, kk, g io.Writer, races []Race) error {
data := struct {
Region string
Races []Race
}{region, races}
var err error
if kk != nil {
err = errors.Join(err, t.ExecuteTemplate(kk, "koka-race", &data))
}
if g != nil {
err = errors.Join(err, t.ExecuteTemplate(g, "go-race", &data))
}
return err
}
const wordSeps = " ,!?/-+();#○☆♡'=♪∀゚∴"
var (
@@ -105,11 +120,12 @@ var (
"114th", "Hundred-Fourteenth",
"♡ 3D Nail Art", "Nail-Art",
".", "",
"\u2019", "",
"&", "-and-",
"'s", "s",
"ó", "o",
"∞", "Infinity",
"×", "x",
"\u00d7", "x",
"◎", "Lv2",
}
for _, c := range wordSeps {
@@ -128,10 +144,11 @@ var (
"1st", "First",
"♡ 3D Nail Art", "NailArt",
".", "",
"\u2019", "",
"&", "And",
"'s", "s",
"∞", "Infinity",
"×", "X",
"\u00d7", "X",
"◎", "Lv2",
}
for _, c := range wordSeps {