46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
{{- define "koka-scenario" -}}
|
|
module horse/{{ $.Region }}/scenario
|
|
|
|
// Automatically generated with horsegen; DO NOT EDIT
|
|
|
|
import horse/game-id
|
|
|
|
// Enumeration of all scenarios for type-safe programming.
|
|
pub type scenario
|
|
{{- range $s := $.Scenarios }}
|
|
{{ kkenum $s.Name }}
|
|
{{- end }}
|
|
|
|
// Get the scenario ID for a scenario.
|
|
pub fun scenario-id(s: scenario): scenario-id
|
|
match s
|
|
{{- range $s := $.Scenarios }}
|
|
{{ kkenum $s.Name }} -> Scenario-id({{ $s.ID }})
|
|
{{- end }}
|
|
|
|
// List of all scenarios in ID order for easy iterating.
|
|
pub val all = [
|
|
{{- range $s := $.Scenarios }}
|
|
{{ kkenum $s.Name }},
|
|
{{- end }}
|
|
]
|
|
|
|
// Get the name for a scenario.
|
|
// If no scenario matches the ID, the result contains the numeric ID.
|
|
pub fun show(s: scenario-id): string
|
|
match s.game-id
|
|
{{- range $s := $.Scenarios }}
|
|
{{ $s.ID }} -> {{ printf "%q" $s.Name }}
|
|
{{- end }}
|
|
x -> "scenario " ++ x.show
|
|
|
|
// Get the full title for a scenario, e.g. "The Beginning: URA Finale".
|
|
// If no scenario matches the ID, the result contains the numeric ID.
|
|
pub fun title(s: scenario-id): string
|
|
match s.game-id
|
|
{{- range $s := $.Scenarios }}
|
|
{{ $s.ID }} -> {{ printf "%q" $s.Title }}
|
|
{{- end }}
|
|
x -> "scenario " ++ x.show
|
|
{{ end }}
|