{{ 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 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 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 }}