71 lines
1.5 KiB
Plaintext
71 lines
1.5 KiB
Plaintext
module horse/trainee
|
|
|
|
import std/data/rb-map
|
|
|
|
// Aptitudes of an umamusume being trained.
|
|
pub struct uma
|
|
turf: aptitudes
|
|
dirt: aptitudes
|
|
sprint: aptitudes
|
|
mile: aptitudes
|
|
medium: aptitudes
|
|
long: aptitudes
|
|
front-runner: aptitudes
|
|
pace-chaser: aptitudes
|
|
late-surger: aptitudes
|
|
end-closer: aptitudes
|
|
|
|
// Aptitude level distribution.
|
|
pub alias aptitudes = rbmap<level, float64>
|
|
|
|
// Starting aptitude levels.
|
|
pub type level
|
|
G
|
|
F
|
|
E
|
|
D
|
|
C
|
|
B
|
|
A
|
|
S
|
|
|
|
// Automatically generated.
|
|
// Fip comparison of the `level` type.
|
|
pub fun level/order2(this : level, other : level) : order2<level>
|
|
match (this, other)
|
|
(G, G) -> Eq2(G)
|
|
(G, other') -> Lt2(G, other')
|
|
(this', G) -> Gt2(G, this')
|
|
(F, F) -> Eq2(F)
|
|
(F, other') -> Lt2(F, other')
|
|
(this', F) -> Gt2(F, this')
|
|
(E, E) -> Eq2(E)
|
|
(E, other') -> Lt2(E, other')
|
|
(this', E) -> Gt2(E, this')
|
|
(D, D) -> Eq2(D)
|
|
(D, other') -> Lt2(D, other')
|
|
(this', D) -> Gt2(D, this')
|
|
(C, C) -> Eq2(C)
|
|
(C, other') -> Lt2(C, other')
|
|
(this', C) -> Gt2(C, this')
|
|
(B, B) -> Eq2(B)
|
|
(B, other') -> Lt2(B, other')
|
|
(this', B) -> Gt2(B, this')
|
|
(A, A) -> Eq2(A)
|
|
(A, other') -> Lt2(A, other')
|
|
(this', A) -> Gt2(A, this')
|
|
(S, S) -> Eq2(S)
|
|
|
|
// Automatically generated.
|
|
// Shows a string representation of the `level` type.
|
|
pub fun level/show(this : level) : string
|
|
match this
|
|
G -> "G"
|
|
F -> "F"
|
|
E -> "E"
|
|
D -> "D"
|
|
C -> "C"
|
|
B -> "B"
|
|
A -> "A"
|
|
S -> "S"
|