From 702aaeb57043df68f30b8a8e9c4eb4365725da0e Mon Sep 17 00:00:00 2001 From: FernandoJVideira <03.pleaser-minster@icloud.com> Date: Sun, 3 Aug 2025 19:25:14 +0100 Subject: [PATCH] Fix Generators --- generators/aasimar.go | 2 -- generators/bugbear.go | 2 -- generators/centaur.go | 2 -- generators/changeling.go | 2 -- generators/deep_gnome.go | 2 -- generators/deva.go | 2 -- generators/drow.go | 2 -- generators/fairy.go | 4 +--- generators/grung.go | 2 +- generators/satyr.go | 14 ++++++++------ generators/shadar_kai.go | 2 -- generators/shardmind.go | 4 +--- generators/shifter.go | 4 +--- generators/simic_hybrid.go | 6 +----- generators/tiefling.go | 2 -- 15 files changed, 13 insertions(+), 39 deletions(-) diff --git a/generators/aasimar.go b/generators/aasimar.go index 2eaa644..ccdb2a0 100644 --- a/generators/aasimar.go +++ b/generators/aasimar.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type AasimarData struct { @@ -39,7 +38,6 @@ func LoadAasimarData(path string) error { } func GenerateAasimarName(gender string) string { - rand.Seed(time.Now().UnixNano()) if gender == "female" { return generateAasimarFemaleName() } diff --git a/generators/bugbear.go b/generators/bugbear.go index ffbc48c..a36632d 100644 --- a/generators/bugbear.go +++ b/generators/bugbear.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type BugbearArrays struct { @@ -29,7 +28,6 @@ func LoadBugbearArrays(path string) (*BugbearArrays, error) { } func BugbearNameMas(arr *BugbearArrays, checkSwear func(string) bool) string { - rand.Seed(time.Now().UnixNano()) nTp := rand.Intn(3) rnd := rand.Intn(len(arr.Nm1)) rnd2 := rand.Intn(len(arr.Nm4)) diff --git a/generators/centaur.go b/generators/centaur.go index 3f3e5f6..43d7bfa 100644 --- a/generators/centaur.go +++ b/generators/centaur.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type CentaurData struct { @@ -42,7 +41,6 @@ func LoadCentaurData(path string) error { } func GenerateCentaurName(gender string) string { - rand.Seed(time.Now().UnixNano()) var nMs string if gender == "female" { nMs = generateCentaurFemaleName() diff --git a/generators/changeling.go b/generators/changeling.go index cd95c28..c5540b7 100644 --- a/generators/changeling.go +++ b/generators/changeling.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type ChangelingArrays struct { @@ -27,7 +26,6 @@ func LoadChangelingArrays(path string) (*ChangelingArrays, error) { } func ChangelingNameMas(arr *ChangelingArrays, checkSwear func(string) bool) string { - rand.Seed(time.Now().UnixNano()) rnd := rand.Intn(len(arr.Nm1)) rnd2 := rand.Intn(len(arr.Nm2)) rnd3 := rand.Intn(len(arr.Nm3)) diff --git a/generators/deep_gnome.go b/generators/deep_gnome.go index 2344455..a8204d6 100644 --- a/generators/deep_gnome.go +++ b/generators/deep_gnome.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type DeepGnomeData struct { @@ -40,7 +39,6 @@ func LoadDeepGnomeData(path string) error { } func GenerateDeepGnomeName(gender string) string { - rand.Seed(time.Now().UnixNano()) var nMs string if gender == "female" { nMs = generateDeepGnomeFemaleName() diff --git a/generators/deva.go b/generators/deva.go index 77540cc..e626b2a 100644 --- a/generators/deva.go +++ b/generators/deva.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type DevaData struct { @@ -42,7 +41,6 @@ func LoadDevaData(path string) error { } func GenerateDevaName(gender string) string { - rand.Seed(time.Now().UnixNano()) if gender == "female" { return generateDevaFemaleName() } diff --git a/generators/drow.go b/generators/drow.go index 04d6e25..741fb07 100644 --- a/generators/drow.go +++ b/generators/drow.go @@ -6,7 +6,6 @@ import ( "math/rand" "os" "strings" - "time" ) type DrowData struct { @@ -38,7 +37,6 @@ func init() { if err := json.NewDecoder(file).Decode(&drowData); err != nil { panic(fmt.Errorf("failed to decode drow.json: %w", err)) } - rand.Seed(time.Now().UnixNano()) } func DrowName(gender, surname string) string { diff --git a/generators/fairy.go b/generators/fairy.go index 98158d9..dc2ebf2 100644 --- a/generators/fairy.go +++ b/generators/fairy.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type FairyArrays struct { @@ -33,9 +32,8 @@ func LoadFairyArrays(path string) (FairyArrays, error) { } func GenerateFairyNames(arr FairyArrays, gender string, swearFilter func(string) bool) []string { - rand.Seed(time.Now().UnixNano()) var names []string - for i := 0; i < 10; i++ { + for i := range 10 { var n string if gender == "female" { if i < 3 { diff --git a/generators/grung.go b/generators/grung.go index 0453afe..da66b9c 100644 --- a/generators/grung.go +++ b/generators/grung.go @@ -84,7 +84,7 @@ func GrungName(arr *GrungArrays, swearFilter func(string) bool) string { func GenerateGrungNames(arr *GrungArrays, swearFilter func(string) bool) []string { names := make([]string, 0, 10) - for i := 0; i < 10; i++ { + for range 10 { n := GrungName(arr, swearFilter) names = append(names, n) } diff --git a/generators/satyr.go b/generators/satyr.go index 9b9c587..80273ba 100644 --- a/generators/satyr.go +++ b/generators/satyr.go @@ -58,13 +58,15 @@ func SatyrNameMas(arr *SatyrArrays, swearFilter func(string) bool) string { } else { rnd6 := rand.Intn(len(arr.Nm4)) rnd7 := rand.Intn(len(arr.Nm5)) - for arr.Nm3[rnd5] == arr.Nm5[rnd3] && arr.Nm3[rnd5] == arr.Nm1[rnd] { - rnd5 = rand.Intn(len(arr.Nm3)) + // Fix: ensure rnd5 is for Nm7, rnd3 is for Nm5, and check bounds + for (rnd5 >= len(arr.Nm7) || rnd3 >= len(arr.Nm5)) || (arr.Nm3[rnd5%len(arr.Nm3)] == arr.Nm5[rnd3%len(arr.Nm5)] && arr.Nm3[rnd5%len(arr.Nm3)] == arr.Nm1[rnd]) { + rnd5 = rand.Intn(len(arr.Nm7)) + rnd3 = rand.Intn(len(arr.Nm5)) } for rnd6 == 0 && rnd4 == 0 { rnd6 = rand.Intn(len(arr.Nm4)) } - nMs = arr.Nm1[rnd] + arr.Nm2[rnd2] + arr.Nm3[rnd3] + arr.Nm4[rnd6] + arr.Nm5[rnd7] + arr.Nm6[rnd4] + arr.Nm7[rnd5] + nMs = arr.Nm1[rnd] + arr.Nm2[rnd2] + arr.Nm3[rnd3%len(arr.Nm3)] + arr.Nm4[rnd6] + arr.Nm5[rnd7] + arr.Nm6[rnd4] + arr.Nm7[rnd5] } if swearFilter != nil && swearFilter(nMs) { return "" @@ -138,12 +140,12 @@ func GenerateSatyrNames(arr *SatyrArrays, gender string, swearFilter func(string names := make([]string, 0, 10) switch gender { case "child": - for i := 0; i < 10; i++ { + for range 10 { n := SatyrNameChild(arr) names = append(names, n) } case "female": - for i := 0; i < 10; i++ { + for range 10 { n := SatyrNameFem(arr, swearFilter) for n == "" { n = SatyrNameFem(arr, swearFilter) @@ -151,7 +153,7 @@ func GenerateSatyrNames(arr *SatyrArrays, gender string, swearFilter func(string names = append(names, n) } default: - for i := 0; i < 10; i++ { + for range 10 { n := SatyrNameMas(arr, swearFilter) for n == "" { n = SatyrNameMas(arr, swearFilter) diff --git a/generators/shadar_kai.go b/generators/shadar_kai.go index 4aa2efb..99a69fb 100644 --- a/generators/shadar_kai.go +++ b/generators/shadar_kai.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type ShadarKaiArrays struct { @@ -39,7 +38,6 @@ func LoadShadarKaiArrays(path string) (ShadarKaiArrays, error) { } func GenerateShadarKaiName(arr ShadarKaiArrays, gender string) string { - rand.Seed(time.Now().UnixNano()) if gender == "female" { return shadarKaiFemale(arr) } diff --git a/generators/shardmind.go b/generators/shardmind.go index 19f3699..c479206 100644 --- a/generators/shardmind.go +++ b/generators/shardmind.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type ShardmindArrays struct { @@ -27,7 +26,6 @@ func LoadShardmindArrays(path string) (ShardmindArrays, error) { } func GenerateShardmindName(arr ShardmindArrays) string { - rand.Seed(time.Now().UnixNano()) rnd := rand.Intn(len(arr.Nm1)) rnd2 := rand.Intn(len(arr.Nm2)) return arr.Nm1[rnd] + arr.Nm2[rnd2] @@ -35,7 +33,7 @@ func GenerateShardmindName(arr ShardmindArrays) string { func GenerateShardmindNames(arr *ShardmindArrays, swearFilter func(string) bool) []string { names := make([]string, 0, 10) - for i := 0; i < 10; i++ { + for range 10 { n := GenerateShardmindName(*arr) for n == "" || swearFilter(n) { n = GenerateShardmindName(*arr) diff --git a/generators/shifter.go b/generators/shifter.go index 1fbd1db..f7ffecc 100644 --- a/generators/shifter.go +++ b/generators/shifter.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type ShifterArrays struct { @@ -28,7 +27,6 @@ func LoadShifterArrays(path string) (ShifterArrays, error) { // gender: "male" or "female" func GenerateShifterName(arr ShifterArrays, gender string) string { - rand.Seed(time.Now().UnixNano()) if gender == "female" { rnd := rand.Intn(len(arr.Names2)) return arr.Names2[rnd] @@ -39,7 +37,7 @@ func GenerateShifterName(arr ShifterArrays, gender string) string { func GenerateShifterNames(arr *ShifterArrays, gender string, swearFilter func(string) bool) []string { names := make([]string, 0, 10) - for i := 0; i < 10; i++ { + for range 10 { var n string if gender == "female" { n = GenerateShifterName(*arr, "female") diff --git a/generators/simic_hybrid.go b/generators/simic_hybrid.go index bfcc38c..f9fbebf 100644 --- a/generators/simic_hybrid.go +++ b/generators/simic_hybrid.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type SimicHybridArrays struct { @@ -35,7 +34,6 @@ func LoadSimicHybridArrays(path string) (SimicHybridArrays, error) { } func simicHybridNameMas(a SimicHybridArrays) (string, int) { - rand.Seed(time.Now().UnixNano()) nTp := rand.Intn(4) rnd := rand.Intn(len(a.Nm1)) rnd2 := rand.Intn(len(a.Nm2)) @@ -57,14 +55,12 @@ func simicHybridNameMas(a SimicHybridArrays) (string, int) { } func simicHybridNameFir(a SimicHybridArrays) string { - rand.Seed(time.Now().UnixNano()) rnd := rand.Intn(len(a.Nm7)) rnd2 := rand.Intn(len(a.Nm8)) return a.Nm7[rnd] + a.Nm8[rnd2] } func simicHybridNameSec(a SimicHybridArrays) string { - rand.Seed(time.Now().UnixNano()) rnd := rand.Intn(len(a.Nm9)) rnd2 := rand.Intn(len(a.Nm10)) return a.Nm9[rnd] + a.Nm10[rnd2] @@ -72,7 +68,7 @@ func simicHybridNameSec(a SimicHybridArrays) string { func GenerateSimicHybridNames(arr *SimicHybridArrays, gender string, swearFilter func(string) bool) []string { names := make([]string, 0, 10) - for i := 0; i < 10; i++ { + for i := range 10 { var nMs string if i < 5 { var nTp int diff --git a/generators/tiefling.go b/generators/tiefling.go index 303d641..ee369f6 100644 --- a/generators/tiefling.go +++ b/generators/tiefling.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/rand" "os" - "time" ) type TieflingArrays struct { @@ -30,7 +29,6 @@ func LoadTieflingArrays(path string) (TieflingArrays, error) { } func GenerateTieflingName(arr *TieflingArrays, gender string) string { - rand.Seed(time.Now().UnixNano()) switch gender { case "female": rnd := rand.Intn(len(arr.Nm4))