horse: implement inheritance
This commit is contained in:
293
test/example.kk
Normal file
293
test/example.kk
Normal file
@@ -0,0 +1,293 @@
|
||||
module test/example
|
||||
|
||||
import std/num/decimal
|
||||
import std/data/linearmap
|
||||
import horse/game-id
|
||||
import horse/global
|
||||
import horse/global/character
|
||||
import horse/global/saddle
|
||||
import horse/global/skill
|
||||
import horse/global/spark
|
||||
import horse/global/uma
|
||||
import horse/legacy
|
||||
|
||||
val p1 = Legacy(
|
||||
uma = Veteran(
|
||||
uma = Uma-id(102001), // seiun sky
|
||||
sparks = [
|
||||
301, // 1* power
|
||||
2102, // 2* front runner
|
||||
10200103, // 3* angling and scheming
|
||||
1000302, // 2* osaka hai
|
||||
1001001, // 1* japanese derby
|
||||
1001101, // 1* yasuda kinen
|
||||
1001701, // 1* qe2
|
||||
2001402, // 2* non-standard distance
|
||||
2004301, // 1* focus
|
||||
2005301, // 1* early lead
|
||||
2012401, // 1* front runner straightaways
|
||||
2012502, // 2* front runner corners
|
||||
2015201, // 1* front runner savvy
|
||||
2016001, // 1* groundwork
|
||||
2016102, // 2* thh
|
||||
2016402, // 2* lone wolf
|
||||
3000201, // 1* unity cup
|
||||
].map(Spark-id(_)),
|
||||
saddles = [
|
||||
1, // classic triple crown
|
||||
2, // senior autumn triple crown
|
||||
4, // senior spring triple crown
|
||||
5, // tenno sweep
|
||||
6, // dual grand prix
|
||||
7, // dual miles
|
||||
10, // arima kinen
|
||||
11, // japan cup
|
||||
12, // derby
|
||||
13, // tss
|
||||
14, // takarazuka kinen
|
||||
15, // tsa
|
||||
16, // kikuka sho
|
||||
17, // osaka hai
|
||||
18, // satsuki sho
|
||||
21, // yasuda kinen
|
||||
23, // mile championship
|
||||
25, // victoria mile
|
||||
26, // qe2
|
||||
33, // asahi hai fs
|
||||
34, // hopeful stakes
|
||||
96, // mainichi hai
|
||||
].map(Saddle-id(_))
|
||||
),
|
||||
sub1 = Veteran(
|
||||
uma = Uma-id(102601), // mihono bourbon
|
||||
sparks = [
|
||||
302, // 2* power
|
||||
3303, // 3* medium
|
||||
10260102, // 2* g00 1st
|
||||
1001201, // 1* takarazuka kinen
|
||||
1001702, // 2* qe2
|
||||
1001901, // 1* japan cup
|
||||
2004302, // 2* focus
|
||||
2004502, // 2* prudent positioning
|
||||
2012502, // 2* front corners
|
||||
2015202, // 2* front savvy
|
||||
2016002, // 2* groundwork
|
||||
2016401, // 1* lone wolf
|
||||
3000201, // 1* unity cup
|
||||
].map(Spark-id(_)),
|
||||
saddles = [
|
||||
2, // senior autumn triple crown
|
||||
6, // dual grand prix
|
||||
7, // dual miles
|
||||
10, // arima kinen
|
||||
11, // japan cup
|
||||
12, // derby
|
||||
14, // takarazuka kinen
|
||||
15, // tsa
|
||||
17, // osaka hai
|
||||
18, // satsuki sho
|
||||
21, // yasuda kinen
|
||||
23, // mile championship
|
||||
25, // victoria mile
|
||||
26, // qe2
|
||||
27, // nhk mile cup
|
||||
33, // asahi hai fs
|
||||
34, // hopeful stakes
|
||||
49, // spring stakes
|
||||
].map(Saddle-id(_))
|
||||
),
|
||||
sub2 = Veteran(
|
||||
uma = Uma-id(102401), // mayano top gun
|
||||
sparks = [
|
||||
302, // 2* power
|
||||
1103, // 3* turf
|
||||
10240101, // 1* flashy landing
|
||||
1000601, // 1* tss
|
||||
1001202, // 2* takarazuka kinen
|
||||
1001502, // 2* kikuka sho
|
||||
1001601, // 1* tsa
|
||||
1002102, // 2* hanshin jf
|
||||
1002301, // 1* arima kinen
|
||||
2003503, // 3* corner recovery
|
||||
2003802, // 2* straightaway recovery
|
||||
2004602, // 2* ramp up
|
||||
2005502, // 2* final push
|
||||
2012702, // 2* leader's pride
|
||||
2016002, // 2* groundwork
|
||||
3000102, // 2* ura finale
|
||||
].map(Spark-id(_)),
|
||||
saddles = [
|
||||
1, // classic triple crown
|
||||
2, // senior autumn triple crown
|
||||
4, // senior spring triple crown
|
||||
5, // tenno sweep
|
||||
6, // dual grand prix
|
||||
7, // dual miles
|
||||
10, // arima kinen
|
||||
11, // japan cup
|
||||
12, // derby
|
||||
13, // tss
|
||||
14, // takarazuka kinen
|
||||
15, // tsa
|
||||
16, // kikuka sho
|
||||
18, // satsuki sho
|
||||
21, // yasuda kinen
|
||||
23, // mile championship
|
||||
25, // victoria mile
|
||||
26, // qe2
|
||||
34, // hopeful stakes
|
||||
35, // hanshin jf
|
||||
].map(Saddle-id(_))
|
||||
)
|
||||
)
|
||||
|
||||
val p2 = Legacy(
|
||||
uma = Veteran(
|
||||
uma = Uma-id(100201), // silence suzuka
|
||||
sparks = [
|
||||
202, // 2* stamina
|
||||
3301, // 1* medium
|
||||
10020101, // 1* view from the lead
|
||||
1000302, // 2* osaka hai
|
||||
1001201, // 1* takarazuka kinen
|
||||
1001502, // 2* kikuka sho
|
||||
1001601, // 1* tsa
|
||||
1002201, // 1* asahi hai fs
|
||||
1002301, // 1* arima kinen
|
||||
2003302, // 2* corner adept
|
||||
2004302, // 2* focus
|
||||
2004502, // 2* prudent positioning
|
||||
2005301, // 1* early lead
|
||||
2012602, // 2* dodging danger
|
||||
2012802, // 2* moxie
|
||||
2016002, // 2* groundwork
|
||||
].map(Spark-id(_)),
|
||||
saddles = [
|
||||
1, // classic triple crown
|
||||
2, // senior autumn triple crown
|
||||
6, // dual grand prix
|
||||
10, // arima kinen
|
||||
11, // japan cup
|
||||
12, // derby
|
||||
14, // takarazuka kinen
|
||||
15, // tsa
|
||||
16, // kikuka sho
|
||||
17, // osaka hai
|
||||
18, // satsuki sho
|
||||
21, // yasuda kinen
|
||||
25, // victoria mile
|
||||
26, // qe2
|
||||
33, // asahi hai fs
|
||||
34, // hopeful stakes
|
||||
45, // yayoi sho
|
||||
46, // kinko sho
|
||||
63, // kobe shimbun hai
|
||||
65, // mainichi okan
|
||||
].map(Saddle-id(_))
|
||||
),
|
||||
sub1 = Veteran(
|
||||
uma = Uma-id(102001), // seiun sky
|
||||
sparks = [
|
||||
301, // 1* power
|
||||
2102, // 2* front runner
|
||||
10200103, // 3* angling and scheming
|
||||
1000302, // 2* osaka hai
|
||||
1001001, // 1* japanese derby
|
||||
1001101, // 1* yasuda kinen
|
||||
1001701, // 1* qe2
|
||||
2001402, // 2* non-standard distance
|
||||
2004301, // 1* focus
|
||||
2005301, // 1* early lead
|
||||
2012401, // 1* front runner straightaways
|
||||
2012502, // 2* front runner corners
|
||||
2015201, // 1* front runner savvy
|
||||
2016001, // 1* groundwork
|
||||
2016102, // 2* thh
|
||||
2016402, // 2* lone wolf
|
||||
3000201, // 1* unity cup
|
||||
].map(Spark-id(_)),
|
||||
saddles = [
|
||||
1, // classic triple crown
|
||||
2, // senior autumn triple crown
|
||||
4, // senior spring triple crown
|
||||
5, // tenno sweep
|
||||
6, // dual grand prix
|
||||
7, // dual miles
|
||||
10, // arima kinen
|
||||
11, // japan cup
|
||||
12, // derby
|
||||
13, // tss
|
||||
14, // takarazuka kinen
|
||||
15, // tsa
|
||||
16, // kikuka sho
|
||||
17, // osaka hai
|
||||
18, // satsuki sho
|
||||
21, // yasuda kinen
|
||||
23, // mile championship
|
||||
25, // victoria mile
|
||||
26, // qe2
|
||||
33, // asahi hai fs
|
||||
34, // hopeful stakes
|
||||
96, // mainichi hai
|
||||
].map(Saddle-id(_))
|
||||
),
|
||||
sub2 = Veteran(
|
||||
uma = Uma-id(102601), // mihono bourbon
|
||||
sparks = [
|
||||
102, // 2* speed
|
||||
3402, // 2* long
|
||||
10260101, // 1* g00 1st
|
||||
1000502, // 2* satsuki sho
|
||||
1000701, // 1* nhk mile cup
|
||||
1001201, // 1* takarazuka kinen
|
||||
1001702, // 2* qe2
|
||||
2000101, // 1* right-handed
|
||||
2002102, // 2* sunny days
|
||||
2004302, // 2* focus
|
||||
2005301, // 1* early lead
|
||||
2012502, // 2* front corners
|
||||
2016001, // 1* groundwork
|
||||
].map(Spark-id(_)),
|
||||
saddles = [
|
||||
1, // classic triple crown
|
||||
2, // senior autumn triple crown
|
||||
6, // dual grand prix
|
||||
10, // arima kinen
|
||||
11, // japan cup
|
||||
12, // derby
|
||||
14, // takarazuka kinen
|
||||
15, // tsa
|
||||
16, // kikuka sho
|
||||
17, // osaka hai
|
||||
18, // satsuki sho
|
||||
26, // qe2
|
||||
27, // nhk mile cup
|
||||
33, // asahi hai fs
|
||||
49, // spring stakes
|
||||
].map(Saddle-id(_))
|
||||
)
|
||||
)
|
||||
|
||||
val trainee = Uma-id(102402) // wedding mayano
|
||||
|
||||
pub fun main()
|
||||
val p1a = parent-affinity(trainee, p1, p2.uma.uma)
|
||||
val p2a = parent-affinity(trainee, p2, p1.uma.uma)
|
||||
val (s11a, s12a) = sub-affinity(trainee, p1)
|
||||
val (s21a, s22a) = sub-affinity(trainee, p2)
|
||||
println("trainee: " ++ trainee.show)
|
||||
println("p1: " ++ p1.uma.uma.show ++ " affinity " ++ p1a.show)
|
||||
println("s1-1: " ++ p1.sub1.uma.show ++ " affinity " ++ s11a.show)
|
||||
println("s1-2: " ++ p1.sub2.uma.show ++ " affinity " ++ s12a.show)
|
||||
println("p2: " ++ p2.uma.uma.show ++ " affinity " ++ p1a.show)
|
||||
println("s1-1: " ++ p2.sub1.uma.show ++ " affinity " ++ s21a.show)
|
||||
println("s1-2: " ++ p2.sub2.uma.show ++ " affinity " ++ s22a.show)
|
||||
val inspo = inspiration(trainee, p1, p2)
|
||||
val s = inspiration-gives(inspo, legacy/skills)
|
||||
val a = inspiration-gives(inspo, legacy/aptitudes)
|
||||
println("\nskills:")
|
||||
s.list.foreach() fn((skill, pmf))
|
||||
println(" " ++ skill.show ++ ": " ++ pmf.show)
|
||||
println("\naptitudes:")
|
||||
a.list.foreach() fn((apt, pmf))
|
||||
println(" " ++ apt.show ++ ": " ++ pmf.show)
|
||||
Reference in New Issue
Block a user