package generators import ( "encoding/json" "math/rand" "os" "strings" ) type ArakocraArrays struct { Nm1 []string `json:"nm1"` Nm2 []string `json:"nm2"` Nm3 []string `json:"nm3"` Nm4 []string `json:"nm4"` Nm5 []string `json:"nm5"` } func LoadArakocraArrays(path string) (*ArakocraArrays, error) { file, err := os.Open(path) if err != nil { return nil, err } defer file.Close() var arr ArakocraArrays if err := json.NewDecoder(file).Decode(&arr); err != nil { return nil, err } return &arr, nil } func ArakocraNameMas(arr *ArakocraArrays, check func(string) bool, i int) string { rnd := rand.Intn(len(arr.Nm1)) rnd2 := rand.Intn(len(arr.Nm2)) rnd3 := rand.Intn(len(arr.Nm5)) var nMs string if i < 5 { for arr.Nm1[rnd] == arr.Nm5[rnd3] { rnd3 = rand.Intn(len(arr.Nm5)) } nMs = arr.Nm1[rnd] + arr.Nm2[rnd2] + arr.Nm5[rnd3] } else { rnd4 := rand.Intn(len(arr.Nm3)) rnd5 := rand.Intn(len(arr.Nm4)) nMs = arr.Nm1[rnd] + arr.Nm2[rnd2] + arr.Nm3[rnd4] + arr.Nm4[rnd5] + arr.Nm5[rnd3] } if check(strings.ToLower(nMs)) { return "" } return nMs }