49 lines
1.3 KiB
Plaintext
49 lines
1.3 KiB
Plaintext
{{ define "koka-skill" -}}
|
|
module horse/skill
|
|
|
|
// Automatically generated with the horsegen tool; DO NOT EDIT
|
|
|
|
// Skill groups.
|
|
// A skill group may contain white, circle, double-circle, gold, and purple skills
|
|
// for the same effect.
|
|
// Sparks that grant skills refer to a skill group.
|
|
pub type skill-group
|
|
{{- range $g := $.Groups }}
|
|
{{ kkenum $g.Name }}
|
|
{{- end }}
|
|
|
|
// Map a skill group to its ID.
|
|
pub fip fun skill-group/group-id(^sg: skill-group): int
|
|
match sg
|
|
{{- range $g := $.Groups }}
|
|
{{ kkenum $g.Name }} -> {{ $g.ID }}
|
|
{{- end }}
|
|
|
|
// Get the skill group for an ID.
|
|
pub fip(1) fun skill-group/from-id(^id: int): maybe<skill-group>
|
|
match id
|
|
{{- range $g := $.Groups }}
|
|
{{ $g.ID }} -> Just( {{- kkenum $g.Name -}} )
|
|
{{- end }}
|
|
_ -> Nothing
|
|
|
|
// Get names for skill groups.
|
|
// Skill group names are the name of the base skill in the group.
|
|
pub fun skill-group/show(sg: skill-group): string
|
|
match sg
|
|
{{- range $g := $.Groups }}
|
|
{{ kkenum $g.Name }} -> {{ printf "%q" $g.Name }}
|
|
{{- end }}
|
|
|
|
// Compare two skill groups by ID order.
|
|
pub fip fun skill-group/order2(a: skill-group, b: skill-group): order2<skill-group>
|
|
match cmp(a.group-id, b.group-id)
|
|
Lt -> Lt2(a, b)
|
|
Eq -> Eq2(a)
|
|
Gt -> Gt2(a, b)
|
|
|
|
pub fun skill-group/(==)(a: skill-group, b: skill-group): bool
|
|
a.group-id == b.group-id
|
|
|
|
{{- end }}
|