package logic import ( "fmt" "math/rand" ) // botNicknames are English display names assigned deterministically to bot indexes. var botNicknames = []string{ "Spark Assistant", "Nova Guide", "Echo Helper", "Atlas Bot", "Luna Concierge", "Orion Buddy", "Mira Support", "Felix Demo", "Aria Sample", "Kai Showcase", "Nina Pilot", "Leo Welcome", "Zoe Messenger", "Owen Chat", "Ivy Reply", "Ethan Pulse", "Clara Beam", "Miles Spark", "Ruby Wave", "Hugo Note", "Vera Link", "Jonas Thread", "Piper Mail", "Silas Ping", "Nora Signal", "Quinn Relay", "Mabel Soft", "Theo Bright", "Elsie Calm", "Finn Steady", "Iris Clear", "Jude Warm", "Lana Quick", "Marco Soft", "Nell Crisp", "Omar Fresh", "Paige Light", "Reed Cool", "Sage Kind", "Tess Open", "Uma Soft", "Vince Clear", "Willa Bright", "Xander Calm", "Yara Warm", "Zane Quick", "Ada Soft", "Blake Crisp", "Cora Fresh", "Drew Light", "Eve Cool", "Ford Kind", "Gina Open", "Hank Soft", "Indie Clear", "Jade Bright", "Kurt Calm", "Liv Warm", "Moss Quick", "Nia Soft", "Otto Crisp", "Pearl Fresh", "Quill Light", "Rose Cool", "Seth Kind", "Tara Open", "Uri Soft", "Veda Clear", "Wes Bright", "Xena Calm", "York Warm", "Zara Quick", "Amy Soft", "Ben Crisp", "Cy Fresh", "Dot Light", "Eli Cool", "Fay Kind", "Gus Open", "Hal Soft", "Ina Clear", "Jay Bright", "Kim Calm", "Lou Warm", "Max Quick", "Nyx Soft", "Oli Crisp", "Pam Fresh", "Rex Light", "Sky Cool", "Ty Kind", "Una Open", "Vic Soft", "Wyn Clear", "Xia Bright", "Yen Calm", "Zed Warm", "Ash Quick", "Bea Soft", "Cal Crisp", } // nicknameForBot returns a stable English nickname for bot index 1..100. func nicknameForBot(index int) string { if index < 1 { index = 1 } if index == 1 { return botNicknames[0] } // Deterministic shuffle pick so re-runs keep the same names/avatars. r := rand.New(rand.NewSource(int64(20260923 + index*9973))) base := botNicknames[1+(index-2)%(len(botNicknames)-1)] suffix := r.Intn(90) + 10 nick := fmt.Sprintf("%s %d", base, suffix) if len(nick) > 64 { return nick[:64] } return nick }