package character import "math/rand" //go:generate stringer -type=Attr type Attr int const ( CHA Attr = iota CON DEX HPMax INT MPMax STR WIS Nattr ) type Character struct { Name string Attr []Attr } type Characters []Character func (c Characters) Pick() Character { return c[rand.Intn(len(c))] } var Races = Characters{ {"Half Orc", []Attr{HPMax}}, {"Half Man", []Attr{CHA}}, {"Half Halfling", []Attr{DEX}}, {"Double Hobbit", []Attr{STR}}, {"Hob-Hobbit", []Attr{DEX, CON}}, {"Low Elf", []Attr{CON}}, {"Dung Elf", []Attr{WIS}}, {"Talking Pony", []Attr{MPMax, INT}}, {"Gyrognome", []Attr{DEX}}, {"Lesser Dwarf", []Attr{CON}}, {"Crested Dwarf", []Attr{CHA}}, {"Eel Man", []Attr{DEX}}, {"Panda Man", []Attr{CON, STR}}, {"Trans-Kobold", []Attr{WIS}}, {"Enchanted Motorcycle", []Attr{MPMax}}, {"Will o' the Wisp", []Attr{WIS}}, {"Battle-Finch", []Attr{DEX, INT}}, {"Double Wookiee", []Attr{STR}}, {"Skraeling", []Attr{WIS}}, {"Demicanadian", []Attr{CON}}, {"Land Squid", []Attr{STR, HPMax}}, } var Klasses = Characters{ {"Ur-Paladin", []Attr{WIS, CON}}, {"Voodoo Princess", []Attr{INT, CHA}}, {"Robot Monk", []Attr{STR}}, {"Mu-Fu Monk", []Attr{DEX}}, {"Mage Illusioner", []Attr{INT, MPMax}}, {"Shiv-Knight", []Attr{DEX}}, {"Inner Mason", []Attr{CON}}, {"Fighter/Organist", []Attr{CHA, STR}}, {"Puma Burgular", []Attr{DEX}}, {"Runeloremaster", []Attr{WIS}}, {"Hunter Strangler", []Attr{DEX, INT}}, {"Battle-Felon", []Attr{STR}}, {"Tickle-Mimic", []Attr{WIS, INT}}, {"Slow Poisoner", []Attr{CON}}, {"Bastard Lunatic", []Attr{CON}}, {"Jungle Clown", []Attr{DEX, CHA}}, {"Birdrider", []Attr{WIS}}, {"Vermineer", []Attr{INT}}, } var Titles = []string{ "Mr.", "Mrs.", "Sir", "Sgt.", "Ms.", "Captain", "Chief", "Admiral", "Saint", } var ImpressiveTitles = []string{ "King", "Queen", "Lord", "Lady", "Viceroy", "Mayor", "Prince", "Princess", "Chief", "Boss", "Archbishop", }