Compare commits

...

4 Commits

Author SHA1 Message Date
zephyr a04ec970f2 horsegen: colocate koka and go outputs 2026-01-15 14:13:18 -05:00
zephyr b844c4c24c meta: exit generator with an error when invoked wrong 2026-01-15 14:05:45 -05:00
zephyr c5b5585f1e global: generate with 2026-01-15 db 2026-01-15 13:57:30 -05:00
zephyr 16067a1acc meta: add go generate script 2026-01-15 13:56:21 -05:00
13 changed files with 1403 additions and 1283 deletions
+12
View File
@@ -0,0 +1,12 @@
package main
import "os"
//go:generate go run ./horsegen
//go:generate go generate ./horse/...
//go:generate go fmt ./...
func main() {
os.Stderr.WriteString("go generate, not go run\n")
os.Exit(2)
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+8
View File
@@ -43,6 +43,7 @@ pub type skill-group
Blazing-Pride
OMG-The-Final-Sprint
Angling-and-Scheming
Fairy-Tale
Win-QED
Flashy-Landing
Chasing-After-You
@@ -246,6 +247,7 @@ pub type skill-group
Be-Still
All-I-ve-Got
Head-On
Familiar-Ground
Early-Start
Risky-Business
Ignited-Spirit-SPD
@@ -295,6 +297,7 @@ pub fip fun skill-group/group-id(^sg: skill-group): int
Blazing-Pride -> 10018
OMG-The-Final-Sprint -> 10019
Angling-and-Scheming -> 10020
Fairy-Tale -> 10022
Win-QED -> 10023
Flashy-Landing -> 10024
Chasing-After-You -> 10025
@@ -498,6 +501,7 @@ pub fip fun skill-group/group-id(^sg: skill-group): int
Be-Still -> 20169
All-I-ve-Got -> 20170
Head-On -> 20190
Familiar-Ground -> 20200
Early-Start -> 20202
Risky-Business -> 20203
Ignited-Spirit-SPD -> 21001
@@ -547,6 +551,7 @@ pub fip(1) fun skill-group/from-id(^id: int): maybe<skill-group>
10018 -> Just(Blazing-Pride)
10019 -> Just(OMG-The-Final-Sprint)
10020 -> Just(Angling-and-Scheming)
10022 -> Just(Fairy-Tale)
10023 -> Just(Win-QED)
10024 -> Just(Flashy-Landing)
10025 -> Just(Chasing-After-You)
@@ -750,6 +755,7 @@ pub fip(1) fun skill-group/from-id(^id: int): maybe<skill-group>
20169 -> Just(Be-Still)
20170 -> Just(All-I-ve-Got)
20190 -> Just(Head-On)
20200 -> Just(Familiar-Ground)
20202 -> Just(Early-Start)
20203 -> Just(Risky-Business)
21001 -> Just(Ignited-Spirit-SPD)
@@ -801,6 +807,7 @@ pub fun skill-group/show(sg: skill-group): string
Blazing-Pride -> "Blazing Pride"
OMG-The-Final-Sprint -> "OMG! (゚∀゚) The Final Sprint! ☆"
Angling-and-Scheming -> "Angling and Scheming"
Fairy-Tale -> "Fairy Tale"
Win-QED -> "∴win Q.E.D."
Flashy-Landing -> "Flashy☆Landing"
Chasing-After-You -> "Chasing After You"
@@ -1004,6 +1011,7 @@ pub fun skill-group/show(sg: skill-group): string
Be-Still -> "Be Still"
All-I-ve-Got -> "All I've Got"
Head-On -> "Head-On"
Familiar-Ground -> "Familiar Ground"
Early-Start -> "Early Start"
Risky-Business -> "Risky Business"
Ignited-Spirit-SPD -> "Ignited Spirit SPD"
+76 -1
View File
@@ -2,7 +2,7 @@ package global
// Automatically generated with horsegen; DO NOT EDIT
import . "git.sunturtle.xyz/zephyr/horse/go"
import . "git.sunturtle.xyz/zephyr/horse/horse"
const (
SkillWarningShot SkillID = 10071 // Warning Shot!
@@ -41,6 +41,7 @@ const (
SkillBlazingPride SkillID = 100181 // Blazing Pride
SkillOMGTheFinalSprint SkillID = 100191 // OMG! (゚∀゚) The Final Sprint! ☆
SkillAnglingandScheming SkillID = 100201 // Angling and Scheming
SkillFairyTale SkillID = 100221 // Fairy Tale
SkillWinQED SkillID = 100231 // ∴win Q.E.D.
SkillFlashyLanding SkillID = 100241 // Flashy☆Landing
SkillChasingAfterYou SkillID = 100251 // Chasing After You
@@ -417,6 +418,7 @@ const (
SkillAllIveGot SkillID = 201702 // All I've Got
SkillNailArt SkillID = 201801 // ♡ 3D Nail Art
SkillHeadOn SkillID = 201902 // Head-On
SkillFamiliarGround SkillID = 202002 // Familiar Ground
SkillEarlyStart SkillID = 202022 // Early Start
SkillRiskyBusiness SkillID = 202032 // Risky Business
SkillRunaway SkillID = 202051 // Runaway
@@ -452,6 +454,7 @@ const (
SkillBlazingPrideInherit SkillID = 900181 // Blazing Pride
SkillOMGTheFinalSprintInherit SkillID = 900191 // OMG! (゚∀゚) The Final Sprint! ☆
SkillAnglingandSchemingInherit SkillID = 900201 // Angling and Scheming
SkillFairyTaleInherit SkillID = 900221 // Fairy Tale
SkillWinQEDInherit SkillID = 900231 // ∴win Q.E.D.
SkillFlashyLandingInherit SkillID = 900241 // Flashy☆Landing
SkillChasingAfterYouInherit SkillID = 900251 // Chasing After You
@@ -1340,6 +1343,29 @@ var AllSkills = map[SkillID]Skill{
0,
20043,
},
SkillFairyTale: {
100221,
"Fairy Tale",
"Increase velocity with the excitement of running when engaged in a challenge while well-positioned in the second half of the race.",
10022,
5,
1,
340,
false,
[]Activation{
{
"",
"distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2",
50000,
5000000,
[]Ability{
{27, 1, 3500, 1, 0},
},
},
},
0,
20013,
},
SkillWinQED: {
100231,
"∴win Q.E.D.",
@@ -10047,6 +10073,29 @@ var AllSkills = map[SkillID]Skill{
180,
20041,
},
SkillFamiliarGround: {
202002,
"Familiar Ground",
"Slightly recover endurance when positioned toward the back mid-race. (Dirt)",
20200,
1,
1,
217,
true,
[]Activation{
{
"",
"ground_type==2&phase_random==1&order_rate>=50",
0,
5000000,
[]Ability{
{9, 1, 150, 1, 0},
},
},
},
180,
20021,
},
SkillEarlyStart: {
202022,
"Early Start",
@@ -10870,6 +10919,29 @@ var AllSkills = map[SkillID]Skill{
200,
20041,
},
SkillFairyTaleInherit: {
900221,
"Fairy Tale",
"Slightly increase velocity when engaged in a challenge while well-positioned in the second half of the race.",
90022,
1,
2,
180,
true,
[]Activation{
{
"",
"distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2",
30000,
5000000,
[]Ability{
{27, 1, 1500, 1, 0},
},
},
},
200,
20011,
},
SkillWinQEDInherit: {
900231,
"∴win Q.E.D.",
@@ -11828,6 +11900,7 @@ var SkillNameToID = map[string]SkillID{
"Blazing Pride": 100181,
"OMG! (゚∀゚) The Final Sprint! ☆": 100191,
"Angling and Scheming": 100201,
"Fairy Tale": 100221,
"∴win Q.E.D.": 100231,
"Flashy☆Landing": 100241,
"Chasing After You": 100251,
@@ -12204,6 +12277,7 @@ var SkillNameToID = map[string]SkillID{
"All I've Got": 201702,
"♡ 3D Nail Art": 201801,
"Head-On": 201902,
"Familiar Ground": 202002,
"Early Start": 202022,
"Risky Business": 202032,
"Runaway": 202051,
@@ -12239,6 +12313,7 @@ var SkillNameToID = map[string]SkillID{
"Blazing Pride" + " (Inherited)": 900181,
"OMG! (゚∀゚) The Final Sprint! ☆" + " (Inherited)": 900191,
"Angling and Scheming" + " (Inherited)": 900201,
"Fairy Tale" + " (Inherited)": 900221,
"∴win Q.E.D." + " (Inherited)": 900231,
"Flashy☆Landing" + " (Inherited)": 900241,
"Chasing After You" + " (Inherited)": 900251,
+18 -1
View File
@@ -3,7 +3,7 @@ module horse/global/skill
// Automatically generated with horsegen; DO NOT EDIT
import std/num/decimal
pub import horse/skill-group
pub import horse/global/skill-group
// Skill instances.
pub type skill
@@ -43,6 +43,7 @@ pub type skill
Blazing-Pride
OMG-The-Final-Sprint
Angling-and-Scheming
Fairy-Tale
Win-QED
Flashy-Landing
Chasing-After-You
@@ -419,6 +420,7 @@ pub type skill
All-I-ve-Got
Nail-Art
Head-On
Familiar-Ground
Early-Start
Risky-Business
Runaway
@@ -454,6 +456,7 @@ pub type skill
Blazing-Pride-Inherit
OMG-The-Final-Sprint-Inherit
Angling-and-Scheming-Inherit
Fairy-Tale-Inherit
Win-QED-Inherit
Flashy-Landing-Inherit
Chasing-After-You-Inherit
@@ -533,6 +536,7 @@ pub fip fun skill/skill-id(^s: skill): int
Blazing-Pride -> 100181
OMG-The-Final-Sprint -> 100191
Angling-and-Scheming -> 100201
Fairy-Tale -> 100221
Win-QED -> 100231
Flashy-Landing -> 100241
Chasing-After-You -> 100251
@@ -909,6 +913,7 @@ pub fip fun skill/skill-id(^s: skill): int
All-I-ve-Got -> 201702
Nail-Art -> 201801
Head-On -> 201902
Familiar-Ground -> 202002
Early-Start -> 202022
Risky-Business -> 202032
Runaway -> 202051
@@ -944,6 +949,7 @@ pub fip fun skill/skill-id(^s: skill): int
Blazing-Pride-Inherit -> 900181
OMG-The-Final-Sprint-Inherit -> 900191
Angling-and-Scheming-Inherit -> 900201
Fairy-Tale-Inherit -> 900221
Win-QED-Inherit -> 900231
Flashy-Landing-Inherit -> 900241
Chasing-After-You-Inherit -> 900251
@@ -1023,6 +1029,7 @@ pub fip(1) fun skill/from-id(^id: int): maybe<skill>
100181 -> Just(Blazing-Pride)
100191 -> Just(OMG-The-Final-Sprint)
100201 -> Just(Angling-and-Scheming)
100221 -> Just(Fairy-Tale)
100231 -> Just(Win-QED)
100241 -> Just(Flashy-Landing)
100251 -> Just(Chasing-After-You)
@@ -1399,6 +1406,7 @@ pub fip(1) fun skill/from-id(^id: int): maybe<skill>
201702 -> Just(All-I-ve-Got)
201801 -> Just(Nail-Art)
201902 -> Just(Head-On)
202002 -> Just(Familiar-Ground)
202022 -> Just(Early-Start)
202032 -> Just(Risky-Business)
202051 -> Just(Runaway)
@@ -1434,6 +1442,7 @@ pub fip(1) fun skill/from-id(^id: int): maybe<skill>
900181 -> Just(Blazing-Pride-Inherit)
900191 -> Just(OMG-The-Final-Sprint-Inherit)
900201 -> Just(Angling-and-Scheming-Inherit)
900221 -> Just(Fairy-Tale-Inherit)
900231 -> Just(Win-QED-Inherit)
900241 -> Just(Flashy-Landing-Inherit)
900251 -> Just(Chasing-After-You-Inherit)
@@ -1515,6 +1524,7 @@ pub fun skill/show(s: skill): string
Blazing-Pride -> "Blazing Pride"
OMG-The-Final-Sprint -> "OMG! (゚∀゚) The Final Sprint! ☆"
Angling-and-Scheming -> "Angling and Scheming"
Fairy-Tale -> "Fairy Tale"
Win-QED -> "∴win Q.E.D."
Flashy-Landing -> "Flashy☆Landing"
Chasing-After-You -> "Chasing After You"
@@ -1891,6 +1901,7 @@ pub fun skill/show(s: skill): string
All-I-ve-Got -> "All I've Got"
Nail-Art -> "♡ 3D Nail Art"
Head-On -> "Head-On"
Familiar-Ground -> "Familiar Ground"
Early-Start -> "Early Start"
Risky-Business -> "Risky Business"
Runaway -> "Runaway"
@@ -1926,6 +1937,7 @@ pub fun skill/show(s: skill): string
Blazing-Pride-Inherit -> "Blazing Pride"
OMG-The-Final-Sprint-Inherit -> "OMG! (゚∀゚) The Final Sprint! ☆"
Angling-and-Scheming-Inherit -> "Angling and Scheming"
Fairy-Tale-Inherit -> "Fairy Tale"
Win-QED-Inherit -> "∴win Q.E.D."
Flashy-Landing-Inherit -> "Flashy☆Landing"
Chasing-After-You-Inherit -> "Chasing After You"
@@ -2015,6 +2027,7 @@ pub fun skill-group/skills(g: skill-group): list<skill>
Blazing-Pride -> [Blazing-Pride, Blazing-Pride-Inherit, ]
OMG-The-Final-Sprint -> [OMG-The-Final-Sprint, OMG-The-Final-Sprint-Inherit, ]
Angling-and-Scheming -> [Angling-and-Scheming, Angling-and-Scheming-Inherit, ]
Fairy-Tale -> [Fairy-Tale, Fairy-Tale-Inherit, ]
Win-QED -> [Win-QED, Win-QED-Inherit, ]
Flashy-Landing -> [Flashy-Landing, Flashy-Landing-Inherit, ]
Chasing-After-You -> [Chasing-After-You, Chasing-After-You-Inherit, ]
@@ -2218,6 +2231,7 @@ pub fun skill-group/skills(g: skill-group): list<skill>
Be-Still -> [Lie-in-Wait, Be-Still, ]
All-I-ve-Got -> [Come-What-May, All-I-ve-Got, ]
Head-On -> [Head-On, ]
Familiar-Ground -> [Familiar-Ground, ]
Early-Start -> [Early-Start, ]
Risky-Business -> [Risky-Business, ]
Ignited-Spirit-SPD -> [Burning-Spirit-SPD, Ignited-Spirit-SPD, ]
@@ -2267,6 +2281,7 @@ pub fun skill/detail(^s: skill): skill-detail
Blazing-Pride -> Skill-detail(skill-id = 100181, name = "Blazing Pride", description = "Increase velocity with the stride of an empress when passing another runner from midpack or further back on the final corner.", group = Just(Blazing-Pride), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013)
OMG-The-Final-Sprint -> Skill-detail(skill-id = 100191, name = "OMG! (゚∀゚) The Final Sprint! ☆", description = "Increase velocity and navigation with the pure euphoria of being within breathing distance of precious waifus after passing another runner 2 times late-race.", group = Just(OMG-The-Final-Sprint), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "change_order_up_end_after>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013)
Angling-and-Scheming -> Skill-detail(skill-id = 100201, name = "Angling and Scheming", description = "Increase acceleration at an opportune moment when in the lead on a corner late-race.", group = Just(Angling-and-Scheming), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order==1", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043)
Fairy-Tale -> Skill-detail(skill-id = 100221, name = "Fairy Tale", description = "Increase velocity with the excitement of running when engaged in a challenge while well-positioned in the second half of the race.", group = Just(Fairy-Tale), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013)
Win-QED -> Skill-detail(skill-id = 100231, name = "∴win Q.E.D.", description = "Increase velocity by deriving the winning equation when passing another runner toward the front on the final corner or later.", group = Just(Win-QED), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&change_order_onetime<0&order<=4", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013)
Flashy-Landing -> Skill-detail(skill-id = 100241, name = "Flashy☆Landing", description = "Increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later.", group = Just(Flashy-Landing), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013)
Chasing-After-You -> Skill-detail(skill-id = 100251, name = "Chasing After You", description = "Chase after an unseen friend when in midpack in the second half of the race, moderately increasing velocity steadily and very slightly intimidating runners ahead.", group = Just(Chasing-After-You), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&order_rate<=70", duration = 60000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Current-Speed(-500.decimal(-4)), value-usage =Direct, target =Ahead(5)),]),], sp-cost = 0, icon-id = 20013)
@@ -2643,6 +2658,7 @@ pub fun skill/detail(^s: skill): skill-detail
All-I-ve-Got -> Skill-detail(skill-id = 201702, name = "All I've Got", description = "Slightly increase velocity when well-positioned on a straight in the last spurt. (Medium)", group = Just(All-I-ve-Got), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_lastspurt==1&corner==0&order_rate>=20&order_rate<=60", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011)
Nail-Art -> Skill-detail(skill-id = 201801, name = "♡ 3D Nail Art", description = "Moderately decrease performance on firm ground.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014)
Head-On -> Skill-detail(skill-id = 201902, name = "Head-On", description = "Slightly increase acceleration when positioned toward the front late-race. (Pace Chaser)", group = Just(Head-On), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==2&order_rate<=50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041)
Familiar-Ground -> Skill-detail(skill-id = 202002, name = "Familiar Ground", description = "Slightly recover endurance when positioned toward the back mid-race. (Dirt)", group = Just(Familiar-Ground), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "ground_type==2&phase_random==1&order_rate>=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021)
Early-Start -> Skill-detail(skill-id = 202022, name = "Early Start", description = "Very slightly increase velocity for a medium duration when positioned toward the back mid-race. (End Closer)", group = Just(Early-Start), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==1&order_rate>=50", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011)
Risky-Business -> Skill-detail(skill-id = 202032, name = "Risky Business", description = "Moderately increase velocity in the second half of the race, but also greatly increase fatigue sometimes.", group = Just(Risky-Business), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate_after_random==50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =HP(-10000.decimal(-4)), value-usage =Multiply-Random, target =Self),]),], sp-cost = 120, icon-id = 20011)
Runaway -> Skill-detail(skill-id = 202051, name = "Runaway", description = "Attempt to gain an especially large lead and keep it until the finish. (Front Runner)", group = Nothing, rarity = Rare, group-rate = 2, grade-value = 370, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Great-Escape, value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 40012)
@@ -2678,6 +2694,7 @@ pub fun skill/detail(^s: skill): skill-detail
Blazing-Pride-Inherit -> Skill-detail(skill-id = 900181, name = "Blazing Pride", description = "Slightly increase velocity when passing another runner from midpack or further back on the final corner.", group = Just(Blazing-Pride), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011)
OMG-The-Final-Sprint-Inherit -> Skill-detail(skill-id = 900191, name = "OMG! (゚∀゚) The Final Sprint! ☆", description = "Slightly increase velocity and navigation after passing another runner 2 times late-race.", group = Just(OMG-The-Final-Sprint), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "change_order_up_end_after>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Speed(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011)
Angling-and-Scheming-Inherit -> Skill-detail(skill-id = 900201, name = "Angling and Scheming", description = "Slightly increase acceleration when in the lead on a corner late-race.", group = Just(Angling-and-Scheming), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order==1", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041)
Fairy-Tale-Inherit -> Skill-detail(skill-id = 900221, name = "Fairy Tale", description = "Slightly increase velocity when engaged in a challenge while well-positioned in the second half of the race.", group = Just(Fairy-Tale), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011)
Win-QED-Inherit -> Skill-detail(skill-id = 900231, name = "∴win Q.E.D.", description = "Slightly increase velocity when passing another runner toward the front on the final corner or later.", group = Just(Win-QED), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&change_order_onetime<0&order<=4", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011)
Flashy-Landing-Inherit -> Skill-detail(skill-id = 900241, name = "Flashy☆Landing", description = "Very slightly increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later.", group = Just(Flashy-Landing), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011)
Chasing-After-You-Inherit -> Skill-detail(skill-id = 900251, name = "Chasing After You", description = "Very slightly increase velocity steadily and very minimally intimidate runners ahead when in midpack in the second half of the race.", group = Just(Chasing-After-You), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&order_rate<=70", duration = 36000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Current-Speed(-250.decimal(-4)), value-usage =Direct, target =Ahead(5)),]),], sp-cost = 200, icon-id = 20011)
View File
+2 -2
View File
@@ -7,8 +7,8 @@ import (
"sync"
"testing"
horse "git.sunturtle.xyz/zephyr/horse/go"
"git.sunturtle.xyz/zephyr/horse/go/global"
"git.sunturtle.xyz/zephyr/horse/horse"
"git.sunturtle.xyz/zephyr/horse/horse/global"
)
var SortedSkills = sync.OnceValue(func() []horse.Skill {
+8 -12
View File
@@ -20,7 +20,7 @@ func main() {
region string
)
flag.StringVar(&mdb, "mdb", os.ExpandEnv(`$USERPROFILE\AppData\LocalLow\Cygames\Umamusume\master\master.mdb`), "`path` to Umamusume master.mdb")
flag.StringVar(&out, "o", `.`, "root `dir`ectory for output files")
flag.StringVar(&out, "o", `.\horse`, "`dir`ectory for output files")
flag.StringVar(&region, "region", "global", "region the database is for (global, jp)")
flag.Parse()
@@ -86,22 +86,18 @@ func main() {
os.Exit(1)
}
if err := os.MkdirAll(filepath.Join(out, "horse", region), 0775); err != nil {
slog.Error("create koka output dir", slog.Any("err", err))
os.Exit(1)
}
if err := os.MkdirAll(filepath.Join(out, "go", region), 0775); err != nil {
slog.Error("create go output dir", slog.Any("err", err))
if err := os.MkdirAll(filepath.Join(out, region), 0775); err != nil {
slog.Error("create output dir", slog.Any("err", err))
os.Exit(1)
}
eg, ctx = errgroup.WithContext(pctx)
eg.Go(func() error {
cf, err := os.Create(filepath.Join(out, "horse", region, "character.kk"))
cf, err := os.Create(filepath.Join(out, region, "character.kk"))
if err != nil {
return err
}
gf, err := os.Create(filepath.Join(out, "go", region, "character.go"))
gf, err := os.Create(filepath.Join(out, region, "character.go"))
if err != nil {
return err
}
@@ -109,16 +105,16 @@ func main() {
return ExecCharacter(t, region, cf, gf, charas, pairs, trios)
})
eg.Go(func() error {
sf, err := os.Create(filepath.Join(out, "horse", region, "skill.kk"))
sf, err := os.Create(filepath.Join(out, region, "skill.kk"))
if err != nil {
return err
}
gf, err := os.Create(filepath.Join(out, "go", region, "skill.go"))
gf, err := os.Create(filepath.Join(out, region, "skill.go"))
slog.Info("write skills")
return ExecSkill(t, region, sf, gf, sg, skills)
})
eg.Go(func() error {
sf, err := os.Create(filepath.Join(out, "horse", region, "skill-group.kk"))
sf, err := os.Create(filepath.Join(out, region, "skill-group.kk"))
if err != nil {
return err
}
+1 -1
View File
@@ -3,7 +3,7 @@ package {{ $.Region }}
// Automatically generated with horsegen; DO NOT EDIT
import . "git.sunturtle.xyz/zephyr/horse/go"
import . "git.sunturtle.xyz/zephyr/horse/horse"
{{/*
//go:generate go run golang.org/x/tools/cmd/stringer@v0.41.0 -type SkillID -trimprefix Skill -linecomment
+1 -1
View File
@@ -53,7 +53,7 @@ module horse/{{ $.Region }}/skill
// Automatically generated with horsegen; DO NOT EDIT
import std/num/decimal
pub import horse/skill-group
pub import horse/{{ $.Region }}/skill-group
// Skill instances.
pub type skill