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`, }