73 lines
1.5 KiB
Plaintext
73 lines
1.5 KiB
Plaintext
{{ define "go-character" -}}
|
|
package {{ $.Region }}
|
|
|
|
// Automatically generated with horsegen; DO NOT EDIT
|
|
|
|
import . "git.sunturtle.xyz/zephyr/horse/horse"
|
|
|
|
const (
|
|
{{- range $c := $.Characters }}
|
|
Character{{ goenum $c.Name }} CharacterID = {{ $c.ID }} // {{ $c.Name }}
|
|
{{- end }}
|
|
)
|
|
|
|
var OrderedCharacters = [...]CharacterID{
|
|
{{- range $c := $.Characters }}
|
|
Character{{ goenum $c.Name }},
|
|
{{- end }}
|
|
}
|
|
|
|
var Characters = map[CharacterID]Character{
|
|
{{- range $c := $.Characters }}
|
|
Character{{ goenum $c.Name }}: {ID: {{ $c.ID }}, Name: {{ printf "%q" $c.Name -}} },
|
|
{{- end }}
|
|
}
|
|
|
|
var CharacterNameToID = map[string]CharacterID{
|
|
{{- range $c := $.Characters }}
|
|
{{ printf "%q" $c.Name }}: {{ $c.ID }},
|
|
{{- end }}
|
|
}
|
|
|
|
var pairAffinity = []int8{
|
|
{{- range $a := $.Characters -}}
|
|
{{- range $b := $.Characters -}}
|
|
{{- index $.PairMaps $a.ID $b.ID -}},
|
|
{{- end -}}
|
|
{{- end -}}
|
|
}
|
|
|
|
var trioAffinity = []int8{
|
|
{{- range $a := $.Characters -}}
|
|
{{- range $b := $.Characters -}}
|
|
{{- range $c := $.Characters -}}
|
|
{{- index $.TrioMaps $a.ID $b.ID $c.ID -}},
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
}
|
|
|
|
func PairAffinity(a, b CharacterID) int {
|
|
if _, ok := Characters[a]; !ok {
|
|
return 0
|
|
}
|
|
if _, ok := Characters[b]; !ok {
|
|
return 0
|
|
}
|
|
return int(pairAffinity[a*{{ $.Count }} + b])
|
|
}
|
|
|
|
func TrioAffinity(a, b, c CharacterID) int {
|
|
if _, ok := Characters[a]; !ok {
|
|
return 0
|
|
}
|
|
if _, ok := Characters[b]; !ok {
|
|
return 0
|
|
}
|
|
if _, ok := Characters[c]; !ok {
|
|
return 0
|
|
}
|
|
return int(trioAffinity[a*{{ $.Count }}*{{ $.Count }} + b*{{ $.Count }} + c])
|
|
}
|
|
{{ end }}
|