222 lines
6.7 KiB
Plaintext
222 lines
6.7 KiB
Plaintext
{{- define "koka-uma" -}}
|
|
module horse/{{ $.Region }}/uma
|
|
|
|
// Automatically generated with horsegen; DO NOT EDIT
|
|
|
|
import std/core/delayed
|
|
import std/core/vector
|
|
import std/core-extras
|
|
import horse/game-id
|
|
import horse/movement
|
|
pub import horse/uma
|
|
|
|
extern create-id-table(): vector<int>
|
|
c inline "int32_t arr[] = { {{- range $uma := $.Umas }}{{ $uma.ID }},{{ end -}} };\nkk_vector_from_cint32array(arr, (kk_ssize_t){{ $.UmaCount }}, kk_context())"
|
|
js inline "[{{ range $uma := $.Umas }}{{ $uma.ID }},{{ end }}]"
|
|
// Vector of all Uma IDs in order for easy iterating.
|
|
pub val all = once(create-id-table)
|
|
|
|
// Get the name for an Uma.
|
|
// The name includes the costume variant, e.g. `[Special Dreamer] Special Week`.
|
|
// If no Uma matches the ID, the result contains the numeric ID.
|
|
pub fun show(uma: uma-id): string
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ printf "%q" $uma.Name }}
|
|
{{- end }}
|
|
x -> "uma " ++ x.show
|
|
|
|
// Get the costume variant for an Uma, e.g. `[Special Dreamer]`.
|
|
// If no Uma matches the ID, the result contains the numeric ID.
|
|
pub fun variant(uma: uma-id): string
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ printf "%q" $uma.Variant }}
|
|
{{- end }}
|
|
x -> "uma " ++ x.show
|
|
|
|
// Get the character ID for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun character-id(uma: uma-id): character-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Character-id({{ $uma.CharacterID }})
|
|
{{- end }}
|
|
_ -> Character-id(0)
|
|
|
|
// Get the sprint aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun sprint(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Sprint }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the mile aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun mile(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Mile }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the medium aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun medium(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Medium }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the long aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun long(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Long }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the front runner aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun front-runner(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Front }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the pace chaser aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun pace-chaser(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Pace }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the late surger aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun late-surger(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Late }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the end closer aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun end-closer(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.End }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the turf aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun turf(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Turf }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the dirt aptitude for an Uma.
|
|
// If no Uma matches the ID, the result is G.
|
|
pub fun dirt(uma: uma-id): aptitude-level
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> {{ template "koka-aptitude-level" $uma.Dirt }}
|
|
{{- end }}
|
|
_ -> G
|
|
|
|
// Get the unique skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun unique(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.UniqueID }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the first built-in skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill1(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.Skill1 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the second built-in skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill2(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.Skill2 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the third built-in skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill3(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.Skill3 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the potential level 2 skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill-pl2(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.SkillPL2 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the potential level 3 skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill-pl3(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.SkillPL3 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the potential level 4 skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill-pl4(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.SkillPL4 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
|
|
// Get the potential level 5 skill for an Uma.
|
|
// If no Uma matches the ID, the result is an invalid ID.
|
|
pub fun skill-pl5(uma: uma-id): skill-id
|
|
match uma.game-id
|
|
{{- range $uma := $.Umas }}
|
|
{{ $uma.ID }} -> Skill-id({{ $uma.SkillPL5 }})
|
|
{{- end }}
|
|
_ -> Skill-id(0)
|
|
{{ end }}
|
|
|
|
{{- define "koka-aptitude-level" -}}
|
|
{{- if eq . 1 -}} G
|
|
{{- else if eq . 2 -}} F
|
|
{{- else if eq . 3 -}} E
|
|
{{- else if eq . 4 -}} D
|
|
{{- else if eq . 5 -}} C
|
|
{{- else if eq . 6 -}} B
|
|
{{- else if eq . 7 -}} A
|
|
{{- else if eq . 8 -}} S
|
|
{{- else -}} ??? aptitude={{ . }}
|
|
{{- end -}}
|
|
{{- end -}}
|