package generators import ( "encoding/json" "math/rand" "os" ) type EladrinArrays struct { Nm1 []string `json:"nm1"` Nm2 []string `json:"nm2"` Nm3 []string `json:"nm3"` Nm4 []string `json:"nm4"` } func LoadEladrinArrays(path string) (*EladrinArrays, error) { file, err := os.Open(path) if err != nil { return nil, err } defer file.Close() var arrays EladrinArrays if err := json.NewDecoder(file).Decode(&arrays); err != nil { return nil, err } return &arrays, nil } func EladrinNameMas(arr *EladrinArrays, checkSwear func(string) bool) string { rnd := rand.Intn(len(arr.Nm1)) rnd2 := rand.Intn(len(arr.Nm2)) nMs := arr.Nm1[rnd] + arr.Nm2[rnd2] if checkSwear != nil && checkSwear(nMs) { return "" } return nMs } func EladrinNameFem(arr *EladrinArrays, checkSwear func(string) bool) string { rnd := rand.Intn(len(arr.Nm3)) rnd2 := rand.Intn(len(arr.Nm4)) nMs := arr.Nm3[rnd] + arr.Nm4[rnd2] if checkSwear != nil && checkSwear(nMs) { return "" } return nMs }