horsegen: generate enumerations and lists
This commit is contained in:
@@ -8,6 +8,167 @@ import std/data/rb-map
|
||||
import horse/game-id
|
||||
pub import horse/character
|
||||
|
||||
// Enumeration of all characters for type-safe programming.
|
||||
pub type character
|
||||
Special-Week
|
||||
Silence-Suzuka
|
||||
Tokai-Teio
|
||||
Maruzensky
|
||||
Fuji-Kiseki
|
||||
Oguri-Cap
|
||||
Gold-Ship
|
||||
Vodka
|
||||
Daiwa-Scarlet
|
||||
Taiki-Shuttle
|
||||
Grass-Wonder
|
||||
Hishi-Amazon
|
||||
Mejiro-McQueen
|
||||
El-Condor-Pasa
|
||||
TM-Opera-O
|
||||
Narita-Brian
|
||||
Symboli-Rudolf
|
||||
Air-Groove
|
||||
Agnes-Digital
|
||||
Seiun-Sky
|
||||
Tamamo-Cross
|
||||
Fine-Motion
|
||||
Biwa-Hayahide
|
||||
Mayano-Top-Gun
|
||||
Manhattan-Cafe
|
||||
Mihono-Bourbon
|
||||
Mejiro-Ryan
|
||||
Hishi-Akebono
|
||||
Rice-Shower
|
||||
Agnes-Tachyon
|
||||
Admire-Vega
|
||||
Inari-One
|
||||
Winning-Ticket
|
||||
Eishin-Flash
|
||||
Curren-Chan
|
||||
Kawakami-Princess
|
||||
Gold-City
|
||||
Sakura-Bakushin-O
|
||||
Sweep-Tosho
|
||||
Super-Creek
|
||||
Smart-Falcon
|
||||
Tosen-Jordan
|
||||
Narita-Taishin
|
||||
Nishino-Flower
|
||||
Haru-Urara
|
||||
Matikanefukukitaru
|
||||
Meisho-Doto
|
||||
Mejiro-Dober
|
||||
Nice-Nature
|
||||
King-Halo
|
||||
|
||||
// Get the character ID for a character.
|
||||
pub fun character-id(c: character): character-id
|
||||
match c
|
||||
Special-Week -> Character-id(1001)
|
||||
Silence-Suzuka -> Character-id(1002)
|
||||
Tokai-Teio -> Character-id(1003)
|
||||
Maruzensky -> Character-id(1004)
|
||||
Fuji-Kiseki -> Character-id(1005)
|
||||
Oguri-Cap -> Character-id(1006)
|
||||
Gold-Ship -> Character-id(1007)
|
||||
Vodka -> Character-id(1008)
|
||||
Daiwa-Scarlet -> Character-id(1009)
|
||||
Taiki-Shuttle -> Character-id(1010)
|
||||
Grass-Wonder -> Character-id(1011)
|
||||
Hishi-Amazon -> Character-id(1012)
|
||||
Mejiro-McQueen -> Character-id(1013)
|
||||
El-Condor-Pasa -> Character-id(1014)
|
||||
TM-Opera-O -> Character-id(1015)
|
||||
Narita-Brian -> Character-id(1016)
|
||||
Symboli-Rudolf -> Character-id(1017)
|
||||
Air-Groove -> Character-id(1018)
|
||||
Agnes-Digital -> Character-id(1019)
|
||||
Seiun-Sky -> Character-id(1020)
|
||||
Tamamo-Cross -> Character-id(1021)
|
||||
Fine-Motion -> Character-id(1022)
|
||||
Biwa-Hayahide -> Character-id(1023)
|
||||
Mayano-Top-Gun -> Character-id(1024)
|
||||
Manhattan-Cafe -> Character-id(1025)
|
||||
Mihono-Bourbon -> Character-id(1026)
|
||||
Mejiro-Ryan -> Character-id(1027)
|
||||
Hishi-Akebono -> Character-id(1028)
|
||||
Rice-Shower -> Character-id(1030)
|
||||
Agnes-Tachyon -> Character-id(1032)
|
||||
Admire-Vega -> Character-id(1033)
|
||||
Inari-One -> Character-id(1034)
|
||||
Winning-Ticket -> Character-id(1035)
|
||||
Eishin-Flash -> Character-id(1037)
|
||||
Curren-Chan -> Character-id(1038)
|
||||
Kawakami-Princess -> Character-id(1039)
|
||||
Gold-City -> Character-id(1040)
|
||||
Sakura-Bakushin-O -> Character-id(1041)
|
||||
Sweep-Tosho -> Character-id(1044)
|
||||
Super-Creek -> Character-id(1045)
|
||||
Smart-Falcon -> Character-id(1046)
|
||||
Tosen-Jordan -> Character-id(1048)
|
||||
Narita-Taishin -> Character-id(1050)
|
||||
Nishino-Flower -> Character-id(1051)
|
||||
Haru-Urara -> Character-id(1052)
|
||||
Matikanefukukitaru -> Character-id(1056)
|
||||
Meisho-Doto -> Character-id(1058)
|
||||
Mejiro-Dober -> Character-id(1059)
|
||||
Nice-Nature -> Character-id(1060)
|
||||
King-Halo -> Character-id(1061)
|
||||
|
||||
// List of all characters in ID order for easy iterating.
|
||||
pub val all = [
|
||||
Special-Week,
|
||||
Silence-Suzuka,
|
||||
Tokai-Teio,
|
||||
Maruzensky,
|
||||
Fuji-Kiseki,
|
||||
Oguri-Cap,
|
||||
Gold-Ship,
|
||||
Vodka,
|
||||
Daiwa-Scarlet,
|
||||
Taiki-Shuttle,
|
||||
Grass-Wonder,
|
||||
Hishi-Amazon,
|
||||
Mejiro-McQueen,
|
||||
El-Condor-Pasa,
|
||||
TM-Opera-O,
|
||||
Narita-Brian,
|
||||
Symboli-Rudolf,
|
||||
Air-Groove,
|
||||
Agnes-Digital,
|
||||
Seiun-Sky,
|
||||
Tamamo-Cross,
|
||||
Fine-Motion,
|
||||
Biwa-Hayahide,
|
||||
Mayano-Top-Gun,
|
||||
Manhattan-Cafe,
|
||||
Mihono-Bourbon,
|
||||
Mejiro-Ryan,
|
||||
Hishi-Akebono,
|
||||
Rice-Shower,
|
||||
Agnes-Tachyon,
|
||||
Admire-Vega,
|
||||
Inari-One,
|
||||
Winning-Ticket,
|
||||
Eishin-Flash,
|
||||
Curren-Chan,
|
||||
Kawakami-Princess,
|
||||
Gold-City,
|
||||
Sakura-Bakushin-O,
|
||||
Sweep-Tosho,
|
||||
Super-Creek,
|
||||
Smart-Falcon,
|
||||
Tosen-Jordan,
|
||||
Narita-Taishin,
|
||||
Nishino-Flower,
|
||||
Haru-Urara,
|
||||
Matikanefukukitaru,
|
||||
Meisho-Doto,
|
||||
Mejiro-Dober,
|
||||
Nice-Nature,
|
||||
King-Halo,
|
||||
]
|
||||
|
||||
val name2id: rbmap<string, character-id> = rb-map/empty()
|
||||
.set("Special Week", Character-id(1001))
|
||||
.set("Silence Suzuka", Character-id(1002))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,26 @@ import std/data/rb-map
|
||||
import horse/game-id
|
||||
pub import horse/character
|
||||
|
||||
// Enumeration of all characters for type-safe programming.
|
||||
pub type character
|
||||
{{- range $uma := $.Characters }}
|
||||
{{ kkenum $uma.Name }}
|
||||
{{- end }}
|
||||
|
||||
// Get the character ID for a character.
|
||||
pub fun character-id(c: character): character-id
|
||||
match c
|
||||
{{- range $uma := $.Characters }}
|
||||
{{ kkenum $uma.Name }} -> Character-id({{ $uma.ID }})
|
||||
{{- end }}
|
||||
|
||||
// List of all characters in ID order for easy iterating.
|
||||
pub val all = [
|
||||
{{- range $uma := $.Characters }}
|
||||
{{ kkenum $uma.Name }},
|
||||
{{- end }}
|
||||
]
|
||||
|
||||
val name2id: rbmap<string, character-id> = rb-map/empty()
|
||||
{{- range $uma := $.Characters }}
|
||||
.set({{ printf "%q" $uma.Name }}, Character-id({{ $uma.ID}}))
|
||||
|
||||
@@ -9,6 +9,26 @@ import horse/game-id
|
||||
import horse/movement
|
||||
pub import horse/skill
|
||||
|
||||
// Enumeration of all skills for type-safe programming.
|
||||
pub type skill
|
||||
{{- range $s := $.Skills }}
|
||||
{{ kkenum $s.Name }}{{ if $s.InheritID }}-Inherit{{ end }}
|
||||
{{- end }}
|
||||
|
||||
// Get the skill ID for a skill.
|
||||
pub fun skill-id(s: skill): skill-id
|
||||
match s
|
||||
{{- range $s := $.Skills }}
|
||||
{{ kkenum $s.Name }}{{ if $s.InheritID }}-Inherit{{ end }} -> Skill-id({{ $s.ID }})
|
||||
{{- end }}
|
||||
|
||||
// List of all skills in ID order for easy iterating.
|
||||
pub val all = [
|
||||
{{- range $s := $.Skills }}
|
||||
{{ kkenum $s.Name }}{{ if $s.InheritID }}-Inherit{{ end }},
|
||||
{{- end }}
|
||||
]
|
||||
|
||||
val name2id: rbmap<string, skill-id> = rb-map/empty()
|
||||
{{- range $s := $.Skills }}
|
||||
.set({{ printf "%q" $s.Name }}{{ if $s.InheritID }} ++ " (Inherited)"{{ end }}, Skill-id({{ $s.ID }}))
|
||||
|
||||
Reference in New Issue
Block a user