horsegen: generate keyed struct literals

This commit is contained in:
2026-01-16 22:01:10 -05:00
parent 5576dd8d3f
commit cb1c51db05
4 changed files with 7646 additions and 8486 deletions

View File

@@ -57,55 +57,55 @@ const (
)
var Characters = map[CharacterID]Character{
CharacterSpecialWeek: {1001, "Special Week"},
CharacterSilenceSuzuka: {1002, "Silence Suzuka"},
CharacterTokaiTeio: {1003, "Tokai Teio"},
CharacterMaruzensky: {1004, "Maruzensky"},
CharacterFujiKiseki: {1005, "Fuji Kiseki"},
CharacterOguriCap: {1006, "Oguri Cap"},
CharacterGoldShip: {1007, "Gold Ship"},
CharacterVodka: {1008, "Vodka"},
CharacterDaiwaScarlet: {1009, "Daiwa Scarlet"},
CharacterTaikiShuttle: {1010, "Taiki Shuttle"},
CharacterGrassWonder: {1011, "Grass Wonder"},
CharacterHishiAmazon: {1012, "Hishi Amazon"},
CharacterMejiroMcQueen: {1013, "Mejiro McQueen"},
CharacterElCondorPasa: {1014, "El Condor Pasa"},
CharacterTMOperaO: {1015, "T.M. Opera O"},
CharacterNaritaBrian: {1016, "Narita Brian"},
CharacterSymboliRudolf: {1017, "Symboli Rudolf"},
CharacterAirGroove: {1018, "Air Groove"},
CharacterAgnesDigital: {1019, "Agnes Digital"},
CharacterSeiunSky: {1020, "Seiun Sky"},
CharacterFineMotion: {1022, "Fine Motion"},
CharacterBiwaHayahide: {1023, "Biwa Hayahide"},
CharacterMayanoTopGun: {1024, "Mayano Top Gun"},
CharacterManhattanCafe: {1025, "Manhattan Cafe"},
CharacterMihonoBourbon: {1026, "Mihono Bourbon"},
CharacterMejiroRyan: {1027, "Mejiro Ryan"},
CharacterHishiAkebono: {1028, "Hishi Akebono"},
CharacterRiceShower: {1030, "Rice Shower"},
CharacterAgnesTachyon: {1032, "Agnes Tachyon"},
CharacterAdmireVega: {1033, "Admire Vega"},
CharacterInariOne: {1034, "Inari One"},
CharacterWinningTicket: {1035, "Winning Ticket"},
CharacterEishinFlash: {1037, "Eishin Flash"},
CharacterCurrenChan: {1038, "Curren Chan"},
CharacterKawakamiPrincess: {1039, "Kawakami Princess"},
CharacterGoldCity: {1040, "Gold City"},
CharacterSakuraBakushinO: {1041, "Sakura Bakushin O"},
CharacterSweepTosho: {1044, "Sweep Tosho"},
CharacterSuperCreek: {1045, "Super Creek"},
CharacterSmartFalcon: {1046, "Smart Falcon"},
CharacterTosenJordan: {1048, "Tosen Jordan"},
CharacterNaritaTaishin: {1050, "Narita Taishin"},
CharacterNishinoFlower: {1051, "Nishino Flower"},
CharacterHaruUrara: {1052, "Haru Urara"},
CharacterMatikanefukukitaru: {1056, "Matikanefukukitaru"},
CharacterMeishoDoto: {1058, "Meisho Doto"},
CharacterMejiroDober: {1059, "Mejiro Dober"},
CharacterNiceNature: {1060, "Nice Nature"},
CharacterKingHalo: {1061, "King Halo"},
CharacterSpecialWeek: {ID: 1001, Name: "Special Week"},
CharacterSilenceSuzuka: {ID: 1002, Name: "Silence Suzuka"},
CharacterTokaiTeio: {ID: 1003, Name: "Tokai Teio"},
CharacterMaruzensky: {ID: 1004, Name: "Maruzensky"},
CharacterFujiKiseki: {ID: 1005, Name: "Fuji Kiseki"},
CharacterOguriCap: {ID: 1006, Name: "Oguri Cap"},
CharacterGoldShip: {ID: 1007, Name: "Gold Ship"},
CharacterVodka: {ID: 1008, Name: "Vodka"},
CharacterDaiwaScarlet: {ID: 1009, Name: "Daiwa Scarlet"},
CharacterTaikiShuttle: {ID: 1010, Name: "Taiki Shuttle"},
CharacterGrassWonder: {ID: 1011, Name: "Grass Wonder"},
CharacterHishiAmazon: {ID: 1012, Name: "Hishi Amazon"},
CharacterMejiroMcQueen: {ID: 1013, Name: "Mejiro McQueen"},
CharacterElCondorPasa: {ID: 1014, Name: "El Condor Pasa"},
CharacterTMOperaO: {ID: 1015, Name: "T.M. Opera O"},
CharacterNaritaBrian: {ID: 1016, Name: "Narita Brian"},
CharacterSymboliRudolf: {ID: 1017, Name: "Symboli Rudolf"},
CharacterAirGroove: {ID: 1018, Name: "Air Groove"},
CharacterAgnesDigital: {ID: 1019, Name: "Agnes Digital"},
CharacterSeiunSky: {ID: 1020, Name: "Seiun Sky"},
CharacterFineMotion: {ID: 1022, Name: "Fine Motion"},
CharacterBiwaHayahide: {ID: 1023, Name: "Biwa Hayahide"},
CharacterMayanoTopGun: {ID: 1024, Name: "Mayano Top Gun"},
CharacterManhattanCafe: {ID: 1025, Name: "Manhattan Cafe"},
CharacterMihonoBourbon: {ID: 1026, Name: "Mihono Bourbon"},
CharacterMejiroRyan: {ID: 1027, Name: "Mejiro Ryan"},
CharacterHishiAkebono: {ID: 1028, Name: "Hishi Akebono"},
CharacterRiceShower: {ID: 1030, Name: "Rice Shower"},
CharacterAgnesTachyon: {ID: 1032, Name: "Agnes Tachyon"},
CharacterAdmireVega: {ID: 1033, Name: "Admire Vega"},
CharacterInariOne: {ID: 1034, Name: "Inari One"},
CharacterWinningTicket: {ID: 1035, Name: "Winning Ticket"},
CharacterEishinFlash: {ID: 1037, Name: "Eishin Flash"},
CharacterCurrenChan: {ID: 1038, Name: "Curren Chan"},
CharacterKawakamiPrincess: {ID: 1039, Name: "Kawakami Princess"},
CharacterGoldCity: {ID: 1040, Name: "Gold City"},
CharacterSakuraBakushinO: {ID: 1041, Name: "Sakura Bakushin O"},
CharacterSweepTosho: {ID: 1044, Name: "Sweep Tosho"},
CharacterSuperCreek: {ID: 1045, Name: "Super Creek"},
CharacterSmartFalcon: {ID: 1046, Name: "Smart Falcon"},
CharacterTosenJordan: {ID: 1048, Name: "Tosen Jordan"},
CharacterNaritaTaishin: {ID: 1050, Name: "Narita Taishin"},
CharacterNishinoFlower: {ID: 1051, Name: "Nishino Flower"},
CharacterHaruUrara: {ID: 1052, Name: "Haru Urara"},
CharacterMatikanefukukitaru: {ID: 1056, Name: "Matikanefukukitaru"},
CharacterMeishoDoto: {ID: 1058, Name: "Meisho Doto"},
CharacterMejiroDober: {ID: 1059, Name: "Mejiro Dober"},
CharacterNiceNature: {ID: 1060, Name: "Nice Nature"},
CharacterKingHalo: {ID: 1061, Name: "King Halo"},
}
var CharacterNameToID = map[string]CharacterID{

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,7 @@ const (
var Characters = map[CharacterID]Character{
{{- range $c := $.Characters }}
Character{{ goenum $c.Name }}: { {{- $c.ID }}, {{ printf "%q" $c.Name -}} },
Character{{ goenum $c.Name }}: {ID: {{ $c.ID }}, Name: {{ printf "%q" $c.Name -}} },
{{- end }}
}

View File

@@ -14,26 +14,32 @@ const (
var AllSkills = map[SkillID]Skill{
{{- range $s := $.Skills }}
Skill{{ goenum $s.Name }}{{ if ne $s.InheritID 0 }}Inherit{{ end }}: {
{{ $s.ID }},
{{ printf "%q" $s.Name }}{{ if ne $s.InheritID 0 }} + " (Inherited)"{{ end }},
{{ printf "%q" $s.Description }},
{{ $s.GroupID }},
{{ $s.Rarity }},
{{ $s.GroupRate }},
{{ $s.GradeValue }},
{{ $s.WitCheck }},
[]Activation{
ID: {{ $s.ID }},
Name: {{ printf "%q" $s.Name }}{{ if ne $s.InheritID 0 }} + " (Inherited)"{{ end }},
Description: {{ printf "%q" $s.Description }},
Group: {{ $s.GroupID }},
Rarity: {{ $s.Rarity }},
GroupRate: {{ $s.GroupRate }},
GradeValue: {{ $s.GradeValue }},
{{- if $s.WitCheck }}
WitCheck: {{ $s.WitCheck }},
{{- end }}
Activations: []Activation{
{{- range $a := $s.Activations }}
{{- if ne $a.Condition "" }}
{
{{ printf "%q" $a.Precondition }},
{{ printf "%q" $a.Condition }},
{{ $a.Duration }},
{{ $a.Cooldown }},
[]Ability{
{{- if $a.Precondition }}
Precondition: {{ printf "%q" $a.Precondition }},
{{- end }}
Condition: {{ printf "%q" $a.Condition }},
Duration: {{ $a.Duration }},
{{- if $a.Cooldown }}
Cooldown: {{ $a.Cooldown }},
{{- end }}
Abilities: []Ability{
{{- range $abil := $a.Abilities }}
{{- if ne $abil.Type 0 }}
{ {{- $abil.Type }}, {{ $abil.ValueUsage }}, {{ $abil.Value }}, {{ $abil.Target }}, {{ $abil.TargetValue -}} },
{Type: {{ $abil.Type }}, ValueUsage: {{ $abil.ValueUsage }}, Value: {{ $abil.Value }}, Target: {{ $abil.Target }}, TargetValue: {{ $abil.TargetValue -}} },
{{- end }}
{{- end }}
},
@@ -41,8 +47,10 @@ var AllSkills = map[SkillID]Skill{
{{- end }}
{{- end }}
},
{{ $s.SPCost }},
{{ $s.IconID }},
{{- if $s.SPCost }}
SPCost: {{ $s.SPCost }},
{{- end }}
IconID: {{ $s.IconID }},
},
{{- end }}
}
@@ -58,4 +66,4 @@ var SkillGroups = map[int32][4]SkillID{
{{ $g.ID }}: { {{- range $s := index $.Related $g.ID }}Skill{{ goenum $s.Name }}{{ if ne $s.InheritID 0 }}Inherit{{ end }}, {{ end -}} },
{{- end }}
}
{{ end }}
{{ end }}