187 lines
5.1 KiB
Plaintext
187 lines
5.1 KiB
Plaintext
module horse/spark
|
|
|
|
// A single spark.
|
|
// Parameterized by the spark type: stat, aptitude, unique, race, or skill.
|
|
pub struct spark<a>
|
|
kind: a
|
|
level: level
|
|
|
|
pub fun spark/show(spark: spark<a>, level-fancy: string = "*", ?kind: (a) -> string): string
|
|
kind(spark.kind) ++ " " ++ spark.level.show ++ level-fancy
|
|
|
|
pub type level
|
|
One
|
|
Two
|
|
Three
|
|
|
|
pub fun level/show(this: level): string
|
|
match this
|
|
One -> "1"
|
|
Two -> "2"
|
|
Three -> "3"
|
|
|
|
// Stat (blue) spark.
|
|
pub type stat
|
|
Speed
|
|
Stamina
|
|
Power
|
|
Guts
|
|
Wit
|
|
|
|
// Automatically generated.
|
|
// Shows a string representation of the `stat` type.
|
|
pub fun stat/show(this : stat) : e string
|
|
match this
|
|
Speed -> "Speed"
|
|
Stamina -> "Stamina"
|
|
Power -> "Power"
|
|
Guts -> "Guts"
|
|
Wit -> "Wit"
|
|
|
|
// Aptitude (red/pink) spark.
|
|
pub type aptitude
|
|
Turf
|
|
Dirt
|
|
Sprint
|
|
Mile
|
|
Medium
|
|
Long
|
|
Front-Runner
|
|
Pace-Chaser
|
|
Late-Surger
|
|
End-Closer
|
|
|
|
// Shows a string representation of the `aptitude` type.
|
|
pub fun aptitude/show(this : aptitude): string
|
|
match this
|
|
Turf -> "Turf"
|
|
Dirt -> "Dirt"
|
|
Sprint -> "Sprint"
|
|
Mile -> "Mile"
|
|
Medium -> "Medium"
|
|
Long -> "Long"
|
|
Front-Runner -> "Front Runner"
|
|
Pace-Chaser -> "Pace Chaser"
|
|
Late-Surger -> "Late Surger"
|
|
End-Closer -> "End Closer"
|
|
|
|
// Unique (green) spark.
|
|
// TODO: decide this representation; strings? umas? probably depends on skills generally
|
|
pub type unique
|
|
|
|
pub fun unique/show(this: unique): string
|
|
"TODO(zeph): unique skills"
|
|
|
|
// Race, skill, and scenario (white) sparks.
|
|
pub type generic
|
|
February-Stakes
|
|
Takamatsunomiya-Kinen
|
|
Osaka-Hai
|
|
Oka-Sho
|
|
Satsuki-Sho
|
|
Tenno-Sho-Spring
|
|
NHK-Mile-Cup
|
|
Victoria-Mile
|
|
Japanese-Oaks
|
|
Japanese-Derby
|
|
Yasuda-Kinen
|
|
Takarazuka-Kinen
|
|
Sprinters-Stakes
|
|
Shuka-Sho
|
|
Kikuka-Sho
|
|
Tenno-Sho-Autumn
|
|
Queen-Elizabeth-II-Cup
|
|
Mile-Championship
|
|
Japan-Cup
|
|
Champions-Cup
|
|
Hanshin-Juvenile-Fillies
|
|
Asahi-Hai-Futurity-Stakes
|
|
Arima-Kinen
|
|
Hopeful-Stakes
|
|
Tokyo-Daishoten
|
|
JBC-Classic
|
|
JBC-Sprint
|
|
JBC-Ladies-Classic
|
|
Japan-Dirt-Derby
|
|
Teio-Sho
|
|
Skill(skill: string)
|
|
URA-Finale
|
|
Unity-Cup
|
|
|
|
// Automatically generated.
|
|
// Equality comparison of the `generic` type.
|
|
pub fun generic/(==)(this : generic, other : generic) : e bool
|
|
match (this, other)
|
|
(February-Stakes, February-Stakes) -> True
|
|
(Takamatsunomiya-Kinen, Takamatsunomiya-Kinen) -> True
|
|
(Osaka-Hai, Osaka-Hai) -> True
|
|
(Oka-Sho, Oka-Sho) -> True
|
|
(Satsuki-Sho, Satsuki-Sho) -> True
|
|
(Tenno-Sho-Spring, Tenno-Sho-Spring) -> True
|
|
(NHK-Mile-Cup, NHK-Mile-Cup) -> True
|
|
(Victoria-Mile, Victoria-Mile) -> True
|
|
(Japanese-Oaks, Japanese-Oaks) -> True
|
|
(Japanese-Derby, Japanese-Derby) -> True
|
|
(Yasuda-Kinen, Yasuda-Kinen) -> True
|
|
(Takarazuka-Kinen, Takarazuka-Kinen) -> True
|
|
(Sprinters-Stakes, Sprinters-Stakes) -> True
|
|
(Shuka-Sho, Shuka-Sho) -> True
|
|
(Kikuka-Sho, Kikuka-Sho) -> True
|
|
(Tenno-Sho-Autumn, Tenno-Sho-Autumn) -> True
|
|
(Queen-Elizabeth-II-Cup, Queen-Elizabeth-II-Cup) -> True
|
|
(Mile-Championship, Mile-Championship) -> True
|
|
(Japan-Cup, Japan-Cup) -> True
|
|
(Champions-Cup, Champions-Cup) -> True
|
|
(Hanshin-Juvenile-Fillies, Hanshin-Juvenile-Fillies) -> True
|
|
(Asahi-Hai-Futurity-Stakes, Asahi-Hai-Futurity-Stakes) -> True
|
|
(Arima-Kinen, Arima-Kinen) -> True
|
|
(Hopeful-Stakes, Hopeful-Stakes) -> True
|
|
(Tokyo-Daishoten, Tokyo-Daishoten) -> True
|
|
(JBC-Classic, JBC-Classic) -> True
|
|
(JBC-Sprint, JBC-Sprint) -> True
|
|
(JBC-Ladies-Classic, JBC-Ladies-Classic) -> True
|
|
(Japan-Dirt-Derby, Japan-Dirt-Derby) -> True
|
|
(Teio-Sho, Teio-Sho) -> True
|
|
(Skill(skill), Skill(skill')) -> skill == skill'
|
|
(URA-Finale, URA-Finale) -> True
|
|
(Unity-Cup, Unity-Cup) -> True
|
|
(_, _) -> False
|
|
|
|
// Automatically generated.
|
|
// Shows a string representation of the `generic` type.
|
|
pub fun generic/show(this : generic) : e string
|
|
match this
|
|
February-Stakes -> "February Stakes"
|
|
Takamatsunomiya-Kinen -> "Takamatsunomiya Kinen"
|
|
Osaka-Hai -> "Osaka Hai"
|
|
Oka-Sho -> "Oka Sho"
|
|
Satsuki-Sho -> "Satsuki Sho"
|
|
Tenno-Sho-Spring -> "Tenno Sho Spring"
|
|
NHK-Mile-Cup -> "NHK Mile Cup"
|
|
Victoria-Mile -> "Victoria Mile"
|
|
Japanese-Oaks -> "Japanese Oaks"
|
|
Japanese-Derby -> "Japanese Derby"
|
|
Yasuda-Kinen -> "Yasuda Kinen"
|
|
Takarazuka-Kinen -> "Takarazuka Kinen"
|
|
Sprinters-Stakes -> "Sprinters Stakes"
|
|
Shuka-Sho -> "Shuka Sho"
|
|
Kikuka-Sho -> "Kikuka Sho"
|
|
Tenno-Sho-Autumn -> "Tenno Sho Autumn"
|
|
Queen-Elizabeth-II-Cup -> "Queen Elizabeth II Cup"
|
|
Mile-Championship -> "Mile Championship"
|
|
Japan-Cup -> "Japan Cup"
|
|
Champions-Cup -> "Champions Cup"
|
|
Hanshin-Juvenile-Fillies -> "Hanshin Juvenile Fillies"
|
|
Asahi-Hai-Futurity-Stakes -> "Asahi Hai Futurity Stakes"
|
|
Arima-Kinen -> "Arima Kinen"
|
|
Hopeful-Stakes -> "Hopeful Stakes"
|
|
Tokyo-Daishoten -> "Tokyo Daishoten"
|
|
JBC-Classic -> "JBC Classic"
|
|
JBC-Sprint -> "JBC Sprint"
|
|
JBC-Ladies-Classic -> "JBC Ladies Classic"
|
|
Japan-Dirt-Derby -> "Japan Dirt Derby"
|
|
Teio-Sho -> "Teio Sho"
|
|
Skill(skill) -> skill.show
|
|
URA-Finale -> "URA Finale"
|
|
Unity-Cup -> "Unity Cup"
|